Modbus
Modbus
公 开发表 并且无版权要求 易 于部署 和 维护- 对供应商
来 说,修 改 移 动原生 的 位 元 或 字 节没有 很多限 制
Modbus
协议版本
[编辑]Modbus协议
对于
对于
对于
Modbus
通信 和 设备
[编辑]Modbus协议
实现
[编辑]几乎
数 据 类型- IEEE标准
的 浮点数 - 32
位 整 型 数 - 8
位 数 据 混合 数 据 类型整数 中 的 位 域 - multipliers to change data to/from integer. 10, 100, 1000, 256 ...
- IEEE标准
- 协议扩展
- 16
位 元 的 從 站地址 - 32
位 的 数 据 大小 (1个地址 =返 回 32位 数 据 ) 字 交换数 据
- 16
限 制
[编辑]- Modbus
是 在 1970年 末 为可 编程逻辑控 制 器 通信 开发的 ,这些有限 的 数 据 类型在 那 个时代 是 可 以被PLC理解 的 ,大型 二进制对象数据是不支持的。
- 对节
点 而言,没 有 一个标准的方法找到数据对象的描述信息,举个例 子 ,确定一个寄存器数据是否表示一个介于30-175度 之 间的温度 。
由 于Modbus是 一 个主/从协议,没 有 办法要求 设备“报告异常”(构建在 以太网的TCP/IP协议之 上 ,被 称 为open-mbus除外 )-主 节点必须循环的 询问每 个节点 设备,并查找数据 中 的 变化。在 带宽可能 比 较宝贵的应用中 ,这种方式 在 应用中 消耗 带宽和 网络时间,例 如在低速 率 的 无线链路上 。
- Modbus
在 一个数据链路上只能处理247个地址 ,这种情 况限制 了 可 以连接 到 主 控 站点的 设备数量 (再 一次指出以太网TCP/IP除外 )
- Modbus传输
在 远端通 讯设备之间缓冲数据 的 方式 进行,有 对通訊一定是连续的限制,避免了 传输中 的 缓冲区 漏 洞 的 问题
- Modbus
協議 針 對 未 經 授權的 命令 或 截取數 據 沒 有 安全 性 。[3]
Modbus 通 訊協定 學理 上 的 弱點 分析
[编辑]Modbus
沒 有 保護 機 制 -指令 明 碼傳輸(透過 第 三方封包側錄軟體就可以擷取封包內容,無 須解密 )。沒 有 認證 機 制 -符合 規範 就執行 (只 要 符合 Modbus規範 之 封 包 傳 輸便可 透過 第 三方控制軟體監控接受端設備)有 可能 有 實現 上 的 問題 (針 對 未定義 參考 位置 輸入 指令 值,可能 造成 接收 端 傳 輸異常 進 而癱瘓接收 端 設備 )。
參考 文獻
[编辑]- ^ Drury, Bill. Control Techniques Drives and Controls Handbook (PDF) 2nd. Institution of Engineering and Technology. 2009: 508– [2014-12-17]. (
原始 内容 存 档于2013-11-02). - ^
存 档副本 . [2008-12-23]. (原始 内容 存 档于2009-02-09). - ^ Palmer; Shenoi, Sujeet (编). Critical Infrastructure Protection III. Third IFIP WG 11. 10 International Conference. Hanover, New Hampshire: Springer: 87. 23–25 March 2009. ISBN 3-642-04797-1.
外部 链接
[编辑]- 开源软件
一 个基于GNU/Linux C开发的 开源Modbus库(页面存 档备份,存 于互联网档案 馆)- 为微
控 制 器 开发的 免 费的Modbus ASCII/RTU和 TCP软件(页面存 档备份,存 于互联网档案 馆)。 - C开发。
新 站点位置 http://www.freemodbus.org(页面存 档备份,存 于互联网档案 馆)。商 业支持 版本 在 http://www.embedded-solutions.at(页面存 档备份,存 于互联网档案 馆)。 - NModbus(页面
存 档备份,存 于互联网档案 馆)是 一 个有例 子 的 C#实现版本 - Perl语言开发
的 Protocol::Modbus - Perl语言开发
的 Modbus::Client(页面存 档备份,存 于互联网档案 馆) - Ruby开发
的 Modbus master(页面存 档备份,存 于互联网档案 馆)。公共 领域的 示 例 代 码,可 以很容易 的 用 其他脚本 语言重 新 开发。