js实现modbus_Modbus通讯协议「建议收藏」

js实现modbus_Modbus通讯协议「建议收藏」Modbus通讯协议Modbus概述Modbus是由Modicon公司(现为施耐德电气的一个品牌)在1978年发明的,这是一个跨时代、里程碑式的网络协议,因为工业网络从此拉开了序幕。Modbus是全球第一个真正用于工业现场的总线协议,据不完全统计:截至到2004中,Modbus的节点安装数量已经超过了800万个,而且75%的产品为非施耐德产品,安装的地区遍及世界各地,可见其普及的程度,已经成为了事…

大家好,又见面了,我是你们的朋友全栈君。

Modbus通讯协议

Modbus概述

Modbus是由Modicon公司(现为施耐德电气的一个品牌)在1978年发明的,这是一个跨时代、里程碑式的网络协议,因为工业网络从此拉开了序幕。

Modbus是全球第一个真正用于工业现场的总线协议,据不完全统计:截至到2004中,Modbus的节点安装数量已经超过了800万个,而且75%的产品为非施耐德产品,安装的地区遍及世界各地,可见其普及的程度,已经成为了事实上的协议标准。虽然已经走过了27个年头,Modbus今天仍然活跃在工业、建筑、基础设施等领域中。

Modbus特点

1.标准、开放:用户可以免费、放心地使用Modbus协议,不用交纳许可证费,也不会侵犯知识产权。目前,支持Modbus的厂家超过400家,支持Modbus的产品超过600种,而且在国内也有很多的用户支持和使用Modbus的产品。

2.Modbus是面向消息的协议,可以支持多种电气接口,如:RS232、RS422、RS485等,还可以在多种介质上传送,如:双绞线、光缆、无线射频等。要说明的是:和很多的现场总线不同,它不用专用的芯片与硬件,完全采用市面上销售的标准部件! 这就保证了采用Modbus的产品造价最为低廉。

3.Modbus协议的帧格式是最简单、最紧凑的协议,可以说:简单高效,通俗易懂。所以用户使用容易,厂商开发简单。

Modbus应用协议

Modbus是一种简单的客户机/服务器应用协议,客户机能够向服务器发送请求。服务器分析请求,处理请求,向客户机发送应答

js实现modbus_Modbus通讯协议「建议收藏」

Modbus主站/从站协议原理

Modbus 串行链路协议是一个主-从协议。

在同一时刻,只有一个主节点连接于总线,一个或多个子节点(最大编号为  247)连接于同一个串行总线。Modbus 通信总是由主节点发起。子节点在没有收到来自主节点的请求时,从不会发送数据。

子节点之间从不会互相通信。

主节点在同一时刻只会发起一个 Modbus 事务处理。

Modbus通信模式

在单播模式,主节点以特定地址访问某个子节点,子节点接到并处理完请求后,子节点向主节点返回一个报文(一个’应答’)。在这种模式,一个Modbus事务处理包含2个报文:一个来自主节点的请求,一个来自子节点的应答。每个子节点必须有唯一的地址(1到247),这样才能区别于其它节点被独立的寻址。

在广播模式,主节点向所有的子节点发送请求。对于主节点广播的请求子节点没有应答返回。广播请求一般用于写命令。所有设备必须接受广播模式的写功能。地址0是专门用于表示广播数据的。

串行传输模式-RTU模式

在 RTU 模式,报文帧由时长至少为 3.5 个字符时间的空闲间隔区分

js实现modbus_Modbus通讯协议「建议收藏」

整个报文帧必须以连续的字符流发送。如果两个字符之间的空闲间隔大于1.5 个字符时间,则报文帧被认为不完整应该被接收节点丢弃

js实现modbus_Modbus通讯协议「建议收藏」

串行链路上的Modbus帧结构

js实现modbus_Modbus通讯协议「建议收藏」

地址域只含有子节点地址,该地址必须在Modbus串行总线上唯一,Modbus主节点没有地址。

功能码指明服务器要执行的动作,遵从Modbus协议规范。

错误检验域是对报文内容执行”冗余校验”的计算结果。

根据不同的传输模式(RTU or ASCII)使用两种不同的计算方法,CRC或者LRC

Modbus 常用功能码

js实现modbus_Modbus通讯协议「建议收藏」

读保持寄存器

发送命令:

[设备地址][命令号03][起始寄存器地址高8位][低8位][读取的寄存器数高8位][低8位][CRC校验的低8位][CRC校验的高8位]

例:[11][03][00][6B][00][03][CRC低][CRC高]

设备响应:

[设备地址][命令号03][返回的字节个数][数据1][数据2]…[数据n]

[CRC校验的低8位] [CRC校验的高8位]

例:[11][03][06][02][2B][00][00][00][64][CRC低][CRC高]

写单个寄存器

发送命令:

[设备地址][命令号06][需下置的寄存器地址高8位][低8位][下置的数据高8位][低8位][CRC校验的低8位][CRC校验的高8位]

例:[11][06][00][01][00][03][CRC低][CRC高]

设备响应:如果成功把计算机发送的命令原样返回,否则不响应。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/159143.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)
blank

相关推荐

  • 详细了解 clientWidth、clientHeight、clientLeft、clientTop 以及几个常用的场景

    详细了解 clientWidth、clientHeight、clientLeft、clientTop 以及几个常用的场景clientLeft、clientHeight、clientWidth、clientHeightclientWidth、clientHeight元素内部宽度和高度,clientLeft、clientTop获取元素内边距边框到边框的距离.大概如下图所示:clientWidth属性表示元素的内部宽度,以像素计。该属性包括内边距,但不包括垂直滚动条(如果有)、边框和外边距。如上图所示,计算方式为,分为如下两种:存在垂直滚动条 contentwidth+paddin…

  • Linux下安装tomcat8.5

    Linux下安装tomcat8.5一、在/usr/local路径下新建一个文件夹mkdirtomcat8.51二、下载tomcat8.5压缩包,上传到tomcat8.5目录中三、解压tar-zxvfapache-tomcat-8.5.24.tar.gz1四、Tomcat服务器启动1.启动Tomcat服务器…

  • Java课程设计_java课设「建议收藏」

    Java课程设计_java课设「建议收藏」1.代码截图:2.设计思路建立GUI界面,系统产生一个随机数(对用户不可见),然后用户输入猜测数,系统根据用户每次输入的数据给出评语(偏大,偏小,猜测成功)。当用户最终猜测成功后,就把当次的随机数和猜测次数放到文件夹内。3.遇到的问题:(1).Guess里面每次产生的随机数m和最终猜测次数n一直不知道怎么传到sava里并保存输出到文件。(2).怎么在生成的guessgame文件里追加内容,而不是每…

  • mysql fsync_深入理解Fsync「建议收藏」

    mysql fsync_深入理解Fsync「建议收藏」1介绍数据库系统从诞生那天开始,就面对一个很棘手的问题,fsync的性能问题。组提交(groupcommit)就是为了解决fsync的问题。最近,遇到一个业务反映MySQL创建分区表很慢,仔细分析了一下,发现InnoDB在创建表的时候有很多fsync——每个文件会有4个fsync的调用。当然,并不每个fsync的开销都很大。这里引出几个问题:(1)问题1:为什么fsync开销相对都比较大?它到…

  • redis面试必会6题经典_关于redis秒杀的面试题

    redis面试必会6题经典_关于redis秒杀的面试题Redis面试题1、什么是Redis?.2、Redis的数据类型?3、使用Redis有哪些好处?4、Redis相比Memcached有哪些优势?5、Memcache与Redis的区别都有哪些?6、Redis是单进程单线程的?7、一个字符串类型的值能存储最大容量是多少?8、Redis的持久化机制是什么?各自的优缺点?9、Redis常见性…

  • drop in session_drop constraint

    drop in session_drop constraint//aspx’>//aspx.csprotectedvoidPage_Load(objectsender,EventArgse){if(!IsPostBack){SqlConnectioncn=newSqlConnection(@”Server=.\SQLEXPress;uid=sa;pwd=password;Da

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号