三菱FX3U与变频器通讯程序如何编写
前面我们讲了如何用串口调试工具通讯变频器,也学习了Modbus的报文格式。今天老冯教你们怎么用PLC写通讯程序。
首先看我们要准备的硬件:
1.三菱FX3U
2.三菱FX3U-485BD板
3.台达VFD-M变频器
4.台达变频器通讯水晶头(RJ11)
首先是接线,RDA和SDA接到485+,RDB和SDB接到485-,也就是半双工模式。这里解释一下什么是半双工,什么是全双工。
半双工:同一时间只能发送或者接收数据,接收和发送不能同时进行。
全双工:接收发送可以同时进行,互不影响。
接完线我们需要定义两边的通讯参数一致。我们以Modbus RTU为例。设置变频器站号为01,波特率为9600,8个数据位,1个停止位,偶校验。那PLC这边如何定义呢?看下图的实例程序。
图1
首先我们要置位特殊继电器M8161,M8161=ON时,这样是为了把所有数据都存放到数据寄存器的低八位。然后D8120为通讯格式寄存器,具体如何设置可以参考图2。最后利用RS指令配置发送区和接收区,发送区为D0开始的8个数据寄存器,此例只讲解如何发送报文,不需要接收数据,所以后面是K0。
图2
通过前面的学习我们已经知道正转启动的报文为01 06 20 00 00 12 02 07。我们依次把报文赋值到发送区,程序如图3-图5。
图3
图4
图5
接下来是计算CRC校验码,上期已经讲了三菱有自己的CRC指令,所以可以直接利用D0-D5里面的值计算出校验码,因为是低八位模式,所以校验码依次存放到D6和D7的低八位。到此我们的报文已经全部赋值到发送区,也就是D0-D7。我们只需要set M8122就可以把报文发送给变频器了。
图6
特别说明一下,置位M8122后不需要手动对其复位,PLC在检测到数据发送完成以后,会自行复位。
以上便是如何利用PLC给变频器发送报文的案例程序。下期我们讲如何接收,接收到的数据如何处理。没看明白的朋友可以私信我交流讨论。感谢支持!