一种从站自适应两种通信协议的通信方法

文档序号:9891147阅读:603来源:国知局
一种从站自适应两种通信协议的通信方法
【技术领域】
[0001] 本发明设及一种从站自适应两种通信协议的通信方法。
【背景技术】
[0002] PR0FI脚S现场总线是世界上应用最广泛的现场总线技术,PR0FIBUS既适合于自动 化系统与现场信号单元的通讯,也可用于可W直接连接带有接口的变送器、执行器、传动装 置和其它现场仪表及设备,对现场信号进行采集和监控,并且用一对双绞线替代了传统的 大量的传输电缆,大量节省了电缆的费用,也相应节省了施工调试W及系统投运后的维护 时间和费用。根据统计,使用PR0FIBUS可W使工程总造价降低20~40%。支持PR0FIBUS的自 控厂商已多达250家,产品2000多种,应用项目20万个,安装的节点达250多万个,设备总价 值50亿美元。
[0003] PR0FIBUS产品的年增长率达25%,是增长最快的现场总线技术。
[0004] 1989年成立了用户组织,现已有650多个企业成员。
[0005] Mo化US现场总线是世界上应用最广泛的现场总线技术,mo化US既适合于自动化系 统与现场信号单元的通讯,也可用于可W直接连接带有接口的变送器、执行器、传动装置和 其它现场仪表及设备,对现场信号进行采集和监控,并且用一对双绞线替代了传统的大量 的传输电缆,大量节省了电缆的费用,也相应节省了施工调试W及系统投运后的维护时间 和费用。McxlbusW协议开放性,功能强大使用灵活著称。根据统计,使用mcxlbus可W使工程 总造价降低20~40%。目前国内智能仪表及智能传感器有50% W上的通讯接口采用mcxlbus 协议接口。可W说,PR0FIBUS及mcxlbus协议是世界上应用最广泛,产品覆盖面最广的两种现 场总线协议。
[0006] 目前在工业控制及其他领域中的主站设备及从站设备都只一种通信协议 (PR0FI脚S-DP或M0DBUS-RTU)。一条总线上主站是PR0FIBUS-DP或M0DBUS-RTU协议,所有的 从站设备必须要适应主站的通信协议(PR0FI脚S-DP或M0DBUS-RTU),如果从站不能适应主 站的通信协议。就要多铺设一条总线把所有与主站设备通信协议不匹配的从站设备连接到 运条总线上,再通过协议转换器,把其转换成与主站相适应的协议。运样增加了设备成本及 施工成本,增加了一个中间环节也使得系统的稳定性降低。
[0007] 因此,有必要设计一种从站自适应两种通信协议的通信方法。

【发明内容】

[000引本发明所要解决的技术问题是提供一种从站自适应两种通信协议的通信方法,该 从站自适应两种通信协议的通信方法易于实施,能自动适配巧巾通信协议进行通信。
[0009] 发明的技术解决方案如下:
[0010] -种从站自适应两种通信协议的通信方法,两种通信协议是指PR0FI脚S-DP
[0011] 通信协议和M0DBUS-RTU通信协议,包括W下步骤:
[001^ 步骤1:串口初始化;
[0013] 包括初始化串口的数据位配置和通信的波特率;
[0014] 步骤2:同步主站通信波特率;
[0015] 使用当前波特率接收串口报文并对接收的串口报文进行偶校验,若连续出现N次 校验错误,则依次轮询波特率表中的波特率重新设置串口的波特率来接收数据报文,N为大 于2的整数;直到能通过偶校验,则完成从站与主站的波特率匹配,按照匹配后的波特率接 收串口报文,进入步骤3;
[0016] 步骤3:自动识别通信模式并处理串口数据;
[0017] 检验接收到的串口报文数据的前两个字节,如果前两个字节是0XFF和0XFF,则判 定当前通信使用的是PR0FI脚S-DP通信协议,调用PR0FIBUS-DP处理模块对接收到数据报文 进行处理;
[0018] 否则就调用M0DBUS-RTU处理模块对接收到数据报文进行处理;
[0019] 波特率表:
[0020]
[0021] 波特率表如上表所示。
[0022] 步骤1中,将串口初始化为abit起始位、8bit数据位abit偶校验位abit停止位, W波特率表中序号为1的波特率作为当前的通信波特率。
[0023] PR0FIBUS-DP处理模块的处理过程为:
[0024] 根据PR0FIBUS-DP协议数据采用累加和的方式检验接收到的数据报文是否正确 【累加和的方式检验是一种校验方式,所有接收到的数据相或处理,再与校验码进行比较, 相等校验通过,否则校验不正确】,再检验报文是不是W0xl6(0X16表示16进制的16)结尾 【即结尾字节是否等于0X16】,若正确再依据接收到的数据报文中的功能码按PR0FIBUS-DP 协议做出相应的处理后返回回送信息,回送信息通过串口传输给主站;若不正确,则不做任 何处理。主站发送报文格式如下:
[0025]
[00%] MODBUS-RTU处理模块的处理过程为:根据MODBUS-RTU协议数据采用CRC循环的方 式检验接收到的数据报文是否正确【CRC为常用校验方式,将接收到数据进行CRC循环校验 计算,再与报文中的CR邱马(两个字节)进行比较,若相等,则表示校验正确,否则表明接收到 的数据错误。】若正确再根据接收到的数据报文中的功能码根据其协议做出相应的处理后 返回回送信息,回送信息通过串口传输给主站,若不正确,则不做任何处理。
[0027] N=5〇
[0028] PR0FIBUS-DP与MODBUS-RTU使用了同样的物理层协议(RS-485);通信方式都是主 从方式,通过主站来轮询每个从站,并都采用一问一答与广播机制。运两种通信协议物理层 相同、通信机制雷同及通信接口都是串口,只是数据报文校验方式、报文格式及通信波特率 不同。
[0029] 本发明的特点在于:
[0030] 1、同步主站通信波特率:将两种协议通信波特率建立在一张通信波特率表中,根 据通信波特率表中的波特率来设置串口通信波特率并接收报文数据,依据PR0FIBUS-DP与 MODBUS-RTU的报文校验方式来检验接收到数据是否正确,不正确根据波特率表选择下一个 波特率,运样依次轮询使用波特率表中的波特率来接收数据报文,直至接收到正确的数据 报文,运个波特率设置成当前的通信波特率。使用当前通信波特率连续接收到3个错误数据 报文时,重复上述过程来与主站重新匹配通信波特率。
[0031] 2、区分两种协议:依据两种协议的报文格式及校验方式来区分通信协议1、 PR0FIBUS-DP报文头有33个二进制的1的同步位。2、M0DBUS-RTU开始两个字节分别是地址码 及功能码,第一个字节地址码小于与第二字节功能码,且不可能为0XFF,前Ξ个字节都是 0XFF就是PR0FIBUS-DP,否则有可能是MODBUS-RTU协议。把接收到的数据报文依据上述方式 进行检验后发送给不同协议处理模块进行处理。
[0032] 3、通信协议处理:协议进行分块处理,UPR0FI脚S-DP协议处理模块完成其相应的 协议处理,把相应的数据发送各10模块,根据协议要求发送相应报文的回送信息给主站。2、 MODBUS-RTU协议处理模块完成其相应的协议处理,把相应的数据发送个10模块,根据协议 要求发送相应报文的回送信息给主站。运两个协议处理模块完全独立。
[0033] 同步主站通信波特率:PR0FIBUS-DP前33个bit同步位都是1,根据串口初始化设置 串口接收一帖数据刚好是Ubit,8个数据位偶校验也是为1,所W前33bit同步位能正确通 过偶校验,其他的数据帖都能正确通过偶校验;
[0034] MODBUS-RTU每一帖都能正确通过
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1