专利名称:Modbus网络模拟量采集与显示的实验系统及方法
技术领域:
本发明涉及一种实验系统及方法,尤其涉及一种Modbus网络模拟量采集与显示 的实验系统及方法。
背景技术:
随着现场总线技术的发展,以Modbus总线为代表的各种现场总线越来越多地应 用于工业现场。Modbus总线具有协议简单、实施容易、性价比高、可靠性高等优点,因而得到 了广泛应用。0-5V DC电压信号是工业现场中经常使用的模拟信号。模拟量输入信号对应 于Modbus协议中的输入寄存器数据,模拟量信号的通信是Modbus协议中的重要部分。对 Modbus网络中的模拟量输入信号进行采集、通信与显示,对于理解Modbus关键技术、设计 Modbus相关产品是很有意义的。但是国内外关于如何通过实验手段展示Modbus网络中模 拟量数据的采集和通信过程,并加以直观显示,目前尚无文献介绍,这在很大程度上阻碍了 Modbus总线技术的教学实验与实际应用工作的展开。发明内容
本发明的主要目的在于提供一种Modbus网络模拟量采集与显示的实验系统,能 演示工业现场中常见的Modbus网络中模拟量输入采集及通信的功能,并能对采集数据和 通信报文进行显示,得出的结果直观。
本发明提供了一种Modbus网络模拟量采集与显示的实验系统,包括主节点和从 节点,其中,
所述主节点包括第一键盘单元、第一微处理器、第一显示单元和第一通信单元;
所述第一键盘单元的控制数据输出总线端连接所述第一微处理器的控制数据输 入总线端;
所述第一微处理器的显示数据输出总线端连接所述第一显示单元的数据输入总 线端;
所述第一通信单元的通信数据输入输出总线端连接所述第一微处理器的通信数 据输入输出总线端。
所述从节点包括第二键盘单元、第二微处理器、第二显示单元、第二通信单元和模 拟量输入单元;
所述第二键盘单元的控制数据输出总线端连接所述第二微处理器的控制数据输 入总线端;
所述第二微处理器的显示数据输出总线端连接所述第二显示单元的数据输入总 线端;
所述第二通信单元的通信数据输出输入总线端连接所述第二微处理器的通信数 据输出输入总线端;
所述模拟量输入单元的模拟量数据输出总线端连接所述第二微处理器的A/D数据输入总线端;
所述从节点的模拟量输入单元有8个通道,每个通道均包括+5V电源、电位器和分 压电阻,通过调整所述电位器以得到8路0-5V范围内的DC电压输入;
所述主节点的第一通信单元和所述从节点的第一通信单元均连接在Modbus总线 上。
本发明还提供了一种基于上述的实验系统的Modbus网络模拟量采集与显示的实 验方法,包括以下步骤
步骤一启动系统,初始化主节点和从节点;
步骤二 设置所述主节点和所述从节点的通信参数,该通信参数包括Modbus报文 帧模式和波特率参数,所述从节点还需设置从节点地址;
步骤三所述从节点在主程序中循环读取8路模拟量输入信号的A/D值,该8路模 拟量输入信号的A/D值对应于Modbus协议中地址为0-7的输入寄存器数据,并将读取到的 该8路模拟量输入信号的A/D值转换为实际的电压值,将该电压值显示在该从节点的第二 显示单元上;
步骤四通过所述主节点的第一键盘单元输入一帧正确的请求报文,该请求报文 符合Modbus协议中的读取输入寄存器命令;所述主节点在该请求报文后添加按Modbus协 议计算出的2个字节的CRC值,并将请求报文帧发送到Modbus总线上;
步骤五所述从节点接收到正确请求报文,将输入寄存器数据封装到一帧正常响 应报文中发送到Modbus总线上;
步骤六所述主节点接收到正常响应报文后,将读取到的输入寄存器数据转换为 实际电压值,并将响应报文和模拟量输入电压值依次显示在该主节点的第一显示单元上, 用户可比较主节点显示单元和从节点显示单元上的模拟量输入电压值;
步骤七通过所述主节点的第一键盘单元输入一帧错误的请求报文,该报文不符 合Modbus协议中的读取输入寄存器命令;所述主节点在该请求报文后添加按Modbus协议 计算出的2个字节的CRC值,并将该请求报文帧发送到Modbus总线上;
步骤八所述从节点接收到错误请求报文,回复一帧异常响应报文;
步骤九所述主节点接收到该异常响应报文后,将该异常响应报文内容和异常提 示字符串依次显示在该主节点的第一显示单元上。
较佳地,所述步骤四中通过所述主节点的第一键盘单元输入的正确请求报文内容 的十六进制数依次为01h、04h、00h、00h、00h、08h。
较佳地,所述步骤七中通过所述主节点的第一键盘单元输入的错误请求报文内容 的十六进制数依次为01h、04h、00h、08h、00h、08h。
本发明能演示工业现场中常见的Modbus网络中模拟量输入采集及通信的功能, 并能对采集数据和通信报文进行显示,得出的结果直观。本发明的报文内容能够体现出正 确和错误的情况,有助于掌握Modbus协议中读取输入寄存器的命令,有助于Modbus总线教 学实验和培训的开展。它还具有结构简单的优点。
图1是本发明的电路结构示意图。
具体实施例方式
具体实施方式
一结合图1说明本实施方式,本实施方式的系统包括主节点1和从 节点2。
所述主节点1主要由第一键盘单元1-1、第一微处理器1-2、第一显示单元1-3、第 一通信单元1-4组成;第一键盘单元1-1的控制数据输出总线端连接第一微处理器1-2的 控制数据输入总线端;第一微处理器1-2的显示数据输出总线端连接第一显示单元1-3的 数据输入总线端;第一通信单元1-4的通信数据输入输出总线端连接第一微处理器1-2的 通信数据输入输出总线端。
从节点2主要由第二键盘单元2-1、第二微处理器2-2、第二显示单元2_3、第二通 信单元2-4、模拟量输入单元2-5组成;第二键盘单元2-1的控制数据输出总线端连接第二 微处理器2-2的控制数据输入总线端;第二微处理器2-2的显示数据输出总线端连接第二 显示单元2-3的数据输入总线端;第二通信单元2-4的通信数据输出输入总线端连接第二 微处理器2-2的通信数据输出输入总线端;模拟量输入单元2-5的模拟量数据输出总线端 连接第二微处理器2-2的A/D数据输入总线端。
从节点2的模拟量输入单元2-5有8个通道,每个通道均包括+5V电源、电位器和 分压电阻,调整电位器即可得到8路0-5V范围内的DC电压输入。
主节点1的第一通信单元1-4和从节点2的第一通信单元2-4均连接在Modbus 总线上。
本发明所述的Modbus网络模拟量采集与显示的方法步骤如下
步骤一、启动系统,初始化主节点1和从节点2 ;
步骤二、通过主节点1的第一键盘单元1-1对第一微处理器1-2的通信参数进行 设置,即设置Modbus报文帧模式和波特率参数;
步骤三、通过从节点2的第二键盘单元2-1对第二微处理器2-2的通信参数进行 设置,即设置Modbus报文帧模式、波特率参数和从节点2的地址(范围为1447,这里设置 为1),其中从节点2所设置的Modbus报文帧模式、波特率参数与主节点完全一致;
步骤四、从节点2在主程序中循环读取模拟量输入信号的A/D值,并保存在一维数 组X中,该一维数组的数据类型为16位无符号整型,数组中有8个元素,该8个元素分别对 应于Modbus协议中地址为0-7的输入寄存器数据;
步骤五、从节点2将读取到的该模拟量输入信号的A/D值转换为实际的电压值,并 显示在第二显示单元2-3上;
步骤六、通过主节点1的第一键盘单元1-1输入6个字节的请求报文,该请求报文 的十六进制数依次为01h、04h、00h、00h、00h、08h ;该请求报文含义如下按Modbus协议,首 字节Olh (字节1)为地址域,即为从节点的节点地址;字节2为功能域,04h为读输入寄存器 功能代码;字节3-字节4为起始地址域,即所要读取的输入寄存器的起始地址;字节5-字 节6为寄存器数目域,即所要读取的输入寄存器的数目;另外,主节点1中请求报文的第6 字节后添加按Modbus协议计算出的2个字节的CRC值(CRCL、CRCH),即请求报文帧长度为 8字节;输入完毕后主节点1将请求报文帧发送到Modbus总线上;
步骤七、从节点接收到该请求报文,解析报文内容,符合Modbus协议中的读取输入寄存器命令,将地址为0-7的输入寄存器数据封装到一帧正常响应报文中发送到Modbus 总线上,正常响应报文长度为21字节,内容为01h、04h、10h、REG0_H、REG0_L、. . ·、REG7_H、 REG7_H、CRCL、CRCH,含义如下按Modbus协议,首字节Olh (字节1)为地址域,即从节点的 节点地址;字节2为功能域,04h为读输入寄存器功能代码;字节3为字节数目域,即输入寄 存器数据的字节数目,8个寄存器数据字节数目为IOh ;字节4-字节19分别为地址0-7的 寄存器数据;字节20-字节21为CRC校验值;
步骤八、主节点接收到正常响应报文后,将读取到的输入寄存器数据转换为实际 电压值,并将正常响应报文内容和模拟量输入电压值依次显示在显示单元上,用户可比较 主节点显示单元和从节点显示单元上的模拟量输入电压值是否一致;
步骤九、通过主节点,主节点1中输入6个字节的请求报文,该请求报文的十六进 制数依次为01h、04h、00h、08h、00h、08h,即读取地址为8_15的输入寄存器数据;主节点在 请求报文的第6字节后添加按CRC校验算法计算出的2个字节的CRC值(CRCL、CRCH),并 发送该报文;
步骤十、从节点2接收到该请求报文,解析报文内容,不符合Modbus协议中的读 取输入寄存器命令,回复4个字节的异常响应报文,该异常相应报文的十六进制数依次为 84h、02h、CRCL、CRCH,其含义如下按Modbus协议,首字节(84h)为错误码域,异常响应中 的功能码值比正常响应中的功能码值高十六进制80h;字节2(02h)为异常码域,表示数据 地址非法;字节3-字节4为CRC校验值;
步骤十一、主节点1接收到异常响应报文后,在第一显示单元1-3上显示异常响应 报文内容,并显示“数据地址非法,合法地址应为0-7 ! ”。
以上说明对本发明而言只是说明性的,而非限制性的,本领域普通技术人员理解, 在不脱离所附权利要求所限定的精神和范围的情况下,可做出许多修改、变化或等效,但都 将落入本发明的保护范围内。
权利要求
1.一种Modbus网络模拟量采集与显示的实验系统,其特征在于,包括主节点和从节 点,其中,所述主节点包括第一键盘单元、第一微处理器、第一显示单元和第一通信单元; 所述第一键盘单元的控制数据输出总线端连接所述第一微处理器的控制数据输入总 线端;所述第一微处理器的显示数据输出总线端连接所述第一显示单元的数据输入总线端;所述第一通信单元的通信数据输入输出总线端连接所述第一微处理器的通信数据输 入输出总线端;所述从节点包括第二键盘单元、第二微处理器、第二显示单元、第二通信单元和模拟量 输入单元;所述第二键盘单元的控制数据输出总线端连接所述第二微处理器的控制数据输入总 线端;所述第二微处理器的显示数据输出总线端连接所述第二显示单元的数据输入总线端;所述第二通信单元的通信数据输出输入总线端连接所述第二微处理器的通信数据输 出输入总线端;所述模拟量输入单元的模拟量数据输出总线端连接所述第二微处理器的A/D数据输 入总线端;所述从节点的模拟量输入单元有8个通道,每个通道均包括+5V电源、电位器和分压电 阻,通过调整所述电位器以得到8路0-5V范围内的DC电压输入;所述主节点的第一通信单元和所述从节点的第一通信单元均连接在Modbus总线上。
2.一种基于如权利要求1所述的实验系统的Modbus网络模拟量采集与显示的实验方 法,其特征在于,包括以下步骤步骤一启动该实验系统,初始化主节点和从节点;步骤二 设置所述主节点和所述从节点的通信参数,该通信参数包括Modbus报文帧模 式和波特率参数,所述从节点还需设置从节点地址;步骤三所述从节点在主程序中循环读取8路模拟量输入信号的A/D值,该8路模拟量 输入信号的A/D值对应于Modbus协议中地址为0-7的输入寄存器数据,并将读取到的该8 路模拟量输入信号的A/D值转换为实际的电压值,将该电压值显示在该从节点的第二显示 单元上;步骤四通过所述主节点的第一键盘单元输入一帧正确的请求报文,该请求报文符合 Modbus协议中的读取输入寄存器命令;所述主节点在该请求报文后添加按Modbus协议计 算出的2个字节的CRC值,并将请求报文帧发送到Modbus总线上;步骤五所述从节点接收到正确请求报文,将输入寄存器数据封装到一帧正常响应报 文中发送到Modbus总线上;步骤六所述主节点接收到正常响应报文后,将读取到的输入寄存器数据转换为实际 电压值,并将响应报文和模拟量输入电压值依次显示在该主节点的第一显示单元上;步骤七通过所述主节点的第一键盘单元输入一帧错误的请求报文,该报文不符合Modbus协议中的读取输入寄存器命令;所述主节点在该请求报文后添加按Modbus协议计 算出的2个字节的CRC值,并将该请求报文帧发送到Modbus总线上; 步骤八所述从节点接收到错误请求报文,回复一帧异常响应报文; 步骤九所述主节点接收到该异常响应报文后,将该异常响应报文内容和异常提示字 符串依次显示在该主节点的第一显示单元上。
3.根据权利要求2所述的Modbus网络模拟量采集与显示的实验方法,其特征在于, 所述步骤四中通过所述主节点的第一键盘单元输入的正确请求报文内容依次为01h、04h、 00h、00h、00h、08h,所述步骤七中通过所述主节点的第一键盘单元输入的错误请求报文内 容依次为 01h、04h、00h、08h、00h、08h。
全文摘要
一种Modbus网络模拟量采集与显示的实验系统及方法,该实验系统包括主节点和从节点,主节点和从节点各包括键盘单元、微处理器、显示单元和通信单元;键盘单元的控制数据输出总线端连接所述微处理器的控制数据输入总线端;微处理器的显示数据输出总线端连接所述显示单元的数据输入总线端;通信单元的通信数据输入输出总线端连接所述微处理器的通信数据输入输出总线端;从节点还包括模拟量输入单元;所述模拟量输入单元的模拟量数据输出总线端连接所述微处理器的A/D数据输入总线端;通过调整所述从节点的电位器以得到8路0-5V范围内的DC电压输入;所述通信单元连接在Modbus总线上。本发明能演示工业现场中常见的Modbus网络中模拟量输入采集及通信的功能。
文档编号G09B19/00GK102034377SQ20101058024
公开日2011年4月27日 申请日期2010年12月9日 优先权日2010年12月9日
发明者佟为明, 张玉萍, 李凤阁, 李海波, 林景波, 赵志衡, 陈培友 申请人:哈尔滨工业大学