正如專家所言,IEC61131-3將標(biāo)準(zhǔn)編程技術(shù)和當(dāng)代編程語言的優(yōu)點(diǎn)結(jié)合起來。標(biāo)準(zhǔn)編程技術(shù)指PLC的編程語言,當(dāng)代編程語言指我們所使用的高級編程語言,比如C++等。而IEC61131-3將二者巧妙的進(jìn)行結(jié)合,優(yōu)勢互補(bǔ)。下面就二者之間的應(yīng)用結(jié)合點(diǎn)作為切入點(diǎn)來了解該標(biāo)準(zhǔn)。
1、數(shù)據(jù)類型
除了常用的數(shù)據(jù)類型如Byte、Word、Real等,IEC61131-3還支持定義不同的數(shù)據(jù)類型,包括結(jié)構(gòu)、數(shù)組等。
定義結(jié)構(gòu)的例子:
TYPE
Com_FBs :
STRUCT
Send_CMD : String;
Recv_CMD : String;
Send_CMD_Len : int;
recv_CMD_Len : int;
END_STRUCT;
END_TYPE
定義數(shù)組的例子:
TYPE
ASCFB_Array : ARRAY [1..10] OF Com_FBs;
END_TYPE
應(yīng)用結(jié)構(gòu)和數(shù)組,可以像采用高級編程語言的方式一樣。
如: comfbs[prv_Idx].Recv_cmd := Recv_cmd;(STD編程語言)
2、 編程語言
IEC61131-3定義了5種編程語言,在這5種編程語言中,有3種是圖形化語言,2種是文本化語言。圖形化語言有梯形圖、順序功能圖、功能塊圖,文本化語言有指令表和結(jié)構(gòu)化文本。這五種語言各有優(yōu)勢,可以根據(jù)每個(gè)語言的優(yōu)點(diǎn)靈活應(yīng)用。
3、 程序組織單元—POU
程序組織單元—POU(Program organization units)是組成Project的基本單元,在IEC61131-3中,POU有三種組織形態(tài):程序(Program)、功能塊(Function Block)、功能(Function)。

Program是POU類型中最高層:能夠存取PLC的I/O;可被Task關(guān)聯(lián)執(zhí)行;并可以調(diào)用FB和Function,
Function Block是POU類型中的第二層,可具有多個(gè)輸入和輸出參數(shù),并具有靜態(tài)變量,可以調(diào)用FUN;
Function 是POU類型中的第三層,可有多個(gè)入口參數(shù),但只有一個(gè)輸出參數(shù)用于返回值,沒有靜態(tài)變量。
而任何一種POU都可用五種編程方式的任一種或多種進(jìn)行編程。
Task和POU之間的關(guān)系:
Task一定要關(guān)聯(lián)程序PROGRAM的實(shí)例,而PROGRAM可以調(diào)用FB實(shí)例和FUN,F(xiàn)B可以調(diào)用FUN;而Task則不能直接關(guān)聯(lián)FB實(shí)例和FUN.
Task和POU之間的關(guān)系類同于高級編程語言中的Project、Program、Class、Function等,在IEC61131-1標(biāo)準(zhǔn)中都能找到高級編程的影子。
2、 實(shí)例化
以上提到了實(shí)例,程序和FB具備實(shí)例化的功能,因?yàn)槠鋬?nèi)部具有靜態(tài)變量;而FUN不能被實(shí)例化,因?yàn)槠浔旧頉]有靜態(tài)變量,也不用被實(shí)例化。
當(dāng)程序被不同的Task調(diào)用或在同一個(gè)Task中多次調(diào)用時(shí),該程序就必須以一個(gè)實(shí)例的方式進(jìn)行調(diào)用;當(dāng)FB被不同的程序或同一程序多次調(diào)用時(shí),該FB就必須以實(shí)例的方式進(jìn)行調(diào)用;
程序?qū)嵗睦樱?BR>
