□ 汪振江
上海电气集团股份有限公司 中央研究院 上海 200070
随着现代制造业的发展和数字化转型,如何基于设备来构建物联网平台,并对其进行自动化、智能化改造和云计算,成为了当前重要的研究课题。在工业领域中,基于物联网平台的云控制系统在传统企业数字化转型中的作用愈发重要。比如,液压、机床、锅炉、汽轮机等传统行业中涉及到的工业设备,都会用重要的监控参数和智能化控制技术来评估和改变生产状态,具体过程为通过采集设备数据来直接描述设备画像,进而监测设备的健康状态。针对复杂机械结构的设备发生的故障,因不方便进行检查和维修,故通过采集数据对设备进行算法建模,进而进行故障识别或寿命预测,同时确定巡检时间。用户在云端通过创建或更新控制策略来对线下设备进行反馈配置,实现对数据采集方式和执行方式的调整。
以上描述的设备数字化应用场景,也是工厂智能化的具体表现和实际需求。
目前,基于物联网平台的仿真技术能逼真地模拟被测系统的运行条件和生产状态,随着编程语言在嵌入式开发中得到广泛应用,为在物联网平台上构建控制程序,再下发到终端网关来操控实际系统提供了技术支撑。
鉴于工业领域对设备智能化的需求及对通用数据的采集和实时监控的要求,一般会利用AMESim软件先建立控制系统模型,然后进行仿真,将实际的物理系统以数字孪生的方式来达到线上可视化的效果,再进行监控和预测性维护。这种方式的缺点是,缺乏设备动作调整的灵活性。
笔者采用浏览器/服务器架构,由前端可拖拽配置模块、Python自动化编程模块、硬件配置模块组成,以完成反馈控制功能。图形交互式自动化编程流程如图1所示。前端可拖拽配置模块的功能为云端虚拟现实系统中各物理元件按特定连接关系组成系统,并提交配置信息。Python自动化编程模块的功能为接收配置信息,生成控制程序,并下发到网关盒子终端。硬件配置模块的功能为解析控制程序,通过信号来控制设备执行的方式和数据采集策略的更新。
▲图1 图形交互式自动化编程流程
通过控制系统对关键元件指标,如电机转速、阀门开度、泵进出口流量、电磁铁信号等进行灵活控制,是设备智能化的一般实现方式。在这一方式中,信号元件对应现实系统中的信号发生器设备,状态机元件对应信号变换的跳转条件,二者在网络前端以可视化组件的方式展现,每个信号元件和状态机元件都有特定的属性和参数。在建立系统时,需要用户虚拟线下物理系统,即在前端拖拽式地拉取元件图标进行相连,来组成工作流程,并根据系统特性来对信号元件和状态机元件的参数进行配置。元件及状态机属性配置界面如图2所示。
▲图2 元件及状态机属性配置界面
信号元件要按特定的规则进行连接,以反映信号数据的变换。信号元件在提交给Python自动化编程模块时,不仅需要传递信号元件自身的配置信息,还要传递每个工作流程有序的信号元件连接关系。元件连接顺序的确定按如下步骤进行:
(1) 由于每个工作流程有一个OUT元件,因此遍历找出所有OUT元件,即可确定工作流程的数量;
(2) 每个工作流程设置一个根节点列表和一个顺序编号列表,将OUT元件节点名称放入根节点列表;
(3) 根据信号元件两两连接信息找出与根节点列表中相连的信号元件和连接关系记录,将各条连接关系记录按递增方式赋值,并写入顺序编号列表中,根节点列表更新为与其相连的信号元件名称。同级别元件连接关系无序,可顺序赋值;
(4) 循环进行步骤(3),直到顺序编号列表最大值不小于整个工作流程的连接关系数量,然后跳出循环步骤;
(5) 被顺序编号列表赋值后的信号元件连接关系如图3所示,OUT口附近是编号较小的值,IN口附近是编号较大的值,由于信号的传输是从IN口到OUT口,因此将连接关系按从大到小的顺序排列,即可得到每个工作流程按顺序排列的信号元件连接关系。
Python自动化编程模块采用基于Flask的网络框架来接收前端发起的超文本传输协议请求,信号元件的功能代表了特定的无状态函数,如图4所示。在读取相关信号元件时,Python自动化编程模块会将对应函数读取,并写入目标Python程序中,同时将信号元件的属性作为配置参数传递给该目标程序。
▲图4 信号元件对应无状态函数
通过网络接口方式接收到前端可拖拽配置模块传来的信号元件配置信息和工作流程连接信息后,对四个方面的核心配置进行解析,形成可执行程序。
第一,对网关盒子相关配置参数进行解析。ADC、频率、PWM是网关寄存器的相关配置,如图5所示。此处配置主要是确定和反馈数据采集时的通道选取和绑定。在解析过程中,采集通道输出的结果、计算结果的换算因数和偏移量都作为静态变量存储至可执行程序的头部。
第二,对表征状态转换条件的状态机相关配置参数进行解析。定义状态机程序函数,根据可拖拽配置模板提交的状态机变换配置,确定程序中状态切换的条件和规则。当状态切换标识DI[0]为true,并且状态机当前模式为STATE[0]时,切换到STATE[1]。当状态切换标识DI[1]为true,并且状态机当前模式为STATE[1]时,切换到STATE[0]。状态机配置条件如图6所示。
▲图6 状态机配置条件
第三,对信号元件配置信息进行解析。读取信号元件配置信息后,解析各信号元件的常量参数和变量参数,自动写入待生成的目标Python程序中待用,并找出在后台预设的元件函数,同样写入目标Python程序中。
第四,对工作流程连接关系进行解析。首先对工作流程分片,确定工作流程数量,创建对应数量的工作流程函数。然后在每个工作流程函数中,逐条根据该工作流程内的连接关系,调用上一步的常量参数、变量函数和对应的元件函数,组成每行的控制程序代码。最后在工作流程函数编写完成后,主程序自动将所编写的工作流程函数添加到对应的相关联状态机的任务列表中。
运行Python自动化编程模块的主程序,可生成独立的可执行Python程序。将程序加密为pyd格式文件后下发到终端,根据加密特性,在源码未知的情况下,终端可以根据定义进行调用和运行。
在工业设备数字化智能控制和运维的场景中,笔者设计的方法能够在云端辅助工程师进行工业设备的系统设计、可视化数据展示和对终端进行反馈控制。工程机械场景中控制流程如图7所示。在云端客户机通过可拖拽方式构建系统,向Python自动化编程模块提交静态资源和控制信息,生成可执行程序。随后进行本地存储,方便下次直接转发。并通过消息队列遥测传输协议,下发程序到网关。
网关运行程序、解析控制逻辑后,产生特定信号对相连的边缘设备进行控制,并向云端发送更新控制策略后的执行结果。在传统装备企业的数字化转型场景中,这一方法能有效提高设备智能运维、数据分析、故障处理的效率。
笔者技术方案具有三方面特点。
(1) 这一技术方案不仅使控制系统的执行流程可视化,还可进行灵活调整,并实时反馈到终端进行数据采集和控制策略的更新。
(2) 技术方案中的Python程序采用控制元件函数、元件基础参数配置、工作流程复杂逻辑配置,针对网络前端构建不同的控制策略,进行自动化编程,形成可执行程序,省去人工对不同策略控制程序的手动编码,大大提高部署效率和终端利用率。
(3) 由这一技术方案打通的数据链路,为技术人员从不同维度进行数据分析提供了场景和数据支持。在改变数据采集及控制策略后,边缘端设备和云端可同步进行数据更新和后续作业,省去在数据采集和转换方面的人工调试成本。
图形交互式自动化编程在物联网终端控制中的应用,为不同工业场景中云端自动化控制线下物理系统提供了新的解决方案。工业系统中设备配置自动化和智能化,是发展的未来趋势。目前主要依靠人工干预,结合图形交互式自动化编程方法构建的云端控制系统,为场景提供一种线上的工业系统可通用、可配置控制方案。根据行业测算,在国内和国际上,有成千上万的工业系统试验台需要远程控制并智能化改造,控制模块的自动化及云服务能大大节省人工成本,提高效率,具有极高的应用价值。