艾默生 plc在变频器网络控制中的通信程序设计
三、 艾默生变频器通信协议
艾默生公司生产的ev系列变频器都集成modbus协议,且提供rs232c和rs485通信口供用户选择,所以通过plc和变频器通信的方式完成控制比较简单经济,而且显得系统比较高档,下面简单介绍其协议:
1. 支持modbus rtu和ascii格式;
2. 参数的modbus协议地址影射规则:变频器的功能码参数、控制参数和状态参数都映射为modbus的读写寄存器。变频器功能码的组号映射为寄存器地址的高字节,组内索引映射为寄存器地址的低字节。变频器的控制参数和状态参数均虚拟为变频器功能码组。功能码组号与其映射的寄存器地址高字节的对应关系如下:f0组:0x00;f1组:0x01;f2组:0x02;f3组:0x03;f4组:0x04;f5组:0x05;f6组:0x06;f7组:0x07;f8组:0x08;f9组:0x09;fa组:0x0a;fb组:0x0b;fc组:0x0c;fd组:0x0d;fe组:0x0e;ff组:0x0f;fh组:0x10;fl组:0x11;fn组:0x12;fp组:0x13;fu组:0x14;变频器控制参数组:0x32;变频器状态参数组:0x33。例如变频器功能码参数f3.02的寄存器地址为0x302,变频器功能码参数ff.01的寄存器地址为0xf01。
3. 支持的功能码如下:
4. 具体的协议介绍请参考艾默生变频器用户手册;
四、 程序流程图
主设备对从设备的消息查询命令主要分为2大类,连续命令序列和随机命令序列。
连续命令序列: 主设备需要定时或连续向从设备发送的命令序列。特点是周期性,连续性。如plc对变频器读取运行频率命令,运行状态命令等。
随机命令序列: 主设备不定时或随机向从设备发送的命令序列。特点是不定时性,随机性。如plc对变频器的启停控制,改写频率或其他参数等。
五、程序清单:( 子程序和主程序 )
本程序主要介绍1台ec20plc(作为主站)按照modbus协议网络对3台变频器(从站号分别是2,3,4)进行通信控制的简单范例,本例中:
连续命令序列 包括对2,3,4号变频器的运行频率的读取;
随机命令序列 包括对2,3,4号变频器进行启动,停止,更改频率的命令操作;
1) “变频器正转”子程序清单如下:
//主程序中用m1993作为各发送辅助使能,主要用于 modbus指令的上升沿触发无其他用
ld lm0 //位输入参数型—发送辅助使能
rst sm135 //复位成功标志
rst sm136 //复位失败标志
ld sm0 //运行标志
mov z0 v9 //保存z0值到v9
ld sm0 //运行标志
mov v0 v10 //从机地址
mov 16#6 v11 //功能码
mov 16#32 v12 //寄存器地址高字节
mov 16#0 v13 //寄存器地址低字节
mov 1 v14 //写入数据高字节
mov 16#c7 v15 //写入数据低字节
//以下把发送数据转移到d7940-d7945里
ld sm0
mov 0 z0
ld sm0
for 6
ld sm0
mov v10z0 d7940z0
ld sm0
inc z0
next
//发送接收数据,数据放在d7970开始区域
ld lm0
modbus 1 d7940 d7970
rst lm0 //马上复位发送辅助使能
//无论成功失败都还原z0值
//当然这里省略了错误报告的处理
ld sm135
or sm136
eu //上升沿
mov v9 z0