当前位置: 首页 >应用方案 >技术应用 >

使用ECAN-401通信设备实现ModBus数据转CAN教程

首先,在开始案例演示之前,我们需要知道ECAN-401智能协议转换器设备是如何实现设备CANModBus协议数据通信转换的:ECAN-401标准用于串口侧ModBus RTU通信协议。因此,ECAN-401设备不仅支持用户使用ModBus RTU协议格式模块和其他支持ModBusRTU协议设备也可以直接进行数据通信

CAN协议数据转换器侧面,制定了一个简单易用的分段通信格式来实现ModBus通信,一个长度大于一个长度CAN报文最大数据长度的信息分割和重组方法,数据1”用于分段识别数据和传输ModBus协议内容可以从数据2”从字节开始,如果协议内容大于7个字节,则按照这个分段格式继续转换剩余的协议内容,直到转换完成。

CAN总线上传输的数据不需要CRC效验方式。

CAN总线上的数据效验已经有了更加完善的效验方法。

此模式下,设备支持的是ModBus验证和转发,而不是ModBus的主机或者从机,用户按照ModBus协议通讯即可。

针对于数据1”的分段标识协议,以下表格和示例可以帮助理解:

can总线数据分段标记

分段标记:表明该报文是否是分段报文。该位为0 表示单独报文,为1 表示属于被分段报文中的一帧。

分段类型:表明是第一段、中间段的还是最后段。

can总线分段类型

分段计数器:每一个段的标志,表示该段在整个报文中的序号,如果是第几个段,计数器的值就是几。这样在接收时就能够验证是否有分段被遗失。共使用5Bit范围为0~31

can设备分段计数器

示例: ID013,串口接收到的ModBus数据是:01 03 00 00 00 01 84 0A。除去ModBus的校验数据后,数据长度为 6 CAN数据除去分段协议占用的数据位后,能接收的长度是7。小于我们要接受的数据长度。

此时CAN总线上的数据1分段报文标记0分段类型0分段计数器1。将以上数据按照分段传输协议定义,将数据填入指定的位置,CAN总线的数据1即可得到数据1的二进制数据位0000 0001,转换为16进制数据即为0x01。在将ModBus数据填入到后续对应的位置即可得到CAN总线上数据:

can总线设备数据报文

在了解了ECAN-401CANModBus协议功能完成后,我们可以开始实际操作,准备以下设备:ECAN-401数据转换器can转设备一台,CAN分析仪ECAN-U01一台,ModBus POLL软件。

这里我们使用ECAN-401做数据转换工具,ECAN-U01发送和接收CAN报文,ModBusPoll软件模拟ModBus设备发送ModBus指令。

将ECAN-401ECAN-U01CAN_LCAN_H连接,ECAN-401RS485接口通过RS485通信USB数据转换器连接到电脑,如下图所示:

can总线数转换器链接示意图

通过ECAN-401的上位机,将设备通讯模式切换为ModBus模式,参数配置如下图:

can模块设置软件

打开CAN分析仪ECAN-U01以及ModBus Poll软件,使用ModBus Poll 软件模拟出一个ModBus设备,通过ECAN-401485串口发送ModBus指令,这里可以看到ECAN-U01设备已经接收到了ECAN-401所转换出来的数据:

can数据分析仪

ECAN-401485串口支持的是ModBus RTU协议,接收到的ModBus 指令为01 03 00 00 00 0A C5 CD,经过处理后转换到ECAN-U01CAN数据后为01 01 03 00 00 00 0A。这里可以看到CAN帧的第一位数据01是经过处理后添加的分段标识,也自动去掉了CRC校验位,真实数据为01 03 00 00 00 0A。这样就成功通过ECAN-401实现ModBusCAN数据格式的转换。

查看技术文章和免费咨询技术问题可以访问成都亿佰特电子科技有限公司官网及各官方平台:

微信号:cdebyte

今日头条:亿佰特

新浪微博:成都亿佰特



https://www.wjx.cn/jq/84863372.aspx