在教学过程中发现很多朋友被变频器如何跟PLC通信所困扰,即使勉强与一种品牌通信上,换一个品牌又不知如何去通信。为此我特意整理此文,希望对大家有帮助。
PLC与变频器之间最常用的通信协议为Modbus RTU,最常用的通信接口RS485接口,想要熟练的进行通信,首先要对Modbus RTU协议和RS485接口具有充分的了解。
Modbus是由Modicon(现为施耐德电气公司的一个品牌)在1979年发明的,是全球第一个真正用于工业现场的总线协议。Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络(例如RS485)和其它设备之间可以通信。
ModBus协议有2种传输模式,ASCII模式和RTU模式,在同一个通信网络中必须使用相同的传输模式,除此之外还必须具有相同的波特率、数据位、校验位、停止位等参数。
波特率:每秒钟传输的bit位数量,表示传输速度快慢单位为bps或bit/s。波特率越大传输速度越快,抗干扰能力越差,距离也就越近。
数据位:传输数据格式为起始位+数据位+奇偶校验位+停止位,通常数据位位7或8位。
校验位:奇偶校验位是一种错误检测码,可设置为奇校验(Odd)、偶校验(Even)和无校验(None)。如果传输过程中包括校验位在内的奇数个数据位发生改变,那么奇偶校验位将出错表示传输过程有错误发生。
停止位:通常数据帧最后有一个或两个(无校验位)停止位,用于表征一帧数据结束。
Modbus协议是一种单主多从协议,同一网络中只允许有一个主站,其余都只能作为从站。只有主站才拥有主动话语权,从站只能被动的接收数据或对主站的请求做出应答。
两线制RS485接口:工作于半双工,所以编写通信程序时要轮番进行通信,即读和写操作要错开每次只能执行一条操作。数据信号采用差分传输,使用一对双绞线,一根为正,一根为负。
下面就以西门子S7-200 SMART与英威腾变频器通信为例讲解一下通信的方法。
我们通过通信控制变频器的启停和频率,再将转速和输出电压读取出来。
分析:想要通过通信控制启停和频率,必须将运行指令通道设置成通信给定P00.01=2,频率指令选择设置成MODBUS通信设定P00.06=8。有关通信组的参数采用默认值,本机通信地址P14.00=1,通信波特率P14.01=4(19200bps),数据位校验格式P14.02=1(偶检验E,8,1 for RTU)。
接线常采用如图1-1所示的链式连接法,在远端加上120Ω的终端电阻。
图1-1
接下来就是编写通信程序:
1.首先应对端口进行初始化,如图1-2
图1-2
2.编写控制启停的程序,注意此处使能要用SM0.0。
SMART中保持性寄存器的modbus地址为40001-49999,400001-499999。查阅英威腾手册得知通信地址如图1-3所示,算出控制启停的通信地址为16#BC41,程序如图1-4所示。
图1-3
图1-4
3.编写修改频率的程序。同样的方法换算出控制频率的通信地址为16#BC42,程序如图1-5所示。
图1-5
4.编写读取输出电压的程序。
输出电压和运用转速的通信地址如图1-6所示:
图1-6
将十六进制3003转换成十进制为12291,超出49999的范围,所以将12291+400001=41292,再转换成十六进制为16#64A84,程序如图1-7所示。
图1-7
5.编写读取运行转速程序,同理得出运行转速地址为16#64A86,程序如图1-8所示。
图1-8
注意:由于RS485接口是工作于半双工模式,所以每步操作程序需要轮流执行(每次只执行一条操作),编写程序过程中用上一步的Done作为下一步的First条件。跟其它品牌的变频器或仪表通信方法类似,只需要查看通信手册找到对应的通信地址即可。