CANopen通信硬件接口为CAN总线,然而Modbus通信硬件接口为串口/以太网口;那么问题来了:CANopen主站如何获取Modbus型传感器的数据呢?让我们一起来实现。
PXB-6021是ZLG致远电子推出的一款Modbus to CANopen协议转换器,具有1路CAN,1路百兆以太网和1路RS485。该产品支持Modbus RTU及Modbus TCP,可以实现Modbus主站到CANopen从站的数据转换。PXB-6021最大支持12组TPDO和12组RPDO,同时支持EDS下发和自定义PDO和Modbus的数据映射;具有转换快、设置简单、使用灵活等特点。接下来我们将使用USBCAN-E-P CANopen主站卡和PXB-6021协议转换器来实现CANopen主站获取Modbus设备的数据。
准备条件
USBCAN-E-P CANopen主站卡和上位机软件 CANManager for CANopen;
PXB-6021转换器和上位机配置软件AWPX Tools;
RS485温湿度变送器;
24V电源适配器;
杜邦线6根,USB线1根,网线1根,终端电阻120欧1个。
硬件接线
设备接线如图1所示:
图1 设备连接图
PC通过网线连接PXB-6021和USB线连接USBCAN-E-P CANopen主站卡;
PXB-6021的CAN总线的CAN_H和CAN_L分别连接到USBCAN-E-P CANopen主站卡的CAN_H和CAN_L;
PXB-6021的RS485的A、B分别连接到Modbus温湿度变送器的A、B端子。
PXB-6021的参数配置
打开AWPX Tools工具,点击搜索设备,然后选中PXB-6021设备。
根据温湿度传感器的说明书,温湿度变送器的波特率为9600,数据长度为8,校验位为0,停止位为1,配置PXB-6021的Modbus参数,如图2所示:
图2 设置Modbus参数
然后再配置PXB-6021的CANopen参数,如图3所示。
图3 设置CANopen参数
根据温湿度变送器的介绍,温度数据在保持寄存器0地址,湿度数据在1地址,数据均扩大了10倍。我们还要对PXB-6021的TPDO参数以及Modbus和TPDO的映射关系进行配置,如图4所示。
图4 TPDO配置
CANopen主站设置
USBCAN-E-P CANopen主站卡加载从站EDS,如图5所示。
图5 导入EDS
然后点击CANManager for CANopen软件的搜索按钮搜索从站,如图6所示。
图6 搜索从站
找到从站,如图7所示。
图7 找到从站
Modbus数据获取
单击启动按钮采集从站数据,如图8所示。
图8 采集数据从图上可知:
- 温度为0x118,转换十进制为280,由于参数扩大了10倍,所以当前温度为28度;湿度为0x294,转换十进制为660,由于参数扩大了10倍,所以当前湿度为66。