汪大卫,周 平
(东方电机控制设备有限公司,四川 德阳 618000)
励磁系统的核心是励磁调节器。调节器由控制器和外围部件组成。控制器一般采用IPC总线控制机或COMPACT PCI总线控制机,也有VME总线控制机。这类控制机的优点是标准化和开放式的结构。励磁系统调节器的功能趋向于复杂,要求适应性强。过去的编程语言多数为 CC++语言,要求编程人员的能力很强,而语言能力的要求对应用工程师的编程和调试造成障碍,因此,调节器的完善和提高,以及满足用户的非标准要求都存在相当的难度。
为什么在电力、冶金和化工等广泛应用的PLC在励磁系统调节器中没有找到用武之地,究其原因是传统的PLC其CPU速度和模拟量采样速度不能满足励磁系统的要求,另外励磁系统需要对大功率整流桥进行精确控制,这也是PLC难于胜任的工作。还有一方面是PLC的不开放性,其总线为各个开发商所独有,没有公开。传统的PLC在通讯上也有不足之处。但是,PLC的坚固性、可靠性、特别是编程的标准化,也是其它控制器的短处和软肋。我公司在开发新型励磁调节器时,认真考虑采用何种编程语言,作为新一代的励磁调节器,其发展趋势,一方面是CPU速度越来越快,新器件的应用,新工艺的开发,结构的完善,使控制器为低功耗、无风扇、高速、完备的通用可靠的通信网络;另一方面,调节器开发团队对控制器的开发系统也相当注意,投入大量的心血,因为,硬件一旦相对完善,软件的开发和维护以及可靠性的提高都是相当重要的。
针对上述问题,调节器开发团队把目光放到 PLC采用的符合国际IEC61131-3标准的编程语言,实现此项目标,具有相当大的难度。于是开发团队想到软逻辑。软逻辑的产生是满足那些要在 PC机上运行 PLC语言的用户。是指在PC机上实现IEC61131标准的编程语言。但是,在使用软逻辑之前,首先要解决高速AD采样和高速精确脉冲控制的功能。否则,软逻辑可以满足不同工控机的要求,但无法应用于励磁系统。另一个想法是将人机界面的编程和控制机的编程以及励磁系统内的其它控制器的编程放在一个平台上,统一管理、维护和调试,这样可以对各个部件有统一的接口和数据库,这样好比在一个网络上统一成一个系统,为将来的智能电网和网络通讯打下基础。这也将运动控制、远程配置、运程维护集成起来。
IEC61131-3是第一个为工业控制系统提供标准化编程语言的国际标准。该标准针对工业控制系统所阐述的软件设计的概念和软件模型等进行规定,该标准适应了当今世界软件、工业控制系统的发展方向,是一种非常先进的设计技术。符合IEC 61131-3的软件系统是一个结构完美、可重复使用、可维护的工业控制系统软件,不但能应用在 PLC,而且还能应用在运动控制系统、分散型控制系统和软逻辑/PC、SCADA等。
IEC61131-3是PLC编程语言标准,它详细地说明了句法、语义和 5种编程语言:指令表(Instruction List),结构化文本(Structured Text),顺序功能图(Sequential Function Diagram),梯形图(Ladder Diagram),功能块图(Function Block Diagram)。在这五种编程语言中,指令表和结构化文本是文本语言,易于实现一些复杂的算法;顺序功能图、梯形图和功能块图是图形语言,它们则擅长处理逻辑控制和模拟控制。这三种语言适合于工程师。工程师此时不再注意系统控制部件的驱动和结构,而是专注于他那部分工作,就是满足现场的应用,编程效率明显提高,也降低误差率。同时该标准还允许在同一项目中,使用多种语言进行混合编程,而且支持POU(程序组织单元)的重复使用,为不同知识背景的编程人员提供了方便。
为什么要有IEC61131,这是因为在众多的PLC控制器中,由于语言、指令、定义的不同,造成许多PLC的控制平台的不同,使PLC的硬件和软件的开发、培训、维护造成大量的浪费。因此,IEC61131将各种语言和指令以及定义标准化,统一管理,达到高效快速和节省成本的PLC。
IEC61131标准规定了程序的结构为模块化,一个程序由许多POU(程序组织单元)组成,每个程序单元分成代码段和变量声明部分,程序单元可以是功能、功能块或典型程序。这个规定的目的是确保程序单元可以在同一个工程中反复使用,也可以通过程序库,应用于其它工程。输入输出的接口可以直接寻址或通过变量来寻址。IEC61131规定采用变量代替输入输出接口,如同高级语言一样。变量可以赋初始值。变量也可以规定为保存变量,在控制器失电后,这些变量的数值仍然保留,变量可以是符号变量。
还可以规定数值类型,可以是布尔数、字节、字、双字、实型数或结构以及阵列。阵列对于一组数如AD采样值或通讯数据等是必要的。下面简要介绍5种编程语言。
(1)梯形图(PLC)。梯形图在PLC大量使用,适合于开发工程师和现场服务工程师,适用于顺序逻辑控制,容易编程和调试,被广泛接受。IEC61131规定了一整套 LD指令,包括所有的线圈和接点型式。触点接通电源,线圈保存进入的数值。触点和线圈都是波尔数据。顺序控制可以附加返回、跳转、标号和评论。在功能块图中,可以增加梯形图,如图1所示。
图1 梯形图
(2)功能块图。功能块图包含各种功能或功能块,它们连接在一起,或连接到变量。在功能块图网络中,可以使用返回、跳转、标号。除了单独使用功能块,梯形图可以用于连接各个功能块,如计数器、计时器、数值转换等,使各个功能和逻辑联系起来。功能块图适应工业工程控制,也适应励磁系统的控制,完成功能块的输入数据、对数据处理、为功能块输出数据等功能,功能块图如图2所示。
(3)指令表(IL)。IL语言有点像汇编语言。包括一行行顺序执行的命令,每行包含命令和变量以及可选的附加值,可以带跳转和标号,如图3所示。程序特点是执行速度快,适合传统的PLC以及特殊需求。
(4)结构化文本。ST语言与高级语言 PASCAL或BASIC相似,被程序员大量使用,如图4所示。在程序中,大量使用IF…THEN;FOR…NEXT,适应数学运算和数据操作。还支持矩阵和结构,因此功能强大。
(5)顺序功能图(SFC)。SFC是面向状态的语言。包含代码段,步和转换。代码段由SFC编程,步包含机器状态及其逻辑关系,如图5所示。转换指条件满足时,下一步的代码段将被执行,SFC特别适应于一些应用可以分成若干步。
图2 功能块图(FBD)
友好的交互界面、网络互联功能、符合国际标准的编程软件、实时数据处理已成为现代控制系统的共同需求,因此,我公司开发基于 PC控制器和 IEC 6113l-3标准的嵌入式实时控制系统很有意义。
图3 指令表(IL)
图4 结构化文本(ST)
图5 顺序功能图(SFC)
目前,国外许多工业控制系统开发商正在发展基于PC的控制系统,推出了符合IEC 61131-3标准的产品。在国内市场上常见的控制产品有:法国CJ International公司的 ISaGRAF,德国 KW 公司的MULTIPROG,西门子公司的WinAC、BECKHOFF公司的TWinCAT以及SOFTPLC公司的SoftPLC等。我们采用德国KW公司的MULTIPROG作为典型的基于PC的控制系统应用。
软PLC基于PC机,建立在PC机的软、硬件平台之上,因此具有PC机的优点和PLC的特性,具有良好的开放性。全面支持Windows、Linux等操作系统,通过OPC或DDE等通信方式易于第三方的产品集成运行。其硬件结构不再封闭,用户可以选择不同的I/O模块来满足自己的要求。具有广泛的兼容性。软 PLC的技术是基于IEC 61131-3标准的,用户在掌握了标准语言后,开发比较容易。由于该标准继承了传统PLC的编程方式,因此不同知识背景的工程人员容易接受和使用。如图6所示,软PLC一般由两部分组成,开发平台和运行环境。开发平台采用MULTIPROG®,而运行环境采用ProConOS®操作系统。
图6 软PLC
ProConOS®是实时多任务,专门应用于高速PLC实时内核。完全符合IEC 61131-3标准的可编程控制功能。它是高可靠的和适应性强的实时操作系统,完成装载和运行程序,实现调试功能、通讯功能、远程编程和维护功能、以及多任务和多用户操作系统功能。
图7所示为ProConOS®实时系统,使硬件成为满足IEC标准的硬件。ProConOS®是多任务操作系统,可以监视每个任务的执行时间。ProConOS®与MULTIPROG®一起完成下列调试任务:(1)变量状态;(2)地址状态;(3)断点;(4)单步;(5)跟踪;(6)覆盖;(7)强制;(8)在线修改;(9)观察窗口;(10)修正;(11)实时逻辑分析。
图7 ProConOS®系统
ProConOS®的输入输出特性:(1)与任务同步的输入输出印象处理;(2)开放式IO;(3)智能现场总线主机;(4)特殊启动模式。
在通讯网络的时代,集成了多种网络驱动程序,高效和适应性强的满足各种高速通讯要求,实现变量数值的网络实时传递。
MULTIPROG®是完全满足 IEC61131-3标准的编程平台。工程管理清楚明晰,团队工作任务分工明确,编程调试简单易学,容易掌握,各种提示信息较完备,使编程错误最小化,拥有完备的调试维护工具。
MULTIPROG是基于Windows的开发程序,一目了然的工程树状结构,对于工程师的编程和调试非常有用。工程师可以理解整个工程的组成和资源,又可以对其关心的任务任意进入,进行编程,完成调试。
(1)强大的编辑功能:工程师可以采用图形编辑器,任意拖放功能块,很方便完成一个复杂的功能。在原有的工程里,方便加入新的元件。采用变量表编辑器,可以方便声明变量,定义为全局变量或局部变量,确定变量型式,为变量赋值,还可以设置为保留变量,失电后,变量数值不丢失。可以自动完成变量与输入输出的连接。
(2)大量的元件库:元件库分为厂家库和用户库。前者为厂家提供大量的应用库,如大部分的功能块。如果用户有特殊要求,可以准备用其他语言编辑新的功能块,放在用户库中。
(3)知识产权的保护:一些重要的和需要保密的程序只有密码才可以进入,保护开发团队的智慧成果。
对于多用户的开发,即团队的开发,可以规定开发人员各自的开发任务,其它任务不得修改。
MULTIPROG®帮助工程师顺利完成编程任务,有各种模板借用,编程步骤简单明确。编程分为6个部分:(1)根据模板建立工程项目;(2)建立多个工程子任务,建立对应任务或功能的程序,编辑修改程序;(3)编译,修改错误;(4)下传到目标机;(5)调试和改错;(6)形成工程文件。
调试非常方便,可以采用仿真,就算没有硬件,也可以检查程序的控制效果。还可以采用逻辑分析仪,实时分析控制变量的正确性。可以设置断点,单步执行。更为方便的是图形化编程的变量可以在在联机状态下观察变量的数值。
本文没有完全说明采用新的编程环境的所有优点,但已经管中窥豹,略见一斑。另外需要说明 PAC与PLC的区别,他们有许多相似之处,遵行IEC61131-3的编程标准,但是,PAC的优势在于网络通讯,面向整个系统,高速CPU和更优越的模拟量控制。通过本文说明了励磁调节器的开发平台,证明采用IEC61131-3编程语言有许多优势,是目前励磁调节器编程平台的发展趋势。