在现代工业自动化中,经常会有PLC直接控制CAN/CAN FD接口设备的需求,但是一般的小型或中型PLC很少有CAN接口,一般标配的是RS485接口,那该如何解决呢?
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 设备接线示意图
PXB-6020参数配置接下来打开AWPX Tools软件对PXB-6020进行配置。
1. 配置Modbus参数,将PXB-6020的工作模式配置为Modbus RTU从站,如图2所示。
图2 Modbus参数设置2. 配置CAN FD参数,如图3所示。图3 CAN FD参数配置3. 配置发送报文参数,如图4所示。图4 发送报文配置4. 配置接收报文参数,如图5所示。图5 接收报文配置
PLC配置打开STEP 7-Micro/WIN SMART软件,使用该软件对PLC进行软件编程、配置和程序下载。
1. 双击页面左侧的“通信”按钮,在弹出的通信界面点击“查找CPU”,查找到对应的CPU后点击“确定”,如图6所示。
图6 查找CPU
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”指向的地址有重合。
图7 库存储器分配
5. 库存储器设置完成后,使用MBUS_CTRL指令与MBUS_MSG组态PLC,使其作为Modbus RTU主站并对PXB-6020进行读写。一个简单的读写PXB-6020的梯形图如图8-10所示,此梯形图程序仅供参考。
图8 梯形图1
图9 梯形图2
图10 梯形图3
6. 以上梯形图实现对Modbus从站保存寄存器的循环读写,读取Modbus从站保持寄存器0地址一个字的数据,并将一个字数据数据写入Modbus从站保持寄存器1地址。
数据转换将以上梯形图下载至PLC后,点击“启动程序监视”按钮后,即可在如图11所示的“状态图表”页面对Modbus从站进行读写操作。图11 读写Modbus从站数据1. Modbus数据转换为CAN FD数据
根据图4-5的发送报文和接收报文的配置,在“状态图表”里面的VW12地址写入0x1122,可使PXB-6020发送如图12所示的CAN FD标准帧,可在ZCANPRO软件观测PXB-6020发送的CAN FD标准帧。
图12 发送的CAN FD帧2. CAN FD数据转换为Modbus数据
使用USBCANFD-200U设备向PXB-6020发送帧ID为0x02,帧数据段为0x8899的CAN FD标准帧,则在“状态图表”里面的VW10地址可读取到数据0x8899,如图13所示。
图13 读取Modbus从站数据
至此,我们成功实现了PLC的Modbus数据与CAN FD数据的双向转换。
全部0条评论
快来发表一下你的评论吧 !