前言
进入正文之前,我们先对本文做一个简单介绍。本文基于“谈一谈ignition:对ignition和其基本概念的简单介绍”做一个更加精简版的概念总结,在原版的基础上,删去了对ignition的介绍那部分,即实际删去了前言。同时,在每部分主要概念的末尾添加了更加精简的解释。
ignition主要基本概念如下:GateWay网关、Projects项目、Moudules模块、Architecture架构。这些概念官方的用户手册中都有详细介绍,具体的详细信息大家可以查阅官方具体的用户手册。
GateWay网关
在ignition中,ignition在单机上只能有一个网关(可以替换网关,但是只能有一个,可以通过web连接和访问多个网关)。ignition的网关就是ignition“基于服务器”简单许可“基于Web的部署”“网络启动的Designer和Client”“可拓展的模块化的架构”“跨平台”等特点的体现。网关的作用非常强大,他是整个项目的部署中心、配置中心,所有项目的各种连接和配置几乎都是在网关中完成。用我的话来说:ignition的网关就相当于Java中SpringCloud的配置中心、注册中心、Sentinel和Feign、Tomcat、Idea、Git等的缝合结合体(ignition的网关作用很大,这个需要切实体会)。我们所有的数据库驱动和连接、数据采集的设备连接、项目管理、模块管理、项目冗余、项目信息和数据展示、服务器配置等都在网关上配置。网关可以进行备份与恢复,所有的配置和项目都部署在网关之上,即对客户需要的项目等,我们只需要将我们开发项目所在的网关备份成一个.gwbk的网关文件交付给客户进行恢复即可完成部署(基于Web的部署和跨平台等特点的体现)。 如图为网关中的一些配置,其余关于网关的详细信请查看用户手册中的Gateway:
Gateway即ignition的核心,ignition所有的主要服务Gateway上。Gateway基于Web浏览器。是一个配置中心和控制中心,可以看作ignition的大脑。
Projects项目
项目即我们正式开发的项目,在网关中可以管理项目、配置项目所需的数据库和Tag Provider(数据点位:可以来自传感器设备,传感器器将传过来的数据通过一个PLC处理转发到ignition中形成一个树状结构的Tag Provider存储。数据点还可以来自数据库、内存、组件的值等,统称为点位)。在项目中我们进行实际的软件开发:软件页面开发、流程逻辑、软件功能、根据需求开发等。实际开发中使用各种组件进行开发,例如Table、Button、Audio、Video等(相当于前端开发)。ignition中内置python库,还封装了很多开发中所需要使用的函数,可以使用Python进行脚本编写,控制项目业务的逻辑和进行功能性的编写,通过Webdev模块还能与其他语言开发的后台进行交互,例如Java。但是在ignition的项目中不支持直接使用Java代码进行开发(虽然ignition底层是基于Java的)。 一个ignition网关可以有很多个项目,项目之间支持继承关系、支持单个项目的导入和导出、还可以建立项目模板,方便进行快速开发。如图为项目开发的界面,其余关于网关的详细信请查看用户手册中的Projects、Perspective(perspective和vision区别不大,一个用于BS开发、一个用于CS开发)和Components:
Projects就是实际开发的项目。
Modules模块
ignition在用户手册中将模块做了一个分类,即:核心模块、附加模块、第三方模块和用户自建的模块。可以在用户手册的Ignition Modules中进入到模块的相关详细信息查看。
核心模块包括:Vision和Perspective模块、OPC UA模块、Tag Historian模块、SQL Bridge模块(Transaction Groups事务组)、Reporting模块、Alarming Notification模块、WebDev模块、SFC(Sequential Function Charts)顺序功能图模块、EAM(Enterprise Administration Modules)企业管理模块、SMS Notification短信通知模块。以下对核心模块做一个简单的介绍和讲解。
Vision和Perspective:拖拉各种组件进行软件的窗口和页面开发。
OPC UA:ignition中提供数据的一个中转服务器。
Tag Historian:提供历史数据的模块。
SQL Bridge:确保OPU UA模块和Tag Historian模块数据正常的模块。
Reporting:生成报表及其各种文件。
Alarming Notification:警报生成和通知。
SMS Notification:通过短信发送警报信息。
WebDev:提供网络编程支持。
SFC:可视化系统函数逻辑。 EAM:版本控制、项目同步、代理监控和故障恢复。
SECS/GEM:SEMI Equipment Communications。
附加模块包括:Voice Notification语言通知模块、OPC COM模块、OPC COM Tunneler模块、Web Browser模块、Twilio Alarm Notification模块、Serial模块、SECS/GEM(SEMI Equipment Communications Standard/Generic Equipment Model)SEMI设备通信标准/通用设备模型模块。
第三方模块包括:MES模块、MQTT模块
Architecture架构
ignition有如下架构方式:标准架构、横向扩展架构、轮辐式架构、边缘架构、工业物联网架构、企业架构、冗余架构、基于云的架构和AWS Outposts架构。
标准架构:即只部署单个的ignition服务器,采用行业较一般且通用的架构方式作为标准架构。单体架构。
横向扩展架构:即前后端分离式的架构,一部分网关作为前端服务器,一部分网关作为后端服务器,前后端网关通过网关网络负载均衡后连接。横向扩展架构中,至少有一个网关服务器作为后端网关处理所有PLC和设备通信。前端网关不做大量的数据处理,负责托管Client。前后端分离式架构,网关分为前端和后端。
轮辐式架构:轮辐式架构指的是一个ignition网关作为中央节点(Hub),多个ignition网关作为辐射节点(Spoke)和中央节点通信和转发数据。辐射节点统一由中央节点安装和配置,可以根据需求修改辐射节点的各项配置。轮辐式架构,根据其名字来理解,将轮辐式架构当作一个车轮,就是一个中央节点(Hub)作为车轮的中心圆点,多个辐射节点(Spoke)作为车轮的辐条,辐射节点所连接的各类设备(如PLC)作为车轮的轮辋(Rim)而组成。车轮式架构。
物联网架构:即IIoT架构,IIoT架构通常涉及使用MQTT协议与大量设备进行通信。MQTT是一种轻量级且安全的协议,它利用了独特的发布/订阅传输方法。物联网架构和标准架构相似,不同的是物联网架构是一个ignition网关作为中央节点代理和推送数据到订阅的工业和业务线应用程序,数据来自于和安装了MQTT传输模块的PLC设备、安装了ignition Edge MQTT的现场设备、启用MQTT的Edge网关和基于MQTT规范的现场设备之间的通信。带有MQTT和Edge的架构。
企业架构:企业架构即使用企业管理模块的ignition网关架构。企业架构包含了多个服务器,同时还有监控和管理多个网关服务器的机制。EAM模块指定一个网关服务器作为Controller控制器,其他的网关服务器作为Agent代理服务器,在控制器网关上开发后,可以通过网关网络Gateway Network自动将更新推送到其他代理保持多个网关上的项目同步。EAM模块参与的架构。
冗余架构:即使用了副本冗余机制的架构模式。每种架构模式都可以使用副本冗余对需要进行备份的网关建立从节点服务器进行主从同步备份,当主节点服务器发生故障宕机之后,从节点服务器会接管主节点并继续执行,所有的Client和设备连接将被重定向到从节点,保持正常运行和使用。下图为标准架构的副本冗余示意图。副本冗余架构。
基于云的架构:在ignition中,所有的服务器都可以托管在云端,这就是基于云的架构。将服务器部署在阿里云、腾讯云等云服务器上,Client通过Internet连接到ignition云服务器,云服务器通过Round Robin Poll、Cell Tower、Satellite 或 Secure VPN连接现场设备获取数据。下图为基于云服务器的标准架构,ignition网关服务器和数据库服务器都部署在云服务器上。云服务器部署网关的架构。
边缘架构:边缘架构即使用了Ignition的Edge版本的架构模式。Ignition Edge系统是轻量级的ignition,可以非常灵活并填补任何系统架构中的空白。例如上面介绍的物联网架构中,对于那些可以连接的设备来说,就是采用边缘架构的模式,将边缘设备同物联网架构的服务器进行连接和通信。ignition Edge版的架构。
AWS Outposts架构和:即使用Amazon Web Services (AWS) Outposts的架构模式。