你是否曾经遇到过需要同时处理CCLINK IE FIELD BASIC和MODBUS两种数据协议的情况?捷米JM-CCLKIE-TCP网关模块可以帮助你解决这个问题。
部分云平台支持基于 CCLINK IE FIELD BASIC 协议的数据接入方式,而工厂内部的一些数据采集设备(如传感器)可能是通过 Modbus TCP 协议传输数据。在这种情况下,明确 Modbus TCP 和 CCLINK IE FIELD BASIC的区别,有助于正确设置网关,保证数据在不同网络层次和协议之间的顺畅传输,实现从车间设备到云端的完整数据链路。
捷米JM-CCLKIE-TCP网关模块可以分别从CCLINK IE FB一侧和MODBUS一侧读写数据,然后将数据存入各自的缓冲区。接着,网关内部会将缓冲区的数据进行交换,从而实现两边数据的传输。这样的设计使得网关在处理不同协议的数据时更加灵活和高效。
1, MODBUS 功能码
MODBUS 报文相对比较固定,所以您只需要稍作了解,看几条报文之后就知道了它的结构,在需要的时候再来具体查询。
4.3.2.1 读取输出状态(01H)
功能码:01H 主站询问报文式:
地址
|
功能码
|
起始地址高位
|
起始地址低位
|
线圈数高位
|
线圈数低位
|
CRC
|
13H
|
01H
|
00H
|
11H(17)
|
00H
|
25H
|
xxxx
|
功能:读从站输出线圈0XXXX状态。
本例:读13H号从站输出线圈,寄存器起始地址=0011H=17,线圈数=0025H=37;因此,本
询问报文功能是:读19(13H)号从站输出线圈00017-00053,共37个线圈状态。
从站应答格式:
地址
|
功能码
|
字节计数
|
线圈状态
00017-
00024
|
线圈状态
00025-
00032
|
线圈状态
00033-
00040
|
线圈状态
00041-
00048
|
线圈状态
00049-
00053
|
CRC
|
13H
|
01H
|
05H
|
CDH
|
ABH
|
EFH
|
12H
|
1BH
|
xxxx
|
2, 功能:从机返回输出线圈0XXXX状态本例:1B=00011011,对应00049-00053
1B= 0 0 0 1 1 0 1 1,对应00049-00053
4.3.2.2 读取输入状态(02H)
功能码:02H 主站询问报文式:
地址
|
功能码
|
起始地址高位
|
起始地址低位
|
线圈数高位
|
线圈数低位
|
CRC
|
13H
|
02H
|
00H
|
12H(18)
|
00H
|
10H
|
xxxx
|
功能:读从站输入线圈1XXXX状态。
本例:读13H号从站输入线圈,起始地址=0012H=18,线圈数=0010H=16
因此,本询问报文功能是:读19(13H)号从站输入线圈10018—10033,共16个输入线圈状态;
从站应答格式:
地址
|
功能码
|
字节计数
|
线圈状态
10018-10025
|
线圈状态
10026-10033
|
CRC
|
13H
|
02H
|
02H
|
CDH
|
ABH
|
xxxx
|
功能:从机返回DI=1XXXX状态
4.3.2.3 读取保存寄存器(03H)
功能码:03H 主站询问报文式:
地址
|
功能码
|
起始地址高位
|
起始地址低位
|
寄存器数高位
|
寄存器数低位
|
CRC
|
13H
|
03H
|
00H
|
60H(96)
|
00H
|
02H
|
xxxx
|
功能:读从站保持寄存器4XXXX值。
本例:读13H号从站保持寄存器值,起始地址=0060H=96,寄存器数=0002;
因此,本询问报文功能是:读19(13H)号从站3个保持寄存器40096—40097的值;从站应答格式:
地址
|
功能码
|
字节计数
|
寄存器
40096 高位
|
寄存器
40096 低位
|
寄存器
40097 高位
|
寄存器
40097 低位
|
CRC
|
13H
|
03H
|
04H
|
03H
|
00H
|
02H
|
2AH
|
xxxx
|
功能:从站返回保持寄存器的值:40096=0300H,40097=022AH
网关的控制字
D7~D1
|
D0:启动 MODBUS 发送
|
保留
|
0:停止 1:启动
|
5.5.2 网关的状态字
D7:奇偶校验
|
D6:CRC 校验
|
D5:等待超时
|
D4~D1:异常应答
|
D0:接收/发送
|
0:没有错误
1:奇偶校验错
|
0:没有错误
1:CRC 校验错
|
0:没有错误 1:等待超时
|
0:没有错误
其他:Modbus 访问异常
|
0:准备接收 1:准备发送
|
5.5.3 启动捷米JM-CCLKIE-TCP网关的 Modbus
(1) 使用 Modbus Slave 软件做为从站,与网关的 RTU 端子连接进行测试。
(2) 点击软件的菜单栏“Connection——Connect…”,设置正确的端口号,然后点击 OK,开始运行。如下图:
(3) 点击软件的菜单栏“Setup——Slave Definition”,设置从站允许访问的数据区,如下图:
(4) 在 GX WORKS3 主站软件上,将输出数据的第 1 个 word 赋值为 1(控制字 =1),启动 MODBUS-RTU 通讯。
(5) 测试数据:
在 Modbus Slave 软件中,手动修改数据值,如下图:
6, 可以在 GX WORKS3 主站软件中监控到上传数据。
7. 在 GX WORKS3 主站软件上手动修改一个 output 数据值,在 Modbus Slave 软件中可以监视到,数据已经成功下发。
在工业物联网应用等案例中,Modbus TCP 和 CCLINK IE FIELD BASIC的通信功能和实现方式的差异表现明显。CCLINK IE FIELD BASIC提供了丰富的网络通信功能,包括网络地址分配、域名解析、可靠的传输控制等,这些功能使得设备能够在复杂的网络环境中准确地找到目标并进行数据传输,但同时也带来了一定的网络开销和复杂性。Modbus TCP 则简化了通信过程,专注于工业设备之间的基本数据交换和控制指令传输,采用特定的功能码和数据格式,使得工业设备能够快速响应控制指令并反馈状态信息。
通过使用捷米JM-CCLKIE-TCP网关,你可以轻松地同时处理CCLINK IE FIELD BASIC和MODBUS TCP两种数据协议。赶快评论分享你对这个网关的看法,并告诉我们你是否有类似的需求吧!