Modbus TCP

ModbusTCP数据帧

ModbusTCP的数据帧可分为两部分:MBAP+PDU。

报文头MBAP

MBAP为报文头,长度为7字节

事务处理标识 协议标识 长度 单元标识符
2字节 2字节 2字节 1字节
内容 解释
事务处理标识 可以理解为报文的序列号,一般每次通信之后就要加1以区别不同的通信数据报文。
协议标识符 00 00表示ModbusTCP协议。
长度 表示接下来的数据长度,单位为字节。
单元标识符 可以理解为设备地址。

帧结构PDU

PDU由功能码+数据组成。功能码为1字节,数据长度不定,由具体功能决定。

ModbusTCP 通信方式

Modbus设备可分为主站(poll)和从站(slave)。主站只有一个,从站有多个,主站向各从站发送请求帧,从站给予响应。在使用TCP通信时,主站为client端,主动建立连接;从站为server端,等待连接。

import socket

def mod_tx():
	host = '127.0.0.1'
	port = 502
	addr = (host,port)

	client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

	client.connect(addr)
	slave =1
	start = 0
	count = 2

	massage  =bytearray([0x00,0x01,0x00,0x00,0x00,0x06,slave,0x03,0x00,start,0x00,count])
	#massage = b'\x00\x01\x00\x00\x00\x06\x01\x03\x00\x00\x00\x02'
	client.send(massage)
	msg = client.recv(1024)
	
	return msg

if __name__ == '__main__':	
	mod_tx()
posted @   华小电  阅读(542)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
历史上的今天:
2020-01-15 test for OCr
点击右上角即可分享
微信分享提示