摘要 本文分享了IEC61131-3标准中的数据类型、编程语言、POU、实例化等几个概念,并就IEC61131-3将标准编程技术和当代编程语言的优点结合起来的使用体会做了分析。研华PAC符合IEC61131-3 编程语言标准及支持实时多任务控制,而通过研华PAC在混凝土搅拌站控制系统上的应用,介绍了IEC61131-3标准编程、STD编写实用功能块、实时多任务等在实际工程中的应用优势。 关键字 IEC61131-3标准 研华PAC 实时多任务 混凝土搅拌站 一、IEC61131-3的几个概念和使用体会 正如专家所言,IEC61131-3将标准编程技术和当代编程语言的优点结合起来。标准编程技术指PLC的编程语言,当代编程语言指我们所使用的高级编程语言,比如C++等。而IEC61131-3将二者巧妙的进行结合,优势互补。下面就二者之间的应用结合点作为切入点来了解该标准。 1、数据类型 除了常用的数据类型如Byte、Word、Real等,IEC61131-3还支持定义不同的数据类型,包括结构、数组等。 定义结构的例子: TYPE Com_FBs : STRUCT Send_CMD : String; Recv_CMD : String; Send_CMD_Len : int; recv_CMD_Len : int; END_STRUCT; END_TYPE 定义数组的例子: TYPE ASCFB_Array : ARRAY [1..10] OF Com_FBs; END_TYPE 应用结构和数组,可以像采用高级编程语言的方式一样。 如: comfbs[prv_Idx].Recv_cmd := Recv_cmd;(STD编程语言) 2、 编程语言 IEC61131-3定义了5种编程语言,在这5种编程语言中,有3种是图形化语言,2种是文本化语言。图形化语言有梯形图、顺序功能图、功能块图,文本化语言有指令表和结构化文本。这五种语言各有优势,可以根据每个语言的优点灵活应用。 3、 程序组织单元—POU 程序组织单元—POU(Program organization units)是组成Project的基本单元,在IEC61131-3中,POU有三种组织形态:程序(Program)、功能块(Function Block)、功能(Function)。
Program是POU类型中最高层:能够存取PLC的I/O;可被Task关联执行;并可以调用FB和Function, Function Block是POU类型中的第二层,可具有多个输入和输出参数,并具有静态变量,可以调用FUN; Function 是POU类型中的第三层,可有多个入口参数,但只有一个输出参数用于返回值,没有静态变量。 而任何一种POU都可用五种编程方式的任一种或多种进行编程。 Task和POU之间的关系: Task一定要关联程序PROGRAM的实例,而PROGRAM可以调用FB实例和FUN,FB可以调用FUN;而Task则不能直接关联FB实例和FUN. Task和POU之间的关系类同于高级编程语言中的Project、Program、Class、Function等,在IEC61131-1标准中都能找到高级编程的影子。 2、 实例化 以上提到了实例,程序和FB具备实例化的功能,因为其内部具有静态变量;而FUN不能被实例化,因为其本身没有静态变量,也不用被实例化。 当程序被不同的Task调用或在同一个Task中多次调用时,该程序就必须以一个实例的方式进行调用;当FB被不同的程序或同一程序多次调用时,该FB就必须以实例的方式进行调用; 程序实例化的例子:
Valve_Control是控制阀门的Program,在Task1和Task2分别以Valve1_Control和Valve2_Control各控制1个阀门,则Valve1_Control和Valve2_Control都是Valve_Control的实例化。 FB实例化的例子:
在Program 的Valve_Control中调用两次Press_Calculate FB,分别以Press_Calculate_1和Press_Calculate_2两个实例进行调用,如下所示:
通过实例方式来调用Program和FB的方式,类似高级编程语言如C++中的类、对象和实例的关系,这也体现出IEC61131-3将标准编程技术和当代编程语言的优点相结合起来。 二、IEC61131-3在研华PAC中的应用 PAC(Programmable Automation Controller)即可编程自动化控制器,由自动化研究机构 (ARC Group) 提出的,用于描述结合了PLC和PC功能的新一代工业控制器。在PAC的定义中,开放性和采用标准化编程语言作为定义的重要部分,而构成PAC的独特特征。 研华PAC在硬件上,采用成熟的嵌入式技术,采用标准IT技术如ftp、Web Server,E-Mail报警、 OPC…等,具备灵活的通信能力,采用标准、开放的通信协议等等;在软件编程上,HMI软件(PC软件编程)和底层采集控制软件(PLC软件编程)可同时运行在同一台PAC中。而在底层采集控制软件中采用IEC61131-3标准,充分体现出PAC的开放性和标准化编程等特点。 在研华PAC编程中,可全面支持五种标准的编程语言及多任务(Muli-Task)方式。 1、 在同一编程界面中同时支持3种图形化编程语言 梯形图(LD)、功能块图(FBD)和顺序功能图(SFC)这三种图形化的编程语言可以有机的结合在一起,灵活运用各自语言的优势。
2、文本化编程语言和图形化语言相结合 指令表(IL)和结构化文本(STD)这两种语言因为是文本化编程语言,所以在一个编程界面中只能支持一种。但可以用定义功能块(FB)的方法将文本化语言和图形化语言相结合。 例如,用STD语言编写复杂的算法,预留入口参数和出口参数,并封装为功能块,这样就能够在图形化语言中进行调用。 3、实时多任务控制 研华PAC的控制引擎支持实时多任务(Real-Time Multi-Task)功能,共支持四种Task类型:Default Task、Cyclic Task、Event Task、System Task 复杂的控制系统中常需要有多个循环,每个循环均可以不同的速率运行,并支持一个Task中可以多个Program同时运行。 三、研华PAC ADAM-5550KW在混凝土搅拌站上的应用 下面通过研华PAC ADAM-5550KW在混凝土搅拌站控制系统中的应用加以重点说明。 混凝土搅拌站控制系统本系统由ADAM-5550、ADAM-5000/4000模块组成。系统的主要特点如下: 1、将原系统中逻辑控制部分和称重配料仪表的功能全部用ADAM-5550来实现,还增加了带料启动、自动扣秤、在线调整配方等新功能,操作更加灵活方便、更加适应南方因物料湿度变化大经常调整用水量的现状,并且在生产非正常中断(如:调度临时改变生产任务、下料门被石子卡住导致物料超重等)后可以迅速恢复生产,极大的提高了生产效率。 2、通过ADAM-5550的双以太网端口组成可靠的冗余以太网连接,连接多台上位机和ADAM-5550可实现多机多控,使系统更加安全可靠。 3、在ADAM-5550控制器的WINCE操作系统上开发了数据采集、存储和系统配置软件,因此即可由ADAM-5550连接一台显示器或者触摸屏,并将生产数据存储在扩展的大容量CF卡上,脱离上位机组成一套简易、可靠的监控系统,可以满足小型搅拌站和可搬迁站的高可靠、高性能的要求;也可通过工业交换机将ADAM-5550连接到上位机组成功能齐全的监控管理系统,并可连接到企业的ERP系统,满足较大规模企业进行信息化管理的需求。
本系统的重点和难点是如何用软件实现称重仪表的功能,并确保系统的静态、动态计量精度满足设计要求,从以下几个方面解决了这个问题: 1、硬件方面。我们从研华定制了高分辨率、高采样速率的模拟量输入模块ADAM-5017HR,保证了采集数据的准确性和实时性。 2、软件方面。采用IEC61131-3标准编程语言进行采集和控制。由于干扰比较大,采集上来的数据不能直接应用,特别设计了高效的滤波算法,即保证了计量精度又不会占用太多的资源;由于计量秤涉及的数据量和计算量比较大,我们采用比较灵活的ST语言编程,并将有关计量秤的功能封装一个功能块,在其它程序中重复调用,方便实用。 3、实时性。控制器能否在确定的时间内执行完整个控制程序,是本系统成败的关键。ADAM-5550具有强大的运算性能、支持实时多任务,在编程终将有关数据处理和计量秤方面的功能整合到一个任务内,并设为较高的优先级,经测试可达到每秒钟至少二百次的处理速度,保证了计量秤的动态计量精度。 四、结束语 IEC61131-3标准已经得到公认并为工程师们带来方便,同时,我们也能感到IEC61131-3在支持Ethernet、Internet等网络功能、数据库功能、运动控制的功能等方面还欠缺。研华PAC既符合IEC61131-3 编程语言标准,同时在其上述不足方面也提出了自己的解决办法,如用功能块图支持e-Mail报警功能,支持Mobile SQL Server数据库功能。 技术在进步,IEC61131-3标准也在发展,在感谢的同时也期待其有更强大的功能来满足市场的需求。 参考文献: 1、研华PAC ADAM-5550KW在混凝土搅拌站上的应用—研华客户 2、IEC61131-3标准文献 |