1 引言—— netIC IOT
近年来,随着工业4.0、万物互联时代的来临,越来越多的设备制造商和工业设备终端用户都纷纷进行“互联网+制造业”的大转型。通过充分利用信息通讯技术和网络空间虚拟系统——信息物理系统(CPS)相结合的手段,将制造业向智能化转型。其中,实现工业自动化物联网通讯是必不可少的一个环节,而设备是工业物联网互联互通的基础元素,所以设备上云将成为其最具先导性的一个突破点[1]。
工业设备上云更多的是依赖无形的“数据驱动”要素,进行大数据处理,以及数据之间的关联性分析。然而,设备上云不仅仅是采集和存储设备的过程数据,以实现预测性维护,从数据全面性来说,更重要的是,能够充分汇聚设备的状态数据、生产中的工艺过程数据、质量检验数据,实现整个生产过程中运营数据的整体贯通和连接。将关键过程数据与企业管理流程相结合,利用数据洞察企业管理问题,在一定程度上降低生产成本和能耗,并提高效率和质量,提升企业经营的精细化管理[2]。
在技术层面上,需要建立一个从现场设备到管理层一致的面向对象的数据模型,并且设备上云迫切需要解决工业协议多、接口难统一这一实际问题。德国赫优讯针对这一难题,推出设备级物联网产品 netIC IOT,一款用于现场设备的智能多协议模块,通过 OPC UA 和MQTT 实现 IoT 通讯,并与实施以太网通讯并行,采用独立于协议的对象接口进行应用程序德国赫优讯自动化系统有限公司的开发,定制化的设备描述文件和源代码,可无缝集成到用户的应用中。netIC IOT 的整体应用系统如图1所示。
图1 开发实例系统
2 物联网通讯协议
2.1 OPC UA
OPC UA 是一套集信息模型定义、服务与通讯标准为一体的标准化技术框架,其中OPC是用于过程控制的 OLE (OLE for Process Control)技术,是由 OPC 基金会组织管理、用于工业通讯的标准。OPC UA 作为一种面向服务的通信协议,目的是使工业化通讯有据可循,可以理解为一个 UA 服务端和 UA 客户端的实时数据库框架。UA 服务端负责数据管理与逻辑运算,并通过 OPC UA 通讯协议对 UA 客户端程序提供相应的数据与服务[3]。UA服务端既可以是可编程逻辑控制器 (PLC)、I/O 控制器或传感器等设备上二次开发的应用程序,也可以是 MES、SCADA 等物联网应用平台。UA 客户端是 UA 服务端进行通讯的系统或设备,可以是 ERP 系统、大数据平台、物联网系统,也可以是任意物联网设备[4]。OPC UA 整体架构如图2所示。
图2 OPC UA 整体架构
为打通异构信息系统集成的信息渠道,实现数据的互联互通和无缝传递,OPC UA 技术需具备独立于平台、可伸缩性、高度可利用性、可植入因特网服务等特点,不但可实现独立于各大设备制造商,还独立于各个主流操作系统,并支持多种编程语言实现软件应用开发。
OPC UA 作为物联网通讯协议有以下几大优势[5]:
(1) 不仅实现原始数据采集,还采用基于语义和面向服务的统一架构和模式;
(2) 支持跨平台应用,可扩展且设计数据传输安全(TLS);
(3) 支持设备之间的互操作性;
(4) 可轻松集成到现有 IT 网络中;
(5) 配置和维护更加方便。
2.2 MQTT
MQTT 协议(MessageQueuingTelemetryTransport),即遥信消息队列传输,是一种轻量级基于代理的发布/订阅消息的传输协议,其设计思想是开放、简单、轻量、易于实现,适合在宽带、计算和处理能力受限的环境下工作。MQTT 协议采用客户端-服务器的基本结构,基于主题订阅/消息发布进行消息传输,使通信的参与者在空间、时间和控制流上完全解耦,在轻松实现拓扑结构扩展的同时,保留了实时的特性以及服务质量的可配置性[6]。所以,MQTT 是适合物联网场景的通讯协议,其协议架构如图3所示。
图3 MQTT 协议架构
MQTT协议作为物联网通讯有以下特点[7]:
(1)传输消耗少,最短的消息只有两个字节,可实现最大程度的降低网络负载;
(2)协议简单、开放、易于实现,MQTT 协议采用订阅/发布的消息模式,提供从 1
到 n 的消息转发,降低通信双方的耦合度;
(3)为不同的场景提供三个级别的消息传输服务质量;
(4)MQTT 的遗嘱机制使得客户端在发生异常连接中断时,相关终端可以接收到本
客户端的遗嘱消息。
2.3 netIC IOT 集成物联网通讯
图4 netIC IOT的工作机制
参见图4所示的netIC IOT的工作机制,工业 4.0 与 IoT 一个关键的需求是通过 IoT 通讯从现场设备传输信息至云端,netIC IOT就是如此定位的,过程数据及服务数据已经预定义在抽象对象中,因此能够转换成通讯模块中的信息。除了实时以太网协议栈,支持 IoT 通讯的 netIC IOT 还集成了 OPC UA 服务器以及 MQTT 客户端。OPC UA 或 MQTT 连接将建立在同一根线缆上与实时以太网通讯并行的TCP/IP 通道,不会影响 PLC 运行。在工厂自动化中,将现场设备连接至云端提升了安全机制的重要性。除了 IT 架构的标准安全,系统设计人员必须考虑用于现场设备及控制的信息安全概念。netIC IOT 在技术上更进了一步,设备制造商可以通过 SPI 连接 TPM(Trusted Platform Module)信息安全芯片,从而能够增强 netIC 额外的安全机制,如“安全启动”。
3 netIC IOT 系统设计
图5 netPROXY 工作机制
netPROXY 工作机制参见图5所示。netIC IOT基于netPROXY框架面向应用程序开发,采用netXStudio开发工具进行配置。netPROXY 为设备开发提供了一整套基于对象的框架,具有统一的、独立于协议的主机接口。netXStudio 配置工具采用自上而下的设计原则,有利于开发人员在开发界面管理程序。
3.1 netPROXY 框架
每种网络系统都提供特定的服务,这些服务需要用户移植进他的应用中。这需要对每种
系统的功能都具有很深的了解,并且在应用软件中对于每种新的网络需要花费额外的精力。
这就是 netPROXY 技术旨在解决的问题。
netPROXY 的基本思想是在应用和通讯间建立一个面向设备的对象接口与服务接口。这一抽象层能够隐藏不同协议 API 的复杂性,使用一些简单的服务即可实现周期与非周期数据交换。用户只需在他的应用中移植这个通用对象接口,netPROXY 根据相应的网络服务自动记录对象,因此能够开发完全独立于任何网络特定需求的应用,最终实现一个真正的多协议设备。netPROXY 提供了一个对象模型作为服务或数据的通用抽象层,为产品开发提供了一个基于对象的框架,有助于显著降低处理多个协议栈项目的开发成本。可以将 netPROXY视为用户应用程序和协议堆栈之间的中间层,图 4 显示了有没有采用 netPROXY技术的差别,右侧可看出 netPROXY 如何在具有透明对象模型的协议栈之上建立应用程序抽象层。
netPROXY 技术旨在实现在不同协议栈上层用户应用程序开发过程中的协同作用,通过这种方式,netX 自动化平台的主要优势体现在不仅可以在硬件方面使用 netX 处理器,还可以在不同通讯系统中再次使用应用软件。
3.2 netX Studio 工程工具
图6 netX Studio 配置界面
netX Studio 配置界面参见图6所示。net Studio Basic/Engineering Tool 是一款基于Eclipse的设备开发工具,可实现以下功能:定义对象及映射关系、配置设备、生成设备描述文件、装载设备文件及Firmware等。netX Studio 工具根据“模块化设计原理”运行,经过一次创建的模块可以重复使用,一次创建的对象定义以及整个对象库可以在不同类型的应用程序中应用,对象的定义对整个产品系列都有效。如果以自己的用户对象形式定义设备的属性,则可以根据预设的产品设计和组合,将对象库中的对象或预定义的标准对象以任何变量的形式组合在不同的应用程序中,规划一套自己的产品系列。一次定义的对象,可以反复使用在新产品中。例如,在为温度传感器创建值、状态和操作模式作为元素的对象,可用
于具有不同功能范围的设备。
3.3 netIC IOT 设计原理
netIC IOT 通信模块集成到主机系统中需要相应的硬件组件和软件API接口,采用netXStudio 进行开发。在开发 netIC IOT 模块时,需要进行的操作主要分为硬件设计和软件设计,如图7所示。
图7 netICIOT 开发原理
3.3.1 硬件设计
netIC IOT 模块的硬件接口灵活,提供了不同的功能,通过 netXStudio 工程工具就能轻松实现,主要步骤如下:
(1) 创建对象库的定义
以手动创建对象为例,点击 Object Model→User→input data,右键 input data→ New Object,如图8所示。
图8 创建一个新的对象
需对所创建的对象进行命名,本文对其命名为 Sensor-simple,对其进行设置。一般情况下,对于新创建的对象,需要设置其基本属性和设备的元素。在 Properties 配置中,需定义对象的 Identifier、Name、Description、Version、Type name、Labels,客户可根据自己的具体应用对其进行设置。
设置对象的 Elements,点击右侧的 Add 按钮添加一个新的元素,如图9所示。
图9 添加对象元素
对于 Attributes 来说正是体现了 netPROXY 的工作机制,面向对象的原理,独立于协议栈,可通过多种方式(Peripherals、Application、Network)实现通讯设置,分别参见图10、图11所示。
图10 通讯属性设置原理
图11 Attributes 选择
(2)通讯设置
图12 通讯设置
参见图12所示,在netXStudio配置工具中,选择通信系统(协议)创建的每个应用程序的变量,需要单独地执行通信设置。除了通过实时以太网进行网络通讯外,还可以执行物联网通讯设置,通过WebServer,OPC UA或MQTT配置对对象数据的访问。对于已添加的通讯设置,每个应用程序变量都会显示在“Connections”编辑器中,根据已添加的对象,将设备的属性在通讯模型中显示出来,包括相应的数据类型,根据通讯路径,设定该数据被映射到输入输出数据。因此,在应用程序变量的 I/O 数据映射视图中,显示该应用程序变量的循环通讯设置,以及其功能范围和相应的设备属性。
在配置EthernNet/IP和PROFINET通讯过程中,也可以实现将对象数据映射到非周期
网络通讯。在EtherNet/IP中通过Explicit Messaging配置,在 PROFINET中通过Acyclic Data Exchange 来配置。
(3)产品和供应商信息设置;
netX Studio 配置工具可以配置产品的详细信息,包含以下信息:
①产品信息:名称、ID、类型、订单 ID、配置文件 ID、配置文件类型;
②产品版本信息:产品修订、硬件名称和版本、软件名称和版本、引导加载程序名称
和版本。
(4)Web 页面设置和用户管理;
在 netXStudio 中,WebBuilder 充当 WebServer 页面的一种内容管理系统,可将自定义的网页和图形(例如产品名称和图片)分配给不同的产品和设备。在构建过程之后,可以将定制的 Web 内容与在 netX Studio 中创建/管理的其他数据一起下载到各个目标设备(例如,固件,配置数据,设备和制造商 ID 等),整个流程如图13所示。
图13 Web Builder 应用过程
(5)netIC IOT硬件引脚配置
netIC IOT的设计优势之一就是使用户可根据其需要修改DIL-32管脚定义。除了部分用于供电及通讯的预定义管脚,所有其他管脚几乎都能够自由配置,比如,可以在UART、I2C、SPI、GPIO、LED、CAN 以及SSIO间选择。通过 netX Studio 配置工具对netIC IOT硬件进行设置,包含操作模式和引脚分配、接口配置和将对象映射到相应的接口,如图14所示。
图14 硬件引脚配置界面
进行完以上所有配置,可完成 netIC IOT 模块的整个对象模型的创建、特定的设备描述文件(EDS)和集成的源代码(.h),将配置文件装载到硬件中,同时包含对协议栈的下载。在通讯设置中可同时设置几个通讯,下载协议栈时根据实际通讯网络下载不同的协议栈。
3.3.2 软件设计
netIC IOT模块提供的主机接口是netPROXY,用户应用程序通过netPROXY来访问模块。如下图所示,可采用ST公司的STM32系列的MCU作为主MCU,其Host应用程序通过netPROXY接口进行数据的访问,可有效节约开发时间。netPROXY Host API用于通过HIF DPM访问netIC IOT,需通过cifX API访问DPM,如图15所示。
图15 netIC IOT 与主机接口连接模式
netPROXY的优势在于为使用简单对象模型以通用方式描述设备应用程序数据提供了
一种可能性,这可以仅通过一次设计覆盖特定设备应用程序功能,达到重新使用以将这些数
据转换为不同的网络协议的目的。netPROXY使用对象模型不仅可以管理和访问数据,还可以在 netPROXY 对象网络服务之间执行自动转换。
4 netIC IOT 实例 PROFINET Slave+OPC UA 应用
通过netIC IOT的开发板,连接STM32,进行 PROFINET Slave+OPC UA的测试。NIOT-I-ICEB-RE 开发板通过USB接口连接到计算机,通过netX Studio工具对其进行配置,然后将配置文件及协议栈下载到硬件中。完成配置之后,连接至STM32开发板,对其进行应用程序的调试。将以太网口连接到主站cifX 50-RE,并通过外设SSIO接口连接NIOT-I-ICEB-SSIO 扩展板。在SYCON.net 中创建工程,进行 PROFINET通讯调试。然后采用 Softing 的 OPC UA Client 进行 OPC UA 通讯测试。硬件连接图如图16所示。
图16 硬件连接图
通过OPC UA Client可以抓取到netIC IOT 在PROFINET网络中与主站进行数据交换的
周期数据,若将数据上传至云服务器或通过云服务器的OPC UA Client获取数据,在进一步对数据进行分析或预测性维护。通过OPC UA Client观测数据变化如图17所示。
图17 OPCUAClient 监测图
由此可见,通过netIC IOT设备级物联网通讯模块进行产品研发,可节省投入成本,并
轻松实现设备上云。
5 结束语
netIC IOT通讯模块在同一硬件上支持现主流的实时以太网从站协议,用户可在netXStudio 工程工具生成用于其设备的并独立于协议的对象模型,而且在应用软件中只需要移植一次。根据不同的现场网络应用,只需在netXStudio中配置并下载不同的协议栈即可。对于应用来说无需对不同的通讯网络作相应的设计,仅一次软硬件设计就可以实现真正意义上的多协议设备研发。