PXB-6020是致远电子新推出的一款Modbus to CAN FD协议转换器,拥有1路CAN FD接口,1路100M以太网接口和1路RS485接口。该产品可支持Modbus RTU及Modbus TCP,既可以当Modbus主站,也可以当Modbus从站。PXB-6020最大支持128组CAN/CAN FD报文发送和128组白名单接收,支持Modbus所有类型的寄存器。同时还可以自定义方式发送数据,具有毫秒级转换和简单灵活等特点,广泛应用于PLC外扩CAN/CAN FD等场合。
接下来我们将使用PXB-6020协议转换器快速实现西门子S7-200 SMART(以下简称:PLC)的Modbus数据转换为CAN FD数据, 达到PLC的RS485接口也可以与CAN FD设备通信的效果。PLC运行为Modbus RTU主站,而PXB-6020协议转换器运行为Modbus RTU从站。
为方便文章说明,PXB-6020的CAN FD接口接入的是一个USBCANFD-200U(USBCANFD接口卡),用户可根据实际需求接入其他CAN/CAN FD设备。
硬件接线
设备接线示意如图1所示:
1. 配置Modbus参数,将PXB-6020的工作模式配置为Modbus RTU从站,如图2所示。
1. 双击页面左侧的“通信”按钮,在弹出的通信界面点击“查找CPU”,查找到对应的CPU后点击“确定”,如图6所示。
2. 使用页面左侧的“指令”->“库”->“Modbus RTU Master(V2.0)”下的“MBUS_CTRL”和“MBUS_MSG”指令使PLC运行为Modbus RTU主站,实现对Modbus RTU从站的读写。
3. MBUS_CTRL指令用于初始化主站,必须在每次扫描时调用MBUS_CTRL指令,否则Modbus主站协议不能正常工作。MBUS_MSG指令用于向Modbus从站发起读或写请求。
4. Modbus RTU Master(V2.0)指令库需要286字节的全局V存储器,所以需要指定该库可使用的V存储器量的地址。点击并右键界面左侧的“程序块”->“库存储器...”,会弹出如图7所示界面。在弹出的界面选择“建议地址”,再点击“确定”即可。建议地址不能与参数“DatePtr”指向的地址有重合。
5. 库存储器设置完成后,使用MBUS_CTRL指令与MBUS_MSG组态PLC,使其作为Modbus RTU主站并对PXB-6020进行读写。一个简单的读写PXB-6020的梯形图如图8-10所示,此梯形图程序仅供参考。
6. 以上梯形图实现对Modbus从站保存寄存器的循环读写,读取Modbus从站保持寄存器0地址一个字的数据,并将一个字数据数据写入Modbus从站保持寄存器1地址。
根据图4-5的发送报文和接收报文的配置,在“状态图表”里面的VW12地址写入0x1122,可使PXB-6020发送如图12所示的CAN FD标准帧,可在ZCANPRO软件观测PXB-6020发送的CAN FD标准帧。
使用USBCANFD-200U设备向PXB-6020发送帧ID为0x02,帧数据段为0x8899的CAN FD标准帧,则在“状态图表”里面的VW10地址可读取到数据0x8899,如图13所示。
至此,我们成功实现了PLC的Modbus数据与CAN FD数据的双向转换。
更多往期文章,请点击“ 阅读原文 ”。