请问 斑竹 modbus里读取线圈状态指的是啥呀?啥线圈呀?

[复制链接]
14221|16
 楼主| rockingliu 发表于 2007-8-22 21:01 | 显示全部楼层 |阅读模式
01  读取线圈状态  取得一组逻辑线圈的当前状态(ON/OFF) 
chunyang 发表于 2007-8-23 14:47 | 显示全部楼层

楼主的理解还没有到位,大致谈一下协议的层次

&nbsp;&nbsp;&nbsp;&nbsp;通讯协议从层次上讲可分为3层,最低的物理层协议和最高的应用层协议,中间的则是传输层协议,层次越高越严格。就拿上网举个例子。<br />&nbsp;&nbsp;&nbsp;&nbsp;Modem的信号传输本身是有协议的,不同Modem的协议是不同的,ADSL、Cable&nbsp;Modem、电话线Modem等都不同,即使同类Modem也有不同版本号,具体内容也不同,所以,很大程度上这个层次的协议是不兼容的,这就是物理层协议的特点,这一层次的协议首先要基于传输手段和载体,不兼容是物理需要的结果。<br />&nbsp;&nbsp;&nbsp;&nbsp;再上一层的是TCP/IP,到这个层次就已经可能是统一的了,这是传输层协议的特点,至少在某一类应用上传输层协议可能是兼容的,比如Internet这个应用,但不同的应用如局域网的TCP/IP就可能有不同了,早期的局域网就是如此。<br />&nbsp;&nbsp;&nbsp;&nbsp;到了应用层,只要应用相同就必须兼容,如不同操作系统下的各种浏览器、电子邮件等等,这一层次的协议如果涉及到完全不同的平台也要求严格兼容。当然,能否做到兼容就是另一回事了,至少兼容是目标。<br />&nbsp;&nbsp;&nbsp;&nbsp;在应用上,高层次的协议往往依附在低层次的协议上,层与层之间则是“透明”的。从复杂性上讲,层次越高的协议会越复杂。<br />&nbsp;&nbsp;&nbsp;&nbsp;Modbus论层次仅仅属于传输层协议,而USB则是物理层协议、传输层协议和应用层协议的整合,所以你会看到Modbus在不同应用中有截然不同的结构,但USB只要它叫USB并且版本相同,不论在什么设备上都是兼容并可互连的,层次在这是决定因素。
chunyang 发表于 2007-8-23 00:29 | 显示全部楼层

这是因为在国内Modbus主要用于电力行业

电力输配电设备里的接触器线圈。不过Modbus本身并非为电力行业设计,而是通用的。
 楼主| rockingliu 发表于 2007-8-23 09:00 | 显示全部楼层

2th

oh,那定义自己的应用时,对应的命令代号&nbsp;比如这个&nbsp;01(他是读线圈)&nbsp;,可不可以自己定应成别的应用含义?&nbsp;&nbsp;这样算不算不符合&nbsp;modbus规范??<br /><br />TKS&nbsp;斑竹<br /><br />
chunyang 发表于 2007-8-23 13:00 | 显示全部楼层

如果不需要与别人的产品在通讯上互连,自己可以随便定义

&nbsp;&nbsp;&nbsp;&nbsp;可以说,10余年来,我一直在宣扬Modbus的理念,在21IC也这么做了数年,我设计的有线/无线网络方面的应用,很多就是采用了Modbus的协议结构,但均为Modbus的变形,而且随需求的不同而各有不同。<br />&nbsp;&nbsp;&nbsp;&nbsp;思想是根本,形式则要适应应用,电力行业已有其标准,那就得遵守,毕竟那是有“讲究”的,也是经过大量实践验证、修正后的结果,但非电力行业或自成体系的应用自然就不必拘泥于形式了,可靠性和效率应当兼顾。搞技术,标准一定要遵守,但教条主义则要坚决反对。
 楼主| rockingliu 发表于 2007-8-23 13:49 | 显示全部楼层

呵呵

多谢春帮主的留言。<br /><br />个人感觉,modbus协议还不是一个很严格的协议,至少不像Usb协议那样细致严格.他还算不上一种通用标准。because他的回旋余地还很大。<br />看到很多资料上都提到&quot;它已经成为一通用工业标准。有了它,不同厂商生产的控制设备可以连成工业网络&quot;之类的话。感觉也是在夸大。<br /><br />1.比如说对于&nbsp;function&nbsp;code的定义,即便是在的电力行业,除了1-21是公共标准,其余的包括异常应答code,都是没有一个统一的标准的,这给不同的使用者以很大的发挥空间,这显然就造成了&nbsp;modbus的不标准。还有比如像那个crc校验,虽然modbus有规定使用16bit&nbsp;crc,&nbsp;但16bit_crc,本身就有&nbsp;crc16和crc&nbsp;CCITT&nbsp;两种生成多项式之分。对于这些不确定性,不同宣称使用modbus的厂家的东西如何互联呢??除非这几个厂家事先约定好。不然&nbsp;我看只有本厂家和本厂家的产品可以互联。<br /><br />so,modbus&nbsp;终究不是&nbsp;Usb,Usb也不是&nbsp;Modbus!<br /><br />hehe.<br />个人的一些看法。<br /><br />
 楼主| rockingliu 发表于 2007-8-23 17:17 | 显示全部楼层

3th

物理层当然可以不统一,但在往上的每层起码应该是双方可见的吧?(对等层通信双方规约统一),否则根本通信不上呀。<br />就算modbus&nbsp;属于传输层,那我想问帮主,&nbsp;假定有个厂家甲的modbus产品A,和一个厂家乙的modbus的产品B。&nbsp;A&nbsp;产品的校验用的是CRC-16,B产品的校验用的是CRC-CCITT。A&nbsp;和B&nbsp;如何进行通信互联?<br />
chunyang 发表于 2007-8-23 19:40 | 显示全部楼层

这里的CRC已属于具体应用的范畴了

&nbsp;&nbsp;&nbsp;&nbsp;Modbus规范的仅仅是格式,这是传输层协议的特点。传输层协议没有应用层协议严格,这是正常的,就像两个人讨论一件事,首先得发出音频(物理层),然后是语言(传输层),最后是事情本身(应用层)。声波远不仅仅是人类可听的频谱,语言也多种多样,但要实现交流,3个层次都必须兼容,设备的互连也同样。在这个例子中,如果没有特定的话题(相当于具体的应用),即使交流的双方都是人,都说的是很标准的国语,试问这两个人一定能互相交流吗?
dafei 发表于 2007-8-31 11:53 | 显示全部楼层

线圈状态实际上就是开关量

  
aixiaofan1314 发表于 2010-5-5 13:00 | 显示全部楼层
受教~~~~~~~~~~~~~~~~~
haolaishi 发表于 2011-9-22 10:59 | 显示全部楼层
xiongb89127 发表于 2011-10-3 20:03 | 显示全部楼层
受教受教.....
yoghen 发表于 2012-11-27 15:50 | 显示全部楼层
我就是看了这帖子,自己制定了一个不兼容的modbus协议,罪过罪过:lol
flylokj 发表于 2014-2-20 12:20 | 显示全部楼层
很好,学到东西了
xue379013210 发表于 2014-7-22 16:52 | 显示全部楼层
受教了
houlei1022 发表于 2015-10-16 13:48 | 显示全部楼层
学习了
行的云 发表于 2017-7-22 10:37 | 显示全部楼层
继续分析深入
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

101

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部