ModbusTCP通讯协议.docx

上传人:b****2 文档编号:3528761 上传时间:2023-05-06 格式:DOCX 页数:13 大小:168.15KB
下载 相关 举报
ModbusTCP通讯协议.docx_第1页
第1页 / 共13页
ModbusTCP通讯协议.docx_第2页
第2页 / 共13页
ModbusTCP通讯协议.docx_第3页
第3页 / 共13页
ModbusTCP通讯协议.docx_第4页
第4页 / 共13页
ModbusTCP通讯协议.docx_第5页
第5页 / 共13页
ModbusTCP通讯协议.docx_第6页
第6页 / 共13页
ModbusTCP通讯协议.docx_第7页
第7页 / 共13页
ModbusTCP通讯协议.docx_第8页
第8页 / 共13页
ModbusTCP通讯协议.docx_第9页
第9页 / 共13页
ModbusTCP通讯协议.docx_第10页
第10页 / 共13页
ModbusTCP通讯协议.docx_第11页
第11页 / 共13页
ModbusTCP通讯协议.docx_第12页
第12页 / 共13页
ModbusTCP通讯协议.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

ModbusTCP通讯协议.docx

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

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即可。

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

[06]:

剩余数据长度,说明还剩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即可.使用组态软件时,自动设置。

[04]:

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

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

[01]:

子设备ID。

ModbusTCP忽略。

[01]:

ModbusTCP功能码01

[01]:

返回字节数,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即可。

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

[06]:

剩余数据长度,说明整个报文还剩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即可。

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

[08]:

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

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

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

[01]:

子设备ID。

ModbusTCP忽略。

[03]:

ModbusTCP功能码03

[05]:

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

例如,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即可.使用组态软件时,自动设置。

[06]:

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

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

[01]:

子设备ID。

ModbusTCP忽略。

[05]:

ModbusTCP功能码05

[0025]:

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

第8路=1E+07=25

[FF00]:

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

0000为断开或高电平。

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

[0000000000][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即可。

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

[08]:

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

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

[01]:

子设备ID。

ModbusTCP忽略。

[0F]:

ModbusTCP功能码0F

[0064]:

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

[0008]:

同时设置8路输出状态。

[01]:

控制数据字节个数

[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即可。

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

[06]:

剩余数据长度,说明还剩6个字节等待接收.使用组态软件时,自动设置。

[01]:

子设备ID。

ModbusTCP忽略。

[01]:

ModbusTCP功能码01

[0064]:

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

[0000]:

为00

设备应答报文:

[000000000004010101D5]

[0000000000]:

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

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

[04]:

剩余数据长度,说明还剩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-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2