首页> 中国专利> 工业控制自动化网络通信协议转换器及通信协议转换方法

工业控制自动化网络通信协议转换器及通信协议转换方法

摘要

本发明公开一种工业控制自动化网络通信协议转换器及通信协议转换方法,所述通信协议转换器包括微处理器、上端接口拓展电路、下端接口拓展电路、存储器和电源电路;所述上端接口拓展电路包括串行通讯接口、以太网接口、硬件协议栈芯片、软件协议栈芯片以及用于切换所述硬件协议栈芯片和软件协议栈芯片与上位机通信的切换开关,所述串行通讯接口实现所述微处理器与Modbus网络的连接,所述以太网接口实现所述微处理器与工业以太网的连接;所述下端接口拓展电路包括与多个下位机一一对应通信连接的多个串行通讯接口。本发明可以实现自由协议与Modbus?RTU协议或TCP/IP协议之间的相互转换,满足现场级控制和远程控制的需求。

著录项

  • 公开/公告号CN105610876A

    专利类型发明专利

  • 公开/公告日2016-05-25

    原文格式PDF

  • 申请/专利权人 江苏科技大学;

    申请/专利号CN201610201994.2

  • 申请日2016-04-01

  • 分类号H04L29/06(20060101);

  • 代理机构32200 南京经纬专利商标代理有限公司;

  • 代理人楼高潮

  • 地址 212003 江苏省镇江市京口区梦溪路2号

  • 入库时间 2023-12-18 15:33:46

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-02-08

    专利权的转移 IPC(主分类):H04L29/06 专利号:ZL2016102019942 登记生效日:20220121 变更事项:专利权人 变更前权利人:常熟市知识产权运营中心有限公司 变更后权利人:江苏航天龙梦信息技术有限公司 变更事项:地址 变更前权利人:215500 江苏省苏州市常熟市常福街道联丰路68号4号楼5楼 变更后权利人:215500 江苏省苏州市常熟市梦兰路8号

    专利申请权、专利权的转移

  • 2018-10-12

    授权

    授权

  • 2016-06-22

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20160401

    实质审查的生效

  • 2016-05-25

    公开

    公开

说明书

技术领域

本发明涉及工业自动化控制技术领域,尤其涉及一种工业控制自动化网络通信协议转换器及通信协议转换方法。

背景技术

随着工业现代化的程度越来越高,现代工业控制系统发展成了一种由各种传感器、控制器、执行器以及各种具有具体功能的子系统构成的具有复杂结构的控制网络,比如,现代工业控制系统中常见的传感模块就由传感器、转换器与发射器(甚至可能会有小型的控制器用于前端数据处理)组成;数据采集与监控系统作为控制系统中的关键子系统,通常又由大量的传感模块、发射器及控制器组成;而现代工业控制系统普遍采用可编程控制器(ProgrammableController,PLC)通常集成了发射器与控制器,用于进行具体工业过程的控制。因此,现代工业控制系统通常以PC机或一台PLC等为上位机,通过网络的连接和通讯协议的支持,对多个如PLC等现场工控子设备(下位机)进行集中管理,以及与之进行实时的数据交换与处理,例如CN105137928A公开的一种全自动化生产线数据采集系统,包括现场数据采集网络单元与远程上位机单元,该数据采集网络单元包括多个底层模块、下位机与中位机,其相互之间通过网络连接并形成三层架构;所述底层模块包括生产设备自身的控制器,所述下位机包括基于PLC控制模块的和网关,其中,所述底层模块通过设定的通信方式对现场生产数据进行实时采集,通过设定的通信方式与一通信转换模块交互通讯;所述网关将各底层模块的通信方式转换成统一的兼容通信方式及数据,并通过该兼容通信方式将生产数据上传至系统;所述中位机对生产数据进行运算和处理,并供远程上位机单元调用。

然而,现代工业控制系统中的不同设备之间的通讯通常需要采用不同的通讯协议来实现,例如上位机(PC)通过网线只能发送TCP/IP协议,而一些子设备(下位机)只能识别自由协议,所以通讯一端的设备传输的数据必须通过协议转换才能被通讯另一端的其他设备接收并识别,为了方便不同设备之间的相互通讯,目前现代工业控制系统中使用的通讯协议转换器通常通过移植协议栈进行网络传输,例如CN104932364A公开的一种Modbus通讯协议的OPCUA转换装置及方法,将OPCUA协议栈移植到Modbus通讯协议的设备中,以将Modbus通讯协议转换为OPCUA协议,将多个基于串行通讯或TCP通讯的Modbus设备封装成一个OPCUA服务器,符合OPCUA协议的OPCUA客户端程序均按照OPCUA规范对这些Modbus设备的数据进行读、写、订阅操作。这种移植OPCUA协议协议栈的通讯协议转换器虽然可以实现一些相应的不同设备之间的通讯,但是却具有不够灵活、误码率较高、传输速率较慢等不足,不能满足现代工业控制系统用于不同应用环境的需求。因此,针对传统通讯协议转换器的不足,急需一种高速、兼容性强且结构简单可靠的通信协议转换器及方法。

发明内容

本发明的一个目的在于设计一种工业控制自动化网络通信协议转换器,具有高速、兼容性强且结构简单可靠的特点,能够实现自由协议与ModbusRTU协议或以太网TCP/IP协议之间的相互转换。

本发明的另一个目的在于设计一种所述工业控制自动化网络通信协议转换器的通信协议转换方法,能够实现自由协议与ModbusRTU协议或以太网TCP/IP协议之间的相互转换,从而使上位机和下位机之间进行高速、实时、可靠的通信,兼容性强。

为了实现上述目的,本发明提供一种工业控制自动化网络通信协议转换器,包括:微处理器以及均连接至所述微处理器的上端接口拓展电路、下端接口拓展电路、存储器和电源电路;其中,所述上端接口拓展电路包括串行通讯接口、以太网接口、硬件协议栈芯片、软件协议栈芯片以及用于切换所述硬件协议栈芯片和软件协议栈芯片与上位机通信的切换开关,所述串行通讯接口实现所述微处理器与Modbus网络的连接,所述以太网接口实现所述微处理器与工业以太网的连接;所述下端接口拓展电路包括与多个下位机一一对应通信连接的多个串行通讯接口。

进一步的,所述微处理器为STM32F103系列芯片;所述硬件协议栈芯片为M5500系列协议芯片;所述软件协议栈芯片为ENC28J60系列以太网控制芯片。

进一步的,所述上端接口拓展电路的串行通讯接口和所述下端接口拓展电路的串行通讯接口均包括RS232接口和RS485接口。

进一步的,所述工业控制自动化网络通信协议转换器还包括分别连接所述微处理器的转换器状态指示灯、电源指示灯。

本发明还提供一种上述的工业控制自动化网络通信协议转换器的通信协议转换方法,包括:

步骤1:根据通信要求对所述通信协议转换器的切换开关进行操作,选择使用所述上端接口拓展电路中的硬件协议栈芯片或软件协议栈芯片与上位机通信;

步骤2:所述上位机通过所述通信协议转换器向相应的下位机传达请求数据,具体包括:

步骤2.1:所述上位机根据所请求的数据通过选择的硬件协议栈芯片或软件协议栈芯片发送TCP/IP协议至所述通信协议转换器的微处理器;

步骤2.2:所述微处理器接收到所述上位机发送的数据后,通过预设的数据位和校验位判断所述数据是否符合通信协议,若符合则执行步骤2.3,若不符合则返回错误信号至所述上位机,请求所述上位机重新发送数据;

步骤2.3:所述微处理器把接收到的TCP/IP协议保存并转换为自由协议,并通过所述下端接口拓展电路发送给相应的下位机;

步骤3:所述下位机返回响应数据至所述上位机,具体包括:

步骤3.1:所述下位机接收到自由协议后进行检验,并根据所述自由协议中的请求采集自由协议响应数据,并通过所述下端接口拓展电路反馈至所述微处理器;

步骤3.2:所述微处理器接收到所述自由协议响应数据后,判断所述自由协议响应数据是否符合协议规格,若符合则执行步骤3.3,若不符合则返回故障信息给所述上位机,以使所述上位机知晓所述下位机出现错误并重新发送请求数据;

步骤3.3:所述微处理器根据是否需要远程监控,来将接收到的所述自由协议响应数据转换为ModbusRTU协议或者为TCP/IP协议,并将转换后的数据通过所述上端接口扩展电路发送给所述上位机。

进一步的,所述步骤1中,所述切换开关与所述微处理器的PB0口相连,所述微处理器通过Key(key)函数检测PB0口状态,如果需要满足基本通信要求则切换开关按下、PB0口为低电平,此时使用所述硬件协议栈芯片与以太网接口来实现所述上位机与所述微处理器之间的数据传输;如果通信要求比较高、需要满足特殊功能则切换开关抬起、PB0口为高电平,此时所述微处理器使用所述软件协议栈芯片与以太网接口,进行LWIP初始化,添加所述软件协议栈芯片网关,设置IP地址、子网掩码、网关以及通道号来实现所述上位机与所述微处理器之间的数据传输。

进一步的,所述步骤2.1中,所述上位机发送TCP/IP协议至所述微处理器的同时,启动所述上位机内部的定时器定时,以检验所述上位机与所述通信协议转换器之间的线路是否通畅,若超过所述定时器的设定计时时,所述上位机仍未收到所述微处理器的上传数据,则判定所述上位机与所述通信协议转换器之间的线路出现故障。

进一步的,所述微处理器通过轮询函数convertInit()查询其通道端口是否接收到所述上位机发来的数据,如果接收到上位机发来的数据,则通过所述预设的数据位和校验位判断所述数据是否正确,若不正确则返回错误信号以请求所述上位机重新发送数据;若正确则转到步骤2.3:执行netconn_accept(Conn)函数以将所述数据保存至所述存储器,并释放信号量OSSemPost(Semp)执行函数Parse(void*p_arg),将TCP/IP协议重新编码成所述下位机所需要的自由协议传输帧,并通过所述下端接口扩展电路的串行通讯接口将所述自由协议传输帧发送给所述下位机,同时启动所述通信协议转换器内部的定时器进行定时,用于检验所述通信协议转换器与所述下位机之间的线路是否通畅,若所述微处理器在所述定时器的定时时间内接收到所述下位机返回的自由协议响应数据,则执行步骤3.2,所述微处理器在所述定时器的定时时间内未接收到所述下位机返回的自由协议响应数据,则转到步骤3.1使所述下位机重新发送自由协议响应数据。

进一步的,在步骤3.3中,若需要远程监控,则所述微处理器通过free_modbusTCP(void*p_arg)函数将自由协议响应数据封装为TCP/IP协议规格,并通过netconn_write(NewConn,send_buff)函数将所述TCP/IP协议写入LWIP协议栈,然后通过所述上端接口扩展电路的以太网接口发送给所述上位机的远程监控系统;若无需远程监控而需要现场级监控,则所述微处理器通过free_modbusRTU(void*p_arg)函数将自由协议响应数据转换为ModbusRTU协议规格,并通过所述上端接口扩展电路的串行通讯接口传输给所述上位机的现场监控系统。

进一步的,所述步骤3.2中,所述微处理器通过堆栈的方法进行所述自由协议响应数据的接收,以确保数据的完整性并保证数据不会溢出;同时所述微处理器在数据接收和处理过程中采用中断与查询两种处理方式,当所述上位机发送的数据进入了所述下位机的数据缓冲区后,所述微处理器进入中断来接收数据,待接收完数据后则继续执行进中断前的程序,如果出现同时来了几组数据的情况,所述微处理器会根据中断优先级进行判断先接收哪组数据,当进行中断处理过程中不能正常的收发数据时,所述微处理器开始采用查询的方式,找到出现问题的数据,并开始进行收发处理。

与现有技术相比,本发明的技术方案具有以下有益效果:

1、本发明的通信协议转换器及其通信协议转换方法,采用软件协议栈和硬件协议栈相辅相成的设计,在通信要求低的情况下可以采用硬件协议栈实现快速传输数据,而在通信要求比较高、需要满足特殊功能的情况下,就可以通过对软件协议栈实现数据的高效率传输,从而实现单片机资源的运用上的灵活性和最大化。

2、本发明的通信协议转换器及其通信协议转换方法采用了两种协议格式,即ModbusRTU协议与自由协议的相互转换以及TCP/IP协议与自由协议的相互转换,从而可以根据现场总线类别的不同来满足远程监控与现场监控的通信需求。

3、本发明的通信协议转换器及其通信协议转换方法,通过微处理器预设的数据位和校验位来检验其接收数据的正确性,从而可以预防多数据量传输过程中可能产生的数据帧重叠或遗漏的问题,能够在高误码率的情况下保证通信可靠性高。

4、本发明的通信协议转换器及其通信协议转换方法,使用定时器超时的方法,来分别检验上位机与通信协议转换器之间、下位机与通信协议转换器之间的线路是否通畅,判断通信线路出错地点,当数据处理出现问题时,能够及时处理,防止出现死机现象。

5、本发明的通信协议转换器及其通信协议转换方法中,微处理器采用了循环队列的方式接收数据,解决了数据溢出的问题;同时采取了中断与查询两种处理方式,极大地提高了通信协议转换器的收发效率以及数据处理量。

附图说明

图1是本发明具体实施例的工业控制自动化网络通信协议转换器的硬件结构示意图;

图2是本发明具体实施例的通信协议转换方法中上位机发送请求数据的流程图;

图3是本发明本发明具体实施例的通信协议转换方法中下位机接收响应流程图;

图4是本发明本发明具体实施例的通信协议转换方法中的标准自由协议格式。

具体实施方式

请参考图1,本实施例提供一种工业控制自动化网络通信协议转换器10,包括:微处理器(MCU)101以及分别连接至所述微处理器101的电源电路102、电源指示灯103、上端接口拓展电路104、下端接口拓展电路105、转换器状态指示灯106以及存储器107。

其中,所述微处理器101和上端接口拓展电路104是本实施例的工业控制自动化网络通信协议转换器10的核心器件,所述微处理器101是整个工业控制自动化网络通信协议转换器10的控制中心,采用STM32F103系列芯片,它包括以太网MAC层控制器、CAN控制器和USART串型接口,支持以太网、CAN总线、RS231总线和RS485总线扩展,能够完成不同协议之间信息的解析与分发。上端接口拓展电路104采用软件协议栈和硬件协议栈相辅相成的设计,包括硬件协议栈芯片1041、软件协议栈芯片1042、串行通讯接口(USART)1043、以太网接口1044以及用于切换所述硬件协议栈芯片1041和软件协议栈芯片1042与上位机20通信的切换开关1040,所述串行通讯接口1043实现所述微处理器101与Modbus网络的连接,所述以太网接口1044实现所述微处理器101与工业以太网的连接,由此,根据通信要求,通过切换开关1040来接通硬件协议栈芯片1041或软件协议栈芯片1042与微处理器101的通信连接,从而使得微处理器101和PC主机等上位机20之间选择使用硬件协议栈或是软件协议栈来进行数据的快速传输,通常的,在通信要求低的情况下,采用硬件协议栈实现快速传输数据,而在通信要求比较高、需要满足特殊功能的情况下,操作人员可以按照自己的要求通过对软件协议栈进行编写,实现数据的高效率传输。本实施例中切换开关1040与微处理器101的PB0口相连,微处理器101可以通过Key(key)函数检测PB0口状态,若按下切换开关1040,此时PB0口为低电平,则微处理器101使用硬件协议栈,反之则微处理器101使用软件协议栈。所以本发明软件协议栈和硬件协议栈相辅相成的设计,既可以实现运用上的灵活性,也可以实现单片机资源的最大化。

本实施例中,硬件协议栈芯片1041可以采用内嵌内含MAC和PHY层的M5500系列协议芯片,软件协议栈芯片1042可以采用ENC28J60系列以太网控制芯片。因此,软件协议栈就是通过一个以太网控制芯片ENC28J60加入网络接口实现以太网的物理连接,借助uCOS-II操作系统把一种自由协议转换成标准的TCP/IP协议,并通过移植LWIP协议栈进行网络传输,进而通过植入TCP/IP协议代码实现通信及上层应用,具体地,先进行LWIP初始化,添加ENC28J60网关,设置IP地址、子网掩码、网关以及通道号,从而建立通讯。显然,软件协议栈操作需要微处理器101不断地响应中断,这就在很大程度上占用了微处理器(MCU)101的运算和时钟资源,当多线程操作时,微处理器101的处理速度会降低,尽管软件协议栈具有代码量较多、影响微处理器处理速度的确定,但是它可以灵活的处理数据,操作人员可以根据自己所编系统的需求来更改软件协议栈,实现所需要的功能。而硬件协议栈是由微处理器101及硬件协议栈芯片M5500(内含MAC和PHY)直接加网络接口以实现以太网的物理连接,所有处理TCP/IP协议的工作都是通过硬件协议栈芯1041片来完成的,硬件TCP/IP协议栈代替了以往的微处理器(MCU)101来处理这些中断请求,硬件协议栈的加入协助微处理器101处理了几乎所有的TCP/IP协议工作,极大地减少了微处理器101的中断次数,让微处理器101机节省出更多资源,同时也避免了微处理器101受到网络攻击的危险,使得网络攻击不会对微处理器101中的主程序产生影响,增加了微处理器101工作的安全性,但是硬件协议栈芯片是已经集成好的芯片,只能调用,不能让开发者自己改写,所以存在运用上不够灵活的弊端。

电源电路102可以包括DC24V变DC5V隔离电源、DC3.3V稳压芯片、稳压滤波电路以及复位电路,采用隔离电源和稳压芯片两级配合的方式来提高带负载能力和供电的稳定性,从而为微处理器101、电源指示灯103、上端接口拓展电路104、下端接口拓展电路105、转换器状态指示灯106以及存储器107供电,所述复位电路可以利用微处理器101内部自带上电复位模块及软件复位模块实现微处理器101的自动复位和手动复位。电源指示灯103用于指示该通信协议转换器10的电源连接状态,转换器状态指示灯107用于指示该通信协议转换器10的工作状态,包括指示该通信协议转换器10的数据传输速率、TCP连接状态、以太网接口1044的数据收发状态、串行通讯接口1043的数据收发状态以及硬件协议栈芯片1041或软件协议栈芯片1042的连接状态。存储器107可以为EEPROM或FLASH存储器,用于存储微处理器101收发的数据。所述下端接口拓展电路105包括与多个下位机(即子设备)301、302、303、304一一对应通信连接的多个串行通讯接口1051、1052、1053、1054,串行通讯接口1051、1052、1053、1054可以是RS232接口或RS485接口。

本发明的工业控制自动化网络通信协议转换器10的使用方法具体为:打开电源,电源指示灯103亮,通过电源电路102的复位电路进行复位。根据通信要求对切换开关1040进行操作,选择使用硬件协议栈芯片1041或软件协议栈芯片1042,上位机20通过以太网发送TCP/IP协议(即请求数据),该TCP/IP协议经过上端接口拓展电路104传送到微处理器101,为防止数据丢失,微处理器101通过存储器107保存数据,微处理器101完成TCP/IP协议到自由协议的转换后,转换器状态指示灯106亮,转换的自由协议通过下端接口拓展电路105后发送到相应的下位机,下位机响应上位机的请求,反馈的自由协议响应数据通过微处理器101转换为TCP/IP协议,并最终通过上端接口拓展电路104传送至上位机20。其工作原理在于:微处理器101获取上位机20发送的TCP/IP协议指令并转换为自由协议发送给相应的下位机,所述下位机接收到指令后返回特定自由协议的响应指令至微处理器101,微处理器101接收到响应数据后根据现场总线类别的不同,将自由协议转换为标准的ModbusRTU协议发送给上位机进行数据通信以用于现场级控制,或者将自由协议转换为以太网TCP/IP协议发送给上位机进行数据通信以用于远程监控。

因此,请参考图1至图4,本实施例还提供一种上述的工业控制自动化网络通信协议转换器的通信协议转换方法,包括:

步骤1:根据通信要求对所述通信协议转换器10的切换开关1040进行操作,选择使用所述上端接口拓展电路104中的硬件协议栈芯片1041或软件协议栈芯片1052与上位机20通信,具体地包括:

步骤1.1:所述切换开关1040与所述微处理器101的PB0口相连,所述微处理器101通过Key(key)函数检测PB0口状态,例如判断PB0口是否为低电平;

步骤1.2:如果需要满足基本通信要求,则切换开关1040按下、PB0口为低电平,此时使用所述硬件协议栈芯片1041与以太网接口1044来初始化,建立所述上位机20与所述微处理器101之间的通讯,实现两者之间的数据传输,具体地,微处理器101通过硬件协议栈芯片1041的SPI串口写入上位机20传送的TCP/IP数据包,提取出经过协议转换产生的有效协议数据,转换为自由协议后传送到下位机,之后下位机的自由协议响应数据转换为符合TCP/IP协议规格的数据并写入硬件协议栈芯片1041,并传送到上位机20并加以显示,从而完成通信。

步骤1.3:如果通信要求比较高、需要满足特殊功能,则切换开关1040抬起、PB0口为高电平,此时所述微处理器101使用所述软件协议栈芯片1042与以太网接口1044,借助uCOS-II操作系统把自由协议转换成标准的TCP/IP协议,并移植LWIP协议栈进行LWIP初始化,添加所述软件协议栈芯片网关,设置IP地址、子网掩码、网关以及通道号,来实现所述上位机20与所述微处理器101之间的数据传输。

步骤2:所述上位机20通过所述通信协议转换器10向相应的下位机传达请求数据(即命令),请参考图1和图2,该过程具体包括:

步骤2.1:所述上位机10根据所请求的数据通过选择的硬件协议栈芯片1041或软件协议栈芯片1042发送TCP/IP协议至所述通信协议转换器10的微处理器101,具体地,上位机20监控界面发送标准协议查询相应下位机的数据,同时,启动所述上位机20内部的定时器(T1++)进行定时,以检验所述上位机20与所述通信协议转换器10之间的线路是否通畅,若超过所述定时器(T1++)的设定计时,所述上位机20仍未收到所述微处理器101的上传数据,则判定所述上位机20与所述通信协议转换器10之间的线路出现故障,上位机20会在其控制系统的监控界面面板上报错,指示操作人员具体哪个下位机数据传输出现了错误,并可以使上位机重发请求数据。由此可以使得当数据处理出现问题时,能够及时处理,防止出现死机现象。例如当上位机(PC)发送了一条标准协议的请求,由于某种原因,下位机没有收到上位机(PC)发来的数据或者下位机收到数据但没有响应,通过定时器(T1++)的定时,可以避免由于不采取措施而导致上位机有可能一直在等待下位机的响应的死机现象。

步骤2.2:所述微处理器101通过轮询函数convertInit()查询其通道端口是否接收到所述上位机发来的数据,当所述微处理器101接收到所述上位机发送的数据时,通过预设的数据位和校验位判断所述数据是否符合通信协议,本实施例中的符合通信协议的标准自由协议格式图4所示,其中集成多个数据帧,采用特殊字节作为开始和结束,称为标志字节,即起始位(STX)和结束位(ETX),标志字节的位模式出现在数据中时,为了可以使微处理器101根据标志字节找到当前帧的结束位置,所以标准自由协议格式在其数据链路层的起始位(STX)和结束位(ETX)这两个标志字节前,插入一个相同的转义字节基本格式,即标志位(DLE)。该标准自由协议格式的字符均采用16进制;DLE:标志字节(0x10);STX:起始符(0x02);ETX:结束符(0x03);地址,命令,data:如果等于DLE,需再填充一个DLE;校验和:为地址,命令,data的字节和取补。微处理器101通过检验多个数据帧的方法进行数据校验,它可以根据标志字节找到当前帧的结束位置,准确找到数据帧的分界,可以预防多数据量传输过程中可能产生的数据帧重叠或遗漏的问题。由此,当所述微处理器101确定其接收到的数据所述符合通信协议,则执行步骤2.3,若不符合则返回错误信号(即ERROR信号)至所述上位机20,请求所述上位机20重新发送数据。

步骤2.3:所述微处理器101把接收到的TCP/IP协议保存至存储器107并转换为自由协议,并通过所述下端接口拓展电路发送给相应的下位机,具体地,微处理器101执行netconn_accept(Conn)函数保存数据,以防止通信过程中出现的错误以及重要数据丢失,之后释放信号量OSSemPost(记为Semp)执行函数Parse(void*p_arg),将TCP/IP协议重新编码成下位机控制系统所需要的自由协议传输帧,并通过下端接口拓展电路105相应的串行通讯接口将数据发送给对应的下位机的控制系统;同时,微处理器1011启动其内部的定时器(T2++)进行定时,以检验该通信协议转换器10与相应的下位机的控制系统之间的线路是否通畅,若超过定时器(T2++)的设定时间(例如100ms),微处理器101没有收到下位机的响应数据,则向上位机(PC)20报错,上位机20判定为通信协议转换器10与相应的下位机控制系统之间的线路故障,修复故障后进一步使所述下位机重新发送自由协议响应数据。

步骤3:所述下位机返回响应数据至所述上位机,具体包括:

步骤3.1:所述下位机接收到自由协议后进行检验,并根据上位机(PC)20的要求采集响应数据,然后根据特定自由协议形成传输帧,即自由协议响应数据,通过所述下端接口拓展电路105反馈至所述微处理器101。

步骤3.2:所述微处理器101采用堆栈函数EnQueue(&Usart_Data,ch)以堆栈的方法(即循环队列的方法)来进行自有协议响应数据的接收,保证数据不会溢出并且确保了数据的完整性。同时所述微处理器101在数据接收和处理过程中采用中断与查询两种处理方式结合,并将查询处理方式作为中断处理方式的后备,来处理大量数据。具体地,采用定时器2(T2++)和中断函数TIM2_IRQHandler(void)进行中断处理,当所述上位机20发送的数据进入了所述下位机的数据缓冲区后,所述微处理器101进入中断来接收数据,待接收完数据后则继续执行进中断前的程序,如果出现同时来了几组数据的情况,所述微处理器101会根据中断优先级进行判断先接收哪组数据,当进行中断处理过程中不能正常的收发数据时,所述微处理器101开始采用查询的方式,找到出现问题的数据,并开始进行收发处理,从而极大的提高了通信协议转换器10的数据收发效率。例如5ms中断一次,中断过程中保存接收到的数据,以区分一帧数据接收完毕,一帧数据接收完毕后,清零定时器2计数TIM_SetCounter(TIM2,0),为接收下一帧数据做准备。当所述微处理器101在定时器2(T2++)的设定时间内接收到所述自由协议响应数据时,所述微处理器101会判断所述自由协议响应数据是否符合协议规格,若符合则释放信号量OSSemPost(记为Semp1)并执行步骤3.3,若不符合则返回故障信息给所述上位机20,以使所述上位机20知晓所述下位机出现错误并重新发送请求数据。

步骤3.3:微处理器101根据特定自由协议格式内容进行帧格式分解,同时根据现场总线类型(RS232或RS485)判定是否需要远程监控,若需要远程监控,则所述微处理器101通过free_modbusTCP(void*p_arg)函数将自由协议响应数据封装为TCP/IP协议规格,并通过netconn_write(NewConn,send_buff)函数将所述TCP/IP协议写入LWIP协议栈,然后通过所述上端接口扩展电路104的以太网接口1044发送给所述上位机20的远程监控系统;若无需远程监控而需要现场级监控,则所述微处理器101通过free_modbusRTU(void*p_arg)函数将自由协议响应数据转换为ModbusRTU协议规格,并通过所述上端接口扩展电路104的串行通讯接口1043传输给所述上位机20的现场监控系统。由此可以满足操作人员现场级控制或者远距离控制的需求。微处理器101处理多个下位机的响应数据时,会根据数据优先级,将优先级高的下位机的响应数据优先形成ModbusRTU或者为TCP/IP标准协议传达上位机20。

综上所述,本发明的工业控制自动化网络通信协议转换器及其通信转换方法:

1、能够判断通信线路上的故障,实现对数据进行高速度的处理。具体地,本发明在上位机下达请求数据至通信协议转换器的过程中使用定时器(T1++)计时以及在通信协议转换器等待下位机响应过程中使用定时器(T2++)计时,分别检验上位机与通信协议转换器间、通信协议转换器与下位机间的线路是否通畅,从而在数据处理出现问题时,能够及时确定线路故障所在,并指示操作人员及时处理,防止出现死机现象。即上位机发送命令后,定时器(T1++)开始计时,当超过定时器(T1++)设定计时(例如设定100ms)而通信协议转换器无数据上传至上位机时,则判定上位机与通信协议转换器间的线路故障;在通信协议转换器将TCP/IP协议转换形成自由协议后发送给下位机后,定时器(T2++)开始计时,若定时器(T2++)超时(例如设定100ms)而下位机没有返回响应数据,则通信协议转换器向上位机(PC)报错,上位机判定为通信协议转换器与下位机控制系统间的线路故障。

2、能够防止线路上出现紊乱或多个数据同时到达,在高误码率的情况下大大提高通信的可靠性。具体的地,本发明的通信协议转换器的微处理器对接收到的数据采用标志字节以及校验和进行检验,判断起始字节STX和结束字节ETX、转义字节DLE以及校验和,从而预防多数据量传输过程中可能产生的数据帧重叠或遗漏的问题。

3、具有多种转换功能,能够同时满足被控装置与现场设备和远程终端之间的通信需求。具体地,本发明采用了两种协议格式与自有协议之间进行相互转换,即ModbusRTU协议与自由协议的相互转换以及TCP/IP协议与自由协议的相互转换。当需要满足被控装置与现场设备进行通信时,本发明的通信协议转换器可以实现自由协议与ModbusRTU协议直接转换的方法,满足现场控制的需求;当需要满足被控装置与远程终端进行通信时,本发明也可通过协议栈实现自由协议与TCP/IP协议的直接转换,实现远程控制的要求。

4、能够实现运用上的灵活性和单片机资源的最大化。具体地,本发明的通信协议转换器采用了硬件协议栈与软件协议栈相辅相成的设计,在通信要求低的情况下可以采用硬件协议栈实现快速传输数据,而在通信要求比较高、需要满足特殊功能的情况下,就可以按照自己的要求通过对软件协议栈进行编写,实现数据的高效率传输。

5、能够处理大量数据。具体地,本发明的通信协议转换器采取了中断与查询两种处理方式,并且查询处理方式是中断处理方式的后备,当上位机(PC)发送数据进入了下位机的数据缓冲区,单片机进入中断接收数据。由于数据量大,本项目采用了循环队列的方式接收数据,解决了数据溢出的问题。接收完数据后则继续执行进中断前的程序,如果出现同时来了几组数据的情况,微处理器会根据中断优先级进行判断先接收哪组数据。若进行中断处理时,由于数据太多,中断收发数据出现了问题,不能正常的收发数据时,微处理器开始采用查询的方式,找到出现问题的数据,并开始进行收发处理,这种把查询处理方式作为中断处理方式后备的方法,极大的提高了协议转换器的收发效率。

6、能够保证协议转换的稳序进行。本发明的通信协议转换器设置两个信号量:Semp和Semp1,通过两个信号量的挂起和释放来保证协议通讯的过程中函数的执行顺序,即接收到数据之后再调用函数进行协议转换,使协议转换稳序进行。

以上所述仅是本发明的一种实施方式,应当指出,在本发明原理基础之上,做出的任何修改,等同替换等变化,均应包含在本发明保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号