一种基于OPC-UA服务平台的工业无线网络服务适配方法与流程

文档序号:14504510阅读:702来源:国知局
本发明涉及工业控制中无线及有线通信领域,具体地说是一种基于opc-ua服务平台的工业无线网络服务适配方法。
背景技术
:目前,在冶金、石化等生产系统中,人工抄表的现象仍然大量存在。这表明我国流程工业生产过程智能化程度仍然很低,在很多复杂、多环节生产系统中,未能达到细粒度控制。为达到复杂生产系统的细粒度控制以及多环节的协同优化的目的,就要实现多环节生产参数统一采集与控制,各生产过程设备统一组网。可是当前工业生产环境的现状是,现场设备间通信协议不统一,老设备更没有统一的组网接口。将现场仪表全部更换成为具备统一组网接口的新表需要大量人力物力,显然并不现实。因此急需一种支持多种协议通信接口的服务适配仪器,实现将不同工业协议的仪表统一组网的功能。opc-ua是opc基金会发布的最新一代用于工业自动化的数据交换规范,它将以往opc数据存取(da)、opc报警和事件(a&e)以及opc历史数据存取(hda)统一成一个具备数据处理、报警和事件、历史数据存取功能的同时具备很强对象描述能力的地址空间。目前还没有一款集成opc-ua服务平台的用于工业无线网络适配的设备。没有一种统一有效的,能够对modbustcp通信协议、modbusrtu通信协议、wirelesshart通信协议、工业以太网通信协议、工业rs232通信协议、工业rs485通信协议等主流工业通信协议进行描述和配置,同时提供一种能够将各种通信协议关键数据统一上报协议的方法。技术实现要素:针对现有技术的不足,本发明提供一种基于opc-ua服务平台的工业无线网络服务适配方法,支持modbustcp、modbusrtu、wirelesshart、工业以太网tcp、工业以太网udp、rs232数据透明传输、rs485数据透明传输等多种通信协议,并通过opc-ua技术对各种通信协议提供统一的解析、描述与表现,很好地解决了多态网络架构下多协议设备共存的问题与不同工业协议导致的信息孤岛问题。本发明为实现上述目的所采用的技术方案是:一种基于opc-ua服务平台的工业无线网络服务适配方法,首先初始化运行参数并将运行参数保存到共享内存,根据共享内存中各个运行参数初始化各通信端口以及协议工作状态;通信端口和协议在工作时随共享内存中运行参数的改变而重新配置自己工作状态;共享内存中的运行参数通过opc-ua监听方法进行管理。所述通信端口和协议在工作时会随共享内存信息的改变而重新配置自己工作状态包括以下过程:步骤1:判断是否有通信端口接收到报文,如果是,先按照共享内存所配置的协议解析报文,并更新共享内存,读取共享内存区中各个协议和端口运行参数;否则直接读取共享内存区中各个通信端口和协议的运行参数;步骤2:判断运行参数是否发生变化,如果是,则更改通信端口和协议的运行状态,按照协议上传和下发报文,并返回步骤1;否则直接按照协议上传和下发报文,并返回步骤1。所述opc-ua监听方法为:步骤1:将各个运行参数配置到共享内存,并根据运行参数对opc-ua服务平台初始化,开启opc-ua服务器;步骤2:判断客户端是否读取节点,如果是,读取共享内存中各个通信端口或协议的运行参数,返回给客户端,并继续判断客户端是否对节点值进行修改;否则直接判断客户端是否对节点值进行修改;步骤3:如果客户端对节点值进行修改,则对该节点值对应的运行参数进行修改,将修改后的运行参数写入共享内存,并继续监听。所述对opc-ua服务平台初始化包括以下过程:步骤1:配置服务器的基本信息,并生成安全证书;步骤2:调用函数生成各个通信端口控制的对象,并配置对象的属性信息;步骤3:建立从属于对象的子节点,配置各个子节点的属性信息和读写方法,并将子节点的父节点引用指向从属对象,完成子集生成。所述基本信息包括:制造商信息、应用名称信息以及统一资源标识符信息。所述通信端口包括:opc-ua服务器的以太网端口、工业通信以太网端口、rs232端口、rs485端口和无线通信模块端口。所述协议包括:modbustcp通信协议、modbusrtu通信协议、wirelesshart通信协议、工业以太网透明传输协议、rs232透明传输协议、rs485透明传输协议以及适配器数据统一上报协议。所述适配器数据统一上报协议为:如果运行参数“opened”为真,则协议开启,协议对从“receiveprotocol”所代表的协议接收到的报文进行解析;否则不开启协议;判断“ifcmd”是否为真,如果是,协议对接收到的报文进行过滤;否则不进行报文过滤;如果接收报文的运行参数“cmdposition”对应的字节等于“cmdmask”,则表示过滤通过并进行后续判断;否则过滤不通过且丢弃该报文;判断“capture”是否为真,如果是,在接收报文的“dataposition”位置抓取长度为“datalength”的数据,将该数据与用户自定义的“usermark”按照适配器数据统一上报协议格式一起上传;否则将整个报文上传。所述适配器数据统一上报协议格式包括:“opened”、“dataposition”、“datalength”、“receiveprotocol”、“transmissionperiod”、“usermark”、“receiveprotocol”、“ifcmd”、“cmdposition”、“cmdmask”和“capture”。所述适配器数据统一上报协议格式包含的字段从报文开始依次为“deviceid”、“receiveprotocol”、“数据地址”、“ifcmd”、“cmdmask”、“usermark”、“datalength”、“数据值”;“deviceid”长度为4个字节,为系统的设备唯一标识号码;“receiveprotocol”长度为1个字节,用来表示通信协议获取源,其中1代表“modbustcp”;2代表“modbusrtu”;3代表“wirelesshart”;4代表“transethernet”;5代表“transrs232”;6代表“transrs485”;“address”长度为5个字节,代表数据来自于哪个地址,当数据来自于“modbustcp”或者“modbusrtu”时,地址前两个字节代表设备唯一标识符,后两个字节代表modbus协议线圈或者寄存器地址,当数据来自于wirelesshart协议时,5个字节全部代表设备的长地址,在透明传输模式时,此字段没有意义并全为0;“ifcmd”长度为1个字节,代表协议是否进行了报文过滤;“cmdmask”长度为1个字节,是报文过滤字节;“usermask”长度为1个字节,是用户自定义的标识;“datalength”长度为1个字节,表示需要协议从接收报文截取的数据长度;“value”长度为“datalength”的值,是协议所截取的数据。本发明具有以下有益效果及优点:1.本发明包含多种工业通信接口:工业以太网接口、工业rs232接口、工业rs485接口。并且支持多种工业通信协议:modbustcp通信协议、modbusrtu通信协议、wirelesshart通信协议、工业以太网数据透明传输通信协议、rs232数据透明传输通信协议、rs485数据透明传输通信协议。具有很强的工业系统兼容能力;2.本发明系统内部具有opc-ua服务器,对opc-ua技术的使用增强了对各个通信协议的描述以及配置能力。同时方便管理人员对系统的管理,管理人员只需下载opc-ua通用客户端就可以对该服务适配系统进行配置与监控;3.本发明提供一种适配器数据统一上报协议,具有对不同协议数据统一描述以和向上发送的能力,促进不同协议间融合。附图说明图1是本发明的方法流程图;图2是本发明的opc-ua服务器生成各个协议模块以及端口配置模块对象的流程图;图3是本发明的适配器数据统一上报协议格式图。具体实施方式下面结合附图及实施例对本发明做进一步的详细说明。如图1所示为本发明的方法流程图。一种基于opc-ua服务平台的工业无线网络服务适配方法,其内部运行有linux操作系统,并基于linux操作系统提供功能服务;具备一个作为opc-ua服务器的以太网端口,可以通过opc-ua客户端对其进行读取与配置;除了opc-ua以太网端口外,还具备一个工业以太网端口用于与工业以太网设备互联;具备一个rs232端口,用于与rs232设备通信;具备一个rs485端口,用于与rs485设备通信;具备一个无线通信模块端口用于与2.4g无线通信模块互联。还包括一种数据统一上报协议,用于不同协议数据的统一解析及上报。还包括工业通信以太网通信端口,支持modbustcp协议,工业以太网tcp协议以及工业以太网udp协议。还包括工业rs232端口,支持rs232数据透明传输协议。还包括工业rs485端口,支持modbusrtu协议与rs485数据透明传输协议。还包括一个2.4g无线通信模块端口,用于无线数据通信,同时支持wirelesshart通信协议。还包括一个opc-ua服务器,通过opc-ua服务器对上述各个协议的的应用数据提供统一描述和解析,同时对多功能工业网络服务适配系统的运行参数进行查看与配置。系统运行的配置信息按照格式保存在“adapterconfig”文件中。通过调用子线程的方法分别控制工业以太网端口、rs232端口、rs485端口、无线通信模块端口的工作。系统通过opc-ua服务器将各个协议信息向客户端暴露,opc-ua服务器同时提供对系统的配置功能。opc-ua服务器采用共享内存的方式与各个端口进行交互。通过配置对象“adapterunitprotocol”,系统可以将各个协议数据解析为统一格式并且使用被配置的端口向外发送。如图2所示为本发明opc-ua服务器生成各个协议模块以及端口配置模块对象的流程图。其开发工作基于open62541.org网站所提供的“open62541”开源软件开发包。服务器首先配置“制造商”、“应用名称”、“统一资源标识符”等服务器基本信息。然后生成“server_cert.der”安全证书。opc-ua服务器以对象的方式描述每个通信协议信息以及对每个通信端口配置信息,并生成对应的对象,包括:“modbustcp”、“modbusrtu”、“wirelesshart”、“transethernet”、“transrs232”、“transrs485”、“ethernetconfig”、“rs232config”、“rs485config”、“wiaconfig”、“adapterunitprotocol_1”-“adapterunitprotocol_5”。生成这些对象的过程为:首先配置它们的“nodeid”、“description”、“displayname”、“accesslevel”等属性,配置这些对象要调用的读写方法。然后分别以类似的方式配置从属于这些对象的子节点的属性信息及读写方法。这些子节点用于配置和监视各个协议及端口运行状态。并且将这些子节点的父节点引用指向各个对象。各个对象所包含的子节点信息如下各表所示,其中表1为“modbustcp”对象子节点信息,表2为“modbusrtu”对象子节点信息,表3为“wirelesshart”对象子节点信息,表4为“transethernet”对象子节点信息,“transrs232”和“transrs485”对象拥有一样的子节点并且如表5所示,表6列出了“ethernetconfig”对象的子节点信息,“rs232config”、“rs485config”和“wiaconfig”拥有一样的子节点,如表7所示:数据类型子节点名称booleanopenedbooleanhexadecimalint32uploadtimearray/boolean1-9_periodicallyarray/uint161-9_deviceidarray/uint161-9_addressarray/uint161-9_valuearray/byte1-9_variabletypearray/boolean1-9_r/w表1数据类型子节点名称booleanopenedbooleanhexadecimalint32uploadtimearray/boolean1-9_periodicallyarray/uint161-9_deviceidarray/uint161-9_addressarray/uint161-9_valuearray/byte1-9_variabletypearray/boolean1-9_r/w表2表3数据类型子节点名称booleanopenedbooleanhexadecimalbooleantcp/udpuint32transmissionperiodstringcommandtosendstringreceivedmessage表4数据类型子节点名称booleanhexadecimaluint32transmissionperiodstringcommandtosendstringreceivedmessage表5数据类型子节点名称array/bytelocalipaddressarray/byteremoteipaddressuint16localportnumuint16remoteportnumbytetcpserver/tcpclient/tcpoffbooleanudpoff/udpon表6数据类型子节点名称uint32bandratebyteparitybytestopbitsbyteframelength表7如图3所示为本发明适配器数据统一上报协议的报文格式。系统提供了一种将各个协议数据统一描述并上传的功能,对象“adapterunitprotocol_1”到对象“adapterunitprotocol_5”用于对此功能进行描述。这两个对象包含相同的子节点,如表8所示:数据类型子节点名称booleanopeneduint32transmissionperiodbyteusermarkbytereceiveprotocolbooleanifcmduint16cmdpositionbytecmdmaskbooleancapturebytereceiveprotocolbytedatalengthuint16dataposition表8通过配置子节点“opended”为“true”将该功能打开。布尔值“capture”用来指示是否从接收报文中截取数据,当开启时,系统会从“receiveprotocol”对应协议的接收报文中截取某一字段作为发送数据,被截取数据的长度用“datalength”子节点表示,截取数据的位置的值为“dataposition”的值。“ifcmd”、“cmdposition”和“cmdmask”用来添加数据截取的限定条件,即当满足“ifcmd”为true并且接受报文的“cmdposition”位置的值为“cmdmask”的时候才进行数据截取。“transmissionperiod”用来指定发送间隔,“usermark”为单字节的用户自定义标识。发送数据时,帧的前4个字节为系统唯一id号码,第五个字节是“receiveprotocol”的值,其中1代表“modbustcp”;2代表“modbusrtu”;3代表“wirelesshart”;4代表“transethernet”;5代表“transrs232”;6代表“transrs485”。其后“address”长度为5个字节代表数据来自于哪个地址,当数据来自于“modbustcp”或者“modbusrtu”时,地址前两个字节代表设备唯一标识符,后两个字节代表modbus协议线圈或者寄存器地址;当数据来自于wirelesshart协议时,5个字节全部代表设备的长地址。在透明传输模式时,此字段没有意义并全为0。最后的“value”字段为之前获取的数据,其长度取决于“datalength”。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1