CN112688865A - 一种图形化在线建模的opc ua网关的设计方法 - Google Patents
一种图形化在线建模的opc ua网关的设计方法 Download PDFInfo
- Publication number
- CN112688865A CN112688865A CN202011438353.1A CN202011438353A CN112688865A CN 112688865 A CN112688865 A CN 112688865A CN 202011438353 A CN202011438353 A CN 202011438353A CN 112688865 A CN112688865 A CN 112688865A
- Authority
- CN
- China
- Prior art keywords
- data
- opc
- data acquisition
- gateway
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种图形化在线建模的OPC UA网关的设计方法,首先设计OPC UA网关的整体架构,基于JSON格式设计配置文件结构规范;然后设计设备层数据采集模块,模块内置配置文件解析器、集成多种设备层协议、协调管理数据采集任务,获取车间现场设备数据并存储;设计OPC UA服务器模块,实现数据从设备层数据采集模块到OPC UA地址空间节点的映射,最后设计web控制台模块,为用户提供图形化在线建模的OPC UA网关。本发明解决了现有技术中存在的OPC UA信息建模步骤繁琐的问题,实现了原始数据从工业设备到ERP层级的传输,增强了设备或系统间语义的互通性,且具备灵活性与可扩展性。
Description
技术领域
本发明属于工业现场通信技术领域,具体涉及一种图形化在线建模的OPC UA网关的设计方法。
背景技术
在传统制造业制造环节中,工业现场底层设备种类繁多,不同的通信协议使得数据采集和通信系统的统一成为难题,直接影响车间的统一管理。且由于缺乏统一的数控信息模型标准,工业现场存在着大量异构数据,这导致了设备或系统之间语义上不能互通。因此,在工业现场设备之间建立统一规范的通信模式以及统一的语义模型对于车间数字化水平提升尤为重要。OPC UA为不同协议的数据交换提供了一种可靠的解决方案。OPC UA是一种平台无关的面向服务的体系结构,能够实现原始数据和预处理的信息从制造层级到生产计划或ERP层级的传输。OPC UA具有平台独立性,在从嵌入式微控制器到基于云的服务器上都可以运行其全部功能。OPC UA通过会话加密、身份验证和审核跟踪等功能实现其安全性。另外,OPC UA也是一种“面向未来”的架构,新的传输协议、安全算法、编码标准或应用程序服务等创新技术和方法可以方便地整合到OPC UA。
在工业现场有大量的设备并不支持OPC UA功能,当把OPC UA作为主要的通信架构时,这些设备需要一种从原始通信协议到OPC UA协议的中间件来接入通信网络。另外,目前OPC UA信息建模需要使用专门的建模工具来完成,而且建模完成后要经过导出代码并编译等繁琐的步骤之后才可以使用OPC UA服务,便利性较差。
发明内容
本发明的目的是提供一种图形化在线建模的OPC UA网关的设计方法,解决了现有技术中存在的OPC UA信息建模步骤繁琐的问题,实现了原始数据从工业设备到ERP层级的传输,增强了设备或系统间语义的互通性,且具备灵活性与可扩展性。
本发明所采用的技术方案是,一种图形化在线建模的OPC UA网关的设计方法,具体按照以下步骤实施:
步骤1、设计OPC UA网关的整体架构,为管理者提供信息建模与设备配置管理;
步骤2、根据网关功能设计需求,基于JSON格式设计配置文件结构规范;
步骤3、设计设备层数据采集模块,模块内置配置文件解析器、集成多种设备层协议、协调管理数据采集任务,获取车间现场设备数据并存储;
步骤4:设计OPC UA服务器模块,实现数据从设备层数据采集模块到OPC UA地址空间节点的映射,为上层管理系统的查询提供数据服务;
步骤5:设计web控制台模块,为用户提供图形化在线建模的OPC UA网关。
本发明的特点还在于,
步骤1中OPC UA网关的整体架构由三个模块组成:分别为OPC UA服务器、设备层数据采集模块和Web控制台;
设备层数据采集模块集成的多种现场协议驱动对不同设备的数据节点进行采集,数据采集任务被该模块组织成一个任务队列统一进行调度管理,并以用户设置好的频率调用现场协议驱动程序采集设备数据,用户通过Web控制台方便地配置设备层数据采集模块的采集任务;
OPC UA服务器在地址空间中建立用户所需的OPC UA信息模型,将接收的设备层数据采集模块采集的数据映射到地址空间对应节点上,响应边缘层的数据请求命令,在合适的时机对地址空间中的数据进行更新以保证客户端读取到最新数据;
设备层数据采集模块将数据采集任务组织为任务队列并进行轮询,当任务节点符合采集要求时将调用现场协议接口对设备数据进行采集,并发送给OPC UA服务器,设备层数据采集模块集成了包括Modbus-RTU在内的现场协议,支持不同厂商不同协议的设备进行数据交换;
Web控制台用于用户构建OPC UA地址空间中的信息模型、制定数据采集任务以及对网关进行控制,用户构建的信息模型及制定的数据采集任务被转换成JSON格式的网关配置文件,此后网关按照该配置文件进行工作。
步骤2中配置文件包含从数据采集到地址空间构建的全部信息,设备层数据采集模块根据配置文件生成任务队列,包含底层数据采集的详细配置信息,OPC UA网关将根据配置文件生成OPC UA地址空间中的信息模型,包括拓扑结构和节点数据结构。
步骤2具体如下:
配置文件基于JSON格式,OPC UA信息模型和数据采集的底层设备配置信息记录在“AddressSpace”字段,该字段的类型为列表类型,而成员类型为对象类型,每个成员均表示OPC UA地址空间中object文件夹下的一个模型;
每个成员对象均包含“NodeID_IDType”、“NodeID_ID”、“NodeClass”、“ReferenceTypeId”、“BrowseName”和“Description”字段,上述字段与OPC UA地址空间中节点的属性一一对应,这些字段在OPC UA服务器模块中的配置文件解析器进行解析时会被转换为相应的节点属性;
“NodeClass”字段定义了节点类型,其值包括“object”和“Variable”,“Variable”类型的节点包含采集自底层设备的现场数据,具有此值的节点也包含设备层数据采集模块所需要的现场协议配置信息,这些信息被包含在“BottomProtocolType”、“RefreshFrequency”、“MB_MachineAddress”、“MB_FunctionCode”和“MB_RegisterAddress”字段内;
“BottomProtocolType”字段表示底层协议类型;
“RefreshFrequency”字段表示数据采集频率;
还包括列表类型字段“ChildNode”,“ChildNode”字段的每个成员类型为对象节点,表示此节点的子节点,所有节点通过“ChildNode”字段以递归的形式组织为树形结构。
步骤3具体如下:
步骤3.1、设计设备层数据采集模块的配置文件解析器:
配置文件解析器用于读取和解析配置文件,将配置文件中的数据采集任务字段构造为任务队列:首先,打开并读入配置文件,使用cJSON库作为JSON格式的配置文件的解析引擎进行解析;
扫描配置文件中“AddressSpace”字段下的节点,并根据“ChildNode”字段对子节点递归进行扫描,判断“ChildNode”字段是否为“Variable”类型,忽略非“Variable”类型的对象,读取“BottomProtocolType”字段的值,对任务节点分配不同的总线协议接口函数;最后根据“MB_MachineAddress”、“MB_FunctionCode”和“MB_RegisterAddress”字段值为任务节点对应属性赋值,完成任务队列的创建;
步骤3.2、设计数据采集任务轮询机制:
该步骤使用独立的线程执行,将数据采集任务组织成一个任务队列,设置定时器进行计时,每次定时器触发时对一个任务节点进行扫描,判断扫描任务是否符合数据采集条件,对符合数据采集条件的任务调用数据采集接口进行数据采集;
任务队列节点记录数据采集任务的详细信息,包括数据采集接口函数以及与协议相关的配置信息,令成员ProtocolInterface表示数据采集接口函数指针,当网关解析配置文件并生成任务节点时会根据总线协议类型为ProtocolInterface指针赋予对应的数据采集接口函数地址,令成员protocolInfo表示指向协议配置信息结构体的指针,数据采集接口函数根据指针protocolInfo指向的结构体提供的信息对总线配置,令data表示用于储存采集到的数据;
步骤3.3、设计数据采集接口:
任务队列节点中保存实现上述数据采集任务的数据采集接口函数指针ProtocolInterface,函数签名为void ProtocolInterface(void*protocolInfo,void**data),统一的接口设计规范方便匹配不同的现场协议接口函数,不同接口函数在实际调用时才将配置信息结构体进行类型强制转换,使得符合这一设计规范的数据采集接口函数均允许通过该指针被统一调用,实现数据采集接口的通用性和可扩展性;
步骤3.4、集成包括Modbus-RTU在内的工业现场协议:
对于Modbus-RTU协议,基于串口协议封装对Modbus-RTU协议的支持,首先对串口进行初始化操作,包括:将波特率设置为115200;将帧数据长度设置为8位;校验位设置为无校验;停止位设置为1停止位,然后封装Modbus-RTU功能,包括:Modbus数据帧组装功能、Modbus数据帧发送功能、CRC-16/Modbus校验与校验码生成功能、Modbus数据帧接收和解析功能,最后,按照数据采集接口签名的形式封装Modbus的数据采集接口。
步骤3.4具体如下:
步骤3.4.1、网关在生成Modbus协议数据采集的任务节点时会为成员指针变量protocolInfo申请内存,强制转换为ModbusInfoStruct类型的指针后为各成员赋值;
步骤3.4.2、Modbus数据采集接口函数为void Modbus_PollFunc(void*protocolInfo,void**data),与ProtocolInterface具有相同函数签名,方便接入设备层数据采集模块;
步骤3.4.3、Modbus数据采集接口函数将配置信息指针protocolInfo强制转换为struct ModbusInfoStruct*类型;
步骤3.4.5、根据配置信息中的从机ID和寄存器地址进行数据采集,采集到的数据通过指针data返回给设备层数据采集模块。
步骤4具体如下:
步骤4.1、设计OPC UA服务器模块的配置文件解析器:
配置文件解析器用于读取和解析配置文件,将配置文件中的地址空间字段构造为OPC UA地址空间中的信息模型;
扫描配置文件中“AddressSpace”字段下的节点,并根据“ChildNode”字段对子节点递归进行扫描,读取包括“NodeID_IDType”、“NodeID_ID”、“ReferenceTypeId”、“BrowseName”和“Description”在内的字段的值并转换为OPC UA地址空间中节点对应属性的值,读取“ReferenceTypeId”字段的值并由此建立与父节点的引用关系;
步骤4.2、实现OPC UA地址空间节点与设备层数据采集模块任务队列节点的映射关系:
建立一个数据节点的队列用于与设备层数据采集模块任务队列对应来完成节点间的映射关系,在步骤4.1中每个OPC UA地址空间节点被创建后,判断其节点类型是否为“Variable”类型,如果是,那么计算此节点哈希值并入队数据节点队列;
步骤4.3、设计OPC UA服务器:
使用开源的OPC UA协议栈open62541实现一个OPC UA服务器,对功能进行封装,包括:服务器启动功能、服务器关闭功能、从设备层数据采集模块到地址空间节点的数据映射功能、利用客户端数据读取前的回调实现数据更新功能,
当对OPC UA进行数据访问时会触发回调函数,利用此回调函数对服务器端的数据进行更新,使得服务器端在不重复刷新数据的前提下让客户端读取到最新数据,提升系统效率。
步骤5具体如下:
步骤5.1、使用Nginx搭建WEB服务器;
步骤5.2、搭建web控制台前端网页;
步骤5.3、使用mariaDB数据库存储网关配置信息和网关状态信息;
步骤5.4、使用PHP为服务器端编写应用程序,服务器端应用程序的功能包括:对配置文件的本地管理功能;对数据库中网关配置文件索引记录以及网关状态信息的管理;对OPC UA网关程序的启停控制。
本发明的有益效果是,一种图形化在线建模的OPC UA网关的设计方法,连接不同协议的设备并将这些设备的数据映射到OPC UA地址空间,便于边缘服务器、MES和ERP等管理软件以OPC UA协议实现对数据的快速访问,以及实现面向不同协议的设备层设备互联、异构数据的采集与数据模型的统一和不同层级语义互操作性。同时,提供了针对设备与数据的图形化信息建模平台,用户通过Web页面对设备建立信息模型并定义数据映射规则,通过网关将信息模型应用到地址空间,简化建模过程。
附图说明
图1是本发明整体结构示意图;
图2是设备层数据采集模块结构示意图;
图3是web控制台模块的结构示意图;
图4是用户使用web控制台提供的建模工具进行建模时的工作流程图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细说明。
本发明一种图形化在线建模的OPC UA网关的设计方法,具体按照以下步骤实施:
步骤1、设计OPC UA网关的整体架构,为管理者提供信息建模与设备配置管理;
如图1所示,步骤1中OPC UA网关的整体架构由三个模块组成:分别为OPC UA服务器、设备层数据采集模块和Web控制台;
设备层数据采集模块集成的多种现场协议驱动对不同设备的数据节点进行采集,数据采集任务被该模块组织成一个任务队列统一进行调度管理,并以用户设置好的频率调用现场协议驱动程序采集设备数据,用户通过Web控制台方便地配置设备层数据采集模块的采集任务;
OPC UA服务器在地址空间中建立用户所需的OPC UA信息模型,将接收的设备层数据采集模块采集的数据映射到地址空间对应节点上,响应边缘层的数据请求命令,在合适的时机对地址空间中的数据进行更新以保证客户端读取到最新数据;
设备层数据采集模块将数据采集任务组织为任务队列并进行轮询,当任务节点符合采集要求时将调用现场协议接口对设备数据进行采集,并发送给OPC UA服务器,设备层数据采集模块集成了包括Modbus-RTU在内的现场协议,支持不同厂商不同协议的设备进行数据交换;
Web控制台用于用户构建OPC UA地址空间中的信息模型、制定数据采集任务以及对网关进行控制,用户构建的信息模型及制定的数据采集任务被转换成JSON格式的网关配置文件,此后网关按照该配置文件进行工作。
步骤2中配置文件包含从数据采集到地址空间构建的全部信息,设备层数据采集模块根据配置文件生成任务队列,包含底层数据采集的详细配置信息,OPC UA网关将根据配置文件生成OPC UA地址空间中的信息模型,包括拓扑结构和节点数据结构。
步骤2、根据网关功能设计需求,基于JSON格式设计配置文件结构规范;
步骤2具体如下:
配置文件基于JSON格式,OPC UA信息模型和数据采集的底层设备配置信息记录在“AddressSpace”字段,该字段的类型为列表类型,而成员类型为对象类型,每个成员均表示OPC UA地址空间中object文件夹下的一个模型;
每个成员对象均包含“NodeID_IDType”、“NodeID_ID”、“NodeClass”、“ReferenceTypeId”、“BrowseName”和“Description”字段,上述字段与OPC UA地址空间中节点的属性一一对应,这些字段在OPC UA服务器模块中的配置文件解析器进行解析时会被转换为相应的节点属性;
“NodeClass”字段定义了节点类型,其值包括“object”和“Variable”,“Variable”类型的节点包含采集自底层设备的现场数据,具有此值的节点也包含设备层数据采集模块所需要的现场协议配置信息,这些信息被包含在“BottomProtocolType”、“RefreshFrequency”、“MB_MachineAddress”、“MB_FunctionCode”和“MB_RegisterAddress”字段内;
“BottomProtocolType”字段表示底层协议类型;
“RefreshFrequency”字段表示数据采集频率;
还包括列表类型字段“ChildNode”,“ChildNode”字段的每个成员类型为对象节点,表示此节点的子节点,所有节点通过“ChildNode”字段以递归的形式组织为树形结构。
步骤3、设计设备层数据采集模块,模块内置配置文件解析器、集成多种设备层协议、协调管理数据采集任务,获取车间现场设备数据并存储;
步骤3具体如下:
如图2所示,步骤3.1、设计设备层数据采集模块的配置文件解析器:
配置文件解析器用于读取和解析配置文件,将配置文件中的数据采集任务字段构造为任务队列:首先,打开并读入配置文件,使用cJSON库作为JSON格式的配置文件的解析引擎进行解析;
扫描配置文件中“AddressSpace”字段下的节点,并根据“ChildNode”字段对子节点递归进行扫描,判断“ChildNode”字段是否为“Variable”类型,忽略非“Variable”类型的对象,读取“BottomProtocolType”字段的值,对任务节点分配不同的总线协议接口函数;最后根据“MB_MachineAddress”、“MB_FunctionCode”和“MB_RegisterAddress”字段值为任务节点对应属性赋值,完成任务队列的创建;
步骤3.2、设计数据采集任务轮询机制:
该步骤使用独立的线程执行,将数据采集任务组织成一个任务队列,设置定时器进行计时,每次定时器触发时对一个任务节点进行扫描,判断扫描任务是否符合数据采集条件,对符合数据采集条件的任务调用数据采集接口进行数据采集;
任务队列节点记录数据采集任务的详细信息,包括数据采集接口函数以及与协议相关的配置信息,令成员ProtocolInterface表示数据采集接口函数指针,当网关解析配置文件并生成任务节点时会根据总线协议类型为ProtocolInterface指针赋予对应的数据采集接口函数地址,令成员protocolInfo表示指向协议配置信息结构体的指针,数据采集接口函数根据指针protocolInfo指向的结构体提供的信息对总线配置,令data表示用于储存采集到的数据;
步骤3.3、设计数据采集接口:
任务队列节点中保存实现上述数据采集任务的数据采集接口函数指针ProtocolInterface,函数指针ProtocolInterface是数据采集接口具备通用性和可扩展性的关键,函数签名为void ProtocolInterface(void*protocolInfo,void**data),统一的接口设计规范方便匹配不同的现场协议接口函数,不同接口函数在实际调用时才将配置信息结构体进行类型强制转换,使得符合这一设计规范的数据采集接口函数均允许通过该指针被统一调用,实现数据采集接口的通用性和可扩展性;
步骤3.4、集成包括Modbus-RTU在内的工业现场协议:
对于Modbus-RTU协议,基于串口协议封装对Modbus-RTU协议的支持,首先对串口进行初始化操作,包括:将波特率设置为115200;将帧数据长度设置为8位;校验位设置为无校验;停止位设置为1停止位,然后封装Modbus-RTU功能,包括:Modbus数据帧组装功能、Modbus数据帧发送功能、CRC-16/Modbus校验与校验码生成功能、Modbus数据帧接收和解析功能,最后,按照数据采集接口签名的形式封装Modbus的数据采集接口。
步骤3.4具体如下:
步骤3.4.1、网关在生成Modbus协议数据采集的任务节点时会为成员指针变量protocolInfo申请内存,强制转换为ModbusInfoStruct类型的指针后为各成员赋值;
步骤3.4.2、Modbus数据采集接口函数为void Modbus_PollFunc(void*protocolInfo,void**data),与ProtocolInterface具有相同函数签名,方便接入设备层数据采集模块;
步骤3.4.3、Modbus数据采集接口函数将配置信息指针protocolInfo强制转换为struct ModbusInfoStruct*类型;
步骤3.4.5、根据配置信息中的从机ID和寄存器地址进行数据采集,采集到的数据通过指针data返回给设备层数据采集模块。
步骤4:设计OPC UA服务器模块,实现数据从设备层数据采集模块到OPC UA地址空间节点的映射,为上层管理系统的查询提供数据服务;
步骤4具体如下:
步骤4.1、设计OPC UA服务器模块的配置文件解析器:
配置文件解析器用于读取和解析配置文件,将配置文件中的地址空间字段构造为OPC UA地址空间中的信息模型;
扫描配置文件中“AddressSpace”字段下的节点,并根据“ChildNode”字段对子节点递归进行扫描,读取包括“NodeID_IDType”、“NodeID_ID”、“ReferenceTypeId”、“BrowseName”和“Description”在内的字段的值并转换为OPC UA地址空间中节点对应属性的值,读取“ReferenceTypeId”字段的值并由此建立与父节点的引用关系;
步骤4.2、实现OPC UA地址空间节点与设备层数据采集模块任务队列节点的映射关系:
建立一个数据节点的队列用于与设备层数据采集模块任务队列对应来完成节点间的映射关系,在步骤4.1中每个OPC UA地址空间节点被创建后,判断其节点类型是否为“Variable”类型,如果是,那么计算此节点哈希值并入队数据节点队列;
步骤4.3、设计OPC UA服务器:
使用开源的OPC UA协议栈open62541实现一个OPC UA服务器,对功能进行封装,包括:服务器启动功能、服务器关闭功能、从设备层数据采集模块到地址空间节点的数据映射功能、利用客户端数据读取前的回调实现数据更新功能,
当MES和ERP管理软件对OPC UA进行数据访问时会触发回调函数,利用此回调函数对服务器端的数据进行更新,使得服务器端在不重复刷新数据的前提下让客户端读取到最新数据,提升系统效率。
步骤5:设计web控制台模块,为用户提供图形化在线建模的OPC UA网关,如图3~图4所示,
步骤5具体如下:
步骤5.1、使用Nginx搭建WEB服务器;
步骤5.2、搭建web控制台前端网页;
web控制台前端网页提供的功能包括:配置文件的图形化编辑、修改功能;配置文件的创建、应用和删除功能;OPC UA网关的启停功能;OPC UA网关运行状态查询监控功能。
配置文件的编辑功能为用户提供树型组件、文本框和下拉框等工具用于构建信息模型,用户编辑的信息模型被转换为Javascript的对象类型临时保存在浏览器端。当用户保存配置文件时,信息模型对象被转换为JSON格式的字符串发送至服务器端进行本地存储。
用户对配置文件的管理操作包括创建、应用和删除,在用户执行这些命令后,浏览器端程序将命令发送给服务器端,由服务器端对数据库中相应记录进行操作。
步骤5.3、使用mariaDB数据库存储网关配置信息和网关状态信息;
步骤5.4、使用PHP为服务器端编写应用程序,服务器端应用程序的功能包括:对配置文件的本地管理功能;对数据库中网关配置文件索引记录以及网关状态信息的管理;对OPC UA网关程序的启停控制。
首先在mariaDB数据库中创建两张表,分别为“GetawayInfo”和“ConfigFiles”,分别用于存储网关状态信息和配置文件索引信息。服务器端程序对来自浏览器端的配置文件操作命令在数据库中进行操作以使命令生效。当浏览器端新建一个配置文件时,服务器端在表“ConfigFiles”中插入一条对应的索引记录,并在本地创建一个配置文件。当浏览器端删除一个配置文件时,服务器端将对应的索引记录和文件删除。OPC UA网关的运行状态被间隔地写入“GetawayInfo”表中,当浏览器端发来状态读取命令时,由服务器端程序从此表中读取并返回给浏览器端程序。
用户使用web控制台提供的建模工具进行建模时的工作流程图见图4所示。
Claims (8)
1.一种图形化在线建模的OPC UA网关的设计方法,其特征在于,具体按照以下步骤实施:
步骤1、设计OPC UA网关的整体架构,为管理者提供信息建模与设备配置管理;
步骤2、根据网关功能设计需求,基于JSON格式设计配置文件结构规范;
步骤3、设计设备层数据采集模块,模块内置配置文件解析器、集成多种设备层协议、协调管理数据采集任务,获取车间现场设备数据并存储;
步骤4:设计OPC UA服务器模块,实现数据从设备层数据采集模块到OPC UA地址空间节点的映射,为上层管理系统的查询提供数据服务;
步骤5:设计web控制台模块,为用户提供图形化在线建模的OPC UA网关。
2.根据权利要求1所述的一种图形化在线建模的OPC UA网关的设计方法,其特征在于,所述步骤1中OPC UA网关的整体架构由三个模块组成:分别为OPC UA服务器、设备层数据采集模块和Web控制台;
设备层数据采集模块集成的多种现场协议驱动对不同设备的数据节点进行采集,数据采集任务被该模块组织成一个任务队列统一进行调度管理,并以用户设置好的频率调用现场协议驱动程序采集设备数据,用户通过Web控制台方便地配置设备层数据采集模块的采集任务;
OPC UA服务器在地址空间中建立用户所需的OPC UA信息模型,将接收的设备层数据采集模块采集的数据映射到地址空间对应节点上,响应边缘层的数据请求命令,在合适的时机对地址空间中的数据进行更新以保证客户端读取到最新数据;
设备层数据采集模块将数据采集任务组织为任务队列并进行轮询,当任务节点符合采集要求时将调用现场协议接口对设备数据进行采集,并发送给OPC UA服务器,设备层数据采集模块集成了包括Modbus-RTU在内的现场协议,支持不同厂商不同协议的设备进行数据交换;
Web控制台用于用户构建OPC UA地址空间中的信息模型、制定数据采集任务以及对网关进行控制,用户构建的信息模型及制定的数据采集任务被转换成JSON格式的网关配置文件,此后网关按照该配置文件进行工作。
3.根据权利要求2所述的一种图形化在线建模的OPC UA网关的设计方法,其特征在于,所述步骤2中配置文件包含从数据采集到地址空间构建的全部信息,设备层数据采集模块根据配置文件生成任务队列,包含底层数据采集的详细配置信息,OPC UA网关将根据配置文件生成OPC UA地址空间中的信息模型,包括拓扑结构和节点数据结构。
4.根据权利要求3所述的一种图形化在线建模的OPC UA网关的设计方法,其特征在于,所述步骤2具体如下:
配置文件基于JSON格式,OPC UA信息模型和数据采集的底层设备配置信息记录在“AddressSpace”字段,该字段的类型为列表类型,而成员类型为对象类型,每个成员均表示OPC UA地址空间中object文件夹下的一个模型;
每个成员对象均包含“NodeID_IDType”、“NodeID_ID”、“NodeClass”、“ReferenceTypeId”、“BrowseName”和“Description”字段,上述字段与OPC UA地址空间中节点的属性一一对应,这些字段在OPC UA服务器模块中的配置文件解析器进行解析时会被转换为相应的节点属性;
“NodeClass”字段定义了节点类型,其值包括“object”和“Variable”,“Variable”类型的节点包含采集自底层设备的现场数据,具有此值的节点也包含设备层数据采集模块所需要的现场协议配置信息,这些信息被包含在“BottomProtocolType”、“RefreshFrequency”、“MB_MachineAddress”、“MB_FunctionCode”和“MB_RegisterAddress”字段内;
“BottomProtocolType”字段表示底层协议类型;
“RefreshFrequency”字段表示数据采集频率;
还包括列表类型字段“ChildNode”,“ChildNode”字段的每个成员类型为对象节点,表示此节点的子节点,所有节点通过“ChildNode”字段以递归的形式组织为树形结构。
5.根据权利要求4所述的一种图形化在线建模的OPC UA网关的设计方法,其特征在于,所述步骤3具体如下:
步骤3.1、设计设备层数据采集模块的配置文件解析器:
配置文件解析器用于读取和解析配置文件,将配置文件中的数据采集任务字段构造为任务队列:首先,打开并读入配置文件,使用cJSON库作为JSON格式的配置文件的解析引擎进行解析;
扫描配置文件中“AddressSpace”字段下的节点,并根据“ChildNode”字段对子节点递归进行扫描,判断“ChildNode”字段是否为“Variable”类型,忽略非“Variable”类型的对象,读取“BottomProtocolType”字段的值,对任务节点分配不同的总线协议接口函数;最后根据“MB_MachineAddress”、“MB_FunctionCode”和“MB_RegisterAddress”字段值为任务节点对应属性赋值,完成任务队列的创建;
步骤3.2、设计数据采集任务轮询机制:
该步骤使用独立的线程执行,将数据采集任务组织成一个任务队列,设置定时器进行计时,每次定时器触发时对一个任务节点进行扫描,判断扫描任务是否符合数据采集条件,对符合数据采集条件的任务调用数据采集接口进行数据采集;
任务队列节点记录数据采集任务的详细信息,包括数据采集接口函数以及与协议相关的配置信息,令成员ProtocolInterface表示数据采集接口函数指针,当网关解析配置文件并生成任务节点时会根据总线协议类型为ProtocolInterface指针赋予对应的数据采集接口函数地址,令成员protocolInfo表示指向协议配置信息结构体的指针,数据采集接口函数根据指针protocolInfo指向的结构体提供的信息对总线配置,令data表示用于储存采集到的数据;
步骤3.3、设计数据采集接口:
任务队列节点中保存实现上述数据采集任务的数据采集接口函数指针ProtocolInterface,函数签名为void ProtocolInterface(void*protocolInfo,void**data),统一的接口设计规范方便匹配不同的现场协议接口函数,不同接口函数在实际调用时才将配置信息结构体进行类型强制转换,使得符合这一设计规范的数据采集接口函数均允许通过该指针被统一调用,实现数据采集接口的通用性和可扩展性;
步骤3.4、集成包括Modbus-RTU在内的工业现场协议:
对于Modbus-RTU协议,基于串口协议封装对Modbus-RTU协议的支持,首先对串口进行初始化操作,包括:将波特率设置为115200;将帧数据长度设置为8位;校验位设置为无校验;停止位设置为1停止位,然后封装Modbus-RTU功能,包括:Modbus数据帧组装功能、Modbus数据帧发送功能、CRC-16/Modbus校验与校验码生成功能、Modbus数据帧接收和解析功能,最后,按照数据采集接口签名的形式封装Modbus的数据采集接口。
6.根据权利要求5所述的一种图形化在线建模的OPC UA网关的设计方法,其特征在于,所述步骤3.4具体如下:
步骤3.4.1、网关在生成Modbus协议数据采集的任务节点时会为成员指针变量protocolInfo申请内存,强制转换为ModbusInfoStruct类型的指针后为各成员赋值;
步骤3.4.2、Modbus数据采集接口函数为void Modbus_PollFunc(void*protocolInfo,void**data),与ProtocolInterface具有相同函数签名,方便接入设备层数据采集模块;
步骤3.4.3、Modbus数据采集接口函数将配置信息指针protocolInfo强制转换为struct ModbusInfoStruct*类型;
步骤3.4.5、根据配置信息中的从机ID和寄存器地址进行数据采集,采集到的数据通过指针data返回给设备层数据采集模块。
7.根据权利要求6所述的一种图形化在线建模的OPC UA网关的设计方法,其特征在于,所述步骤4具体如下:
步骤4.1、设计OPC UA服务器模块的配置文件解析器:
配置文件解析器用于读取和解析配置文件,将配置文件中的地址空间字段构造为OPCUA地址空间中的信息模型;
扫描配置文件中“AddressSpace”字段下的节点,并根据“ChildNode”字段对子节点递归进行扫描,读取包括“NodeID_IDType”、“NodeID_ID”、“ReferenceTypeId”、“BrowseName”和“Description”在内的字段的值并转换为OPC UA地址空间中节点对应属性的值,读取“ReferenceTypeId”字段的值并由此建立与父节点的引用关系;
步骤4.2、实现OPC UA地址空间节点与设备层数据采集模块任务队列节点的映射关系:
建立一个数据节点的队列用于与设备层数据采集模块任务队列对应来完成节点间的映射关系,在步骤4.1中每个OPC UA地址空间节点被创建后,判断其节点类型是否为“Variable”类型,如果是,那么计算此节点哈希值并入队数据节点队列;
步骤4.3、设计OPC UA服务器:
使用开源的OPC UA协议栈open62541实现一个OPC UA服务器,对功能进行封装,包括:服务器启动功能、服务器关闭功能、从设备层数据采集模块到地址空间节点的数据映射功能、利用客户端数据读取前的回调实现数据更新功能,
当对OPC UA进行数据访问时会触发回调函数,利用此回调函数对服务器端的数据进行更新,使得服务器端在不重复刷新数据的前提下让客户端读取到最新数据,提升系统效率。
8.根据权利要求7所述的一种图形化在线建模的OPC UA网关的设计方法,其特征在于,所述步骤5具体如下:
步骤5.1、使用Nginx搭建WEB服务器;
步骤5.2、搭建web控制台前端网页;
步骤5.3、使用mariaDB数据库存储网关配置信息和网关状态信息;
步骤5.4、使用PHP为服务器端编写应用程序,服务器端应用程序的功能包括:对配置文件的本地管理功能;对数据库中网关配置文件索引记录以及网关状态信息的管理;对OPCUA网关程序的启停控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011438353.1A CN112688865B (zh) | 2020-12-10 | 2020-12-10 | 一种图形化在线建模的opc ua网关的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011438353.1A CN112688865B (zh) | 2020-12-10 | 2020-12-10 | 一种图形化在线建模的opc ua网关的设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112688865A true CN112688865A (zh) | 2021-04-20 |
CN112688865B CN112688865B (zh) | 2022-09-02 |
Family
ID=75447659
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011438353.1A Active CN112688865B (zh) | 2020-12-10 | 2020-12-10 | 一种图形化在线建模的opc ua网关的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112688865B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113868306A (zh) * | 2021-08-31 | 2021-12-31 | 云南昆钢电子信息科技有限公司 | 一种基于opc-ua规范的数据建模系统和方法 |
CN114201088A (zh) * | 2021-11-12 | 2022-03-18 | 南京航空航天大学 | 一种基于在线配置的opcua协议转换方法 |
CN114691117A (zh) * | 2022-04-21 | 2022-07-01 | 机械工业仪器仪表综合技术经济研究所 | 一种边缘控制器软件快速开发方法 |
CN114780326A (zh) * | 2022-04-27 | 2022-07-22 | 镁佳(北京)科技有限公司 | 一种跨平台标定测试方法、装置及设备 |
CN115086362A (zh) * | 2022-05-18 | 2022-09-20 | 中国科学院沈阳自动化研究所 | 异构边缘设备多种复杂模式下的智能传输控制方法 |
WO2022262465A1 (zh) * | 2021-06-18 | 2022-12-22 | 重庆邮电大学工业互联网研究院 | 基于opc ua的时间敏感网络集中用户配置方法及系统 |
WO2022267358A1 (zh) * | 2021-06-24 | 2022-12-29 | 昆山罗亿智能科技有限公司 | 一种零代码配置的工业设备数据采集系统 |
CN115562869A (zh) * | 2022-10-19 | 2023-01-03 | 慧之安信息技术股份有限公司 | 一种基于键值对结构opcua client管理的方法和系统 |
CN115639997A (zh) * | 2022-10-19 | 2023-01-24 | 慧之安信息技术股份有限公司 | Json格式描述opc ua信息模型的方法和系统 |
CN116962546A (zh) * | 2023-05-31 | 2023-10-27 | 索提斯云智控科技(上海)有限公司 | 一种应用于边缘网关设备的系统 |
CN117194278A (zh) * | 2023-11-08 | 2023-12-08 | 新华三网络信息安全软件有限公司 | 设备命令管理方法、装置、存储介质及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106773978A (zh) * | 2016-12-28 | 2017-05-31 | 武汉科技大学 | 一种基于opc ua协议的设备数据采集系统 |
CN110708240A (zh) * | 2019-09-26 | 2020-01-17 | 机械工业仪器仪表综合技术经济研究所 | 基于opc ua的物联网通用网关 |
WO2020111309A1 (ko) * | 2018-11-28 | 2020-06-04 | 전자부품연구원 | 오토메이션엠엘기반의 오피씨유에이환경구축을 위한 데이터파싱 및 구성방법 |
WO2020135968A1 (en) * | 2018-12-28 | 2020-07-02 | Siemens Aktiengesellschaft | A gateway and method for transforming a description of an industrial process equipment into a data information model |
CN111556163A (zh) * | 2020-05-13 | 2020-08-18 | 常熟瑞特电气股份有限公司 | 基于opc ua的多传输协议设备监控系统 |
CN111556074A (zh) * | 2020-05-13 | 2020-08-18 | 常熟瑞特电气股份有限公司 | 基于opc ua的通信协议配置方法及装置 |
CN111756626A (zh) * | 2020-06-03 | 2020-10-09 | 西安交通大学 | 一种基于opc ua的产线边缘设备纵向集成网关及其实现方法 |
-
2020
- 2020-12-10 CN CN202011438353.1A patent/CN112688865B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106773978A (zh) * | 2016-12-28 | 2017-05-31 | 武汉科技大学 | 一种基于opc ua协议的设备数据采集系统 |
WO2020111309A1 (ko) * | 2018-11-28 | 2020-06-04 | 전자부품연구원 | 오토메이션엠엘기반의 오피씨유에이환경구축을 위한 데이터파싱 및 구성방법 |
WO2020135968A1 (en) * | 2018-12-28 | 2020-07-02 | Siemens Aktiengesellschaft | A gateway and method for transforming a description of an industrial process equipment into a data information model |
CN110708240A (zh) * | 2019-09-26 | 2020-01-17 | 机械工业仪器仪表综合技术经济研究所 | 基于opc ua的物联网通用网关 |
CN111556163A (zh) * | 2020-05-13 | 2020-08-18 | 常熟瑞特电气股份有限公司 | 基于opc ua的多传输协议设备监控系统 |
CN111556074A (zh) * | 2020-05-13 | 2020-08-18 | 常熟瑞特电气股份有限公司 | 基于opc ua的通信协议配置方法及装置 |
CN111756626A (zh) * | 2020-06-03 | 2020-10-09 | 西安交通大学 | 一种基于opc ua的产线边缘设备纵向集成网关及其实现方法 |
Non-Patent Citations (2)
Title |
---|
SALVATORE CAVALIERI: "Mapping OPC UA AddressSpace to OCF Resource Model", 《2018 IEEE INDUSTRIAL CYBER-PHYSICALSYSTEMS(ICPS)》 * |
柏继华: "基于OPC UA协议的数据采集系统设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022262465A1 (zh) * | 2021-06-18 | 2022-12-22 | 重庆邮电大学工业互联网研究院 | 基于opc ua的时间敏感网络集中用户配置方法及系统 |
WO2022267358A1 (zh) * | 2021-06-24 | 2022-12-29 | 昆山罗亿智能科技有限公司 | 一种零代码配置的工业设备数据采集系统 |
CN113868306A (zh) * | 2021-08-31 | 2021-12-31 | 云南昆钢电子信息科技有限公司 | 一种基于opc-ua规范的数据建模系统和方法 |
CN114201088A (zh) * | 2021-11-12 | 2022-03-18 | 南京航空航天大学 | 一种基于在线配置的opcua协议转换方法 |
CN114691117A (zh) * | 2022-04-21 | 2022-07-01 | 机械工业仪器仪表综合技术经济研究所 | 一种边缘控制器软件快速开发方法 |
CN114691117B (zh) * | 2022-04-21 | 2024-04-26 | 机械工业仪器仪表综合技术经济研究所 | 一种边缘控制器软件快速开发方法 |
CN114780326A (zh) * | 2022-04-27 | 2022-07-22 | 镁佳(北京)科技有限公司 | 一种跨平台标定测试方法、装置及设备 |
CN114780326B (zh) * | 2022-04-27 | 2023-03-24 | 镁佳(北京)科技有限公司 | 一种跨平台标定测试方法、装置及设备 |
CN115086362B (zh) * | 2022-05-18 | 2023-08-18 | 中国科学院沈阳自动化研究所 | 异构边缘设备多种复杂模式下的智能传输控制方法 |
CN115086362A (zh) * | 2022-05-18 | 2022-09-20 | 中国科学院沈阳自动化研究所 | 异构边缘设备多种复杂模式下的智能传输控制方法 |
CN115639997A (zh) * | 2022-10-19 | 2023-01-24 | 慧之安信息技术股份有限公司 | Json格式描述opc ua信息模型的方法和系统 |
CN115639997B (zh) * | 2022-10-19 | 2023-10-03 | 慧之安信息技术股份有限公司 | Json格式描述opc ua信息模型的方法和系统 |
CN115562869B (zh) * | 2022-10-19 | 2024-02-06 | 慧之安信息技术股份有限公司 | 一种基于键值对结构opcua client管理的方法和系统 |
CN115562869A (zh) * | 2022-10-19 | 2023-01-03 | 慧之安信息技术股份有限公司 | 一种基于键值对结构opcua client管理的方法和系统 |
CN116962546A (zh) * | 2023-05-31 | 2023-10-27 | 索提斯云智控科技(上海)有限公司 | 一种应用于边缘网关设备的系统 |
CN117194278A (zh) * | 2023-11-08 | 2023-12-08 | 新华三网络信息安全软件有限公司 | 设备命令管理方法、装置、存储介质及电子设备 |
CN117194278B (zh) * | 2023-11-08 | 2024-02-23 | 新华三网络信息安全软件有限公司 | 设备命令管理方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112688865B (zh) | 2022-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112688865B (zh) | 一种图形化在线建模的opc ua网关的设计方法 | |
CN108809972B (zh) | 基于开源生态系统的物联网综合实验及应用开发平台 | |
EP3709227B1 (en) | System and method for interoperable communication of an automation system component with multiple information sources | |
US8365195B2 (en) | Systems and methods for generating sets of model objects having data messaging pipes | |
US9134971B2 (en) | Extensible device object model | |
CN106980560B (zh) | 一种基于icd数据库多总线协议测试及仿真方法和平台 | |
EP3502896A1 (en) | Generation of an adapters configuration user interface | |
CN103336813A (zh) | 一种基于中间件架构的物联网数据集成管理方案 | |
US20120089931A1 (en) | Lightweight operation automation based on gui | |
US6327698B1 (en) | Method for integrating models in a modelling tool into an object oriented repository | |
CN112287114A (zh) | 一种知识图谱服务处理方法和装置 | |
US20090063395A1 (en) | Mapping log sets between different log analysis tools in a problem determination environment | |
CN114254606A (zh) | 微服务框架模型 | |
CN116340269A (zh) | 一种基于ElasticSearch的Flink任务日志实时采集与检索方法 | |
CN105824944A (zh) | 一种基于脚本语言的xml配置数据维护方法及系统 | |
CN107222575A (zh) | 实现工控设备间opc通信的方法 | |
US7802235B2 (en) | System and method for tracing and/or evaluating the exchange of information | |
CN102999329A (zh) | 基于可扩展标记语言映射配置的活动目录接口开发方法 | |
Kulscár et al. | Bringing Clouds down to Earth: Modeling Arrowhead Deployments via Eclipse Vorto. | |
CN111711695A (zh) | 一种基于云平台式的分布式设备管理系统 | |
CN101968747B (zh) | 一种机群应用管理系统及其应用管理方法 | |
CN115758731B (zh) | 一种先进航空电子体系架构建模工具 | |
CN114816579B (zh) | 一种基于工业互联网平台的SaaS化工业APP接入方法 | |
WO2010119628A1 (ja) | 環境情報集計システム及び方法 | |
CN113032709B (zh) | 一种信息模型的设置方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |