当前位置:
工控论坛
> >
产品
>
工业互联
>
现场总线
>
Modbus
我要发帖
请问,modbus协议发送控制字的数据排列格式?
点击:
5542
| 回复:
8
箫海岳
关注
私信
精华:0帖
求助:0帖
帖子:36帖 | 181回
年度积分:0
历史总积分:516
注册:2006年7月03日
发表于:2007-03-14 11:57:00
楼主
请问,modbus协议发送控制字的数据排列格式?
分享到:
收藏
邀请回答
回复楼主
举报
朱勇军
关注
私信
精华:0帖
求助:0帖
帖子:28帖 | 1921回
年度积分:0
历史总积分:2210
注册:2004年4月06日
发表于:2007-03-14 12:23:00
1楼
命令不一样还不太一样。但有如下:地址,命令,数据,校验。
Modbus协议
Modbus协议最初由Modicon公司开发出来,在1979年末该公司成为施耐德自动化(Schneider Automation)部门的一部分,现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
当在网络上通信时,Modbus协议决定了每个控制器须要知道它们的设备地址,识别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成应答并使用Modbus协议发送给询问方。
Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的方式,数据通讯采用Maser/Slave方式,Master端发出数据请求消息,Slave端接收到正确消息后就可以发送数据到Master端以响应请求;Master端也可以直接发消息修改Slave端的数据,实现双向读写。
Modbus协议需要对数据进行校验,串行协议中除有奇偶校验外,ASCII模式采用LRC校验,RTU模式采用16位CRC校验,但TCP模式没有额外规定校验,因为TCP协议是一个面向连接的可靠协议。另外,Modbus采用主从方式定时收发数据,在实际使用中如果某Slave站点断开后(如故障或关机),Master端可以诊断出来,而当故障修复后,网络又可自动接通。因此,Modbus协议的可靠性较好。
下面我来简单的给大家介绍一下,对于Modbus的ASCII、RTU和TCP协议来说,其中TCP和RTU协议非常类似,我们只要把RTU协议的两个字节的校验码去掉,然后在RTU协议的开始加上5个0和一个6并通过TCP/IP网络协议发送出去即可。所以在这里我仅介绍一下Modbus的ASCII和RTU协议。
我的网站:plc.123ye.com
回复
引用
举报
朱勇军
关注
私信
精华:0帖
求助:0帖
帖子:28帖 | 1921回
年度积分:0
历史总积分:2210
注册:2004年4月06日
发表于:2007-03-14 12:25:00
2楼
Modbus协议介绍
Modbus可编程控制器之间可相互通讯,也可与不同网络上的其他设备进行通讯,支撑网络有Modicon的Modbus和Modbus+工业网络。网络信息存取可由控制器内置的端口,网络适配器以及Modicon提供的模块选件和网关等设备实现,对OEM(机械设备制造商)来说,Modicon可为合作伙伴提供现有的程序,可使Modbus+网络紧密地集成到他们的产品设计中去。
Modicon的各种控制器使用的公共语言被称为 Modbus协议,该协议定义了控制器能识别和使用的信息结构。当在Modbus网络上进行通讯时,协议能使每一台控制器知道它本身的设备地址,并识别对它寻址的数据,决定应起作用的类型,取出包含在信息中的数据和资料等,控制器也可组织回答信息,并使用Modbus协议将此信息传送出去。
在其他网络上使用时,数据包和数据帧中也包含着Modbus协议。如,Modbus+或MAP网络控制器中有相应的应用程序库和驱动程序,实现嵌入式Modbus协议信息与此网络中用子节点设备间通讯的特殊信息帧的数据转换。
该转换也可扩展,处理节点地址,路由,和每一个特殊网络的错误检查方法。如包含在Modbus协议中的设备地址,在信息发送前就转换成节点地址,错误检查区也用于数据包,与每个网络的协议一致,最后一点是需用Modbus协议,写入嵌入的信息,定义应处理的动作。
需要的话:email: zhuyongjun021@126.com
回复
引用
举报
箫海岳
关注
私信
精华:0帖
求助:0帖
帖子:36帖 | 181回
年度积分:0
历史总积分:516
注册:2006年7月03日
发表于:2007-03-19 10:44:00
3楼
谢谢楼上的指点,
我想问,如果用MODBUS写一个控制字,其中有站号地址,寄存器地址,另有要写入的数据,它的数据应该是怎么排列的?
回复
引用
举报
接线的
关注
私信
精华:1帖
求助:0帖
帖子:18帖 | 199回
年度积分:0
历史总积分:270
注册:2006年3月02日
发表于:2007-05-07 08:47:00
4楼
楼主的意思是不是这样的:
假如我要往5号站的40003写一个常数10,按照格式该是:
地址码 功能码 寄存器地址 设定值 校验码
H05 H06 H00 H02 H00 H0A H* H*
又假设控制字的起始地址为D100,那么应该往D100,D101,D102,D103,D104里面分别写入什么?
是D100=H0605还是H0506?
D101=H0200还是H0002?
回复
引用
举报
恨水
关注
私信
精华:0帖
求助:0帖
帖子:6帖 | 43回
年度积分:0
历史总积分:50
注册:2007年2月07日
发表于:2007-05-19 21:41:00
5楼
http://www.kitsnet.cn/blog/post/155.html
这个软件对你有帮助了
看看这个软件,Modbus调试精灵 V1.023
非常的好用
回复
引用
举报
箫海岳
关注
私信
精华:0帖
求助:0帖
帖子:36帖 | 181回
年度积分:0
历史总积分:516
注册:2006年7月03日
发表于:2007-06-01 21:29:00
6楼
谢谢楼上各位,我已经弄清楚了
回复
引用
举报
咬紧牙关
关注
私信
精华:0帖
求助:0帖
帖子:0帖 | 1回
年度积分:0
历史总积分:1
注册:2007年11月20日
发表于:2007-11-20 14:28:00
7楼
我正在找这个资料.楼主能发给我吗?
ivwplaps@126.com
回复
引用
举报
tomyi
关注
私信
精华:0帖
求助:1帖
帖子:21帖 | 233回
年度积分:0
历史总积分:598
注册:2002年10月30日
发表于:2007-11-20 21:26:00
8楼
到下帖下载软件测试一下即可知道.
[url=http://www.gongkong.com/tech/detail.asp?id=413634]Modbus 测试软件(支持OPC 2.0 Server)[/url]
回复
引用
举报
热门招聘
相关主题
通讯测试工具之二——Modbus测...
[11781]
DNP3.0 protocol
[2753]
发布一些通讯测试工具的使用...
[1931]
西门子用的是哪种实时数据库...
[1801]
Modbus主站C++类的实现
[1402]
智能化系统工程设计中的若干...
[1937]
请教6RA70直流调速通过profi...
[2995]
困扰多日的网络问题终于解决
[1431]
DP总线是什么呀,
[4666]
Profibus基础——令牌总线网
[5234]
官方公众号
智造工程师
客服
小程序
公众号