收藏 分销(赏)

ModbusTCP通讯协议.doc

上传人:丰**** 文档编号:10710001 上传时间:2025-06-11 格式:DOC 页数:14 大小:242.52KB 下载积分:8 金币
下载 相关 举报
ModbusTCP通讯协议.doc_第1页
第1页 / 共14页
ModbusTCP通讯协议.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
Modbus TCP通讯协议 一、 适用范围及默认规范 此Modbus TCP协议适用于EIO、ADC系列产品。协议中所有数值如无特殊说明,均为16进制。Modbus浮点数为标准的IEEE格式, Modbus 32位长整数据为4字节无符号整数(unisigned long)组态软件支持此Modbus TCP协议,可以直接使用。 二、 读开关量输入 1. 功能码、寄存器地址、偏移 功能码:01 地址:两个地址,分别用于读入全部开关量状态或单独读一路开关量输入状态。描述如下。 [0A]--读全部开关量输入状态。 [3C]--读第1路开关量输入状态,递增1为下一路,如3D为第二路。以此类推。 地址偏移:可为任意值,建议为0000。 在使用组态软件时,正确填写地址,地址偏移填写任意值即可。 2. Modbus TCP格式(网口) 读全部开关量输入状态发送报文:[0000000000] [06] [01] [01] [000A] [0001] 读第1路开关量输入状态发送报文:[0000000000] [06] [01] [01] [003C] [0000] [00 00 00 00 00]:Modbus TCP报文头,简化为全0即可。使用组态软件时,自动设置。 [06]:剩余数据长度,说明还剩6个字节等待接收。使用组态软件时,自动设置。 [01]:子设备ID。Modbus TCP忽略。 [01]:Modbus TCP 功能码01 [00 0A]或[00 3C]:寄存器地址,高位字节在前,低位字节在后。 [00 00]:寄存器地址偏移,设备忽略此数据,只设置寄存器地址即可工作,设置成0000即可。 读全部开关量输入状态应答报文:[00 00 00 00 00] [04] [01] [01] [01] [42] 读一路开关量输入状态应答报文:[00 00 00 00 00] [04] [01] [01] [01] [01] [00 00 00 00 00]:Modbus TCP报文头,简化为全0即可。使用组态软件时,自动设置。 [04]:剩余数据长度,说明还剩4个字节等待接收。使用组态软件时,自动设置。 [01]:子设备ID。Modbus TCP忽略。 [01]:Modbus TCP 功能码01 [01]:返回字节数,1个字节的8个bit对应8路输入,接通/低电平时,对应的bit置1,否则置0。8路输入设备返回01,16路输入设备返回02,以此类推。 [42]或[01]:对于读全部开关量输入状态报文,此处为开关量输入状态字节,bit0对应input1,接通/低电平为1,否则为0。此处为0100 0010,说明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. Modbus TCP格式(网口) 读专用格式温湿度输入发送报文:[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] [00 00 00 00 00]:Modbus TCP报文头,简化为全0即可。使用组态软件时,自动设置。 [06]:剩余数据长度,说明整个报文还剩6个字节。使用组态软件时,自动设置。 [01]:子设备ID。Modbus TCP忽略。 [03]:Modbus TCP 功能码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] [00 00 00 00 00]:Modbus TCP报文头,简化为全0即可。使用组态软件时,自动设置。 [08]:剩余数据长度,此处说明还剩8个字节等待接收。使用组态软件时,自动设置。0B还剩11个字节,0F还剩15个字节。 [01]:子设备ID。Modbus TCP忽略。 [03]:Modbus TCP 功能码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]:模数采样结果值,Modbus 32位长整数据。 四、 单独设置一个开关量/TTL输出状态 1. 功能码、寄存器地址、偏移 功能码:05 地址:1E至1E加设备最大输出路数(0起),例如第1路为1E,第8路为25。 地址偏移:此功能码不需要地址偏移。 控制数据:FF00-接通或为低电平,0000-断开或高电平 2. Modbus TCP格式(网口) 设置第8路输出为接通或TTL为低电平报文: [00 00 00 00 00][06][01][05][0025][FF00] [00 00 00 00 00]:Modbus TCP报文头,简化为全0即可。使用组态软件时,自动设置。 [06]:剩余数据长度,说明整个报文还剩6个字节。使用组态软件时,自动设置。 [01]:子设备ID。Modbus TCP忽略。 [05]:Modbus TCP 功能码05 [0025]:寄存器地址,高位字节在前,低位字节在后。第8路=1E+07=25 [FF00]:将第8路输出设置为接通或低电平。0000为断开或高电平。 如果设备正确执行了指令,将原样返回接收到的报文,应答报文:[00 00 00 00 00][06][01][05][0025][FF00] 五、 设置多个开关量/TTL输出状态 1. 功能码、寄存器地址、地址偏移 功能码:0F 地址:64 控制路数(地址偏移):1至最大路数的输出 2. Modbus TCP格式(网口) 设置全部8路输出为接通/设置TTL为低电平报文: [0000000000][08][01][0F][0064][0008][01][FF] [00 00 00 00 00]:Modbus TCP报文头,简化为全0即可。使用组态软件时,自动设置。 [08]:剩余数据长度,说明整个报文还剩8个字节。使用组态软件时,自动设置。 [01]:子设备ID。Modbus TCP忽略。 [0F]:Modbus TCP 功能码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. Modbus TCP格式(网口) 读开关量输入发送报文:[0000000000][06][01][01][0064][0000] [00 00 00 00 00]:Modbus TCP报文头,简化为全0即可。使用组态软件时,自动设置。 [06]:剩余数据长度,说明还剩6个字节等待接收。使用组态软件时,自动设置。 [01]:子设备ID。Modbus TCP忽略。 [01]:Modbus TCP 功能码01 [00 64]:寄存器地址,高位字节在前,低位字节在后。 [00 00]:为00 设备应答报文:[00 00 00 00 00 04 01 01 01 D5] [00 00 00 00 00]:Modbus TCP报文头,简化为全0即可。使用组态软件时,自动设置。 [04]:剩余数据长度,说明还剩4个字节等待接收。使用组态软件时,自动设置。 [01]:子设备ID。Modbus TCP忽略。 [01]:Modbus TCP 功能码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
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 网络/通信

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服