- PLC編程實用指南(第2版)
- 宋伯生
- 9319字
- 2020-11-27 16:01:37
1.2 PLC程序語言
關鍵詞:PLC程序語言、IEC 61131 PLC國際標準、GB/T 15969、指令表(IL)、結構化文本語言(ST)、梯形圖(LD)、功能塊圖(FBD)、連續功能塊圖(CFC)、順序流程圖(SFC)、SAMA圖、數控用G語言
PLC程序要用編程語言表達。傳統PLC編程語言只有兩種,指令表(Instruction List,IL)及梯形圖(Ladder Diagram,LD有的稱梯形邏輯圖,ladder logic diagram,LLD)。而今PLC在各個自動化領域應用的不斷推進,為便于各類型的工程技術人員都能使用PLC,PLC廠商都增加了它的編程語言。國際電工委員會也制定與幾次修訂了PLC編程語言國際標準。1993年,作了全面修訂后稱之為IEC 61131-3的修訂版。我國在1995年11月發布了GB/T 15969-1/2/3/4標準,與IEC 61131-1/2/3/4等同。
該標準推薦了6種編程語言。除了指令表及結構化文本(Structured Text,ST)為文字語言,還有梯形圖、功能塊圖(Function Block Diagram,FBD)、連續功能圖(Continuous Function Chart,CFC)及順序功能圖(Sequential Function Chart,SFC)等圖形語言。
所推薦的編程語言有如下優點:
開放性,能最大限度地運行于不同制造商的PLC;
靈活性,一個程序的不同部分可使用不同語言;
先進性,支持結構化程序開發、復雜的過程控制及結構化數據;
可靠性,有很強的錯誤檢查和糾正能力。
目前IEC 61131-3編程語言,不僅用于PLC,而且還用于集散型控制系統、工業控制計算機、數控系統和遠程終端單元。
如果所有PLC廠商都使用這樣的編程語言,那好處將會多多。可減少培訓、調試、維護和咨詢的浪費;可使高水平軟件重復使用;可減少編程中的誤解和錯誤;可連接來自不同程序、項目、公司、地區或國家的部件等。
然而,由于這個標準的建立是在PLC已廣泛使用之后,加上它不是強制性標準,所以,有些老的PLC廠商多還是在原來語言的基礎上,作了擴展,并沒有完全采用這個標準。如日產PLC多數就沒有采用功能塊圖語言。再就是,即使語言名稱相同,但細節還是有不少差異的。
倒是我們國產PLC,如和利時公司的LM、LK系列機,是在有了標準之后才開發的。沒有與原有PLC的兼容問題,所以能全面采用這個標準。再就是瑞士ABB公司的PLC也使用標準規定的6種語言編程。
除了以上這6種語言,還有歐姆龍的系統流程語言,過程控制常用的SAMA圖(ScientificApparatus Makers Association)語言及數控用G(代碼)語言。這些在PLC編程中也有所應用。
再就是,有的PLC也可用計算機的高級語言編程。如GE PLC就可用C語言編程。它的一個C程序塊就是用該公司提供的C語言編程工具(Programming Toolkit)編寫,并編譯為擴展名為EXE(對它的90-70、90-30系列機)或gefiel(對它的PAC機)可執行文件。然后再導入相應的工程軟件中,作為程序塊供其他用LD、ST、FBD或IL編寫的程序塊調用??傊?,只要有相應的編輯軟件與編譯系統,用什么語言都可編程。
1.2.1 指令表
指令表也叫助記符。有的稱布爾助記符(Boolean Memonic),也叫列表,是基于字母符號的一種低級文本編程語言。類似計算機的匯編語言,它用拼音文字(可用多國文字)的縮寫及數字代表各相應指令。西門子稱之為STL語言。這個語言在歐洲很常用。絕大多數PLC都使用有這種助記符指令。
指令表語言是由一系列指令組成的語言。每條指令在新一行開始,指令由操作符和緊隨其后的操作數組成,操作數是指在IEC61131-3的“公共元素”中定義的變量和常量。有些操作符可帶若干個操作數,這時各個操作數用逗號隔開。指令前可加標號,后面跟冒號,在操作數之后可加注釋。
IL是所謂面向累加器(Accu)的語言,即每條指令使用或改變當前Accu內容。IEC61131-3將這一Accu標記為“結果”。通常,指令總是以操作數LD(“裝入Accu命令”)開始。
表1-1所示為4個廠商用這個語言寫出的功能相同的程序。
表1-1 助記符(或STL)語言程序
這里列了5條指令。除第5條外,其他幾條都含有三個部分:
指令地址:這里的第一條,為0,標志該指令存于PLC程序存儲區的位置。一般講,指令總是從0地址的指令開始順序執行,一直執行到最后一條指令為止。所以,確定指令的地址是重要的。不過,由于編程工具及編程軟件的發達,在送入指令時,這個地址多是自動生成的。
操作碼:這里的第一條為LD,用它告知PLC應該進行什么操作,是PLC指令的核心,是必不可缺的。其他幾個地址的指令碼各家的拼寫不同,但含義相同。
操作數:是操作碼操作的對象。各廠商PLC操作數的拼寫多不相同。如這里的第一條操作數,有的為000.00,有的為X000,有的為I0.0,有的為%IX0.0。指令有無操作數,以及有多少操作數,視操作碼而定。如這里的第五條END指令,它只是表示程序到此結束,就沒有操作數。
西門子、和利時程序不用END指令表示程序結束,后面無指令即表示程序的結束,系統會自行處理。
指令表語言容易記憶、便于操作,還便于用簡易編程器編寫程序,與其他語言多有一一對應關系,有些其他語言無法表達的程序,用它都可表達。是PLC編程最基本的語言。但是,指令表語言轉換為其他語言非常困難。除非指令表操作符的使用范圍及書寫格式受到嚴格的限制,才有可能實現轉換。此外,用助記符語言編的程序,可讀性較差。所以,目前已不常用。有的公司編程軟件,如AB公司的RSLogix5000,現在已不使用了。
1.2.2 結構化文本語言
結構化文本語言是基于文本的高級編程語言。它與BASIC語言、PASCAL語言或C語言等高級語言相類似。只是為了PLC應用方便,在語句的表達及語句的種類等方面都做了簡化。
ST語言沒有單一的指令,只有由一組指令構成的含義完整的各種語句。具體語句有:賦值語句、條件語句、選擇語句、循環語句及其他語句。實質上講,它也是PLC指令系統的一部分。
1.賦值語句
其格式為
變量A:=表達式;(?這是注解?)
它有被賦值變量(變量A)、賦值符號(:=)、表達式、結束分號(;)及注解組成。注解不是必要的,而其他則不可缺少。其含義是,進行表達式運算,運算結果賦值給被賦值變量。而表達式則是由變量、運算符及括號組成。表1-2為ST語言使用的運算符。
表1-2 ST語主使用的運算符
此外,系統還提供有初等數學函數,可在表達式中使用。這些函數見表1-3。
表1-3 ST語言使用的初等數學函數
提示:不同品牌PLC的ST語言所提供的函數、運算符可能略有不同。
以下就是ST語言的賦值語句。它把一組變量進行邏輯運算,然后再賦值給變量“work”。
這里“work”、“start”及“stop”為布爾變量。使用之前一般要先定義。在“(?”與“?)”之間為程序注解。它表達的就是以前介紹過的起、保、停(電路)邏輯。
2.條件語句
ST語言有“假如、那么”語句??捎糜谶壿嬏幚?。有多種格式。如上述work賦值也可用條件語句實現。即
3.Case(選擇)語句
其格式為
上述語句的含義為,當整形變量值為1,執行語句1。當整形變量值為2,執行語句2……余類推。如果沒有合適的值,則執行語句m。
4.循環語句
循環語句可使一些語句重復執行。有FOR loop、WHILE loop及REPEAT loop,與計算機高級編程語言循環語句相當。
5.其他語句
包括EXIT語句(與IF語句配合,可根據條件終止重復語句執行)、RETURN語句(用以結束本功能塊,返回調用它的主程序)、功能塊調用語句等。
提示:如同其他語言,同樣為ST語言,各PLC廠商的細節,不完全一樣。
結構化文本語言功能比圖形語言強,可讀性比指令表語言好。用它編寫復雜的程序,既方便,又易讀,是很有發展前途的PLC編程語言。它也是計算機編程人員的偏愛。但是,結構化文本語言對編程人員的計算機的技能要求較高,而且不如圖形語言直觀。所以,目前用得還不大普及。如歐姆龍PLC只是在自編功能塊的程序中可使用它。
1.2.3 梯形圖
梯形圖來源于美國,是一種基于梯級的圖形符號布爾語言。它通過連線,也稱鏈接元素,把PLC指令、功能及功能塊的梯形圖符號連接在一起,以表達所調用PLC指令、功能或功能塊,以及它們執行的前后順序。
1.梯形圖元素
根據編程標準規定,梯形圖的語言元素有連線、觸點、線圈以及功能或功能塊。只是不同的PLC其含義不完全相同。特別是傳統的PLC也沒有這么多元素。
(1)連線。有左右垂直母線以及水平鏈路、垂直鏈路。左右垂直母線畫在梯形圖左右兩側,稱電源柱,也稱電力軌線。左側垂直母線名義上為功率流起點。水平鏈路、垂直鏈路也就是梯形圖內部的小橫、豎線。功率流從左向右通過內部小橫、豎線,經觸點流向相關的線圈、功能、功能塊。最終到達右側的電力軌線,也即功率流的終點。
(2)觸點。有常開觸點、常閉觸點、正轉換感應觸點及負轉換感應觸點等。具體功能見有關指令說明。在梯形圖中它用水平鏈路、垂直鏈路相互連接,最終連接到左垂直母線。并為連接在其后的線圈、功能或功能塊的執行建立邏輯條件。
(3)線圈。有正常線圈、反向線圈、設置(鎖存)線圈、復位(取消鎖存)線圈、正轉換感應線圈、負轉換感應線圈及暫停線圈等。線圈通常跟在觸點或功能和功能塊后面,但個別PLC(如施耐德)在它們后面也可以連接觸點。線圈也是梯形圖程序的輸出。同樣的邏輯條件,不同線圈有不同的輸出。具體輸出情況見有關指令說明。
(4)功能及功能塊。除了線圈,可產生輸出的還有功能及功能塊。它的調用還可運用EN/ENO機制,即在所調用功能或功能塊的輸入加EN端,輸出加ENO端。當此功能或功能塊無誤運行,則EN=ENO;否則EN≠ENO。用此可方便應對調用出錯。
2.梯形圖梯級
有了水平鏈路、垂直鏈路,即可把若干個梯形圖相關圖形元素,即指令,連成一個梯級(Rung,有的稱節,有的稱為Network)。它是一組前后連貫,能代表一個完整邏輯含義的梯形圖指令集。是設計梯形圖程序的基本單位。
梯形圖的各個梯級則由垂直母線連接成連通的整體(但有的廠商母線不是連通的)。從而構成完整的PLC梯形圖程序。只是為了方便,有時右垂直母線可以省略。這樣的圖形類似于梯子,梯形圖也因此而得名。
3.梯形圖特點
梯形圖語言與電氣原理圖相對應,與原有繼電器邏輯控制技術相一致,易于被電氣技術人員使用。與原有的繼電器邏輯控制技術不同的是,梯形圖中的功率流(Power Flows)不是實際意義的電流,內部的繼電器也不是實際存在的繼電器,因此,應用時,需與原有繼電器邏輯控制技術的有關概念相區別。
提示:梯形圖的左母線好像電氣原理圖的電源線一樣,一般不直接與輸出類指令(相當于電氣原理圖的負載)相連,中間總要有能建立邏輯條件的一些指令(相當于電氣原理圖的控制元件)。但有的PLC也允許這么做。
用梯形圖符號編的PLC程序,很像電氣原理圖。圖1-4a為電氣原理圖,圖1-4b為梯形圖,可知它們是何等的相似。圖1-4b為施耐德公司Naza PLC用的梯形圖,圖上既注有直接地址(如%Q0.4),又注有符號地址(如M1),很便于理解。
圖1-4 電氣原理圖梯形圖對比
圖1-5所示為與表1-1對應的梯形圖程序。圖1-6所示為監控時看到PLC控制情況。圖1-6a表示10.00點已工作。圖1-6b表示Q0.0點已工作。圖1-6c表示Y000點已工作。圖1-6d表示%QX0.0已工作。
圖1-5 與表1-1對應的梯形圖程序
圖1-6 監控時梯形圖程序
圖1-7 同是實現增計數功能但梯形圖表示不同
4.梯形圖問題
梯形圖程序表達的指令順序,一般為先上后下,先左后右。即圖上方、左方的梯形圖指令、功能及功能塊先執行,而下方、右方的梯形圖指令、功能及功能塊后執行。但用它表達的順序關系,不如用助記符或ST語言清楚,弄不好,易出現歧義。圖形過分復雜時,還容易出錯。所以,有的PLC程序如不能用梯形圖表達時,最終多還是要用助記符或ST語言表達。
再就是,用梯形圖編程,要用圖形編程器(或帶有圖形編程能的簡易編程器),或用個人計算機、并配置相應的編程軟件。
此外,盡管已有標準對梯形圖語言做過規定,但由于它是PLC的傳統編程語言,由于歷史原因,不同廠商PLC的梯形圖符號,以至于相同PLC,但編程軟件版本不同也還有不少差別。如三菱PLC梯形語言,使用GX-work2編程軟件就有簡單梯形圖語言及結構化梯形圖語言可選。簡單梯形圖語言是用觸點及線圈構成梯形圖。結構化梯形圖語言則增加功能及功能塊的調用。同樣可實現的功能,其圖形符號及指令數量都不完全相同。圖1-7所示為同是調用增計數指令,實現的功能基本相同,但梯形圖的表示卻不同。
從圖1-7a、b可知,它把計數器當做線圈看待,只是加有計數值設定(如該圖K5)。線圈名為C1,即它的內部器件(計數器)。而圖1-7c、d則為調用計數功能塊。用所定義名為C_1的結構,而不用計數器這個內部器件。
提示:為了銜接本書大部分三菱PLC程序仍使用簡單梯形圖編程。
最后是,梯形圖語言不便于數據封裝;不易于程序重用;不支持數據結構編程;程序執行不夠靈活,執行算術操作的也有局限性。正是以上梯形圖語言的這些局限性,所以,近來才開發有其他的一些編程語言。
1.2.4 功能塊圖
PLC還用有功能塊圖(FBD)語言。它是一種對應于邏輯電路的圖形語言。與電子線路圖中的信號流程圖非常相似,在程序中,它可看作兩個過程元素之間的信息流。FBD廣泛地用于過程控制。
圖中功能塊有輸入端、輸出端。如圖1-8所示,為和利時PLC用的功能塊程序。這里有兩個功能塊,一為邏輯“OR”功能塊,另一為“AND”功能塊。前者的輸出作為后者的輸入。
圖1-8 功能塊圖
圖1-8的“OR”塊類似于邏輯電路的“或門”,含義為邏輯或?!癆ND”塊類似于邏輯電路的“與門”,含義為邏輯與。該圖“OR”塊有兩個輸入,一個為%IX0.0,另一為%Q0.0?!癘R”的輸出直送給“AND”塊。“AND”塊的兩個輸入。一來自“OR”塊,另一來自%I0.1的非(這里的小圓圈為邏輯非之意)。AND功能塊的輸出為%Q0.0。顯然,圖1-8表達的操作數間邏輯關系,與本書第1章的圖1-4程序相似,也是起、保、停邏輯。
功能塊圖語言是用圖形化的方法,以功能模塊為單位,描述控制功能。邏輯關系清晰,便于理解。特別是控制規模較大、控制關系較復雜的系統,用它表達將更為方便。
此外,一些含有標準功能的程序,用功能塊語言則更便于調用。目前,PLC廠商推出一些高功能及高性能的硬件模塊的同時,多提供與其有關的功能塊圖程序,這為用戶使用這些硬件模塊及進行編程提供了很大方便。
功能模塊圖語言占用內存較大,執行時間也較長,因此,這種設計語言多只在大、中型可編程序控制器和集散控制系統的編程和組態中采用。歐姆龍PLC即使為大、中型機也不用這種語言。但提供有供梯形圖語言使用的系統功能塊。
1.2.5 連續功能圖
連續功能圖與功能塊語言類似。也是按需要選用種種功能塊。每個功能塊也有輸入、輸出。塊間的聯系也用連線。所不同的是,它更靈活,塊的位置可任意擺放,特別有信號反饋時,畫起來更方便。
為了塊的執行有明確的順序,它的每個塊的右上角都標有序號。而這個標注,在功能圖語言中是沒有的。只是它在實際表達時,這個標號也可選擇不顯示。
圖1-9 連續功能圖程序
圖1-9所示為和利時PLC用的連續功能圖程序。也是起、保、停邏輯。這里的功能塊就是隨意擺放的。它的輸出%QX0.0以反饋的形式作為功能塊OR的輸入。但它有標號。所以,肯定是先“或”、后“與”,再輸出,不會有歧義。
提示:功能塊圖及連續功能圖語言在DCS系統編程中用的較多。此外,由于這兩種語言差別不大,有時,僅使用功能塊圖語言。因而,有的也把IEC 61131-3自動化編程語言說成5種,而不是6種。
1.2.6 順序功能圖
順序功能圖來源于佩特利(Petri)網,是IEC61131-3圖形化語言中的一種,以描述控制程序的順序為特征。具有圖形表達方式,能簡單、清楚地描述系統的所有現象,并能對系統中存有的像死鎖、不安全等反?,F象進行分析和建模。并可在此基礎上編程。所以,得到了廣泛的應用。
其實,順序功能圖語言僅僅是一種組織程序的圖形化方式。其使用要與其他語言配合,否則無法實現其功能。所以,嚴格地講,它不能算是完整的編程語言。
1.順序功能圖組成
由步、有向線、轉移等組成。每個步含有相應的動作。而步間的轉換靠其間的轉移條件實現。
(1)步(Step)。是系統工作順序組成部分,用方框表示。分有初始步、活動步、不活動(休止)步三種。初始步,與系統初始狀態對應的步?;顒硬?,正處于工作階段。不活動步,處于等待工作階段。一個步是否為活動步,即是否處于激活狀態,則取決于上一步及與其相應的轉移。
(2)動作(Action)。是步的組成部分,一個步含有一個或多個動作,用一個附加在步上的矩形框來表示。每一動作中的程序代碼都可以用IEC的任一語言如ST、FBD、LD或IL來編寫。每一動作都有一個修飾詞(Qualifier),用來確定步激活時其動作什么時候執行。具體修飾詞有:
N(非存儲類型):步變激活時動作執行,不活動步時動作終止。
S(置位,存儲):步變激活時動作執行啟動,步變為不活動步時動作繼續,直至動作被復位。
R(復位):終止被S、SD、SL、DS起動的動作。
L(時間限制):步激活動作起動,至步不活動或設定時間到。
D(時間延遲):步激活時延遲定時器起動,延遲結束步仍活動,動作起動至步不活動止。
P(脈沖):步活動時,起動執行一次動作。
SD(存儲與時間延遲):延遲后動作起動,直至復位。
DS(延遲與存儲):延遲后步仍活動,動作起動,直至復位。
SL(存儲與時間限制):步活動時起動動作,直至設定時間到或復位。
(3)有向連線。從上到下、從左到右的步間連線,或非前兩方向則加箭頭的步間連線。
(4)轉移。有向連線上與其垂直的短線。與轉移相關的邏輯條件,用文字、布爾代數表達式、圖形符號標于轉換短線旁。
2.順序功能流程圖步轉移規則
步的轉移指的是有向線相連的前后步激活狀態的轉換,即原休止的(后)步激活,而原激活的(前)步休止。步間轉移的規則是:①步間的轉移邏輯條件為真;②被轉移步的前一步是活動的。不滿足此兩條件,都將不能轉移。為了啟動順序功能流程圖程序的執行,總是要指定一個初始步,其標志為S0,是程序運行開始時被激活的那個步。有了這個初始步,則隨著相應轉移邏輯條件滿足,流程圖中步的激活狀態將逐步轉換,直至最后一步被激活,或根據有向線指定路線不停地循環轉換。
3.順序功能流程圖主要形式
根據結構的不同,順序功能流程圖可分為以下幾種形式:單序列控制、并行序列控制、分支結構序列、轉移序列等。
圖1-10所示為一段“順序功能圖語言”編寫的程序。
圖中S0(起始步)、S1、S2、S3為步,t1、t2、t3、t4、t5為“轉移”?!稗D移”的條件是位邏輯值。為1轉換,進入(激活)下一步,而原來步的激活則終止。為0不轉換,停留在所在步,執行所在步的程序。圖中t1條件為梯形圖編程,t2為邏輯圖編程。圖中S0步轉換到S1、S2是分支結構,到底轉換到哪個步,要依邏輯條件t1(轉換到步S1條件)、t4(轉換到步S2條件)哪個先滿足確定。而S1、S2轉換S3是邏輯或,執行S1步及t2為1,則從S1轉換到S3,執行S2步及t5為1,則從S2轉換到S3。S3往下轉換,則由邏輯條件t3確定。至于在各個“步”中含有多少動作,以及各動作的程序代碼是什么,即PLC要做什么,可用不同語言編寫。這里略。
圖1-10 順序功能圖程序
總之,功能表圖編程語言的特點是:
(1)以功能為主線,條理清楚,便于對程序操作的理解和溝通;
(2)對大型的程序,可分工設計,采用較為靈活的程序結構,可節省編程時間和調試時間;
(3)常用于系統的規模較大、程序關系較復雜的場合;
(4)只有在已“激活”的步中指令才被掃描,而在未“激活”的步中的指令的則不予掃描,因此,整個程序的掃描時間較其他程序編制的程序掃描時間要大大縮短。
提示:表面上看,順序功能圖語言與梯形圖語言的步進指令有點類似。但前者的內涵要豐富得多。
提示:同樣稱SFC語言,但有的是合乎標準的,稱IEC標準語言。其Action有以上修飾詞。有的做了簡化,一個Step僅一個Action,而且也沒有什么修飾詞,更便于使用。多數編程軟件可在使用標準SFC與簡化SFC之間做選擇。
1.2.7 系統流程語言
以上介紹的PLC編程語言雖是國際標準語言,還是太專業了,不易被非專業人員接受。還應當有類似計算機可視化或組態軟件那樣的語言。歐姆龍公司C1000F、C120F等機型用的系統流程語言就是這樣的語言。
系統流程語言所定義的指令也是告知PLC該做什么及怎樣去做的圖形符號,但不與電氣硬件符號與規則相關聯,也不與計算機的邏輯符號相關聯。
系統流程語言只與說明系統工作的流程圖(Flow chat)相關聯。故可很容易為熟悉系統,但不懂電氣、又不懂得計算機的技術人員所接受。
1.編程過程
(1)畫出過程流程圖(Process flow chat),說明控制系統任務及可編程序控制器作用。
(2)畫簡化流程圖(General Flow chat),明了、簡單地說明控制動作執行順序。
(3)畫詳細流程圖(detailed Flow chat),把簡化流程圖細化,目的是能依此編寫指令。這相當于梯形圖語言的梯形圖。
(4)編寫指令。在詳細流程圖的基礎上進行。要編寫指令碼與數據(地址)。這個工作,相當于從梯形圖到語句表的翻譯工作。
2.實例說明
用PLC控制機械手工作,其工作情況如圖1-11所示。
(1)工作過程。起動→臂轉到位置A→取工件→臂轉到位置B→放工件→臂再到位置A→……如此不斷重復著。
(2)畫簡化流程圖。用流程圖表達這個過程,如圖1-12所示。
圖1-11 機械手工作概況
1—LS3檢查工件抓取 2—LS1順時針轉 3—PB1起動按鈕 4—LS2逆時針轉 5—傳送帶A 6—傳送帶B
圖1-12 工作過程示意圖
(3)畫詳細流程圖。把圖1-12的流程細化,用符號表示,標以操作數,即為詳細流程圖。
操作數根據動作而定。如起動,它是輸入動作,其操作數即為起動按鈕接到PLC的輸入點。如點號為0000,則起動的操作數為0000。再如臂轉動從B到A,它是輸出動作,若這個動作的電磁閥線圈接到PLC的輸出點,點號為0200,則這個動作的操作數為0200等。
動作則用符號表示,輸入動作這里用AND,輸出用OUT。因為輸入條件有個是否具備的問題。條件不具備,就要等待。故等待也是動作,其符號用WAIT。
圖1-13中未解釋的還有LBL0為標號0,為指令在圖或程序中的位置標識。JMP為跳轉,執行它,要求PLC跳轉去執行標號指定的指令。OUT之后再加NOT,表示輸出動作禁止。與原梯形圖的OUT-NOT含義相同。
此外,詳細流程圖還要把一些動作分解開。如臂轉到位置A,分解成向位置A轉動及等待是否到位置A兩步。事實上,PLC對動作的準確控制也要有這兩步。
詳細流程圖的一個步,用一個框表示??蛑械姆枮閯幼鳎瑪底譃辄c號。
圖1-13 詳細流程圖
(4)編寫指令。有了詳細流程圖,即可編寫PLC的指令表。表1-4即為與圖1-9對應的指令表。
表1-4 指令表
把表中的語句通過編程器(與梯形圖語句用的編程器不同)送入PLC,再運行程序,如其他條件也具備,即可使PLC進行上述動作的控制。只要起動條件具備,機械手將不停地從A處取工件放到B處。若起動條件不具備,則機械手停止在B處。
由于系統流程語言有等待指令,其執行程序不同于梯形圖語言。如本程序用了多個等待,這里的第一個等待條件不滿足,即0000不為ON,則PLC就不執行后繼指令,只在①處循環等待。0000 ON后,執行②,繼而執行③,并又在③處等待。它的程序不是周而復始地不斷執行著,而是用到哪個指令就執行哪個指令。
3.系統流程語言特點
(1)較容易理解,不懂得電路的人,也可理解。盡管這里介紹的只是幾個最簡單的指令。
(2)對輸入的響應比梯形圖語言快。因為梯形圖語言中的指令,有用、無用都要執行。而系統流程語言則需要時才執行,總的執行指令的周期短。
只是使用這種語言的歐姆龍PLC,目前還很少進入中國市場??赡芙窈髸兴兓?。
1.2.8 SAMA圖及G編程語言
SAMA圖語言是Scientific Apparatus Makers Association(SAMA)科學儀器制造商協會開發的一種工程組態圖。包含各種圖形符號(功能模塊)和連接線(通常情況下,模擬量為實線,邏輯量為虛線)。
SAMA圖使用各種圖符,如加、減、乘、除、微分、積分、或門、與門、切換、最大值、最小值、上限幅、下限幅等,表達控制系統的運算與控制處理。圖1-14所示為它的常用圖形符號。
圖1-14 SAMA圖形符號
圖1-14 SAMA圖形符號(續)
SAMA圖在DCS中用得很多。歐姆龍的回路控制模塊使用的編程語言也與此類似。集成在CX-one中的CX-Process Tool軟件就是用這個語言編程。
此外,還有數控用G(代碼)語言。在歐姆龍PLC調用運動模塊的時候也會用到它。集成在CX-one中的CX-Motion軟件就是用這個語言編程。
本節已介紹了很多編程語言。其實,不管用什么語言編程,一般講,同一公司的產品,幾種語言的程序多都有對應關系。利用所提供的編程軟件多都可從一種語言的程序,轉換成另一種語言的程序。所以,本書使用的主要是梯形圖語言。