华林优配

    物联网网关与ModbusTCP协议设备对接教程

    • 时间 :2019-02-10
    • 作者 :华林优配科技
    • 浏览数 :5457

    本文介绍华林优配工业级无线网关BMG200的驱动构件用于顺利获得ModbusTCP协议读写Modicon PLC设备的各种寄存器的数据; 同时也同时也可用于对支持ModbusTCP标准协议的各类PLC、仪表、控制器数据的读写。


    设备简介

    本驱动构件用于顺利获得ModbusTCP协议读写Modicon PLC设备的各种寄存器的数据; 

    同时也可用于对支持ModbusTCP标准协议的各类PLC、仪表、控制器数据的读写。

    本驱动支持01、02、03、04、05、16常用功能码,对功能码支持请参见附录1。

    可用于对支持ModbusTCP标准协议的各类PLC、仪表、控制器数据的读写。

    驱动类型

    以太网设备

    通讯协议

    采用莫迪康ModbusTCP协议

    通讯方式

    一主一从、一主多从方式。驱动构件为主,设备为从。


    硬件连接

    与设备通讯之前,必须保证华林优配工业级无线网关BMG200通讯连接正确。

    通讯连接方式:华林优配工业级无线网关BMG200与设备之间采用标准的以太网通讯。 

    其他设备的通讯连接,具体请参考对应设备手册。


    设备通讯参数

    “ModbusTCP”端口参数设置如下:


    modbustcp端口属性.png


    以太网通讯参数设置如下:

    设置项

    参数项

    IP地址

    用户设备的IP地址

    端口号

    502


    其中通讯参数设置应与设备的通讯参数相同,否则无法正常通讯。

    设备通讯参数的具体设置请参见对应设备手册。


    通道变量属性

    本驱动构件可支持ModbusTCP寄存器类型及对应功能码如下:

    寄存器

    数据类型

    读取功能码

    写入功能码

    操作方式

    [0]输出继电器

    BIT

    01

    05

    读写

    [1]输入继电器

    BIT

    02

    [3]输入寄存器

    SHORT,LONG,FLOAT

    04

    只读

    [4]输出寄存器

    SHORT,LONG,FLOAT

    03

    16

    读写


    说明:

    功能码:[1]、[3]区不支持写操作;[4] 区在双字(32位)时,使用16功能码进行数据写操作。

    数据类型:

    16位整数解码顺序:调整字元件的解码顺序,对于Modicon PLC及标准PLC设备,使用默认值即可。

    0—12:表示字元件高低字节不颠倒(默认值)。

    例如:解码0x0001  表示1

    1—21:表示字元件高低字节颠倒。

    例如:表示0x0100 (即256)

    32位整数解码顺序:调整双字元件的解码顺序,对于Modicon PLC,请设置为“0-3412”顺序解码。

    0—3412:表示双字元件高低字颠倒,但字内高低字节不颠倒。

    例如:解码0x0000 0001 表示 0x0001 0000 (即65536)

    1—1234:表示双字元件不做处理直接解码(默认值)。

    例如:解码0x0000 0001  表示 1

    2—2143:表示双字元件高低字不颠倒,但字内高低字节颠倒。

    例如:解码0x0000 0001  表示 0x0000 0100 (即256)

    3—4321:表示双字元件内4个字节全部颠倒。

    例如:解码0x0000 0001 表示 0x0100 0000 (即1677 7216)

    32位浮点数解码顺序:调整双字元件的解码顺序,对于Modicon PLC,请设置为“0-3412”顺序解码。

    0—3412:表示双字元件高低字颠倒,但字内高低字节不颠倒。

    例如:解码 0x3F80 0000 表示 2.27795e-041

    1—1234:表示双字元件不做处理直接解码(默认值)。

    例如:解码 0x3F80 0000 表示 1.0

    2—2143:表示双字元件高低字不颠倒,但字内高低字节颠倒。

    例如:解码 0x3F80 0000 表示 -5.78564e-039

    3—4321:表示双字元件内4个字节全部颠倒。

    例如:解码 0x3F80 0000 表示 4.60060e-041


    注释:1. 对于PLC及控制器等可编程设备,在需要读取大量数据的时候,请在设计下位程序时,尽量将要采集的数据放在相同寄存器的陆续在地址中,这样即可以提高每次采集的效率,又可以避免因地址不陆续在而导致的采集分块过多,通讯速度慢的问题,从而有效的提高采集速度。

              2. 对于32未解码顺序,需要设置内存变量MODBUSTYPECOM1(代表端口1),在系统启动时设置脚本置内存变量为0,1,2,3即可,默认为0,可以不设置。

    特殊应用的开发

    本设备构件现在只实现部分通讯功能,如需要用作其它用途或本构件不能满足要求时,可自行进行开发,也可以提出具体的技术要求,由华林优配科技Baimatech亲自为您定制。


    附表:

    附录1

    本驱动构件支持的寄存器及功能码说明如下:

    寄存器

    读取功能码

    写入功能码

    功能码说明

    [1]输入继电器

    02

    02: 读取输入状态

    [0]输出继电器

    01

    05

    01: 读取线圈状态

    05: 强制单个线圈

    [3]输入寄存器

    04

    04: 读输入寄存器

    [4]输出寄存器

    03

    16

    03: 读保持寄存器

    16: 预置多个寄存器


    说明:

    1.本驱动构件支持01、02、03、04、05、16等常用功能码,对于其它非数据通讯用功能码暂不支持。

    2.以上功能码均以10进制标注。功能码15和16分别对应16进制的0x0F和0x10。

    注意:添加寄存器通道时,起始地址均为1,这是遵从Modbus协议的,即所谓的“协议地址”,对于部分寄存器起始地址为0的设备,通道添加时,地址应加1处理。 


    联系我们
    联系我们

    华林优配Baimatech,集M2M产品研发、IoT平台服务、国际化运营于一体,让我们联接,共创未来