中文字幕韩国三级理论无码,国产精品无码A∨精品影院,JAPANESE无码中文字幕,欧美残忍宫交

自動化軟件設(shè)計IEC61131-3標(biāo)準專題(三)

http://mamafrist.com 2015年09月19日        

IEC 1131-3 的編程語言(一):文本化語言   圖形化編程語言包括:梯形圖(LD-Ladder Diagram)、功能塊圖(FBD - Function Block Diagram)、順序功能圖(SFC - Sequential Function Chart)。文本化編程語言包括:指令表(IL-Instruction List)和結(jié)構(gòu)化文本 (ST-Strutured Text)。IEC 1131-3的編程語言是IEC工作組對世界范圍的PLC廠家的編程語言合理地吸收、借鑒的基礎(chǔ)上形成的一套針對工業(yè)控制系統(tǒng)的國際編程語言標(biāo)準,它不但適用于PLC系統(tǒng),而且還適用于更廣泛的工業(yè)控制領(lǐng)域;IEC 1131-3 的編程工具提供對現(xiàn)場總線系統(tǒng)的支持,并對現(xiàn)場總線裝置的軟件設(shè)計產(chǎn)生了很大影響。   本專題將分兩部分介紹IEC 1131-3的編程語言,本文是IEC 1131-3編程語言的第一部分,重點介紹IEC 1131-3的兩種文本化編程語言;第二部分重點介紹IEC 1131-3的兩種三種圖形化編程語言,將在下一篇文章作介紹。   一、結(jié)構(gòu)化文本(ST)   結(jié)構(gòu)化文本(ST)是一種高級的文本語言,可以用來描述功能,功能塊和程序的行為,還可以在順序功能流程圖中描述步、動作和轉(zhuǎn)變的行為。   結(jié)構(gòu)化文本(ST)語言表面上與PASCAL語言很相似,但它是一個專門為工業(yè)控制應(yīng)用開發(fā)的編程語言,具有很強的編程能力用于對變量賦值、回調(diào)功能和功能塊、創(chuàng)建表達式、編寫條件語句和迭代程序等。結(jié)構(gòu)化文本(ST)非常適合應(yīng)用在有復(fù)雜的算術(shù)計算的應(yīng)用中。   結(jié)構(gòu)化文本(ST)程序格式自由,可以在關(guān)鍵詞與標(biāo)識符之間任何地方插入制表符、換行字符和注釋。對于熟悉計算機高級語言開發(fā)的人員來說,結(jié)構(gòu)化文本(ST)語言更是易學(xué)易用。此外,結(jié)構(gòu)化文本(ST)語言還易讀易理解,特別是當(dāng)用有實際意義的標(biāo)識符、批注來注釋時,更是這樣。   1.1 操作符   結(jié)構(gòu)化文本(ST)定義了一系列操作符用于實現(xiàn)算術(shù)和邏輯運算,如邏輯運算符:AND,&,XOR,OR; 算術(shù)運算符:<, >, <=, >=, =, <>, +, -, MOD, / 等,此外,還定義了這些操作符的優(yōu)先級。如下是操作符預(yù)算的兩個例子:   Start := Oilpress AND Stream AND Pump;   V : = K*(-W*T)   1.2 賦值語句    結(jié)構(gòu)化文本(ST)程序既支持很簡單的賦值語句,如 X:=Y, 也支持很復(fù)雜的數(shù)組或結(jié)構(gòu)賦值,如Profile[3]:=10.3+SQRT((Rate+2.0)), Alarm.TimeOn:=RCT1.CDT。   1.3在程序中調(diào)用功能塊   在結(jié)構(gòu)化文本(ST)程序中可以直接調(diào)用功能塊。功能塊在被調(diào)用以前,輸入?yún)?shù)被分配為缺省值;在調(diào)用后,輸入?yún)?shù)值保留為最后一次調(diào)用的值。功能塊調(diào)用的格式如下:   FunctionBlockInstance(    InputParameter1:=ValueExpression1,    InputParameter2:=ValueExpression2, …);   ValueExpression1……ValueExpressionN是符合功能塊數(shù)據(jù)類型輸入變量,InputParameter1……InputParameterN功能塊的輸入?yún)?shù)。FunctionBlockInstance是要調(diào)用的功能塊。   1.4結(jié)構(gòu)化文本(ST)程序中的條件語句   條件語句的功能是,某一條件滿足時執(zhí)行相應(yīng)的選擇語句。結(jié)構(gòu)化文本(ST)有如下的條件語句:   l IF …THEN…ELSE條件語句    該選擇語句依據(jù)不同的條件分別執(zhí)行相應(yīng)THEN及ELSE語句。該條件語句可以嵌套入另一條件語句中,以實現(xiàn)更復(fù)雜的條件語句。條件語句的格式如下:   IF THEN      ELSE    < statements2…>   END_IF;   “boolean expression”可以是“true”或“false”,根據(jù)“true”或“false”的情況,程序執(zhí)行相應(yīng)的statements1或statements2語句。   l CASE 條件語句   該選擇語句的執(zhí)行方向取決于CASE語句的條件, 并有一返回值。實例見最后的應(yīng)用舉例。該條件語句的格式如下:   CASEOF   < integer selector value1> : < statements1…>   < integer selector value2> : < statements2…>   ……   ELSE   < statements …>   END_CASE;   “integer expression”可以是一個數(shù)值,根據(jù)數(shù)值的不同執(zhí)行相應(yīng)的statements1或statements2等語句。   1.5 結(jié)構(gòu)化文本(ST)程序中的迭代語句   迭代語句適用于需要一條或多條語句重復(fù)執(zhí)行許多次的情況,迭代語句的執(zhí)行取決于某一變量或條件的狀態(tài)。應(yīng)用迭代語句應(yīng)避免迭代死循環(huán)的情況。   l FOR…DO    該迭代格式語句允許程序依據(jù)某一整型變量迭代。該迭代格式語句格式如下:    FOR    TO   BY DO      END_FOR    “initialize iteraion variable”是迭代開始的計數(shù)值,“final value expression” 迭代結(jié)束的計數(shù)值。迭代從“initialize iteraion variable”開始,每迭代一次,計數(shù)值增加“increment expression”,計數(shù)值增加到“final value expression”,迭代結(jié)束。   結(jié)構(gòu)化文本(ST)程序中還有其它的迭代語句,如WHILE … DO,REPEAT … UNTIL等,迭代原理與FOR…DO 格式基本相同。此外,結(jié)構(gòu)化文本(ST)的迭代語句中還有EXIT,RETURN兩種格式,分別用于程序的返回和退出。   1.6 編程舉例:用結(jié)構(gòu)化文本(ST)程序編功能塊   本程序是一用結(jié)構(gòu)化文本(ST)程序編功能塊的例子。該實例描述的是如何用功能塊控制箱體中的流體,箱體可以通過閥門被注滿和倒空,如圖所示,箱體的重量由一個稱重單元監(jiān)視。功能塊通過比較兩個輸入值FullWeight和EmptyWeight以確定箱體是滿的還是空的。      該功能塊提供了一個“Command”輸入,該輸入有四種狀態(tài),1.給箱體加水;2. 保持不變;3.起動“Stirrer”;4. 清空箱體。實現(xiàn)該功能塊算法的結(jié)構(gòu)化文本(ST)程序如下:    (*箱體狀態(tài)*)    TYPE_T_STATE: (FULL,NOT_FULL,EMPTIED);END_TYPE;    (*閥門狀態(tài)*)    TYPE_T_VALVE: (OPEN,SHUT);END_TYPE;    FUNCTION_BLOCK TankControl    VAR_IN (**)    Command:SINT;    Weight :REAL;    FullWeight,EmptyWeight : REAL;    END_VAR    VAR_OUT (**)    FillValve :T_VALVE:=SHUT;    EmptyValve :T_VALVE:=SHUT;    StirSpeed :REAL:=0.0;    END_VAR    VAR    State :=T_STATE :=EMPTYIED;    END_VAR   二、指令表(IL-Instruction List)   IEC 1131-3的指令表(IL-Instruction List)語言是一種低級語言,與匯編語言很相似,是在借鑒、吸收世界范圍的PLC廠商的指令表語言的基礎(chǔ)上形成的一種標(biāo)準語言,可以用來描述功能,功能塊和程序的行為,還可以在順序功能流程圖中描動作和轉(zhuǎn)變的行為。   指令表語言能用于調(diào)用,如有條件和無條件地調(diào)用功能塊和功能,還能執(zhí)行賦值以及在區(qū)段內(nèi)執(zhí)行有條件或無條件的轉(zhuǎn)移。指令表語言不但簡單易學(xué),而且非常容易實現(xiàn),可不通過編譯和連編就可以下載到PLC。IEC 1131-3的其它語言如功能塊圖、結(jié)構(gòu)化文本等都可以轉(zhuǎn)換為指令表語言。   2.1指令表語言結(jié)構(gòu)   指令表語言是由一系列指令組成的語言。每條指令在新一行開始,指令由操作符和緊隨其后的操作數(shù)組成,操作數(shù)是指在IEC 1131-3的“公共元素”中定義的變量和常量。有些操作符可帶若干個操作數(shù),這時各個操作數(shù)用逗號隔開。指令前可加標(biāo)號,后面跟冒號,在操作數(shù)之后可加注釋。   IL是所謂面向累加器(Accu)的語言,即每條指令使用或改變當(dāng)前Accu內(nèi)容。IEC 1131-3將這一Accu標(biāo)記為“結(jié)果”。通常,指令總是以操作數(shù)LD(“裝入Accu命令”)開始。指令表程序如下所示:   2.2 指令表操作符    IEC 1131-3指令表包括四類操作符:一般操作符、比較操作符、跳轉(zhuǎn)操作符和調(diào)用操作符。   2.2.1一般操作符符   指令表一般操作符是指在程序中經(jīng)常會用到的操作符.   l 裝入指令:LD N等。   l 邏輯指令:AND N( (與指令)、OR N( (或指令)、XOR N( (異或指令)等。   l 算術(shù)指令:ADD ((加指令)、SUB((減指令)、MUL ( (乘指令),DIV((除指令)、MOD ( (取模指令)等。   2.2.2 比較指令:GT ( (大于)、GE ( (大于等于)、EQ( (等于)、 NE( (不等于)、 LE( (小于等于)、 LT( (小于)等。   2.2.3 跳轉(zhuǎn)及調(diào)用操作符   JMP C,N (跳轉(zhuǎn)操作符)、 CALL C,N (調(diào)用操作符)等。   2.3 在指令表中調(diào)用功能及功能塊   在IEC 1131-3指令表的程序中,可以直接調(diào)用功能塊和功能。指令表的功能塊調(diào)用有   種格式,功能調(diào)用有兩種格式。詳細的調(diào)用可見IEC 1131-3標(biāo)準。   2.4 用指令表定義功能及功能塊   指令表可用于定義功能塊和功能。當(dāng)用指令表定義功能時,功能的返回值是結(jié)果寄存   內(nèi)的最新值;當(dāng)用指令表定義功能塊時,指令表引用功能塊的輸入?yún)?shù)(VAR_INPUT),并且把值寫到輸出參數(shù)(VAR_OUPUT)。   2.5 指令表與其它語言的移植性   指令表語言轉(zhuǎn)換為其它語言是非常困難的,除非指令表操作符的使用范圍及書寫格式受到嚴格的限制,才有可能實現(xiàn)轉(zhuǎn)換。IEC 1131-3的其它語言較容易轉(zhuǎn)換為指令表。   2.6 IL的編程實例   本例是一個用指令表程序定義功能的實例,功能描述的計算平面上兩點的移動距離。 兩點X,Y的坐標(biāo)如下圖所示。      用結(jié)構(gòu)化文本描述的兩點間距離的計算公式為:Travel_distance:=SQRT((X1-X2)*(X1-X2)+(Y1-Y2)*(YI-Y2)))。TMax是X,Y兩點見的最大距離,當(dāng)計算值小于TMax時,說明計算正確;當(dāng)計算值大于TMax時,說明X,Y兩點間的距離超出了最大距離,在這種情況下,功能是沒有輸出的。   用指令表編寫的該功能的函數(shù)TRAVEL()如下:   FUNCTION TRAVEL : REAL    VAR_INPUT    X1,X2,Y1,Y2 : REAL (*點X,Y坐標(biāo)*)    TMax : REAL (*最大移動距離*)    END_VAR   VAR    Temp : REAL; (*中間值*)    END_VAR    LD Y1    SUB Y2 (*計算Y2-Y1*)    ST Temp (*將Y2-Y1值存入Temp *)    MUL Temp (*計算(Y2-Y1)的平方*)    ADD( X1    SUB X2 (*計算(X1-X2)*)    ST Temp (*將(X1-X2)值存入Temp *)    MUL Temp (*計算(X1-X2)的平方*)    ) (*將兩平方值相加*)    CAL SQRT (*調(diào)平方根函數(shù)*)    ST TRAVEL (*設(shè)定計算結(jié)果*)    GT TMax (*比TMax 大嗎?*)    JMPC ERR (*是,轉(zhuǎn)到ERR 執(zhí)行*)    S ENO (*設(shè)定ENO *)   ERR:    RET (*錯誤返回,ENO 不輸出*)   END_FUNCTION  

[上一個新聞資訊]:自動化軟件設(shè)計IEC 61131-...
閱讀技巧:鍵盤方向鍵 ←左 右→ 翻頁
[下一個新聞資訊]:自動化軟件設(shè)計IEC 61131-...
Copyright @ 沈陽廢品回收    電子郵件:
沈陽榮匯物資回收有限公司   電話:13252826888    
德格县| 成武县| 林周县| 惠州市| 凯里市| 乐山市| 博乐市| 仙居县| 诸城市| 亚东县|