自主可控可编程控制系统架构与关键技术

2023-02-06 14:07范大鹏陈凌宇王晓宇吴继春
光学精密工程 2023年1期
关键词:功能块主站组态

范大鹏, 陈凌宇*, 王晓宇, 吴继春

(1.国防科技大学 智能科学学院,湖南 长沙 410073;2.华中科技大学 机械科学与工程学院,湖北 武汉 430074;3.湘潭大学 机械工程学院,湖南 湘潭 411105)

1 引 言

以嵌入式计算机(IPC)、可编程逻辑控制器(PLC)、现场总线控制系统(FCS)为代表的可编程控制系统(PMC)作为实现各类工业装备自动化的“大脑”和“神经”,是现代智能工厂中实时控制、信息采集、过程监控管、安全保障与防护等设备不可或缺的共性基础控制部件,广泛应用于数控机床、机器人、自动化生产线等自动化装备中[1-2]。作为全球最大的制造业基地,我国市场上95%的可编程控制器产品被国外品牌垄断[3],国内装备制造业严重依赖国外控制器产品,产业升级面临着国外的掣肘,存在严重的市场隐患。迫切需要提高工业控制基础部件产品的自主化率,以保障高端制造装备的运行的本质安全。

可编程控制系统涉及机械、电子、自动化、计算机软硬件等多个学科,由嵌入式主机(主站)、实时现场总线、总线控制组件(从站)、软件集成开发环境(Integrated Development Environment,IDE)、人机交互(HMI)软件等技术构成相互依存的技术生态链条[4]。欧美发达国家在可编程控制技术领域经过多年的技术积累,已经有了成熟的系列产品,利用专利、标准、规范构筑了严密的技术壁垒,使可编程控制系统的自主可控研发门槛很高。国内相关高校和企业在核高基、高档数控机床及基础制造装备等国家重大专项支持下,在国产操作系统、工业以太网总线、高性能IPC及测控模块等一些关键技术上取得了一定成果[5-7],但是尚未形成完整的关键技术链条和研发生态。

国内研发的可编程控制系统主从站硬件大多数采用定制化模式。针对专用的机电系统设计,标准化、模块化程度不高,系统底层硬件构成差异大,互换性及互联互通性不强,研制与批产成本高。在软件方面,IDE是用户进行编程、调试、下载等操作的重要工具,涉及实时操作系统、应用层协议栈、可视化编程、代码库生成和管理、HMI组态等多个方面,难度和工作量极大[8-10]。这类软件被3S,KW-Software等国外软件厂商垄断,国内自动化厂商还不能提供完整的软件开发平台,严重制约了自主可控可编程控制系统软件的发展。

现场总线是实现可编程控制系统主从站数据高速、可靠传输的重要桥梁。由于制造装备对数据传输实时性及同步性要求的不断提高,以EtherCAT,Profinet,POWERLINK为代表的实时以太网总线成为可编程控制系统的标配[11]。这些总线厂商通过出售集成通信协议的专用ASIC芯片来授权总线的使用,严重影响工业控制系统的信息安全。以EPA总线[12]、NCUC总线[13]、EtherMAC总线[14]等为代表的国内实时以太网总线,对标准IEEE802.3链路层进行修改,在FPGA中集成链路层协议,初步形成了自主可控的实时以太网总线。但功能完善程度和整体实时性能与国外先进总线仍然具有一定差距[15]。

目前,我国可编程控制系统研发面临的主要问题为:(1)技术体系复杂,国外技术壁垒高筑;(2)碎片化的技术研究,尚未形成各项关键技术研发生态;(3)工业软件开发难度大,需要长期的技术积累来形成软件数字资产;(4)总线技术面临升级改造,迫切需要掌握高性能总线接口技术;(5)缺乏面向嵌入式应用的国产工业级CPU,FPGA芯片。

本文通过分析可编程控制系统的发展过程和技术体系,提出一种总线式可编程控制系统构成方案。以实现自主可控为目标,对方案中的主从站标准化、实时以太网总线及应用层协议、软件集成开发环境及人机界面、符合PLCopen规范的软件功能库等的原理和关键技术进行分析说明,最后从建立研发技术生态角度提出了各关键技术的解决思路和方法。

2 可编程控制系统架构分析

2.1 可编程控制系统发展历程

自20世纪60年代开始,随着微电子、计算机、信息处理等技术的发展,数字控制系统逐渐替代模拟控制系统,可编程工业控制系统开始登上历史舞台。这类系统主要经历了集中式控制系统(Centralised Control System, CCS)、分布式控制系统(Distributed Control System, DCS)、总线式控制系统(Fieldbus Control System, FCS)3个发展阶段[16],如图1所示。集中式控制系统是由一台主机作为核心控制单元,通过计算机板卡扩展外部通用信号接口,对系统中各个外设进行直接控制的系统。由于采用单个控制器单元,外设数量、控制算法复杂程度等因素的增加,导致系统处理能力受到限制。

分布式控制系统以微处理器为基础,将由主机实现的控制功能分散到各个子控制器模块中,使子控制器模块具有较强的局部处理功能,主机用于完成协调控制功能。其特点在于对系统采用集中管理,各外设通过子控制器分散控制。这种分布式结构能够提高系统工作的可靠性,但存在硬软件标准化程度不高,不易实现开放互联的问题。

总线式控制系统则主要依托于各种工业现场总线,系统主机(站)通过总线通信管理的方式对总线上的从站外设节点进行实时控制和管理操作,实现在标准通信协议下各功能模块的开放式互联[17]。这种集计算技术、总线技术与控制技术为一体的开放式工业控制系统体系架构,相比CCS和DCS,在系统可靠性、使用灵活性、功能多样性、架构开放性、设备成本等多个方面都具有较大的优势。尤其是实时以太网技术在现场总线中的广泛应用。当前,基于实时以太网总线的FCS已成为工业过程控制与装备自动化领域可编程控制系统的主流架构。

图1 可编程控制系统发展阶段示意图Fig.1 Schematic diagram of programmable control system development stage

2.2 可编程控制系统发展架构特点

早期的可编程控制系统大都采用相对封闭的硬软件结构。在硬件上,采用专用的IO控制模块、电源模块和专用的中低速总线,硬件模块定制化程度较高,缺乏兼容性。软件上,各厂商都推出了各自的软件开发环境且都采用梯形图、语句表等编程语言,但其组态方式、寻址空间、语言结构等均有较大不同。总线上,各大厂商使用的总线及协议不尽相同,如西门子的Profibus,三菱的CC-Link、贝加莱的Powerlink、施耐德的Modbus-IDA等总线。各厂商的可编程控制系统硬软件互不兼容,具有较高的技术壁垒,严重阻碍了总线技术发展和不同厂商产品的互联互通。

FCS具有现场总线及协议标准化、从站节点控制器模块化、逻辑与运动控制编程开发环境集成化、系统互联开放化等特征。这些特征使得可编程控制系统的结构和功能由过去的封闭式走向开放式。当前,总线式可编程控制系统的架构和开发应用具有以下主要特点:

(1)在总线方面,采用具有高同步性能的实时以太网总线及标准化应用层协议。在符合IEEE802.3规范的以太网物理层接口的基础上设计适应工业控制的链路层数据传输协议,使它具有高的实时和同步性能,是实时以太网现场总线接口技术研制的核心内容。当前,应用较广的实时以太网总线有Ethernet/IP,EthernetPowerlink,Profinet,及EtherCAT等。这些总线的物理层、链路层均采用通用以太网接口标准,主要区别在于网络层、传输层实现实时性的方法。其实时控制周期可小于1 ms甚至100 μs,同步性能也能达到100 ns以内[18],为可编程控制系统的总线选择提供了较大的空间。

应用层协议用于屏蔽总线物理层、链路层差异,为用户层提供统一的总线读写操作服务接口。应用层协议及协议栈对总线式可编程控制系统的主站、从站用户程序设计有直接的影响。在众多应用层协议中,CANopen 协议是一种占有重要地位的标准,该协议由CiA(CAN-in-Automation)组织1992年发布,其主要特点是通过“数据字典(Object Dictionary,OD)”对工业控制系统中各节点设备的功能和网络行为进行描述[19]。依靠CANopen 协议的支持,主机可通过总线对不同厂商的CANopen设备进行灵活配置。将CANOPEN协议与实时以太网相结合,形成了不同类型的实时以太网应用层协议,如Powerlink,COE(CANopen over EtherCAT)应用层协议等。

(2)在系统硬件方面,主站和从站越来越通用化。总线式可编程控制系统一般由主站和多个测控从站通过实时以太网总线连接构成。对主站总线接口硬件而言,可直接采用标准以太网卡或集成在嵌入式主板上的通用以太网控制器,因此主站有较大的选择余地。但对于从站而言,则需要通过专用实时以太网总线接口芯片来实现从站处理器对总线数据的收发操作。随着总线接口芯片技术的日臻成熟,用于实现数字量IO、模拟量输入输出、编码器检测、运动控制、伺服驱动等现场测控功能的从站与实时总线的数据交换不再困难。这也促进了从站标准化、通用化程度的提高,具有实时以太网接口的从站类型、规格会愈加丰富,性价比会不断提升,使未来可编程控制系统的从站硬件选择和系统构建过程变得更加简单快捷。

(3)在编程开发工具软件方面,功能更加丰富。总线式控制系统的工具软件主要涉及自动化编程和人机交互界面编程两个方面。自动化编程软件是一种用于工控语言编程调试的集成化开发平台,能够按照IEC61131-3国际标准规定 的 指 令 表(IL)、梯 形 图(LD)、功 能 块 图(FBD)、结构化文本(ST)和顺序功能图(SFC)5种编程语言进行逻辑控制、运动控制程序的混合编程和在线调试[20]。人机交互界面编程软件主要用于总线式控制系统内部状态数据显示和外部指令等人机交互方式的设计。这两种软件相辅相成,共同决定着工控系统编程的质量和效率。编程开发工具软件已成为衡量可编程控制系统技术水平的重要标志。目前,应用较多的编程工具软件主要以德国的产品为主,如3S公司的CoDeSys3、KW公司的KW-Software、西门子公司的SIMATIC WinAC、倍福公司的Twin-CAT3等。这些工具软件具有多语言混合编程、实时多任务、仿真与在线调试、支持Modbus 接口协议、能支持多种总线类型、硬软件扩展性好等共性特点。这些功能特点涵盖了控制系统项目在编程、调试、管理、维护等各个阶段所需的软件开发及协同管理工作,使得编程标准化和可移植性显著提高,在同一个工具软件平台通过控制逻辑和人机交互界面的“软件组态”就能进行可编程控制系统的快速可重构开发,实现完整的自动化解决方案,还会显著降低人力、研发、培训和技术支持的成本。

(4)在应用软件开发方面,IEC61131-3语言和PLCopen规范相结合成为主要的标准化开发样式。在以IEC61131-3语言编程调试为基础的集成化开发平台上,采用IEC61131-3的5种编程语言以及与C/C++的混合编程可以灵活实现对被控设备对象的逻辑、运动、安全等控制功能的软件开发。但在制造机床、工业机器人等需要多轴伺服电机高精度协同控制的高端装备应用场合,所设计的应用软件在一定程度上仍存在对系统硬件依赖性强、开发标准化程度不高、继承复用性不理想的问题。针对某类工业装备的控制应用需求,基于PLCopen规范,通过IEC61131-3编程语言进行运动控制、工艺过程控制、安全控制等应用软件功能块的标准化开发,进而建立该类装备运行控制的完整软件功能块库,已成为当前可编程控制系统应用软件研究的主要技术途径[21]。对应用软件开发者而言,通过调用功能块即可快速实现对装备的复杂运动控制。所开发的功能块库具有与主从站硬件的依赖性低、工艺知识封装与隐藏性好、便于跨平台复用、易于智能化升级的特点。随着硬件成本的不断降低,可编程控制系统的核心技术竞争力主要表现在功能块库的差化方面。作为“软件定义机器”理念的具体实现样式,这些功能块库也将成为未来企业的重要数字资源和提高自身市场竞争力的主要内容。

(5)在系统应用方面,开放性互联能力不断增强。与工业现场的设备和传感器直接连接,获取各类现场设备的工作状态数据,实现设备的自动化控制,是可编程控制系统的主要任务。但随着企业信息化、智能化水平的提高,迫切需要将部分有价值的现场数据传输至上层MES/ERP管理系统,以实现车间、企业,以及更高层级的设备运营决策优化。特别是工业互联网、智能制造和大数据技术的运用,对总线式可编程控制系统的开放互联性能提出了更高的要求,但现有总线系统间的应用层协议差异较大,难以满足需求。如何直接获取现场数据的优势,嵌入IT接口和安全访问技术,实现开放式互联,已成为可编程控制系统发展的一个重要特点。OPC基金会提出的统一架构(OPC UA)模型作为一种自动化领域的数据交换互操作性标准,可以实现制造管理系统中现场设备、车间、企业、云端等层级间数据的高安全性无缝数据交换,是近年工业4.0和工业物联网领域的研究热点之一[22]。特别值得关注的是,OPC UA与PLCopen两个国际组织在OPC UA信息模型和IEC61131-3功能结构模型的合作,通过IEC61131-3语言来搭建符合OPC UA规范的数据交换模型,并提出了PLCopen OPC-UA规范,开发了OPC UA客户端功能模块,使得可在PLCopen编程开发环境下通过客户端功能块调用即可方便地实现与系统内其他设备的数据交换。

2.3 总线式可编程控制系统技术体系

多年来,在核高基、高端数控机床及基础制造装备等国家重大专项的支持下,国产化CPU、FPGA芯片、操作系统软件等硬软件技术已取得长足进步。国产元器件产业化能力显著增强,使可编程控制系统的硬件电路设计有了更大的选择空间。在高性能运动控制系统、工业编程软件和HMI软件开发等方面,我国已掌握一批关键技术,并具备了可编程控制系统自主可控研究的基础条件。

典型的总线式可编程控制系统构成如图2所示。其中,嵌入式计算机(主站)通过实时以太网总线将节点控制器(从站)进行连接并组网。在符合IEC61131-3标准的集成开发环境(IDE)中编写逻辑和运动控制程序,经过编译后下载至主站。主站运行过程中根据代码的执行流程,在程序组织单元(POU)中向各从站发送控制指令。各从站在接收主站控制指令后,控制相应的末端设备并采集设备状态信息通过总线返回至主站。人机界面(HMI)组态软件用于人机交互方式设计,实现系统指令输入和各从站状态数据显示。由此可知,嵌入式主站、实时以太网总线、各种功能类型从站、IDE以及HMI组态软件等5个方面的硬软件共同构成了可编程控制系统的产品生态体系。

图2 FCS系统构成原理Fig.2 Schematic diagram of FCS system composition

研发可编程控制系统的核心就是对图2中典型系统各构成部分的相关技术进行攻关。

图3为总线式可编程控制系统涉及到的相关技术。除硬软件关键技术以外,图中还增列出了安全设计技术。这是因为随着装备信息化、智能化的发展,控制和信息互联程度越来越高,装备运行面临更多安全威胁,对可编程控制系统的安全性功能提出了更高的要求。安全总线、安全控制、安全从站、安全伺服驱动、安全设计软件和智能安全等技术已成为未来高端可编程控制技术和市场竞争的焦点[23]。为提高市场竞争力,必须高度重视可编程控制系统的功能安全和信息安全问题的理论和关键技术研究。

图3 总线式可编程控制系统技术架构Fig.3 Technical architecture of fieldbus programmable control system

总线式可编程控制系统研发涉及机械、微电子、计算机、控制等多个学科,共同构成了技术生态链条。单在链条中的某一环节进行研究,很难取得技术突破,形成完整的系统级产品。必须在整个技术生态链条上的各个环节同步持续发力,实现系统内主站、总线、从站硬件和集成开发环境、HMI组态软件开发等成套关键技术的整体突破,才能真正具备可编程控制系统的自主可控研发能力。

3 总线式可编程控制系统自主可控关键技术

总线式可编程控制系统研制涉及技术生态链条长、关键技术复杂,需要长期的技术积累。

3.1 自主可控研发的技术途径

总线式可编程控制系统自主可控研发的内涵与目标是:基于国产CPU、操作系统等基础芯片和软件,围绕主站、总线、从站硬件和集成开发环境、HMI组态软件等总线式可编程控制系统技术链条中的关键环节开展全面的研究,建立较完备的研发生态,形成具有自主知识产权的核心技术成果,在硬软件设计、加工检测、运行维护等方面具备独立可控、不受制于人的研发能力。图4为我们开发的总线式可编程控制系统构成示意图。

在系统主站研发方面,硬件上采用集成国产CPU,SOC等芯片,具有标准以太网口、串口、GPIO等外设的嵌入式主板,软件上采用国产实时操作系统。

在从站研发方面,硬件上以国产SoC芯片为核心控制器件,根据数字量IO、模拟量AD/DA、伺服控制、通信转换等控制功能的需求,进行不同类型外设电路的设计。为减少硬件资源的占用率,提高运行实时性,从站不安装实时操作系统,对CANopen协议栈、总线控制器接口操作、外设底层操作均采用C/C++直接编写。

在实时以太网总线控制器方面,实时性和同步性是衡量总线式可编程控制系统数据传输性能的核心指标。在物理层符合以太网物理链路标准IEEE802.3的条件下,实时性和同步性主要取决于介质访问控制子层(MAC层)的数据交换速度和交换方式。因此,须根据控制过程的实时与非实时数据传输特点,设计能在FPGA或ASIC芯片上运行的网络数据收发链路层传输协议IP核,才能保证网络帧的实时传输和同步性能。

在软件IDE方面,以国产实时操作系统为基础,对开源的IEC61131-3 IDE的架构及原理进行剖析,提出包含IDE和主站运行环境(Runtime)的编程开发环境构件方案,并开展硬件组态配置、IEC61131-3编程、CANopen协议栈、C代码转换、程序下载及调试、HMI数据访问等功能插件的研究,以实现IEC61131-3五种编程语言的可视化开发。

在人机交互界面HMI组态软件方面,HMI是可编程控制系统的“窗口”,用于实现系统状态的实时监视和控制,起着人机交互显示操控的重要作用。HMI功能的实现主要取决于运行于控制系统内部的数据访问机制的有效性和显示操作控件设计的快捷性。前者一般采用MODBUS数据交换协议在主站中通过软件功能插件的形式实现,后者则可借助通用的HMI组态软件进行快速开发。

在PLCopen功能块库开发方面,首先开展基于PLCopen规范的运动控制功能库架构设计和快速开发方法的研究,以掌握基于IEC61131-3编程语言的运动控制、安全控制等PLCopen功能块的标准化开发方法,进而具备能对典型装备运动过程进行建模分析和功能块库快速研制的能力。

图4 总线式可编程控制系统构成示意图Fig.4 Schematic diagram of autonomous PMC system

3.2 主从站硬件标准化

主站是可编程控制系统的“大脑”,用于完成逻辑与运动控制功能执行、从站任务调度与管理、总线实时数据传输、HMI界面通信等任务。主站对外接口单一,以网络通信为主。以国产X86架构的处理器芯片为核心的嵌入式计算机平台就可以实现主站功能。目前,性能优越的嵌入式国产CPU处理器芯片主要包括飞腾系列、龙芯系列以及申威系列等[24]。为了充分发挥国产处理器的性能特点,需对国产CPU硬件环境的信号完整性、功能模块与CPU通信接口、基于现场总线的系统运行问题进行优化。主站的硬件架构如图5所示,包括主控CPU、电源模块、USB设备输入接口、HDMI显示输出接口、SATA硬盘接口、DDR3内存单元、两路独立的标准以太网接口、RS232通信接口、CAN总线接口和GPIO接口等。

图5 主站硬件架构Fig.5 Master station hardware architecture

从站作为工业现场末端设备的控制器,接收现场总线指令,直接控制对不同类型的工业现场末端设备进行状态信息采集。根据外部设备控制原理、接口类型等差异,在通用的处理器电路和通信电路基础上,设计针对不同外设的电路结构是实现从站模块化开发的有效手段。通过对设备控制模型的分析与整合,设计了具有开关量输入输出的数字量IO从站、具有模拟电压、电流采集与输出的模拟量IO从站、集成伺服控制算法的运动控制从站、具有现场总线与其他通信方式兼容的通信转换从站。从站采用集成Cortexm3内核的国产SoC芯片作为从站主控单元,在国产大容量FPGA中集成现场总线协议,形成从站主控和通信相关的硬件架构。模块化的从站硬件结构如图6所示。

图6 从站硬件架构Fig.6 Schematic diagram of slave station hardware

3.3 实时以太网总线控制器

实时以太网总线是FCS控制系统的基础,是实现系统整体连接的关键“桥梁”。目前,典型的实时以太网总线如EtherCAT,POWERLINK和PROFINET,是在以太网物理链路标准IEEE802.3的基础上,保留物理层接口与传输线路,修改了数据链路层的MAC子层数据传输协议,使数据传输获得实时性[25]。因此,采用国产核心器件搭建标准的以太网硬件平台,针对工业控制过程中实时与非实时数据的传输特点,设计网络数据收发链路层协议、网络帧实时传输、通信同步等方法,是实现实时以太网总线自主可控的关键。

使用Verilog语言对实时以太网链路层协议进行开发,并封装成IP核集成在国产FPGA中作为总线控制器,可缩短开发时间,便于升级、维护。设计的总线控制器模块如图7所示,主要包括2路独立的MII接口模块、数据访问接口、寄存器模块、通信控制模块和同步控制模块。其中,MII接口模块用于控制100 Mb/s通用型PHY芯片,进行网络底层数据收发;数据访问接口用于总线控制器与从站主控芯片之间数据传输,主要包括对总线控制器进行配置、读取总线控制器中接收到的网络数据、将外设状态信息写入总线控制器后发送至主站、产生通信中断及同步信号;寄存器模块用于存放总线控制器信息、配置、通道数据等参数;通信控制模块对通信过程中产生的过程数据(周期传输)和服务数据(非周期传输)进行独立的通道管理,以实现数据交换的准确性与实时性;同步控制模块集成基于IEEE1588精准时钟同步协议,计算网络通信帧在各从站间传输的延时并进行补偿,通过数据访问接口的SYNC信号,产生精准的同步信号。

图7为实时以太网总线数据传输原理。主站发送以太网数据帧至从站以太网接口1,总线控制器的MII接口模块1将网络帧数据读取后由通信控制模块处理后存放在寄存器模块中。此时,数据访问接口根据同步控制模块产生通信中断信号和同步信号。从站主控芯片通过数据访问接口将总线控制器接收到的数据读出,通过协议转换模块将链路层协议转换为应用层协议后送入应用层协议栈。协议栈更新对象字典中数据,控制设备操作模型对外设进行控制。外设状态参数由传感器采集后写入对象字典,并通过协议转换后存入总线控制器的寄存器模块中。在以太网数据帧抵达总线控制器时,通信控制模块将寄存器中外设状态参数写入网络帧并由MII接口模块2发送至总线。

图7 实时以太网数据传输原理Fig.7 Schematic diagram of real-time Ethernet data transmission

3.4 基于IEC61131-3的可视化编程与调试

IEC61131-3标准规定了PLC,DCS,CNC等系统的编程标准,包括IL,LD,FBD,ST,SFC五种编程语言。这种标准化编程方式简化了逻辑和运动控制代码编写的过程,改变了传统基于C/C++等底层语言的繁琐编程模式,使用户能方便高效地进行应用程序的开发[26]。在国产操作系统或Linux操作系统中设计一套具有IEC61131-3逻辑和运动控制编程、代码转换编译、调试与下载功能的IDE是可编程控制系统软件自主可控的基础。

构成IDE的功能组件主要包括硬件组态配置插件、IEC61131-3编程插件(GUI)、C代码转换插件、程序下载及调试插件。此外,在主站中集成代码管理插件来实现主站与软件集成开发环境之间的通信和管理,也是实现可视化编程调试不可缺少的环节。其中,硬件组态配置插件根据实际系统上从站数量、类型、对应的节点号等信息,形成整个系统的硬件连接关系,并生成系统组态文件,为主站实现网络通信调度提供准确的设备信息。IEC61131-3编程插件根据生成的系统组态文件,采用IEC61131-3定义的五种编程语言,进行系统整体逻辑功能的编程操作。这五种编程语言各有其优势,在编程时可采用一种或使用多种进行混合编程。C代码转换插件将设计完成的IEC61131-3逻辑代码转换为主站系统平台可以执行的标准C代码,为后续程序下载、调试等操作做好准备。由于ST的语法逻辑与C语言相似,插件首先将IEC61131-3其他语言转换为ST语言,再将ST转换为C代码。程序下载及调试插件操作以太网接口,将生成的C代码以及组态文件传输至主站用于程序下载/调试的网络端口。在主站运行过程中与主站中代码管理插件进行程序中的控制、状态变量的实时通信,通过在线修改相关变量参数实现调试功能。代码管理插件集成在主站程序中,实现与软件集成开发环境中程序下载及调试插件的实时通信。此外,通过接收系统逻辑功能C代码和组态文件,调用本地C/C++编译器,生成主站程序框架内具有完成系统逻辑功能的可执行文件,并集成在主站程序组织单元中。

图8展示了软件集成开发环境结构以及编程调试流程。用户在软件集成开发环境中进行硬件组态和符合IEC61131-3的程序编写后,通过网口将程序可执行的C代码下载到主站中。主站的代码管理插件对C代码进行编译,然后将可执行文件集成于主站POU中。最后,POU调用总线以太网端口进行总线通信,实现对系统各从站和末端设备的控制。

图8 IDE功能原理Fig.8 IDE functional schematic

3.5 HMI组态编程

在可编程控制系统中,HMI组态软件是一种可快速开发的工业自动化控制场景状态监测、管理控制的可视化软件,也是实现人机交互的重要工具[27]。HMI组态软件由界面开发环境和HMI运行程序构成。其中,界面开发环境用于设计HMI界面显示、图形、通信等相关结构,HMI运行程序则是在目标平台上实现最终HMI功能的程序。考虑到系统通用性和自主可控的需求,在通用的Windows/Linux操作系统中采用C语言在跨平台软件开发环境QT上进行HMI界面开发,在Linux以及国产操作系统中运行所生成的界面程序,实现了HMI组态编程软件的跨平台运行。

图9为HMI组态软件功能架构。界面开发环境运行在Windows操作系统中,用户通过工程项目管理组件、系统参数配置组件、监控界面绘制组件、通信管理组件以及界面程序生成组件开发和设计符合实际控制需求的HMI界面。其中,工程项目管理组件可对HMI界面开发过程进行管理和优化;系统参数配置组件对所设计的HMI界面运行设备、界面的屏幕分辨率、界面的图像刷新率等参数进行配置;监控界面绘制组件提供了HMI界面图形和动画的开发工具以及标准化的按钮、开关等插件;通信管理组件定义了工业控制常用的通信协议如Modbus-TCP,Modbus-RTU等。在完成HMI界面开发后,在界面程序生成组件中整合所有相关的界面设计的结果文件,打包生成HMI运行程序,并通过以太网或USB将HMI运行程序数据下载到Linux/国产操作系统的程序运行平台中。HMI运行程序在平台中通过实时通信组件建立与主站的实时通信,对实时数据库组件中的数据进行操作。同时,界面图控组件会根据用户的操作,实时地向数据库中更新界面状态。由此形成了基于实时数据库的界面操作协议,实现了HMI组态软件与主站的数据交换。

图9 HMI组态软件框架原理Fig.9 Schematic diagram of HMI software framework

3.6 PLCopen功能库

PLCopen规范是一种不依赖硬件框架的标准化、规范化的工业控制软件编程方法,包括逻辑编程规范、运动控制规范、XML规范、安全规范及OPC-UA规范,如图10所示。基于组件化的软件复用思想,可将通用的功能块进行组合设计并封装成可实现被控对象复杂程序功能的模块化程序单元[28]。用户在编程时通过调用功能块并定义逻辑连接、输入输出接口变量即可使用,大大提高了系统编程效率和资源利用率。在具有标准化硬件、总线、程序开发方法的FCS系统中,完善的、符合被控对象特性的PLCopen功能库是高端可编程控制系统数字资产和软实力的重要体现。

图10 PLCopen规范构成Fig.10 PLCopen specification composition

在PLCopen规范中,运动控制功能的实现取决于三个基本要素:运动控制功能块算法逻辑实现、轴状态机以及轴信息结构体[29]。其中,运动控制功能块主要实现运动控制相关的算法(如加减速规划、电子凸轮、插补等)[30];轴状态机则是描述轴当前的运动状态以及可能存在的状态跳转关系;轴信息结构体则描述了被控轴的所有参数。图11详细描述了PLCopen功能块的工作原理。在主站中根据运动控制基本模型建立轴状态机,定义了电机轴的所有运动状态以及各状态之间的转移关系。在IDE中利用IEC61131-3标准功能块,开发轴状态机中每个运动状态对应的运控控制功能块,从而形成完整的运动控制功能库。由于运动控制从站中集成了基本的三环控制算法,所以PLCopen功能块算法的原理是在时间轴下对从站三环控制的基本指令、模式等参数的逻辑和时序控制。因此,建立一个与从站轴控制相同并且反映轴运行所有信息的结构体,是网络通信架构下PLCopen运动控制功能块实现的核心。轴信息结构体的本质是从站对象字典中反映轴在运行过程中所有对象的集合,通过实时以太网总线对轴信息结构体与从站对象字典的实时更新,实现了运动控制功能库的功能。

图11 PLCopen运动控制功能库实现原理Fig.11 Working principle of PLCopen motion control functions

4 结 论

本文针对工业控制和装备制造领域的可编程控制系统自主可控问题,在工业控制系统发展历程的基础上,对当前流行的FCS组成架构、工作原理及相关技术进行了深入分析,提出了自主可控可编程控制系统架构。通过剖析构成可编程控制系统的关键组件的功能原理,结合当前国内技术水平与自主可控要求,提出了可编程控制系统开发的技术途径和关键技术解决思路。形成了标准化、模块化的自主可控主从站硬件设计方法,自主可控实时以太网总线接口及协议开发方法,符合IEC61131-3标准的可视化编程、调试方法,跨平台HMI组态编程方法,符合PLCopen规范的软件定义功能块的开发方法。该方法能够为未来智能制造装备国产化控制系统提供完整可靠的解决方案。

在自主可控工业控制技术被列入国家战略的新时期,整合国内在制造业、电子信息、计算机等领域的技术,坚持智能制造装备的国产化发展理念,努力突破基础和关键技术瓶颈,形成国产可编程控制技术研发及产品生态链,从而打破欧美发达国家的技术垄断,促进我国高端制造装备的长远发展。

猜你喜欢
功能块主站组态
基于PLC及组态技术的恒温控制系统开发探讨
三种国外集散控制系统(DCS)功能块扫描规则和执行顺序的分析和总结
基于S7-1200 PLC的DP总线通信技术在马里古伊那水电站泄洪冲沙孔门机上的应用
变电站综合自动化系统调试新方法研究
Ovation系统FIRSTOUT和FIFO跳闸首出比较
基于PLC和组态的智能电动拧紧系统
EtherCAT主站与主站通信协议的研究与实现*
多表远程集抄主站系统
铸造行业三维组态软件的应用
基于PLC和组态的新型回转类测试设备的研制