能产生ModbusCRC错误并对错误进行比较、显示的系统及其方法

文档序号:7647882阅读:128来源:国知局
专利名称:能产生Modbus CRC错误并对错误进行比较、显示的系统及其方法
技术领域
本发明涉及的是Modbus CRC错误的产生、比较与显示的技术领域。
背景技术
现场总线技术已经越来越多地应用于工业现场。Modbus总线更是以其协议简单、实施容易、性价比高、可靠性高等优点而获得了越来越广泛的应用。Modbus协议采用16位CRC校验,为其提供了较高的通信可靠性保障。CRC校验在通信系统中应用广泛。CRC错误的产生与检验,对于理解Modbus关键技术是很有意义的。但国内外针对CRC错误的产生与检验的技术研究分析还比较少。这在很大程度上阻碍了Modbus总线教学实验和培训的开展。

发明内容
本发明是为了克服现有技术存在不能实现对Modbus CRC错误的产生、比较与显示的问题,进而提供一种能产生Modbus CRC错误并对错误进行比较、显示的系统及其方法。
本发明的系统由主节点1、从节点2、干扰节点3组成;所述主节点1由第一键盘1-1、第一处理器1-2、第一显示单元1-3、第一通信单元1-4、启动按钮1-5组成;第一键盘1-1的控制数据输出总线端、启动按钮1-5的控制数据输出总线端分别连接第一处理器1-2的一个控制数据输入总线端,第一通信单元1-4的通信数据输出输入总线端连接第一处理器1-2的通信数据输出输入总线端,第一处理器1-2的显示数据输出总线端连接第一显示单元1-3的数据输入总线端;从节点2由第二键盘2-1、第二处理器2-2、第二显示单元2-3、第二通信单元2-4组成;第二键盘2-1的控制数据输出总线端连接第二处理器2-2的控制数据输入总线端,第二通信单元2-4的通信数据输出输入总线端连接第二处理器2-2的通信数据输出输入总线端,第二处理器2-2的显示数据输出总线端连接第二显示单元2-3的数据输入总线端;
干扰节点3由第三键盘3-1、第三处理器3-2、第三显示单元3-3、第三通信单元3-4组成;第三键盘3-1的控制数据输出总线端连接第三处理器3-2的控制数据输入总线端,第三通信单元3-4的通信数据输出输入总线端连接第三处理器3-2的通信数据输出输入总线端,第三处理器3-2的显示数据输出总线端连接第三显示单元3-3的数据输入总线端;主节点1的第一通信单元1-4的Modbus总线接口、从节点2的第二通信单元2-4的Modbus总线接口、干扰节点3的第三通信单元3-4的Modbus总线接口都依次连接在Modbus总线上。
能产生Modbus CRC错误并对错误进行比较、显示的方法步骤为步骤一、启动系统,初始化主节点1、从节点2、干扰节点3;步骤二、通过主节点1的第一键盘1-1对第一处理器1-2的通信参数进行设置,即设置Modbus协议规定的报文帧模式、选择波特率参数;步骤三、在主节点1中输入8个字节的请求报文,其十六进制数依次为01h、08h、00h、00h、AAh、AAh、55h、55h;请求报文含义如下按Modbus协议,首字节01h(字节1)为请求报文的地址域,即为从节点2的节点地址;字节2-字节4为请求报文的功能域,其中08h(字节2)为诊断功能代码,00h、00h(字节3-字节4)为返回询问数据子功能码;字节5-字节8为请求报文的数据域,即响应报文中应返回的数据;另外,主节点1中请求报文的第8字节后添加按Modbus协议计算出的2个字节的CRC值,即请求报文帧长度为10字节;步骤四、通过从节点2的第二键盘2-1对第二处理器2-2的通信参数进行设置,即Modbus报文帧模式设置、波特率的选择、从节点2的地址设置;步骤五、通过干扰节点3的第三键盘3-1对第三处理器3-2的通信参数进行设置,即Modbus报文帧模式设置、波特率的选择;步骤六、按下主节点1的启动按钮1-5后,主节点1向Modbus总线发送一帧同步报文,从节点2和干扰节点3同时接收到该同步报文(因传输的物理介质距离很短,传输延时可以忽略不计);步骤七、从节点2和干扰节点3同步报文接收结束,均按Modbus协议延时3.5倍字符时间后,从节点2格式化响应报文,报文帧长度为10字节,内容与接收到的请求报文“同步报文”完全一致,并发送响应报文;干扰节点3格式化干扰报文,保持请求报文的字节1-字节4及字节9-字节10不变,将数据域即字节5-字节8的每个字节的最末位取反,并发送干扰报文;步骤八、根据Modbus协议功能码定义,主节点1发送的请求报文功能码08h、00h、00h,期待响应报文即为主节点1发送的请求报文;主节点1接收到总线上的响应报文与干扰报文的合成,产生数据域的接收错误,从而导致CRC校验的错误;主节点1按Modbus协议计算出CRC值CRC1,并与接收到的CRC值CRC2进行比较;主节点1通过第一显示单元1-3依次显示期待响应报文、实际接收报文及其CRC值、主节点1的第一处理器1-2计算得到的CRC值及CRC错误的结果。
本发明能产生Modbus CRC错误,并能对CRC的错误进行比较与显示,其得出的结果直观,其报文内容能够体现出“0”对“1”的干扰和“1”对“0”干扰的两种情况,有助于掌握Modbus CRC机制,有助于Modbus总线教学实验和培训的开展。它还具有结构简单的优点。


图1是本发明的电路结构示意图。
具体实施例方式
具体实施方式
一结合图1说明本实施方式,本实施方式的系统由主节点1、从节点2、干扰节点3组成;所述主节点1由第一键盘1-1、第一处理器1-2、第一显示单元1-3、第一通信单元1-4、启动按钮1-5组成;第一键盘1-1的控制数据输出总线端、启动按钮1-5的控制数据输出总线端分别连接第一处理器1-2的一个控制数据输入总线端,第一通信单元1-4的通信数据输出输入总线端连接第一处理器1-2的通信数据输出输入总线端,第一处理器1-2的显示数据输出总线端连接第一显示单元1-3的数据输入总线端;从节点2由第二键盘2-1、第二处理器2-2、第二显示单元2-3、第二通信单元2-4组成;第二键盘2-1的控制数据输出总线端连接第二处理器2-2的控制数据输入总线端,第二通信单元2-4的通信数据输出输入总线端连接第二处理器2-2的通信数据输出输入总线端,第二处理器2-2的显示数据输出总线端连接第二显示单元2-3的数据输入总线端;干扰节点3由第三键盘3-1、第三处理器3-2、第三显示单元3-3、第三通信单元3-4组成;第三键盘3-1的控制数据输出总线端连接第三处理器3-2的控制数据输入总线端,第三通信单元3-4的通信数据输出输入总线端连接第三处理器3-2的通信数据输出输入总线端,第三处理器3-2的显示数据输出总线端连接第三显示单元3-3的数据输入总线端;主节点1的第一通信单元1-4的Modbus总线接口、从节点2的第二通信单元2-4的Modbus总线接口、干扰节点3的第三通信单元3-4的Modbus总线接口都依次连接在Modbus总线上。
能产生Modbus CRC错误并对错误进行比较、显示的方法步骤为步骤一、启动系统,初始化主节点1、从节点2、干扰节点3;步骤二、通过主节点1的第一键盘1-1对第一处理器1-2的通信参数进行设置,即设置Modbus协议规定的报文帧模式、选择波特率参数;步骤三、在主节点1中输入8个字节的请求报文,其十六进制数依次为01h、08h、00h、00h、AAh、AAh、55h、55h;请求报文含义如下按Modbus协议,首字节01h(字节1)为请求报文的地址域,即为从节点2的节点地址;字节2-字节4为请求报文的功能域,其中08h(字节2)为诊断功能代码,00h、00h(字节3-字节4)为返回询问数据子功能码;字节5-字节8为请求报文的数据域,即响应报文中应返回的数据;另外,主节点1中请求报文的第8字节后添加按Modbus协议计算出的2个字节的CRC值,即请求报文帧长度为10字节;步骤四、通过从节点2的第二键盘2-1对第二处理器2-2的通信参数进行设置,即Modbus报文帧模式设置、波特率的选择、从节点2的地址设置;步骤五、通过干扰节点3的第三键盘3-1对第三处理器3-2的通信参数进行设置,即Modbus报文帧模式设置、波特率的选择;步骤六、按下主节点1的启动按钮1-5后,主节点1向Modbus总线发送一帧同步报文,从节点2和干扰节点3同时接收到该同步报文(因传输的物理介质距离很短,传输延时可以忽略不计);步骤七、从节点2和干扰节点3同步报文接收结束,均按Modbus协议延时3.5倍字符时间后,从节点2格式化响应报文,报文帧长度为10字节,内容与接收到的请求报文“同步报文”完全一致,并发送响应报文;干扰节点3格式化干扰报文,保持请求报文的字节1-字节4及字节9-字节10不变,将数据域即字节5-字节8的每个字节的最末位取反,并发送干扰报文;步骤八、根据Modbus协议功能码定义,主节点1发送的请求报文功能码08h、00h、00h,期待响应报文即为主节点1发送的请求报文;主节点1接收到总线上的响应报文与干扰报文的合成,产生数据域的接收错误,从而导致CRC校验的错误;主节点1按Modbus协议计算出CRC值CRC1,并与接收到的CRC值CRC2进行比较;主节点1通过第一显示单元1-3依次显示期待响应报文、实际接收报文及其CRC值、主节点1的第一处理器1-2计算得到的CRC值及CRC错误的结果。
所述第一处理器1-2、第二处理器2-2、第三处理器3-2都选用的是C8051F021;第一显示单元1-3、第二显示单元2-3、第三显示单元3-3都选用的是MS12864J型号液晶;第一键盘1-1、第二键盘2-1、第三键盘3-1都选用的是欧姆龙键盘;启动发送按钮1-5选用的是欧姆龙按键;第一通信单元1-4、第二通信单元2-4、第三通信单元3-4都选用的是MAX485。
权利要求
1.能产生Modbus CRC错误并对错误进行比较、显示的系统,其特征在于它由主节点(1)、从节点(2)、干扰节点(3)组成;所述主节点(1)由第一键盘(1-1)、第一处理器(1-2)、第一显示单元(1-3)、第一通信单元(1-4)、启动按钮(1-5)组成;第一键盘(1-1)的控制数据输出总线端、启动按钮(1-5)的控制数据输出总线端分别连接第一处理器(1-2)的一个控制数据输入总线端,第一通信单元(1-4)的通信数据输出输入总线端连接第一处理器(1-2)的通信数据输出输入总线端,第一处理器(1-2)的显示数据输出总线端连接第一显示单元(1-3)的数据输入总线端;从节点(2)由第二键盘(2-1)、第二处理器(2-2)、第二显示单元(2-3)、第二通信单元(2-4)组成;第二键盘(2-1)的控制数据输出总线端连接第二处理器(2-2)的控制数据输入总线端,第二通信单元(2-4)的通信数据输出输入总线端连接第二处理器(2-2)的通信数据输出输入总线端,第二处理器(2-2)的显示数据输出总线端连接第二显示单元(2-3)的数据输入总线端;干扰节点(3)由第三键盘(3-1)、第三处理器(3-2)、第三显示单元(3-3)、第三通信单元(3-4)组成;第三键盘(3-1)的控制数据输出总线端连接第三处理器(3-2)的控制数据输入总线端,第三通信单元(3-4)的通信数据输出输入总线端连接第三处理器(3-2)的通信数据输出输入总线端,第三处理器(3-2)的显示数据输出总线端连接第三显示单元(3-3)的数据输入总线端;主节点(1)的第一通信单元(1-4)的Modbus总线接口、从节点(2)的第二通信单元(2-4)的Modbus总线接口、干扰节点(3)的第三通信单元(3-4)的Modbus总线接口都依次连接在Modbus总线上。
2.能产生Modbus CRC错误并对错误进行比较、显示的方法,其特征在于能产生Modbus CRC错误并对错误进行比较、显示的方法步骤为步骤一、启动系统,初始化主节点(1)、从节点(2)、干扰节点(3);步骤二、通过主节点(1)的第一键盘(1-1)对第一处理器(1-2)的通信参数进行设置,即设置Modbus协议规定的报文帧模式、选择波特率参数;步骤三、在主节点(1)中输入8个字节的请求报文,其十六进制数依次为01h、08h、00h、00h、AAh、AAh、55h、55h;请求报文含义如下按Modbus协议,首字节01h为请求报文的地址域,即为从节点(2)的节点地址;字节2-字节4为请求报文的功能域,其中08h为诊断功能代码,00h、00h为返回询问数据子功能码;字节5-字节8为请求报文的数据域,即响应报文中应返回的数据;另外,主节点(1)中请求报文的第8字节后添加按Modbus协议计算出的2个字节的CRC值,即请求报文帧长度为10字节;步骤四、通过从节点(2)的第二键盘(2-1)对第二处理器(2-2)的通信参数进行设置,即Modbus报文帧模式设置、波特率的选择、从节点(2)的地址设置;步骤五、通过干扰节点(3)的第三键盘(3-1)对第三处理器(3-2)的通信参数进行设置,即Modbus报文帧模式设置、波特率的选择;步骤六、按下主节点(1)的启动按钮(1-5)后,主节点(1)向Modbus总线发送一帧同步报文,从节点(2)和干扰节点(3)同时接收到该同步报文;步骤七、从节点(2)和干扰节点(3)同步报文接收结束,均按Modbus协议延时3.5倍字符时间后,从节点(2)格式化响应报文,报文帧长度为10字节,内容与接收到的请求报文“同步报文”完全一致,并发送响应报文;干扰节点3格式化干扰报文,保持请求报文的字节1-字节4及字节9-字节10不变,将数据域即字节5-字节8的每个字节的最末位取反,并发送干扰报文;步骤八、根据Modbus协议功能码定义,主节点(1)发送的请求报文功能码08h、00h、00h,期待响应报文即为主节点(1)发送的请求报文;主节点(1)接收到总线上的响应报文与干扰报文的合成,产生数据域的接收错误,从而导致CRC校验的错误;主节点(1)按Modbus协议计算出CRC值CRC1,并与接收到的CRC值CRC2进行比较;主节点(1)通过第一显示单元(1-3)依次显示期待响应报文、实际接收报文及其CRC值、主节点(1)的第一处理器(1-2)计算得到的CRC值及CRC错误的结果。
全文摘要
能产生Modbus CRC错误并对错误进行比较、显示的系统及其方法,它涉及的是Modbus CRC错误的产生、比较与显示的技术领域。它是为解决现有技术存在不能实现对Modbus CRC错误的产生、比较与显示的问题。它的主节点(1)的第一通信单元(1-4)的Modbus总线接口、从节点(2)的第二通信单元(2-4)的Modbus总线接口、干扰节点(3)的第三通信单元(3-4)的Modbus总线接口都依次连接在Modbus总线上。它的方法步骤为在主节点(1)中输入8个字节的请求报文;按下启动按钮(1-5);从节点(2)和干扰节点(3)同步报文接收结束,并发送响应报文、干扰报文;主节点(1)按Modbus协议计算出CRC值CRC1,并与接收到的CRC值CRC2进行比较;得到CRC错误的结果。本发明能产生Modbus CRC错误,并能对CRC的错误进行比较与显示,其得出的结果直观。
文档编号H04L12/56GK101051881SQ20071007220
公开日2007年10月10日 申请日期2007年5月15日 优先权日2007年5月15日
发明者佟为明, 赵志衡, 刘勇, 李凤阁, 潘悦, 金显吉 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1