日韩午夜精品免费理论片,国产在线视欧美亚综合,欧美精品亚洲精品日韩专区va,亚洲日韩国产精品第一页一区,无码av免费永久免费永久专区,日韩放荡少妇无码视频,久久99精品久久久久久9,国产乱人伦偷精品视频下

自動化軟件設計IEC61131-3標準專題(三)

http://www.ngjthbc.cn 2015年09月19日        

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

[上一個新聞資訊]:自動化軟件設計IEC 61131-...
閱讀技巧:鍵盤方向鍵 ←左 右→ 翻頁
[下一個新聞資訊]:自動化軟件設計IEC 61131-...
Copyright @ 沈陽廢品回收    電子郵件:
沈陽榮匯物資回收有限公司   電話:13252826888    
主站蜘蛛池模板: 国产综合精品久久丫 国产精品一区二区在线观看99 国产亚洲精品自在久久蜜tv 中文字幕人妻偷伦在线视频 久久久久夜夜夜综合国产 国产精品色无码av在线观看 男人av无码天堂 久久99精品国产免费观观 五月婷之久久综合丝袜美腿 四虎影视国产精品永久在线 国产精品久久人妻无码 成年无码动漫av片在线尤物 日韩丰满少妇无吗视频激情内射 人人爽天天碰天天躁夜夜躁 亚洲中文字幕aⅴ无码天堂 蜜乳av久久久久久久久久久 精品无码久久久久久午夜 曰韩免费无码av一区二区 久久精品国产精品久久久 国产v亚洲v天堂无码网站 婷婷五月六月综合缴情 日韩加勒比无码人妻系列 国产开嫩苞视频在线观看 麻花传媒在线观看免费 经典三级欧美在线播放 国产欧美日韩亚洲更新 亚洲日本乱码在线观看 国产九九99久久99大香伊 亚洲精品尤物av在线观看不卡 欧美乱强伦xxxxx高潮 好男人在线社区www资源| 国产日产欧产精品精品蜜芽| 国产在线精品99一卡2卡| 亚洲精品一线二线三线无人区| 亚洲欧美日本国产mag| 激情欧美成人小说在线视频 | 人妻丰满av无码久久不卡| 国产xxxx69真实实拍| 亚洲精品国产av现线| 成人无码午夜在线观看| 亚洲红杏成在人线免费视频|