加载中…
个人资料
草原飞鸿
草原飞鸿
  • 博客等级:
  • 博客积分:0
  • 博客访问:196
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

如何用PicoScope解码Modbus串行协议_一种低成本解码方案

(2018-08-06 09:18:00)
标签:

pico

示波器

modbus

ascii

解码器

分类: 硬件开发

介绍

Modbus是一种低速串行数据协议,通常用于工业应用,其中监控计算机(主)控制或监视多个远程设备(从设备)。该规范最初由Modicon(现为Schneider Electric)于1979年发布,用于其可编程逻辑控制器(PLC)。在标准的Modbus网络中,有一个主站,最多247个从站,每个从站具有1到247的唯一地址。

英国PicoScope软件支持Modbus RTU和Modbus ASCII的协议解析,可免费实时解码。

Modbus协议版本

已经开发了几种版本的Modbus以适应所使用的传输介质。最常见的是:

  • Modbus RTU(远程终端单元) - 通常用于RS-232单端或RS-485差分线路,使用二进制编码和CRC错误检查。
  • Modbus ASCII - 也适用于RS-232或RS-485线路,使用ASCII字符而不是二进制,使其更具可读性但效率更低,并且使用效率较低的LRC错误检查。ASCII模式使用ASCII字符开始和结束消息,而RTU使用3.5个字符时间的时间间隔进行成帧。Modbus ASCII消息需要两倍的字节来传输与Modbus RTU消息相同的内容。
  • Modbus TCP - 用于TCP / IP网络,通常是以太网(PicoScope目前不支持)。

Modbus框架结构

Modbus协议定义了协议数据单元(PDU),它独立于底层通信层。根据所使用的总线或网络的类型,可以在应用数据单元(ADU)中引入附加字段。

 

协议数据单元(PDU)包含:

  • 功能代码来执行,表示这样的动作。
  • 从主设备发送到从设备的帧数据字段,其中包含有关由功能代码定义的操作的附加信息。这可以包括离散和寄存器地址,要处理的项目数量以及字段中实际数据字节数等项目。在某些类型的请求中,数据字段可能不存在(长度为零)。

应用数据单元(ADU)包含:

  • 协议数据单元(PDU)
  • 从ID
  • 校验码

错误代码 - 当服务器响应客户端时,它使用功能代码字段来指示正常(无错误)响应或发生某种错误,称为异常响应。对于正常响应,服务器只是回显原始功能代码并返回所请求的数据。 

数据存储

数据存储在四个不同表中的从设备中。其中两个存储称为线圈和离散输入的开 - 关(1位)值,两个存储数值作为称为寄存器的16位字。每个都是只读或读/写。

每个表有9999个位置。

功能代码

Modbus功能代码分为三类:

  • 公共功能代码 - 从1到127,除了用户定义的代码,由Modbus.org社区验证,公开记录并保证唯一。
  • 用户定义的功能代码 - 分为65到72和100到110两个范围。
  • 保留功能代码 - 某些公司用于传统产品,不可供公众使用。

表中显示了常用功能代码的示例。

Modbus的完整规范可从www.modbus.org免费获得

用Picoscope解码Modbus

发生错误时,使用Modbus协议解码的PicoScope进行故障排除可以将解码的帧与示波器捕获的数据相关联。例如,这有助于识别由于噪声,干扰或不正确的电压电平而导致数据损坏的位置。

在PicoScope上获取Modbus数据

使用两个示波器通道,一个用于主传输线,另一个用于从传输线。如果Modbus通过RS-422或RS-485传输,请使用差分探测

存储器长度设置为足以获取所需数量的帧,并使用足够的采样分辨率来解析各个位。

或者,使用缓冲存储器索引捕获帧的短脉冲,同时忽略其间的任何死区时间。

使用水平缩放控件可以详细查看单个帧。

添加第二个范围视图以同时显示主数据帧和从属数据帧。

 

设置Modbus解码器

从“ 工具”菜单中选择“ 串行解码 ” 

单击“ 创建”,然后从Modbus RTU  或  Modbus ASCII中进行选择

在设置窗口中,大多数字段都会自动填充。用户只需定义哪个通道是主通道,哪个通道是从通道。

如果选中Graph,则颜色键控的迹线将出现在图形显示中,与采集的数据时间相关。

如果选中Table,则所有数据将以表格格式显示。该表有几个有用的功能:

  • 双击图形格式的框架,相应的框架将在表格中突出显示。
  • 选择“ 导出”以CSV格式保存表格数据。
  • 设置链接文件,以便表中的数据可以显示为有意义的文本。
  • 在表上过滤以在任何字段中搜索特定值 - 例如,无效的CRC。

 

总结

Modbus RTU和Modbus ASCII解码器是PicoScope软件版本6.13.5及更高版本的标准功能,可与所有实时PicoScope型号配合使用。

--------------------------------------------------------------------------------------------------------------------

        13683350095,hui.yang@ht-era.com
------------------------------------------------------------------------------------------------------------------


 
本文刷新了你的认知?最多可选1项
发起时间:2018-08-09 14:00    截止时间:2020-12-31 23:00    投票人数:0人
  • 0(0%)
  • 0(0%)
  • 0(0%)
投票已截止
最后投票

    0

    阅读 收藏 喜欢 打印举报/Report
      

    新浪BLOG意见反馈留言板 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

    新浪公司 版权所有