回覆列表
  • 1 # 工控視界

    應該是說程式語言吧

    PLC的程式語言

    1.所謂程式編制,就是使用者根據控制物件的要求,利用PLC廠家提供的程式編制語言,將一個控制要求描述出來的過程。PLC最常用的程式語言是梯形圖語言和指令語句表語言,且兩者常常聯合使用。

    1)  梯形圖(語言),是比較常用和容易理解的一種語言。

    梯形圖是一種從繼電接觸控制電路圖演變而來的圖形語言。它是藉助類似於繼電器的動合、動斷觸點、線圈以及串、並聯等術語和符號,根據控制要求聯接而成的表示PLC輸入和輸出之間邏輯關係的圖形,直觀易懂。

    ①梯形圖按從左到右、自上而下地順序排列。每一邏輯行(或稱梯級)起始於左母線,然後是觸點的串、並聯接,最後是線圈。

     ②梯形圖中每個梯級流過的不是物理電流,而是“概念電流”,從左流向右,其兩端沒有電源。這個“概念電流”只是用來形象地描述使用者程式執行中應滿足線圈接通的條件。

     ③輸入暫存器用於接收外部輸入訊號,而不能由PLC內部其它繼電器的觸點來驅動。因此,梯形圖中只出現輸入暫存器的觸點,而不出現其線圈。輸出暫存器則輸出程式執行結果給外部輸出裝置,當梯形圖中的輸出暫存器線圈得電時,就有訊號輸出,但不是直接驅動輸出裝置,而要透過輸出介面的繼電器、電晶體或閘流體才能實現。輸出暫存器的觸點也可供內部程式設計使用。

     

    OMRON PLC 梯形圖程式圖解

     

    三菱PLC梯形圖程式圖解

    2)指令語句表

    指令語句表是一種用指令助記符來編制PLC程式的語言,它類似於計算機的組合語言,但比組合語言易懂易學,若干條指令組成的程式就是指令語句表。一條指令語句是由步序、指令語和作用器件編號三部分組成。

     

    三菱PLC的指令表程式

    3)、功能模組圖語言(FBD)

    功能模組圖語言是與數字邏輯電路類似的一種PLC程式語言。採用功能模組圖的形式來表示模組所具有的功能,不同的功能模組有不同的功能。

    功能模組圖程式語言的特點:功能模組圖程式設計語言的特點是:以功能模組為單位,分析理解控制方案簡單容易;功能模組是用圖形的形式表達功能,直觀性強,對於具有數字邏輯電路基礎的設計人員很容易掌握的程式設計;對規模大、控制邏輯關係複雜的控制系統,由於功能模組圖能夠清楚表達功能關係,使程式設計除錯時間大大減少。

     

     

    OMRON PLC的功能模組程式圖解

    4)、 順序功能流程圖語言(SFC)

    順序功能流程圖語言是為了滿足順序邏輯控制而設計的程式語言。程式設計時將順序流程動作的過程分成步和轉換條件,根據轉移條件對控制系統的功能流程順序進行分配,一步一步的按照順序動作。每一步代表一個控制功能任務,用方框表示。在方框內含有用於完成相應控制功能任務的梯形圖邏輯。這種程式語言使程式結構清晰,易於閱讀及維護,大大減輕程式設計的工作量,縮短程式設計和除錯時間。用於系統的規模校大,程式關係較複雜的場合。圖5是一個簡單的功能流程程式語言的示意圖。

    順序功能流程圖程式語言的特點:以功能為主線,按照功能流程的順序分配,條理清楚,便於對使用者程式理解;避免梯形圖或其他語言不能順序動作的缺陷,同時也避免了用梯形圖語言對順序動作程式設計時,由於機械互鎖造成使用者程式結構複雜、難以理解的缺陷;使用者程式掃描時間也大大縮短。

     

    5、結構化文字語言(ST)

        結構化文字語言是用結構化的描述文字來描述程式的一種程式語言。它是類似於高階語言的一種程式語言。在大中型的PLC系統中,常採用結構化文字來描述控制系統中各個變數的關係。主要用於其他程式語言較難實現的使用者程式編制。

        結構化文字程式語言採用計算機的描述方式來描述系統中各種變數之間的各種運算關係,完成所需的功能或操作。大多數PLC製造商採用的結構化文字程式語言與BASIC語言、PASCAL語言或C語言等高階語言相類似,但為了應用方便,在語句的表達方法及語句的種類等方面都進行了簡化。

        結構化文字程式語言的特點:採用高階語言進行程式設計,可以完成較複雜的控制運算;需要有一定的計算機高階語言的知識和程式設計技巧,對工程設計人員要求較高。直觀性和操作性較差。

     

     

     

     

     

  • 2 # 夢景仙

    步進指令多是教學用,三菱是STL指令,西門子S300據說沒有獨立的步進指令,但可以用很多方式代替實現。

    梯形圖、指令表、SFC等是程式設計的方式,也可以叫語言種類。

    程式設計習慣實際受個人能力制約,程式設計也沒有固定格式,只要單位許可,幾乎可以隨心所欲。

    一般的常開常閉,以及步進指令是初級指令。

    SHL等位移指令是中級指令。

    高階指令的定義比較寬泛,通常帶有技巧性與特殊定義,比如呼叫宏檔案,格雷碼轉換等。

    嚴格的說,步進是程式步,不能算成一個獨立的指令。

    至於別人怎樣編寫我不能解釋,就我本人接觸到的做一下描述,僅供參考。

    一、越是重要地方,涉及生死的場所,維護人員越多的程式,越是習慣用基礎指令。程式的優劣拼的是對裝置的熟悉度。比如特種裝置的起重機裝置,多是Mov指令,讀取變頻器反饋值送到觸控式螢幕顯示視窗等等。

    二、為了最佳化程式與減少程式步,使用一些特殊指今。比如我將輸入端Mov給MB0(西門子),後期呼叫時直接用M0.x就可以了,不再需要一一定義輸入端。

    三、花裡胡哨的程式往往表明的是程式設計員不懂,而不是高手。工控與電氣通常要求程式簡單與目的性明確,看似高大上的程式設計很多暴露了程式設計員的實際能力,雖然結果相同。我曾與一個寫C的一起做啟停保,這在PLC裡實在不值一提,然而這個C又是寫定義,又是寫註釋,好像還做了很多底層檔案,還把檔名儲存為啟停保.00.xx.01。PLC一步的,他寫了一大篇,重點是很好看,且看不懂。

    就我個人習慣,比如一個比較指令(位指令),當MB0=1時,實際置位的是M0.0,等於2時是M0.1,等於4時是M0.2,等於8時是M0.3。

    眼尖的可能已經看出來了,這不是8421碼嗎?對的,所有M與Q都能用8421碼置位或復位。這就是基本指令的秘密,所有的指令不過就是在控制那個點的置位與復位而已。

    步進指令也可以叫順控指令,實際在DCS等中控系統裡還是應用很廣的。

    針對步進指令為什麼應用少,是因為這個指令只適用固定格式,單獨產品的需求,在一些小型場合還是可行的。但在一些需要配合,資料釆集等中大型場所,不可能等你一步一步去執行,這不僅涉及中斷,還有一系列的問題存在。

    所以步進指令不會或很少用在系統化裝置主程式裡,但可用在能獨立執行的終端裝置裡。

  • 3 # 控制研究控

    說一點個人意見,你說很多裝置的控制都不用步進指令(在西門子PLC中叫順控指令),其實是不確切的。

    造成這個現象的原因是,實現順序控制的方法比較多,比如用定時器配合SET/RESET指令,或者使用移位指令也可以實現。所以主要還是看程式設計人員的個人愛好,用很多組的SET/REST指令是比較靈活的,不用去按照步進指令的指定格式去做,因此很多人能不用步進指令的時可能就不想去用步進指令了。

    但是,利用順控指令的程式流程更明晰,所以還是有很多程式中在使用順控指令的。西門子200系列PLC中的順控指令是屬於程式控制指令的(有興趣的可以去看一下我前一段發過一篇200PLC順序控制的文章)。在西門子300/400系列STEP7軟體,也配置了GRAPH的安裝元件,可以看一下:

    這個圖片上的STEP1/STEP5/STEP6,就是步驟1,5,6。這些都是方便程式的步驟按順序執行或跳轉的!

    說了這麼多,還是回到你的題目,在不使用系統提供的順序控制指令的情況下,最多的都是使用SET/RESET指令配合定時器去實現步驟的順序執行控制的。可能比較規範的那些程式,就做成程式塊,其實程式塊中也依然是SET/REST和時間等指令的組合。即使利用1,2,3,4這邊的編號去實現程式的轉化,應該也是透過比較指令去觸發SET/RESET指令的。

  • 中秋節和大豐收的關聯?
  • 老年人出行旅遊該如何選擇旅遊團?