正如專家所言,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就必須以實例的方式進行調用;
程序實例化的例子:
