企业: | 控制网 | 日期: | 2008-07-16 |
---|---|---|---|
领域: | 点击数: | 780 |
一、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就必须以实例的方式进行调用; 程序实例化的例子: ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
1.我有以下需求: | |
|
|
2.详细的需求: | |
* | |
姓名: | * |
单位: | |
电话: | * |
邮件: | * |