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高]

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Academic social networks: Modeling, analysis, mining and applications 2019翻译

    Academic social networks: Modeling, analysis, mining and applications 2019翻译Academicsocialnetworks:Modeling,analysis,miningandapplications摘要:在快速增长的学术大数据背景下,社交网络技术最近引起了学术界和工业界的广泛关注。学术社会网络的概念正是在学术大数据的背景下产生的,指的是由学术实体及其关系形成的复杂的学术网络。有大量的学术大数据处理方法来分析学术社交网络丰富的结构类型和相关信息。现在各种学术数据都很容易获取,这让我们更容易分析和研究学术社交网络。本研究调查了学术社交网络的背景、现状和趋势。我们首先

    2022年6月1日
    32
  • plsql developer怎么使用 plsql developer使用教程[通俗易懂]

    plsql developer怎么使用 plsql developer使用教程[通俗易懂]plsqldeveloper相信是编程朋友经常接触的一款Oracle数据开发工具。plsqldeveloper的功能也是相当强大的,下面小编就为大家简单介绍一下plsqldeveloper怎么使用。1、登陆成功后即可进入对象浏览器窗口界面2、在对象浏览器选择“myobject”,这里边就是SCOTT(当前登陆的用户的所有object)3、找到ta

    2022年6月3日
    94
  • 鱼刺 winhttp

    鱼刺 winhttpwinhttpcom对象网页_访问_对象apiwininet网页访问下划线命名法驼峰命名法小驼峰JS内置的一些      大驼峰api多线程用coinitialize(0)’com对象如果在多线程中使用,必须初始化com库和取消com库鱼刺winhttpRcom对象win…

    2022年7月27日
    13
  • java基础—java的Io操作学习(3)

    学习Io操作(3),javaIo文件的复制!

    2022年2月24日
    48
  • 580解锁bl工具_小米解锁卡刷教程

    580解锁bl工具_小米解锁卡刷教程本期教程教你如何给小米手机解锁卡刷在浏览器输入小米社区官网:xiaomi.cn,点击手机解锁点击立即解锁点击解锁工具下载,下载完成后解压在手机上打开设置-我的设备-全部参数,连续点击MIUI版本7次即可开启开发者模式返回到设置主界面,点击更多设置-开发者选项-设备解锁状态,并关闭WiFi网络,开启数据网络进行绑定解bl会清除所有数据,请自行备份数据备份完数据后,手机关机。按电源键+音量键…

    2022年6月11日
    93
  • python猪脸识别_京东JDD猪脸识别比赛「建议收藏」

    python猪脸识别_京东JDD猪脸识别比赛「建议收藏」pig_face_recognition京东JDD猪脸识别比赛pytorch-baseline1.运行环境TeslaK20c集群单节点双卡RedHat4.4.7-3Python2.7.13cuda8.0cudnn5.0pytorch0.3.02.从视频中截取出猪用yolo-9000算法,人工打label后,对ffmpeg提取出的视频帧进行猪的目标检测,框出猪的主体部分,为后续…

    2022年6月21日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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