丁研 | 自动化的演化路径
自动化是上世纪六七十年代开始推广,并持续发展至今的技术与产业体系。在实践过程中,业界的参与者也在不断的对自动化的特点进行总结,并从不同视角出发,给出各自的解读。在最终用户层面,自动化是一套可以使机器与生产系统自行运转、且可以人为干预执行过程的生产工具;在工程师眼中,自动化是一类可感知物理环境变化,并完成决策与任务执行的嵌入式系统,以及一套开发嵌入式程序的开发工具;在智能制造体系中,自动化是工业物联网、数字孪生、两化融合的基础支撑技术,同时也是德国工业4.0顶层设计体系的重要组成部分。
虽然在特征、应用场景等方面已经达成了广泛的共识,但至今为止,业界依然无法对自动化的功能范围和技术构成,给出明确的界定。造成这一现象的原因,并不在于这项技术中有多么高深的理论,而是因为自动化技术本身,便是一套不断在演化的体系。
从功能角度讲,如今的自动化已经由执行简单重复任务的控制终端,演变为网络化、智能化的数字系统,而柔性产线、协作机器人、增材制造、过程优化等系统的出现,则成为先进自动化技术的典型代表。同时,自动化技术的使用范围,早也不局限于工厂内的生产环节,在能源(发电、配电、开采)、交通(轨道信号系统)、物流(物流自动化、港口装备)、建筑(工程机械、楼宇自动化)、医疗(医疗设备)等领域广泛应用,甚至餐饮的厨房自动化、服务机器人等也有了新的阵地。
从技术角度看,自动化也始终不断在融入新的技术。在感知层面,自动化系统的能力已由传感器、仪器仪表的集成,扩展到对机器视觉、3D激光成像、标识(二维码/RFID)等新型感知终端的整合;在网络层面,自动化的通讯功能也由早期的现场总线、工业以太网、工业无线,延伸到了如今的工业互联网(TCP/HTTP/TSN/5G);在软件层面,自动化则从控制程序的载体,演化为具备边缘计算、数字孪生等能力的现代软件系统。新技术的发展为自动化的进步创造了外部条件,而市场需求的变化,以及来自工程应用的反馈,则是促使自动化不断迭代升级的原动力。可以说,“自动化是一项因用而生的技术”。
本文将重点从“用”的角度出发,阐述自动化(软件工程)技术与产业的发展历程。
在上世纪50,60年代,为了实现汽车的大规模生产,汽车厂商开始在流水线上引入控制系统。但与那个年代的收音机、计算器类似,控制系统的功能主要是靠电子电路来实现的。
电路工程师是电子电路的主要设计与开发者,而他们的日常工作主要是:
·在设计阶段,根据功能需求,画出相应的电路图纸;在图纸中,会包括各个型号的电路元件,以及它们的布局与连线关系;
·在开发阶段,工程师负责根据图纸,将一个个元器件安装到电路板上,并把它们连接在一起;经过上述流程,便形成了一个叫“控制逻辑”的功能单元;
·在验证阶段,工程师需要通过电表的读数,对各个电路模块的输入输出进行逐一测试,从而确保功能与需求的一致性;
·当出现问题时,就需要对电路进行重新设计与开发,并重复上述的步骤;
从如今的技术发展水平去看,控制电路开发模式的缺点是十分明显的,一旦元器件布局被固化,功能便无法再进行修改。这就好像是在用毛笔字写长篇小说,不但费力,而且一旦出错,就不得不换张纸重新写。
控制电路不但开发效率低下,而且也会随着功能的增加而变得异常复杂。这不但造成了工程师痛苦指数的上升,而且也使众多工业企业在高昂的开发成本面前,望而却步;正因为此,那个年代对控制系统的使用,主要还是局限在大型工业企业(如通用、波音、美孚)的有限生产环节。
为了使控制系统让更多人“用得起”,以“软件定义”为主导思想的可编程控制器(Programmable Logic Controller)也随之产生,而“软硬分离”则是达成这一目标非常重要的一步:
·在软件层面,工程师可通过自动化厂商提供的开发环境,完成控制程序的开发与测试;当程序出现错误时,用户只需将更新后的程序重新下载到硬件上,便可轻易地实现软件功能的更改。同时,为了方便与其它软件(如人机界面、MES)的集成,控制程序还提供了通讯的接口,并用于过程数据的分发与控制指令的接收;而且,当需要集成更加丰富的软件功能时,还可以在控制器上安装嵌入式操作系统(又称实时操作系统)。
可编程控制器的推广,使当时的工业发展产生了巨大的改变:
·通过“软硬分离”,可编程控制器成功取代了传统控制系统的开发、验证与修改流程,并大幅提升了工程师的开发效率;
·全新的开发流程,进一步细化了控制系统开发的分工体系,并诞生出专注于硬件、软件与工具、以及生产工艺等细分工作的工程师种类;
·开发模式与分工体系的改变,同时也孕育了自动化这一产业;而在此过程中崛起的企业(如西门子、通用、霍尼韦尔、三菱等),也在通过对技术的不断改良,使产业不断的走向成熟;
·自动化产业在发展过程中,培养了大批的工程师,而这些工程师又将自动化带到了工业最终用户的各个生产环节,并最终实现了社会整体生产效率的提升。
自动化系统的开发,实际上是工程师将“设想”提供给机器,而后由机器进行“理解”,并按照人的意图执行的过程。由于涉及到人与机器的交流,因此也将工程师编写的代码(或模型)称为编程(或建模)语言。
编程(建模)语言不但要考虑到“机器是否能读懂”这一技术问题,更重要的是照顾到人,这一“设想”提供者,的语言表达习惯。因此,自可编程控制器出现以来,它的编程方式便一直在参照人类的语言表达习惯。
在设计自动化编程语言之初,研究者发现,人类语言体系中存在着截然不同的两种表达方式,它们分别是通用型语言和领域型语言:
·通用型语言(General Purpose)是人类日常生活中最频繁使用的表达方式,这一类语言主要由一套语法规则,以及一系列词汇、语句、段落所构成;而语言的使用者,通常也是采用从左到右,从上到下的顺序,表述头脑中的概念;
·通用语言虽然适用面广泛,但在数学、物理、化学、工程学等特定领域的运用中,却暴露出较大的局限性;由于需要阐述更系统化、精确化、抽象化的概念,因此人类便发明了一系列的符号与图形,用于表述某一专用领域的概念与知识,而这种表达方式则被称为领域型语言(Domain Specific)。
与人类语言类似,计算机编程语言也存在通用型(General purpose)和领域型(Domain specific)两类语言体系;这其中,通用编程语言是目前IT行业,最为普及的编程手段(如C/C++、JAVA、Python);然而,在面对某些特定领域时,通用型编程语言同样也面临着“表达效率”方面的瓶颈;这时,领域型编程语言(又称建模语言)的特殊作用也就随之显现。
以第一代PLC中推出的梯形图(Ladder logic diagram)图形建模语言为例,由于沿袭了早期的控制电路设计方式(电路画线、元器件符号),因此PLC一经推出,便受到了广大控制系统工程师群体的好评。
随后,以欧系厂商为主的自动化厂商,又在梯形图的基础上,推出了功能块(Function block diagram)及顺序功能图(Sequential function chart)两种图形化建模语言;功能块建模方式为自动化系统引入了模块化、封装、复用等现代化的软件开发理念,而顺序功能图,则帮助工程师,将复杂的工序,分解为一步步相对简单的任务单元,从而极大的降低了复杂工艺的开发难度。
由于提供了一系列贴近专业知识结构的开发方式,自动化产业吸引了大批懂工艺、懂机械、懂电气的技术人才。与此同时,当某项技术的受众达到一定规模时,涉及到一致性、工程规范、教育等一系列因素的标准化工作,也开始显现出重要的作用;IEC 61131自动化编程规范,便是在这一时期由国际电工委员会IEC组织牵头制定,并由PLCOpen组织自发地负责后续的标准推广工作。
设备数量更多、通讯距离更远、传输质量更好,是网络技术发展的主线逻辑。以IT网络为例,当只有两台面对面摆放的机器时(电脑或打印机),一根网线便可建立彼此的通讯;当需要连接几台设备时,一台集线器就可以实现主机间的联通;而到了企业网这一规模后,一套由路由器和网管系统所组成的网络系统,则成为了标配。
与IT网络相似,工控系统的网络发展同样遵循这一规律,不过构成这一网络的主体, 则由PC机、服务器,变为了控制器、感知终端、工控机、触摸屏等设备。
在自动化发展早期,PLC主要用于单台设备的简单控制,因此所采用的通讯方式也相对简单:
·PLC主要采用(控制器/IO模块)一体化的硬件架构,而控制器与现场设备的通讯功能,也主要是靠物理接线的方式实现;在系统运行时,传感器会将物理信号(电压/电流)传输给PLC的IO模块,随后IO模块会将电信号转换为CPU识别的数字信号,并交给控制程序进行处理;控制程序完成计算后,会将控制指令发送给IO,再由IO负责把数字指令转换为物理信号,反馈给现场的设备;
·PLC与人机界面(显示屏)的通讯主要采用串口,人机界面通过串口,周期的向PLC发送数据请求;在接收到请求后,PLC会将现场的过程数据返回给人机界面进行显示(人机界面向PLC发送控制指令,也是类似的道理);同时,串口还可作为PLC编程环境的程序下载通道,当开发环境发出下载指令时,PLC的管理程序会负责接收编译好的PLC程序文件。
·串口除了可以与软件进行通讯外,还可以作为与仪器仪表、RTU等设备进行通讯的媒介,不过此种方式无论在性能与可靠性上,都无法跟工业总线相提并论,因此适用场景也十分的有限(例如路灯、楼宇的控制)。
图8 基于工业总线/以太网的网络架构
随着应用场景的增多,控制器与现场设备的通讯需求也发生了改变,因此自动化厂商开始引入基于数字化网络的通讯技术。
在现场设备通讯方面,由于受限于早期的(控制器/IO)一体化架构,控制系统在与数量更多,距离更远的设备进行通讯时,开始暴露出明显的瓶颈。因此,各自动化厂商纷纷推出了自己的现场总线/工业以太网技术:
·在网络结构方面,现场总线/工业以太网将控制系统,分解为由主站控制器及从站IO所组成的分布式架构;当需要增加设备/传感器的数量时,控制系统可通过在网络中增加IO模块的方式,实现系统的“扩容”;同时,由于采用了数字化网络技术,也使通讯距离、布线方式等方面得到极大的改善;
·在通讯质量方面,网络的各项指标并未因为控制器/IO模块的分离而被打折扣;在确定性方面,控制网络通过调度策略、时钟同步等机制的引入,确保网络报文准时、快速的到达;在可靠性方面,控制网络则通过冗余、防电磁干扰等方式,确保通讯处于长期可用的状态。
在IT网络通讯方面,由于需要与生产管理软件、第三方控制系统以及工业研发软件进行网络协同,因此控制器也引入了以太网通讯方面的技术。
硬件层面的问题解决后,还需要解决软件层面的开发问题。为了避免工程人员在项目交付阶段,陷入到具体琐碎的编码环节,自动化厂商将网络通讯,抽象为软件开发环境中模型,从而使工程人员通过简单的参数化/图形化配置,快速的搭建出一组控制系统的通讯功能。
工业研发类软件为使用者提供一套虚拟化的环境,用于对产品和生产工艺的特性与机理进行设计/分析/仿真/验证,由于减少了在实体样机上的投入,因此使企业的研发效率得到显著提升。
当在控制程序开发流程中引入CAE/CAM时,自动化系统的开发/验证效率也会得到显著提升。
在工艺设计阶段,设计部门的工程师可通过软件,对装备与产线模型的外观、布局、物理特性进行直观的设计;配置完成后,使用者可激活软件的仿真功能,并使程序中的模型“运转”起来;在仿真的过程中,用户可透过装备的运行情况,对现场的运行效果进行直观的了解。
而在工艺验证阶段,工程师可将开发完成的自动化程序,与仿真软件中的“虚拟”设备进行结合(由仿真设备为自动化软件提供数据),并通过对虚拟生产系统的调试(又称虚拟调试),预先验证控制工艺的可行性。
部分CAE/CAM软件会自带工艺与算法的开发功能,例如机床设计软件中,用于描述刀具运行轨迹的G-Code,还有科学计算软件中,用于热力学、空气动力学求解的机理模型;当在CAE/CAM完成开发后,这些模型可被导入到自动化系统,并与现场的实际设备、工艺结合使用。
与此同时,制造执行系统(MES)的使用,使生产过程中的资源组织、调度与管理水平得到了显著提升;而作为生产资源重要组成部分的装备与产线,自然也被纳入到生产管理的业务范畴。随着生产管理功能的不断完善,MES与自动化系统间的协同关系也变得更为紧密。
这意味着,工业现场的设备故障信息可与设备管理系统、人力管理系统进行组合,形成设备维修与保养的工作流程;而设备能力信息可为排产系统提供信息,而排产系统产生的工作计划,也会被同步到给自动化系统,并转化为具体的设备执行指令。
自动化进一步放开手脚,在仓储自动化系统的产品库存信息,可帮助库存管理系统,判断物料是否需要补充;在质检过程中产生的质量信息,自动化设备可为质量管理系统的质量报告,提供数据基础;而能耗信息的采集,可帮助能源管理系统提供数据支持。
这意味着自动化与软件系统,已经紧密地结合在一起。
说到数字孪生,目前尚未产生一套统一的定义,但从应用的角度讲,可以将数字孪生理解为,一种虚实映射的方法,一门编排数字空间的语言,以及一项融合多专业工程与应用的技术手段。
虚实映射是将(包括人的知识在内的)物理世界的事物,映射到虚拟空间,并进行分析决策,而后反馈回物理世界的过程。事实上,早在计算机出现之前,“虚拟空间”的应用便已经存在。以军事沙盘为例,指挥官会将士兵、装备、地图等实体模型布置在沙盘上,用于展示军力的部署情况;同时,沙盘上也会摆放各种形状的纸片模型,用于代表参谋们的分析过程,以及军官下达指令。
在以上的示例中,无论是实体模型(士兵、装备等),还是逻辑模型(纸片),都可以被平等地布置在相同的“虚拟空间”中,并实现相互的融合。
随着计算机技术的普及,“数字化虚拟空间”开始逐步发展成型,而模型这一作为虚实映射的工具,也变身成为数字世界中的数字化模型(即数字孪生);当把数字模型“摆放”到计算机这一信息空间更大、计算能力更强、网络化程度更高的“数字化沙盘”上时,物理信息系统这一虚实融合的“数字虚拟空间”也就随之产生。
虽然被迁移到了数字空间,但模型的基本用法并未发生本质改变。
模型的第一类用法被称为仿真(或模拟),即通过现有的状态,推演出下一阶段即将发生的事情;因此,无论是在沙盘上的战况推演,或是工业研发软件中,对装备行为的模拟,都属于仿真的范畴。
模型的第二类用法被称为控制,即根据现场的情况做出分析,并将决策反馈给执行单位的过程;因此,可以将指挥官在沙盘上进行分析,并进行指令下达的过程,理解为一种控制;而自动化系统对装备、产线、生产单位的工况感知,以及指令的下达,同样也是一种控制。
模型的其它用法还包括管理(如进行资源的规划与调配如生产管理系统)以及洞察等。同时,将上述几类模型结合使用使用时,还可以构造出更复杂的应用场景。
模型不但是一种虚实映射的方法,而且由于背后所隐含的符号学含义,模型还被视为是一门语言。而当从语言的视角看待模型时,它便成为了一种编排虚拟空间的工具,以及作为沟通交流的媒介。
还是以沙盘为例,指挥官在会议上对各种不同含义模型(士兵,装备,计划)的摆放,实际上就是对沙盘这一“虚拟空间”的编排过程;而当沙盘被布置好,并就沙盘上的模型展开讨论时,模型就成为了各方进行交流的中间媒介。
数字孪生是存在于"数字化虚拟空间"中的模型,因此我们可以将其理解为一门人与机器、机器与机器的交流语言。在工程设计阶段,人会根据自己的设想,将模型编排到数字空间中;之后,计算机会接收工程师创建的工程,并在“理解”模型的含义后,开始完成一系列处理任务;而在计算机运行的过程,各软件还会以数字模型的内容为基础,“思考”下一步需完成的任务,并就各模块间的协同展开“协商”。
随着工业软件的普及,“数字化虚拟空间”中产生了大量的数字模型;而当把各类模型组织在一起时,跨学科、跨领域的智能制造场景也就随之产生。然而由于各类模型背后技术与标准的问题,也给系统的集成带来了巨大的挑战。
除了需求侧的变化外,新产品与新技术的出现,也使智能制造概念的落地成为可能:
·工业研发类软件(CAX/EDA)的普及,使产品设计、工艺设计的效率得到显著提高;
·生产管理系统(MES)的引入开始帮助经营者对生产资源进行全局的分析、计划与调度;
·诸如激光扫描成像、机器视觉、标识(如条形码)等感知技术,开始在质检、生产追溯等领域得以应用;
·计算机性能的提升,以及软件设计思想的改进,也开始在工业中体现价值。
随着技术与市场的外部环境已经发生变化,作为在生产系统中承上启下的环节,自动化系统也在发生改变。
随着工业互联网的发展,融合新型感知与IT技术,与制度化有了更深的融合。在感知层面,自动化系统对诸多新型感知技术进行了集成。
这涉及到了标识技术: 通过集成条形码/RFID等标识技术,对产品的类别、位置等信息进行感知;当此类技术与自动化结合时,则可实现仓储自动化(根据产品位置,执行搬运或入库任务)、柔性加工(根据产品型号,变换加工参数)、柔性运输(根据产品型号,决定运输路线)等场景。而在成像/图像技术方面,可以利用机器视觉、激光成像等感知技术可用于检测物体的形状、尺寸、位置等物理特征;视觉系统在与自动化结合后,可实现残次品筛查与过滤、机器人货物分拣等功能;而激光成像技术与自动化的组合,则可实现形状检测(如用机器人扫描整车),车辆碰撞检测(如叉车倒车制动)等功能。
在IT技术层面,自动化系统对新型计算机与网络技术进行了集成。首先是计算技术,通过更强的算力,以及高级算法的引入,实现设备的工况诊断(如震动频率、噪声、转速异常等);其次是网络技术: 通过以太网,实现设备的横向协同(如机械臂为机床上料,装备故障导致运输线停止),以及与IT系统的纵向整合(与MES,CAX软件的集成)。
由于涉及到一系列新技术的集成,因此西方自动化厂商(欧系为主)也在本世纪初,开始对下一代自动化技术的预研工作;而我们目前在市场所见到的高端控制系统(如PC控制器、产线控制器、边缘计算控制器),也都是那一时期所产出的研发成果。
无论是研发、生产或是运营,智能制造给企业带来的想象空间都是巨大的。然后,当从规划转为落地阶段时,企业会发现各种“碎片化”的技术/产品/标准,就像是彼此无法咬合的齿轮,很难被整合在一起。因此在智能制造发展初期,也出现了大量规划“诗和远方”,实施“眼前苟且”的项目。
虽然在特征、应用场景等方面已经达成了广泛的共识,但至今为止,业界依然无法对自动化的功能范围和技术构成,给出明确的界定。造成这一现象的原因,并不在于这项技术中有多么高深的理论,而是因为自动化技术本身,便是一套不断在演化的体系。
从功能角度讲,如今的自动化已经由执行简单重复任务的控制终端,演变为网络化、智能化的数字系统,而柔性产线、协作机器人、增材制造、过程优化等系统的出现,则成为先进自动化技术的典型代表。同时,自动化技术的使用范围,早也不局限于工厂内的生产环节,在能源(发电、配电、开采)、交通(轨道信号系统)、物流(物流自动化、港口装备)、建筑(工程机械、楼宇自动化)、医疗(医疗设备)等领域广泛应用,甚至餐饮的厨房自动化、服务机器人等也有了新的阵地。
从技术角度看,自动化也始终不断在融入新的技术。在感知层面,自动化系统的能力已由传感器、仪器仪表的集成,扩展到对机器视觉、3D激光成像、标识(二维码/RFID)等新型感知终端的整合;在网络层面,自动化的通讯功能也由早期的现场总线、工业以太网、工业无线,延伸到了如今的工业互联网(TCP/HTTP/TSN/5G);在软件层面,自动化则从控制程序的载体,演化为具备边缘计算、数字孪生等能力的现代软件系统。新技术的发展为自动化的进步创造了外部条件,而市场需求的变化,以及来自工程应用的反馈,则是促使自动化不断迭代升级的原动力。可以说,“自动化是一项因用而生的技术”。
本文将重点从“用”的角度出发,阐述自动化(软件工程)技术与产业的发展历程。
控制电路 - 控制系统的早期形态
图1 控制电路的开发流程
在上世纪50,60年代,为了实现汽车的大规模生产,汽车厂商开始在流水线上引入控制系统。但与那个年代的收音机、计算器类似,控制系统的功能主要是靠电子电路来实现的。
电路工程师是电子电路的主要设计与开发者,而他们的日常工作主要是:
·在设计阶段,根据功能需求,画出相应的电路图纸;在图纸中,会包括各个型号的电路元件,以及它们的布局与连线关系;
·在开发阶段,工程师负责根据图纸,将一个个元器件安装到电路板上,并把它们连接在一起;经过上述流程,便形成了一个叫“控制逻辑”的功能单元;
·在验证阶段,工程师需要通过电表的读数,对各个电路模块的输入输出进行逐一测试,从而确保功能与需求的一致性;
·当出现问题时,就需要对电路进行重新设计与开发,并重复上述的步骤;
从如今的技术发展水平去看,控制电路开发模式的缺点是十分明显的,一旦元器件布局被固化,功能便无法再进行修改。这就好像是在用毛笔字写长篇小说,不但费力,而且一旦出错,就不得不换张纸重新写。
可编程控制器 - 实现软硬分离
控制电路不但开发效率低下,而且也会随着功能的增加而变得异常复杂。这不但造成了工程师痛苦指数的上升,而且也使众多工业企业在高昂的开发成本面前,望而却步;正因为此,那个年代对控制系统的使用,主要还是局限在大型工业企业(如通用、波音、美孚)的有限生产环节。
为了使控制系统让更多人“用得起”,以“软件定义”为主导思想的可编程控制器(Programmable Logic Controller)也随之产生,而“软硬分离”则是达成这一目标非常重要的一步:
图2 早期PLC的硬件架构
·在硬件层面,可编程控制器采用了与现代计算机相似的通用硬件架构,其构成主要由处理器、内存/存储、通讯模块、输入输出等硬件模块构成。同时,为了适应工业现场的物理环境,控制器还在能耗、耐高(低)温、防震、IO模块(用于集成传感器)等方面进行特殊的设计与定制;
图3 PLC程序的开发流程
·在软件层面,工程师可通过自动化厂商提供的开发环境,完成控制程序的开发与测试;当程序出现错误时,用户只需将更新后的程序重新下载到硬件上,便可轻易地实现软件功能的更改。同时,为了方便与其它软件(如人机界面、MES)的集成,控制程序还提供了通讯的接口,并用于过程数据的分发与控制指令的接收;而且,当需要集成更加丰富的软件功能时,还可以在控制器上安装嵌入式操作系统(又称实时操作系统)。
可编程控制器的推广,使当时的工业发展产生了巨大的改变:
·通过“软硬分离”,可编程控制器成功取代了传统控制系统的开发、验证与修改流程,并大幅提升了工程师的开发效率;
·全新的开发流程,进一步细化了控制系统开发的分工体系,并诞生出专注于硬件、软件与工具、以及生产工艺等细分工作的工程师种类;
·开发模式与分工体系的改变,同时也孕育了自动化这一产业;而在此过程中崛起的企业(如西门子、通用、霍尼韦尔、三菱等),也在通过对技术的不断改良,使产业不断的走向成熟;
·自动化产业在发展过程中,培养了大批的工程师,而这些工程师又将自动化带到了工业最终用户的各个生产环节,并最终实现了社会整体生产效率的提升。
控制系统编程语言 - 面向工程的语言
图4 控制程序开发者/开发环境/执行环境
自动化系统的开发,实际上是工程师将“设想”提供给机器,而后由机器进行“理解”,并按照人的意图执行的过程。由于涉及到人与机器的交流,因此也将工程师编写的代码(或模型)称为编程(或建模)语言。
编程(建模)语言不但要考虑到“机器是否能读懂”这一技术问题,更重要的是照顾到人,这一“设想”提供者,的语言表达习惯。因此,自可编程控制器出现以来,它的编程方式便一直在参照人类的语言表达习惯。
图5 通用型语言与领域型语言
在设计自动化编程语言之初,研究者发现,人类语言体系中存在着截然不同的两种表达方式,它们分别是通用型语言和领域型语言:
·通用型语言(General Purpose)是人类日常生活中最频繁使用的表达方式,这一类语言主要由一套语法规则,以及一系列词汇、语句、段落所构成;而语言的使用者,通常也是采用从左到右,从上到下的顺序,表述头脑中的概念;
·通用语言虽然适用面广泛,但在数学、物理、化学、工程学等特定领域的运用中,却暴露出较大的局限性;由于需要阐述更系统化、精确化、抽象化的概念,因此人类便发明了一系列的符号与图形,用于表述某一专用领域的概念与知识,而这种表达方式则被称为领域型语言(Domain Specific)。
图6 通用编程语言与领域建模语言
与人类语言类似,计算机编程语言也存在通用型(General purpose)和领域型(Domain specific)两类语言体系;这其中,通用编程语言是目前IT行业,最为普及的编程手段(如C/C++、JAVA、Python);然而,在面对某些特定领域时,通用型编程语言同样也面临着“表达效率”方面的瓶颈;这时,领域型编程语言(又称建模语言)的特殊作用也就随之显现。
以第一代PLC中推出的梯形图(Ladder logic diagram)图形建模语言为例,由于沿袭了早期的控制电路设计方式(电路画线、元器件符号),因此PLC一经推出,便受到了广大控制系统工程师群体的好评。
随后,以欧系厂商为主的自动化厂商,又在梯形图的基础上,推出了功能块(Function block diagram)及顺序功能图(Sequential function chart)两种图形化建模语言;功能块建模方式为自动化系统引入了模块化、封装、复用等现代化的软件开发理念,而顺序功能图,则帮助工程师,将复杂的工序,分解为一步步相对简单的任务单元,从而极大的降低了复杂工艺的开发难度。
由于提供了一系列贴近专业知识结构的开发方式,自动化产业吸引了大批懂工艺、懂机械、懂电气的技术人才。与此同时,当某项技术的受众达到一定规模时,涉及到一致性、工程规范、教育等一系列因素的标准化工作,也开始显现出重要的作用;IEC 61131自动化编程规范,便是在这一时期由国际电工委员会IEC组织牵头制定,并由PLCOpen组织自发地负责后续的标准推广工作。
工控通讯网络 - 数量与距离所产生的效应
设备数量更多、通讯距离更远、传输质量更好,是网络技术发展的主线逻辑。以IT网络为例,当只有两台面对面摆放的机器时(电脑或打印机),一根网线便可建立彼此的通讯;当需要连接几台设备时,一台集线器就可以实现主机间的联通;而到了企业网这一规模后,一套由路由器和网管系统所组成的网络系统,则成为了标配。
与IT网络相似,工控系统的网络发展同样遵循这一规律,不过构成这一网络的主体, 则由PC机、服务器,变为了控制器、感知终端、工控机、触摸屏等设备。
图7 早期PLC网络架构
在自动化发展早期,PLC主要用于单台设备的简单控制,因此所采用的通讯方式也相对简单:
·PLC主要采用(控制器/IO模块)一体化的硬件架构,而控制器与现场设备的通讯功能,也主要是靠物理接线的方式实现;在系统运行时,传感器会将物理信号(电压/电流)传输给PLC的IO模块,随后IO模块会将电信号转换为CPU识别的数字信号,并交给控制程序进行处理;控制程序完成计算后,会将控制指令发送给IO,再由IO负责把数字指令转换为物理信号,反馈给现场的设备;
·PLC与人机界面(显示屏)的通讯主要采用串口,人机界面通过串口,周期的向PLC发送数据请求;在接收到请求后,PLC会将现场的过程数据返回给人机界面进行显示(人机界面向PLC发送控制指令,也是类似的道理);同时,串口还可作为PLC编程环境的程序下载通道,当开发环境发出下载指令时,PLC的管理程序会负责接收编译好的PLC程序文件。
·串口除了可以与软件进行通讯外,还可以作为与仪器仪表、RTU等设备进行通讯的媒介,不过此种方式无论在性能与可靠性上,都无法跟工业总线相提并论,因此适用场景也十分的有限(例如路灯、楼宇的控制)。
随着应用场景的增多,控制器与现场设备的通讯需求也发生了改变,因此自动化厂商开始引入基于数字化网络的通讯技术。
在现场设备通讯方面,由于受限于早期的(控制器/IO)一体化架构,控制系统在与数量更多,距离更远的设备进行通讯时,开始暴露出明显的瓶颈。因此,各自动化厂商纷纷推出了自己的现场总线/工业以太网技术:
·在网络结构方面,现场总线/工业以太网将控制系统,分解为由主站控制器及从站IO所组成的分布式架构;当需要增加设备/传感器的数量时,控制系统可通过在网络中增加IO模块的方式,实现系统的“扩容”;同时,由于采用了数字化网络技术,也使通讯距离、布线方式等方面得到极大的改善;
·在通讯质量方面,网络的各项指标并未因为控制器/IO模块的分离而被打折扣;在确定性方面,控制网络通过调度策略、时钟同步等机制的引入,确保网络报文准时、快速的到达;在可靠性方面,控制网络则通过冗余、防电磁干扰等方式,确保通讯处于长期可用的状态。
在IT网络通讯方面,由于需要与生产管理软件、第三方控制系统以及工业研发软件进行网络协同,因此控制器也引入了以太网通讯方面的技术。
硬件层面的问题解决后,还需要解决软件层面的开发问题。为了避免工程人员在项目交付阶段,陷入到具体琐碎的编码环节,自动化厂商将网络通讯,抽象为软件开发环境中模型,从而使工程人员通过简单的参数化/图形化配置,快速的搭建出一组控制系统的通讯功能。
自动化融入工业软件体系 - 虚拟调试与两化融合
图9 与仿真相结合的控制系统开发流程
工业研发类软件为使用者提供一套虚拟化的环境,用于对产品和生产工艺的特性与机理进行设计/分析/仿真/验证,由于减少了在实体样机上的投入,因此使企业的研发效率得到显著提升。
当在控制程序开发流程中引入CAE/CAM时,自动化系统的开发/验证效率也会得到显著提升。
在工艺设计阶段,设计部门的工程师可通过软件,对装备与产线模型的外观、布局、物理特性进行直观的设计;配置完成后,使用者可激活软件的仿真功能,并使程序中的模型“运转”起来;在仿真的过程中,用户可透过装备的运行情况,对现场的运行效果进行直观的了解。
而在工艺验证阶段,工程师可将开发完成的自动化程序,与仿真软件中的“虚拟”设备进行结合(由仿真设备为自动化软件提供数据),并通过对虚拟生产系统的调试(又称虚拟调试),预先验证控制工艺的可行性。
部分CAE/CAM软件会自带工艺与算法的开发功能,例如机床设计软件中,用于描述刀具运行轨迹的G-Code,还有科学计算软件中,用于热力学、空气动力学求解的机理模型;当在CAE/CAM完成开发后,这些模型可被导入到自动化系统,并与现场的实际设备、工艺结合使用。
工业研发软件已经成为自动化软件开发的加速器,而随着两者关系的进一步结合,更多的创新场景也将随之产生。而这也是为何,依靠自动化起家的一些企业(如西门子),会在过去十几年间,对工业研发软件展开疯狂并购的主要原因。
图10 自动化与生产管理系统的协同关系
与此同时,制造执行系统(MES)的使用,使生产过程中的资源组织、调度与管理水平得到了显著提升;而作为生产资源重要组成部分的装备与产线,自然也被纳入到生产管理的业务范畴。随着生产管理功能的不断完善,MES与自动化系统间的协同关系也变得更为紧密。
这意味着,工业现场的设备故障信息可与设备管理系统、人力管理系统进行组合,形成设备维修与保养的工作流程;而设备能力信息可为排产系统提供信息,而排产系统产生的工作计划,也会被同步到给自动化系统,并转化为具体的设备执行指令。
自动化进一步放开手脚,在仓储自动化系统的产品库存信息,可帮助库存管理系统,判断物料是否需要补充;在质检过程中产生的质量信息,自动化设备可为质量管理系统的质量报告,提供数据基础;而能耗信息的采集,可帮助能源管理系统提供数据支持。
这意味着自动化与软件系统,已经紧密地结合在一起。
数字孪生:需要一种编排语言
图11 数字模型语言
说到数字孪生,目前尚未产生一套统一的定义,但从应用的角度讲,可以将数字孪生理解为,一种虚实映射的方法,一门编排数字空间的语言,以及一项融合多专业工程与应用的技术手段。
虚实映射是将(包括人的知识在内的)物理世界的事物,映射到虚拟空间,并进行分析决策,而后反馈回物理世界的过程。事实上,早在计算机出现之前,“虚拟空间”的应用便已经存在。以军事沙盘为例,指挥官会将士兵、装备、地图等实体模型布置在沙盘上,用于展示军力的部署情况;同时,沙盘上也会摆放各种形状的纸片模型,用于代表参谋们的分析过程,以及军官下达指令。
在以上的示例中,无论是实体模型(士兵、装备等),还是逻辑模型(纸片),都可以被平等地布置在相同的“虚拟空间”中,并实现相互的融合。
随着计算机技术的普及,“数字化虚拟空间”开始逐步发展成型,而模型这一作为虚实映射的工具,也变身成为数字世界中的数字化模型(即数字孪生);当把数字模型“摆放”到计算机这一信息空间更大、计算能力更强、网络化程度更高的“数字化沙盘”上时,物理信息系统这一虚实融合的“数字虚拟空间”也就随之产生。
虽然被迁移到了数字空间,但模型的基本用法并未发生本质改变。
模型的第一类用法被称为仿真(或模拟),即通过现有的状态,推演出下一阶段即将发生的事情;因此,无论是在沙盘上的战况推演,或是工业研发软件中,对装备行为的模拟,都属于仿真的范畴。
模型的第二类用法被称为控制,即根据现场的情况做出分析,并将决策反馈给执行单位的过程;因此,可以将指挥官在沙盘上进行分析,并进行指令下达的过程,理解为一种控制;而自动化系统对装备、产线、生产单位的工况感知,以及指令的下达,同样也是一种控制。
模型的其它用法还包括管理(如进行资源的规划与调配如生产管理系统)以及洞察等。同时,将上述几类模型结合使用使用时,还可以构造出更复杂的应用场景。
模型不但是一种虚实映射的方法,而且由于背后所隐含的符号学含义,模型还被视为是一门语言。而当从语言的视角看待模型时,它便成为了一种编排虚拟空间的工具,以及作为沟通交流的媒介。
还是以沙盘为例,指挥官在会议上对各种不同含义模型(士兵,装备,计划)的摆放,实际上就是对沙盘这一“虚拟空间”的编排过程;而当沙盘被布置好,并就沙盘上的模型展开讨论时,模型就成为了各方进行交流的中间媒介。
数字孪生是存在于"数字化虚拟空间"中的模型,因此我们可以将其理解为一门人与机器、机器与机器的交流语言。在工程设计阶段,人会根据自己的设想,将模型编排到数字空间中;之后,计算机会接收工程师创建的工程,并在“理解”模型的含义后,开始完成一系列处理任务;而在计算机运行的过程,各软件还会以数字模型的内容为基础,“思考”下一步需完成的任务,并就各模块间的协同展开“协商”。
随着工业软件的普及,“数字化虚拟空间”中产生了大量的数字模型;而当把各类模型组织在一起时,跨学科、跨领域的智能制造场景也就随之产生。然而由于各类模型背后技术与标准的问题,也给系统的集成带来了巨大的挑战。
智能制造与工业互联网带来的影响
到本世纪初,自动化技术的应用已经趋于成熟,因此工业企业开始考虑,如何将分散的工业要素(研发、管理、设备)进行整合,从而使企业的效率得到进一步的提升;这便是智能制造概念提出的主要背景。
图12 自动化周边环境的变化
除了需求侧的变化外,新产品与新技术的出现,也使智能制造概念的落地成为可能:
·工业研发类软件(CAX/EDA)的普及,使产品设计、工艺设计的效率得到显著提高;
·生产管理系统(MES)的引入开始帮助经营者对生产资源进行全局的分析、计划与调度;
·诸如激光扫描成像、机器视觉、标识(如条形码)等感知技术,开始在质检、生产追溯等领域得以应用;
·计算机性能的提升,以及软件设计思想的改进,也开始在工业中体现价值。
随着技术与市场的外部环境已经发生变化,作为在生产系统中承上启下的环节,自动化系统也在发生改变。
随着工业互联网的发展,融合新型感知与IT技术,与制度化有了更深的融合。在感知层面,自动化系统对诸多新型感知技术进行了集成。
这涉及到了标识技术: 通过集成条形码/RFID等标识技术,对产品的类别、位置等信息进行感知;当此类技术与自动化结合时,则可实现仓储自动化(根据产品位置,执行搬运或入库任务)、柔性加工(根据产品型号,变换加工参数)、柔性运输(根据产品型号,决定运输路线)等场景。而在成像/图像技术方面,可以利用机器视觉、激光成像等感知技术可用于检测物体的形状、尺寸、位置等物理特征;视觉系统在与自动化结合后,可实现残次品筛查与过滤、机器人货物分拣等功能;而激光成像技术与自动化的组合,则可实现形状检测(如用机器人扫描整车),车辆碰撞检测(如叉车倒车制动)等功能。
在IT技术层面,自动化系统对新型计算机与网络技术进行了集成。首先是计算技术,通过更强的算力,以及高级算法的引入,实现设备的工况诊断(如震动频率、噪声、转速异常等);其次是网络技术: 通过以太网,实现设备的横向协同(如机械臂为机床上料,装备故障导致运输线停止),以及与IT系统的纵向整合(与MES,CAX软件的集成)。
由于涉及到一系列新技术的集成,因此西方自动化厂商(欧系为主)也在本世纪初,开始对下一代自动化技术的预研工作;而我们目前在市场所见到的高端控制系统(如PC控制器、产线控制器、边缘计算控制器),也都是那一时期所产出的研发成果。
无论是研发、生产或是运营,智能制造给企业带来的想象空间都是巨大的。然后,当从规划转为落地阶段时,企业会发现各种“碎片化”的技术/产品/标准,就像是彼此无法咬合的齿轮,很难被整合在一起。因此在智能制造发展初期,也出现了大量规划“诗和远方”,实施“眼前苟且”的项目。
(未完待续,本文描述了自动化的演化路径,分两篇刊登,本篇为上篇。)