海为PLC与富士变频器通讯及仿真调试详细介绍:
一、海为PLC通讯特点:
1、内置多种通讯协议:Haiwell PLC各种型号的主机都内置Modbus RTU/ASCII协议、自由通讯协议以及海为公司的HaiwellBus高速通讯协议;
2、通讯端口可扩展:Haiwell PLC各种型号的主机均自带2个通讯口(一个为RS-232,另一个为RS-485),用通讯扩展模块可扩展至5个通讯口,每个通讯端口均可用于用于编程和联网,通讯端口相互独立,均可作为主站也可作产从站;
3、极为便利的通讯指令系统:使您无论使用何种通讯协议都只需一条通讯指令便可完成复杂的通讯功能,编程简单而程序简洁,无须再为通讯端口冲突、发送接收控制、通讯中断处理等问题烦恼,可以在程序中混合使用各种协议轻松完成您所需的各种数据交换;
二、富士变频器通讯协议介绍
富士变频器采用富士专用的通讯协议,根据富士变频器说明书与通讯有关的主要参数如下:
H30:连接功能选择,需要设定为3
H31:RS485地址,需要设定为2
H34:通讯传送速度(波特率),设定为0,19200
H35:数据长度,设定为0,8位
H36:奇偶校验,设定为0,无
H37:停止位,设定为0,2位
富士专用的通讯协议有关命令格式如下图,详细通讯协议请参考富士变频器通讯协议手册。
其中:SOH=01,ENQ=05,P=20,ETX=03
三、海为PLC与富士变频器通讯程序
因为富士变频器采用富士专用的通讯协议,所以海为PLC采用COMM自由通讯协议与其通讯。
例子完成5项操作命令,变频器地址设为2,通讯格式19200,8,N,2
1、 正转运行:
根据富士变频器说明书,正转运行命令ASCII为: SOH 0 2 ENQ f 0 0 0 1 ETX 9 1,转换成ASCII(16进制)为01 30 32 05 66 30 30 30 31 03 39 31,共12字节,该命令返回8字节。
命令串放在初始寄存器值表“正转运行命令”中(V1000-V1011,见下图),采用COMM.LB指令只发送低字节方式发送数据。
2、 停止:
根据富士变频器说明书,停止运行命令ASCII为: SON 0 2 ENQ f 0 0 0 0 ETX 9 0,转换成ASCII(16进制)为01 30 32 05 66 30 30 30 30 03 39 30,共12字节,该命令返回8字节。
命令串放在初始寄存器值表“停止命令”中(V1015-V1026,见下图),采用COMM.LB指令只发送低字节方式发送数据。
3、 反转运行:
根据富士变频器说明书,反转运行命令ASCII为: SON 0 2 ENQ f 0 0 0 2 ETX 9 2,转换成ASCII(16进制)为01 30 32 05 66 30 30 30 32 03 39 32,共12字节,该命令返回8字节。
命令串放在初始寄存器值表“反转运行命令”中(V1030-V1041,见下图),采用COMM.LB指令只发送低字节方式发送数据。
4、 设定运行频率:
根据富士变频器说明书,设定运行频率命令ASCII为: SON 0 2 ENQ W S 0 5 SP 4位频率数据 ETX 2位校验和,转换成ASCII(16进制)为01 30 32 05 57 53 30 35 20 00 00 00 00 03 00 00,共16字节,该命令返回16字节。
4位频率数据和2位校验和因为会根据设定不同频率而变化,需要在程序中组祯运算。
命令串放在初始寄存器值表“频率设定命令”中(V1050-V1065,见下图),采用COMM.LB指令只发送低字节方式发送数据。
5、 读取当前运行频率:
根据富士变频器说明书,读取当前运行频率命令ASCII为: SON 0 2 ENQ R M 0 9 SP 0 0 0 0 ETX 5 2,转换成ASCII(16进制)为01 30 32 05 52 4D 30 39 20 30 30 30 30 03 35 32,共16字节,该命令返回16字节。
命令串放在初始寄存器值表“频率读取命令”中(V1070-V1085,见下图),采用COMM.LB指令只发送低字节方式发送数据。
程序图如下:
四、仿真调试程序
如果没有富士变频器和海为PLC该如何仿真调试程序呢?仿真调试完全可以验证该程序是否正确运行。
对于正转/停止/反转命令,因为其命令是固定的,只要是完全按照富士变频器通讯手册的说明正确定义了“正转运行命令”“停止命令”“反转运行命令”这3个初始寄存器值表,就可以与富士变频器正确通讯。
对于设定运行频率命令的仿真,在仿真状态下强制V1100的值=4000(40.00Hz),强制M3为ON,然后在“地址状态表”中监控命令串(V1050-V1065)中值的内容,根据富士变频器通讯手册,如果设定频率为40.00Hz,正确的命令串(16进制)为01 30 32 05 57 53 30 35 20 30 46 41 30 03 38 30,如下图:
对于读取当前运行频率的仿真,因为其命令是固定的,只要是完全按照富士变频器通讯手册的说明正确定义了“频率读取命令”初始寄存器值表,就可以与富士变频器正确通讯。因此仿真的目的在于验证从返回的数据中获得当前运行频率值是否正确。
在仿真状态下通过强制V80-V87共8个寄存器的值以模拟变频器返回的数据,假如当前运行频率值=3000(30.00Hz),正确的返回数据应该是数据串(16进制)为01 30 32 06 52 4D 30 39 20 30 42 42 38 03 37 46,因此强制V80-V87如下值
V80=3001H、V81=0632H、V82=4D52H、V83=3930H
V84=3020H、V85=4242H、V86=0338H、V87=4637H
结果得到当前运行频率V60=3000,显示结果正确,如下图: