主要硬件设备:三菱PLC与台达变频器VFD-M通讯仅供参考案例。
通信格式:MODBUS ASCII,9600,7,E,1,停止位2,变频器地址01。
IF( M0 )THEN //*M0为触摸屏上的变频器启动按钮*如果为真启动
Y11:=1; //Y11变频器电源接通
Y5:=1; //Y5为运行指示灯
ELSE //如果为假
Y11:=0; //y11停止
Y5:=0; //Y5指示灯灭
M2:=0;
M3:=0;
M4:=0;
M5:=0;//修改频率的数据发送状态位,起到同时只能发送一次数据的作用变频器关闭的话,将各参数按钮复位
END_IF;
IF( LDP( 1,M8123 ) )THEN //上沿脉冲,*数据接收完毕的话,复位m8123数据接收完毕标志
rst(1,M8123);
END_IF;
IF ( M8002 ) THEN
M8161:=1; //8位数据处理模式
D8120:=H0C88; //设置通信格式*通信格式:MODBUS ASCII,9600,7,E,1,停止位2,
END_IF;
IF( M8000 AND LDP( 1,M6 ) )THEN //M6为修改变频器频率按钮
D10:=H003A; //设置传送的内容,根据变频器功能码和变频器寄存器地址设置,
D25:=H000D;
D26:=H000A;
D101:=H0001;
D102:=H0003;
D103:=H0020;
D104:=H0001;
D105:=D115;//往变频器的H2001地址写一个频率数据内容D115,D115通过触摸屏输入元件传入,因此在触摸屏上写入频率内容输入即可更改变频器运行频率
D106:=H0000;
ASCI( TRUE ,D101, 2,D11);
ASCI( TRUE ,D102, 2,D13);
ASCI( TRUE ,D103, 2,D15);
ASCI( TRUE ,D104, 2,D17);
ASCI( TRUE ,D105, 2,D19);
ASCI( TRUE ,D106, 2,D21); //将传送内容转换成ASCII码
ADD_E( TRUE , D101,D102,D103,D104,D105,D106 , D110);
SUB_E( TRUE , 256 , D110, D28); //计算数据内容的LRC码
ASCI( TRUE ,D28, 2,D23); //将LRC码写入d23,d24
RS( TRUE, D10 , 17 , 17, D50 );//设置传送数据内容为D10开始的17个D寄存器里的内容
M8122:=1; //传送开始
END_IF;
IF( LDP( 1,M2 ) ) THEN
M10:=1;
M11:=0;
M12:=0;//当触摸屏正转M2按钮按下时,设置M10发送数据标志,并切换触摸屏上的按钮状态,其他按钮为假。
END_IF;
IF( ldp( 1,M3 ) ) THEN
M10:=1;
M11:=0;
M12:=0; //当触摸屏反转M3按钮按下时,设置M10发送数据标志,并切换触摸屏上的按钮状态,其他按钮为假
END_IF;
IF( ldp( 1,M4 ) ) THEN
M5:=1;
M3:=0;
M2:=0; //当触摸屏停止按钮按下时,设置M5发送数据标志,并切换触摸屏上的按钮状态,其他按钮为假
END_IF;
IF( ldf( 1,M8122 ) ) THEN
M10:=0; //数据发送成功以后,将M10置0,不再继续发送
END_IF;
IF( ldp( 1,M2 ) AND M5 ) THEN //M2为变频器正转按钮
D10:=H003A;
D25:=H000D;
D26:=H000A;
D101:=H0001;
D102:=H0006;
D103:=H0020;
D104:=H0000;
D105:=H0000;
D106:=H0012;//设置传送的内容,根据变频器功能码和变频器寄存器地址设置
ASCI( TRUE ,D101, 2,D11);
ASCI( TRUE ,D102, 2,D13);
ASCI( TRUE ,D103, 2,D15);
ASCI( TRUE ,D104, 2,D17);
ASCI( TRUE ,D105, 2,D19);
ASCI( TRUE ,D106, 2,D21);//将传送内容转换成ASCII码
ADD_E( TRUE , D101,D102,D103,D104,D105,D106 , D110);
SUB_E( TRUE , 256 , D110, D28);//计算数据内容的LRC码
ASCI( TRUE ,D28, 2,D23);//将LRC码写入d23,d24
RS( TRUE, D10 , 17 , 0, D50 );//设置传送数据内容为D10开始的17个D寄存器里的内容
M8122:=1; //传送开始
END_IF;
IF( ldp( 1,M3 ) AND M5 ) THEN//M3为变频器反转按钮
D10:=H003A;
D25:=H000D;
D26:=H000A;
D101:=H0001;
D102:=H0006;
D103:=H0020;
D104:=H0000;
D105:=H0000;
D106:=H0022;//设置传送的内容,根据变频器功能码和变频器寄存器地址设置
ASCI( TRUE ,D101, 2,D11);
ASCI( TRUE ,D102, 2,D13);
ASCI( TRUE ,D103, 2,D15);
ASCI( TRUE ,D104, 2,D17);
ASCI( TRUE ,D105, 2,D19);
ASCI( TRUE ,D106, 2,D21);//将传送内容转换成ASCII码
ADD_E( TRUE , D101,D102,D103,D104,D105,D106 , D110);
SUB_E( TRUE , 256 , D110, D28);//计算数据内容的LRC码
ASCI( TRUE ,D28, 2,D23);//将LRC码写入d23,d24
RS( TRUE, D10 , 17 , 0, D50 );//设置传送数据内容为D10开始的17个D寄存器里的内容
M8122:=1; //传送开始
END_IF;
IF( ldp( 1,M4 ) AND M5 ) THEN //M4为变频器停止按钮
D10:=H003A;
D25:=H000D;
D26:=H000A;
D101:=H0001;
D102:=H0006;
D103:=H0020;
D104:=H0000;
D105:=H0000;
D106:=H0001;//设置传送的内容,根据变频器功能码和变频器寄存器地址设置
ASCI( TRUE ,D101, 2,D11);
ASCI( TRUE ,D102, 2,D13);
ASCI( TRUE ,D103, 2,D15);
ASCI( TRUE ,D104, 2,D17);
ASCI( TRUE ,D105, 2,D19);
ASCI( TRUE ,D106, 2,D21);//将传送内容转换成ASCII码
ADD_E( TRUE , D101,D102,D103,D104,D105,D106 , D110);
SUB_E( TRUE , 256 , D110, D28);//计算数据内容的LRC码
ASCI( TRUE ,D28, 2,D23);//将LRC码写入d23,d24
RS( TRUE, D10 , 17 , 0, D50 );//设置传送数据内容为D10开始的17个D寄存器里的内容
M8122:=1; //传送开始
END_IF;
以上ST语言供参孝.
rs指令的参数和功能等内容请参考FX编程器的通信篇手册。
变频器参数地址,功能码使用以及参数内容设置,请参考变频器手册上的通信篇设置。
---------------------
评论