ModbusTCP通讯协议.docx

上传人:b****5 文档编号:8367310 上传时间:2023-01-30 格式:DOCX 页数:14 大小:18.19KB
下载 相关 举报
ModbusTCP通讯协议.docx_第1页
第1页 / 共14页
ModbusTCP通讯协议.docx_第2页
第2页 / 共14页
ModbusTCP通讯协议.docx_第3页
第3页 / 共14页
ModbusTCP通讯协议.docx_第4页
第4页 / 共14页
ModbusTCP通讯协议.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

ModbusTCP通讯协议.docx

《ModbusTCP通讯协议.docx》由会员分享,可在线阅读,更多相关《ModbusTCP通讯协议.docx(14页珍藏版)》请在冰豆网上搜索。

ModbusTCP通讯协议.docx

ModbusTCP通讯协议

 

ModbusTCP通讯协议

 

一、适用范围及默认规范

 

此ModbusTCP协议适用于EIO、ADC系列产品。

协议中所有数值如无特殊说明,均为16进制。

Modbus浮点数为标准的IEEE格式,Modbus32位长整数据为4字节无符号整数(unisignedlong)组态软件支持此ModbusTCP协议,可以直接使用。

 

二、读开关量输入

 

1.功能码、寄存器地址、偏移功能码:

01

 

地址:

两个地址,分别用于读入全部开关量状态或单独读一路开关量输入状态。

 

描述如下。

 

[0A]--读全部开关量输入状态。

 

[3C]--读第1路开关量输入状态,递增1为下一路,如3D为第二路。

以此类推。

 

地址偏移:

可为任意值,建议为0000。

 

在使用组态软件时,正确填写地址,地址偏移填写任意值即可。

 

2.ModbusTCP格式(网口)

 

读全部开关量输入状态发送报文:

[0000000000][06][01][01]

[000A]

 

[0001]

 

读第1路开关量输入状态发送报文:

[0000000000][06][01][01][003C]

 

[0000]

 

[0000000000]:

ModbusTCP报文头,简化为全0即可。

使用组态软件时,自

 

动设置。

 

[6]:

剩余数据长度,说明还剩6个字节等待接收。

使用组态软件时,自动设置。

 

[01]:

子设备ID。

ModbusTCP忽略。

 

[01]:

ModbusTCP功能码01

 

[000A]或[003C]:

寄存器地址,高位字节在前,低位字节在后。

 

[0000]:

寄存器地址偏移,设备忽略此数据,只设置寄存器地址即可工作,设置

 

成0000即可。

 

读全部开关量输入状态应答报文:

[0000000000][04][01][01][01][42]

 

读一路开关量输入状态应答报文:

[0000000000][04][01][01][01][01]

 

[0000000000]:

ModbusTCP报文头,简化为全0即可。

使用组态软件时,自

 

动设置。

 

[4]:

剩余数据长度,说明还剩4个字节等待接收。

使用组态软件时,自动设置。

 

[01]:

子设备ID。

ModbusTCP忽略。

 

[01]:

ModbusTCP功能码01

 

[1]:

返回字节数,1个字节的8个bit对应8路输入,接通/低电平时,对应的

 

bit置1,否则置0。

8路输入设备返回01,16路输入设备返回02,以此类推。

 

[42]或[01]:

对于读全部开关量输入状态报文,此处为开关量输入状态字节,bit0

 

对应input1,接通/低电平为1,否则为0。

此处为01000010,说明Input2、Input7

 

为接通或低电平状态。

其他为断开或高电平状态。

 

对于读一路开关量输入状态报文,此字节为01说明为接通/低电平状态,00为断

 

开/高电平状态。

 

三、读模拟量、温湿度输入(保持寄存器)

 

1.功能码、寄存器地址、偏移功能码:

03

 

地址:

不同类型及格式的模量输入,具体描述如下。

 

[29]--读温湿度及传感器状态,特殊编程格式,不支持组态软件。

 

[2A]--读温度值,地址偏移可以为任意值,建议设置为0000。

标准Modbus浮点

 

数格式,支持组态软件。

 

[2B]--读湿度,地址偏移可以为任意值,建议设置为0000。

标准Modbus浮点数

 

格式,支持组态软件,

 

[2C]--读露点,地址偏移可以为任意值,建议设置为0000。

标准Modbus浮点数

 

格式,支持组态软件。

 

[46]--读模指定路数的模数通道值,地址偏移指出要读取的几路输入,最小为1,最大为设备支持的模数输入路数。

标准Modbus浮点数格式,支持组态软件。

 

[47]--一次读取全部输入通道的模数值,地址偏移为任意值,建议设置为0000,

 

标准Modbus浮点数格式,支持组态软件。

 

[50]--读第1路模数值,递增1(如51)为第2路,以此类推最大为50+设备最

 

大模拟量输入路数,地址偏移为任意值,建议设置为0000。

标准Modbus浮点数格式,支持组态软件。

 

地址偏移:

参照寄存器说明设置。

 

2.ModbusTCP格式(网口)

 

读专用格式温湿度输入发送报文:

[0000000000][06][01][03][0029][0001]

 

读标准格式温度输入发送报文:

[0000000000][06][01][03][002A][0000]

 

读第1路模拟量输入发送报文:

[0000000000][06][01][03][0050][0000]

 

一次读2路模拟量输入发送报文:

[0000000000][06][01][03][0046][0002]

 

一次读所有模拟量输入发送报文:

[0000000000][06][01][03][0047][0000]

 

[0000000000]:

ModbusTCP报文头,简化为全0即可。

使用组态软件时,自

 

动设置。

 

[6]:

剩余数据长度,说明整个报文还剩6个字节。

使用组态软件时,自动设置。

 

[01]:

子设备ID。

ModbusTCP忽略。

 

[03]:

ModbusTCP功能码03

 

[0029]:

寄存器地址,高位字节在前,低位字节在后。

参考寄存器地址说明。

 

[0000]:

寄存器地址偏移,参考寄存器地址说明

 

读专用格式温湿度输入应答报文:

[0000000000][08][01][03][05]

 

[<1025><2A3B><00>]

 

读标准格式温度输入应答报文:

[0000000000][07][01][03][04][412828F4]

 

读第1路模拟量输入应答报文:

[0000000000][07][01][03][04][00040879]

 

读2路模拟量输入应答报文:

 

[0000000000][0B][01][03][08][000408C6][00079F2C]

 

读所有模拟量输入应答报文:

 

[0000000000][0F][01][03][0C][0004077D][00079FF4][00000773]

 

[0000000000]:

ModbusTCP报文头,简化为全0即可。

使用组态软件时,自

 

动设置。

 

[8]:

剩余数据长度,此处说明还剩8个字节等待接收。

使用组态软件时,自动设置。

0B还剩11个字节,0F还剩15个字节。

 

[01]:

子设备ID。

ModbusTCP忽略。

 

[03]:

ModbusTCP功能码03

 

[5]:

结果数据长度,由发送报文的寄存器地址决定。

例如,05为5个有效数据

 

字节。

04为

 

4个字节,一个模数通道或标准浮点数(温湿度)值用

 

4个字节,所

以返回

1个通道值用

4个字节。

08为

2个通道模数值

8个字节。

[<1025><2A3B><00>]、[412828F4]或[00040879]:

温湿度或模数值。

描述如下。

 

[<1025><2A3B><00>]:

非标准格式温湿度值。

<1025>第1个字节为温度整数,第

 

2个字节为温度小数。

温度整数为

 

10,小数为

 

25,温度值为:

 

16.37

 

摄氏度。

<2A3B>第

1个字节为湿度整数,第

2个字节为湿度小数。

湿度整数为

2A,小数为

3B,湿度值为42.56%。

<00>传感器状态字节:

0-传感器正常,温湿度值有效。

 

他值为传感器错误,温湿度值无效。

 

[412828F4]:

温度、湿度、露点数据,Modbus浮点数格式。

 

[00040879]:

模数采样结果值,Modbus32位长整数据。

 

四、单独设置一个开关量/TTL输出状态

 

1.功能码、寄存器地址、偏移功能码:

05

 

地址:

1E至1E加设备最大输出路数(0起),例如第1路为1E,第8路为25。

 

地址偏移:

此功能码不需要地址偏移。

 

控制数据:

FF00-接通或为低电平,0000-断开或高电平

 

2.ModbusTCP格式(网口)

 

设置第8路输出为接通或TTL为低电平报文:

 

[0000000000][06][01][05][0025][FF00]

 

[0000000000]:

ModbusTCP报文头,简化为全0即可。

使用组态软件时,自

 

动设置。

 

[6]:

剩余数据长度,说明整个报文还剩6个字节。

使用组态软件时,自动设置。

 

[01]:

子设备ID。

ModbusTCP忽略。

 

[05]:

ModbusTCP功能码05

 

[0025]

寄存器地址,高位字节在前,低位字节在后。

8路=1E+07=25

[FF00]

将第8路输出设置为接通或低电平。

0000为断开或高电平。

 

如果设备正确执行了指令,将原样返回接收到的报文,应答报文:

[00000000

 

00][06][01][05][0025][FF00]

 

五、设置多个开关量/TTL输出状态

 

1.功能码、寄存器地址、地址偏移功能码:

0F

 

地址:

64

 

控制路数(地址偏移):

1至最大路数的输出

 

2.ModbusTCP格式(网口)

 

设置全部8路输出为接通/设置TTL为低电平报文:

 

[0000000000][08][01][0F][0064][0008][01][FF]

 

[0000000000]:

ModbusTCP报文头,简化为全0即可。

使用组态软件时,自

 

动设置。

 

[8]:

剩余数据长度,说明整个报文还剩8个字节。

使用组态软件时,自动设置。

 

[01]:

子设备ID。

ModbusTCP忽略。

 

[0F]:

ModbusTCP功能码0F

 

[0064]:

寄存器地址,高位字节在前,低位字节在后。

 

[0008]:

同时设置8路输出状态。

 

[1]:

控制数据字节个数

 

[FF]:

控制数据字节,1个字节控制8路输出,字节中置1位对应的开关量输出将控制为接通或低电平状态。

如bit0=1,Outuput1为接通或低电平状态。

FF为设置所有8个通道全部接通或低电平状态。

 

如果设备正确执行了指令,将原样返回接收到的报文,应答报文:

 

[0000000000][08][01][0F][0064][0008][01][FF]

 

六、读开关量输出状态

 

1.功能码、寄存器地址、偏移

 

此报文使用第一节的01功能码,地址不同。

 

功能码:

01

 

地址:

64地址偏移:

小于最大输出路数即可,建议为0000。

 

在使用组态软件时,正确填写地址,地址偏移填写任意值即可。

 

2.ModbusTCP格式(网口)

 

读开关量输入发送报文:

[0000000000][06][01][01][0064][0000]

 

[0000000000]:

ModbusTCP报文头,简化为全0即可。

使用组态软件时,自

 

动设置。

 

[6]:

剩余数据长度,说明还剩6个字节等待接收。

使用组态软件时,自动设置。

 

[01]:

子设备ID。

ModbusTCP忽略。

 

[01]:

ModbusTCP功能码01

 

[0064]:

寄存器地址,高位字节在前,低位字节在后。

 

[0000]:

为00

 

设备应答报文:

[000000000004010101D5]

 

[0000000000]:

ModbusTCP报文头,简化为全0即可。

使用组态软件时,自

 

动设置。

 

[4]:

剩余数据长度,说明还剩4个字节等待接收。

使用组态软件时,自动设置。

 

[01]:

子设备ID。

ModbusTCP忽略。

 

[01]:

ModbusTCP功能码01

 

[01]:

返回字节数,1个字节的8个bit对应8路输出,接通/低电平时,对应的

 

bit置1,否则置0。

8路输出设备返回01,16路输入设备返回02,以此类推。

 

[D5]:

开关量输入状态字节,bit0对应Output1,接通/低电平为1,否则为0。

此处为11010101,说明Output1、Output3、Output5、Output7、Output8为接通或低电平状态。

其他为断开或高电平状态。

 

输出状态为设备保存的值,如果硬件损坏,这个值将无法反映输出的实际情况。

 

七、组态软件设置,以组态王为例

 

1.设备定义

 

使用京金华、莫迪康或其他厂家的通用型ModbusTCP驱动即可。

 

2.开关量输入

 

数据类型:

bit

 

第一路输入寄存器为061

 

第二路输入寄存器为062

 

以此类推

 

3.开关量输出

 

数据类型:

bit

 

使用单独读取一路开关量输入报文。

 

第一路输输出寄存器为031

 

第二路输入寄存器为032

 

以此类推

 

4.定义温湿度变量

 

s

 

数据类型:

float

 

使用Modbus标准格式寄存器,

 

读第一路温度值寄存器为90043

 

读第一路湿度值寄存器为90044

 

读第一路露点值寄存器为90045

 

5.定义模拟量变量

 

定义第一路模拟量输入,寄存器为:

90081

 

定义第二路模拟量输入,寄存器为:

90082

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1