漫谈智能工厂的控制系统

         智能制造是当下最热门的话题之一,工程师们更关心如何实现智能制造?智能工厂的控制系统应该采取什么样的架构和技术路线?回答这些问题是富有挑战性的。本文从技术层面开始,讨论企业信息系统(ERP,MES,产线自动控制)软件架构,以及SOA,OPC UA ,IEC61499 等技术的应用和相互融合。由于涉及的技术面广,本人才疏学浅,只能谈谈自己的一些思考。

智能制造要解决什么问题?

        从国外大量发表的有关智能制造的文章来看,智能制造要解决的问题是主要针对小批量,个性化制造,而不是传统的大批量制造一方面是由于西方国家的制造业受到了巨大的挑战,在大批量制造方面逐步失去了竞争优势。从而转向个性化制造,希望能够形成差别化竞争优势,另一方面当然也满足人们对个性化产品追求的市场需要。

      对于在批量制造富有优势的地区和企业而言,建立智能工厂的目标不尽相同。一方面他们需要未雨绸缪,逐步地能够满足市场对个性化定制的需求增长,另一方面,让现有批量生产线适合生产更多品种的产品,提供产线的效率,而不是为新产品重复建设相同类型的产线。对于中小型企业而言,小批量,多品种是常态,也是它们的立足之本。提高小批量多品种制造的效率是企业实现利润的关键手段。

 值得注意的是,生产线自动化并不完全代表智能制造,在传统的大批量制造生产线上,安装了大量的专用自动化设备,但是它们无法快速地对不同产品生产做出改变。一旦产品转单停产,或者升级换代。这样的批量生产线就将成为一堆废铁。这样的现象在手机制造行业非常普遍,我曾经访问过一个为诺基亚生产翻盖手机键盘的日资企业。车间里密密麻麻的专用设备,各种冲压,涂胶,贴膜设备。这些专用设备设计精良,安排紧凑。但是当智能手机来临后,这条生产线基本是一堆废铁。所以,这样的生产线只是自动化生产线,而不是智能化生产线。

      工程师更关心如何构建智能工厂的信息系统和控制系统。设计能够符合个性化,多品种产品制造的需要的智能产线。要比原有的专用的大批量产线的自动化控制系统复杂的多。要求具有更强的可编程性,重用性和组合编排能力。其中软件扮演更加重要的角色。

智能制造信息系统架构

智能制造系统涵盖了企业整个信息系统,控制系统和智能设备各个领域,这是一个非常复杂的异构型信息网络。其中主要包括ERP,MES,产线控制系统和智能设备。其中MES 是企业业务系统和控制系统之间的软件系统。企业的ERP 系统已经相对成熟,而MES 因企业不同而差异非常大。 智能制造软件主要与MES 系统以及底层控制有关。

对于智能制造信息系统,人们提出了各种标准以及相关的架构,概念,模型和术语,让人眼花缭乱,目不暇接。其实,构建一个复杂系统的基本方法无外乎是模块化,并定义清楚模块之间的接口。从程序的内部(子程序,类),到程序之间(进程通信,RPC,COM),最后转向机器之间的协议(各种网络协议 DCOM,OPC UA  MQTT)。于是出现了所谓OOP,组件化,面向服务架构(SOA),多代理(Multi-Agent System),微服务等等架构和方法。其本质是模块化及其通信协议。

在自动化控制领域中,早期的上位机控制软件是建立在windows 系统之上的,利用windows的COM和DCOM 技术建立了传统OPC 架构。 由于COM、DCOM 是微软公司的一套技术,不够开放。无法在linux /unix  上实现,做到与厂商无关。 控制系统开始转向更加灵活的SOA架构,提出了OPC UA 协议。OPC UA 不再基于分布式组件对象模型(DCOM),而是以面向服务的架构(SOA)为基础。能够在window,Linux 等多个平台上实现。德国有一家公司甚至在单片机上实现了OPC UA 。OPC UA 风头正劲,已经成为制造业重要的协议。

面向服务的架构SOA

        SOA 称为面向服务的体系结构。它定义了一种通过服务接口使软件组件可重用和互操作的方法。服务使用通用的接口标准和体系结构模式,因此可以将它们快速合并到新的应用程序中。SOA中的每个服务都包含执行完整,离散的业务功能(例如,检查设备状态,生产计划,生产进度,工艺编排)所需的代码和 数据 。服务接口提供松散的耦合,这意味着在很少或根本不了解如何在下面实现服务 的情况下调用它们 ,从而减少了应用程序之间的依赖关系。

SOA出现于1990年代后期,代表了应用程序开发和集成发展的重要阶段。在选择SOA之前,将应用程序连接到另一个系统中的数据或功能需要复杂的点对点集成,开发人员必须为每个新开发项目重新创建。通过SOA公开这些功能无需每次都重新创建深度集成。

 

SOA 在企业信息系统中的应用

SOA 方法在企业信息系统中得到应用。例如将计划,工业,仓库,质检,生产单元,财务等企业内部各个信息系统以SOA 方式构建。通过协议相互调用调用。SOA 的调用协议在普通信息系统中可以是HTTP Restfull API,RPC协议,在控制领域可以是OPC UA 协议。消息交换方式可以是集中式,也可以分布式点对点通信方式。

在SOA 架构中,采取了集中式交换方式,即所谓的ESB (Enterprise Service Bus),国内也提出了所谓“数据中台”,其实就是集中交换方式,这与MQTT ,RabbitMS 等各种消息系统没有本质的区别。

微服务(micro service)

与SOA 十分相似的是流行的微服务。从形式形式上看,SOA和微服务几乎没什么区别。IBM 的网站上的文章中提及SOA 和微服务的区别是规模,SOA 是企业级别的,而微服务是程序级别的。还画了这样一个图。

不过我还是没有看出多大区别。

OPC UA

      OPC UA 是控制领域SOA 架构之上的通信协议。是从传统OPC 转变而来的标准。标准的OPC UA 协议是建立在TCP/IP 协议之上的,由XML 编码格式,也有二进制编码格式。后来又提出了发布/订阅模式。它是建立在AMQP 或者 MQTT 基础上,这显然实时性不好,不过它也可以建立在UDP 广播的基础上,实时性会更好,好像又不太安全。

    OPC UA 可以实现业务与业务之间,业务与生产之间,生产与现场设备,现场设备与现场设备之间的信息交换。

针对现场实时通信,OPC UA Foundation又提出了现场级别的OPC UA 通信(OPC UA FLC (Field Level)  Communication) ) 。第一步,FLC支持通过UDP进行的第3层映射和到以太网TSN的直接第2层映射。想必在不远的将来。会实现OPC UA直接映射到以太网TSN上,只有这样,才能通过OPC UA进行确定性的数据传输。

  1. OPC UA on the business LAN
  2. OPC UA for Cloud
  3. OPC UA over GSM
  4. OPC UA – Supervisory Control a
  5. OPC UA FLC
  6. OPC UA FLC
  7. OPC UA for 5G
  8. Future Ready

智能制造的分类

数字化工厂最早是从批次过程(batch Process)形式的生产线开始建立模型的。所谓批量控制是以化学过程的方式连续生产有限数量的材料(continuous production of finite quantities of materials (batches) in chemical processes)。 比如生产一百吨活性剂就是批量控制的过程。它的生产过程是连续的,而每次生产的数量是有限的,或者说产品的生产间隙性的。这个批次生产的是产品A,下一个批次生产的可能是产品B。化工,制药行业比较常见批量控制的生产方式。IEC61512 是一个关于批量控制的国际标准,它和美国的ANSI/ISA-88 标准是相同的。ISA-88是1995年制定,IEC61512 是1997年制定。这些标准建立完整的模型,以便指导下实现各个子系统,以及它们之间的数据格式,语义和协议。

对于像电子产品装配,机械加工等离散过程(Discrete Control),ISA-88 的概念也同样具有指导意义。最接近批次过程的离散类型制造也许是CNC加工厂和PCB 制造工厂。

有关ISA-88 ,可以参考我的博文遵循IEC 61512/ ISA 88构建数字化工厂
   

智能制造控制系统的架构

     下面我们重点来探讨如何构建符合ISA-88 标准的智能制造控制系统。

      MES 系统采取SOA 架构。SOA 服务之间采用基于消息的通信协议,比如OPC UA ,MQTT ,HTTP,TCP都可以作为SOA之间的通信协议。如何根据企业的生产过程来划分SOA 是MES架构的关键所在。

ISA-88 中,物理资产是一个分层的金字塔结构。它们分别是

  1. 企业(Enterprise)
  2. 场所(Site)
  3. 区域(Area)
  4. 过程单元(process cell)
  5. 设备单元(Unit)
  6. 设备模块(Equipment Module)
  7. 控制模块(Control Module)

生产过程分为下面几个层次:

  1. 过程(process)
  2. 过程段(process stage)
  3. 过程操作(process Operation)
  4. 过程动作(process action)

     在具体实施时,可以根据需要转换产品时调整工艺的过程段来建立构建软件组件(SOA或者微服务),也可以根据过程单元来构建。每个过程单元的SOA 服务分为下面两个部分:

  高层控制 High-Level Control (HLC)

    提供 MES 系统的服务,它们应该是在车间中的边缘服务器上运行。这些服务与物理控制设备无关,通过类似OPC UA 等协议通信。事实上生产车间中的这些边缘设备上可以根据MES 的需要,部署各种SOA 服务。比如工时统计,设备健康检测,质量控制等等。

  底层控制Low-Level Control (LLC) 

   这部分涉及实时现场控制,它们是在PLC,PAC 上运行的现场控制程序。采用IEC61131-3 或者IEC61499 控制语言来编程。

高层控制与底层控制之间可以通过本地的协议或者远程调用的方式实现。

工艺(Recipes)编排方法

    智能制造工厂的最大特点是能够根据产品的要求灵活地改变生产工艺参数。传统的方式是采用现场仪表或者HMI界面手动调整。但是对于一个复杂系统而言将会变得异常困难。特别是涉及工艺过程的改变。比如A产品需要干燥处理,而B 产品不需要。ISA-88 标准中提及了工艺(或者称为配方Recipes) 的概念。不同层面的控制单元将有不同的配方(总配方,子配方)。

       如果说车间中的所有SOA(或者Agent) 都是一些演员的话,工艺配方就是剧本。或者说,智能制造工厂的生产线是可编程的。许多文章中大量地讨论OPC UA,工业4.0 管理壳等数字化模型。但是很少涉及这些数字化模型的使用方式。我们在开发物联网应用平台时也遇到同样的问题。在物联网边缘服务器或者云端服务器中,我们开发了开发了许多的微服务组件,使用户编写工业应用软件变得容易。但是我们最后发现最终用户调用这些微服务构建应用程序时,终究还是需要编写程序,而用户并不擅长编程。推广物联网平台遇到了瓶颈。理论上我们可以使用IEC61499 ,IEC61131-3语言,甚至C++ 来直接编写工艺,将工艺和控制融为一体。但是这种紧耦合对于最终用户而言,修改和编排的要求过高了。就算是企业中的控制工程师来修改控制程序,也并非易事。

最好的方法是将工艺编制与控制程序解耦。在设计工厂自动化系统时,预先设置了各种参控制点,通过更加简便的方式来实现工艺的改变。具体的方法有两种,一种是组态图形方式,另一种是采用领域特定语言(DSL)方法

组态图的方法

建立一种图形化工具,由用户根据具体的应用场景建立组态图。现场工业人员更加产品要求来调整组态图中的工业参数。实现生产工艺的编排。这种方法的缺点是如果涉及生产线调整,需要控制工程师来修改组态图。而且组态图不够灵活,而且无法在网络中传输。

DSL语言方法

DSL 语言是一种更加接近自然语言,但是又具有一定语法要求的编程语言。工艺人员使用这种语言来编制工艺。通过编译软件将DSL 转换为相关的控制程序和HMI界面。下面是一种DSL 编写的工艺程序:

Tanks
T101 T102 T310 T320 T330 T340 T350
Recipe
start Start
add Add1 amount 2000 ml from T310 to T101 after
Start
agitate Agitate1 tank T101 after Add1 nondominant
heat Heat1 tank T101 up to 50.0 °C after Add1
add Add2 amount 2000 ml from T101 to T102 after
Heat1 Agitate1
stop Stop after Add2

采用DSL 语言编程的优点是实现工艺工程师和控制工程师解耦。改变生产工艺不需要控制工程师的介入。

参考实验系统

为了更加清楚地解释上面提到的内容,我们建立一个参考实验模型:

假设一个CNC 精密机械零件制造的工厂,拥有多套五轴和三轴CNC 机床和若干台数控车床。主要是生产小批量多品种的航空零部件。为了提高客户的响应能力和小批量生产效率,进行数字化智能工厂改造。具体的方案如下:

1 每四台CNC机床 配备一台FANUC 机械臂和零件托盘,通过多台小型施耐德PLC M251 构建成为一个IEC61499 分布式控制网络。

2. 配备一台工业PC 机。实现MES 的相关服务模块,一个IEC61499 soft dPAC 运行时实现与M251 dPAC 的控制,数据采集等。MES模块与Soft dPAC 通过本地TCP 或者OPCUA 实现信息交换。

3 工业PC 连接到车间以太网,与上层软件通信。工业PC 上还会配置材料和人员的二维码扫码等设备。

4 CNC 通过以太网连接到车间以太网实现程序下载等任务。

5 所有的制造单元通过车间以太网连接到其它MES 服务上。

6  为CNC 零部件加工设计单元一种DSL 语言。工业人员能够为生产单元编写加工工艺文件。也可以设计一个组态图形界面产生这种语言,下载到到生产单元的PC机中。由软件配置IEC61499 应用程序的执行。

结束语

本文探讨了符合ISA-88 标准模型下基于SOA 的智能制造控制系统的架构,重点研究

  • 关于SOA 的高层控制与底层控制分离的方法。
  • 上层软件与底层IEC61499 控制程序融合方法。
  • 为不同的产品编写工艺的领域专用语言(DSL)的方法。
  • 描述了一个参考实例。

在具体实现中,将会采取各种不同的软硬件实现方案,比如使用一台IEC61499 dPAC  带动4台远程IO模块。可以节省dPAC 的数量。你也可以采取其它的厂商硬件平台。有国外研究者采用倍福公司的工业电脑作为现场控制硬件平台,在其上运行4 DIAC 开源 IEC61499 运行时 Forte 。通过倍福的ADS 协议来控制IO 端口。也可以将施耐德的Soft dAPC 运行在倍福的电脑上。也可以通过modbusTCP 连接wago 的IO system。让他们产生“化学反应”。

本文提出,建立和采纳符合标准的各种模型和协议姑且重要,而如何使用这些数字化模型同样值得探讨,这里提到了使用DSL 语言。

目前,MES 仍然处于定制化的阶段。软件公司更加企业的需求,正对性地开发相应的软件模块。笔者认为,即便是定制化,也需要尽量按照标准的模型来开发。企业的需求往往是针对企业当前的状况提出来。他们会要求不断地改变,而标准具有预见性和先进性。遵循标准开发,软件公司的产品开发效率也会越来越高,可重用性,移植性逐步提高,直到开发出通用的MES 系统。

猜你喜欢

转载自blog.csdn.net/yaojiawan/article/details/116720862