付 斌,鄒 華
(1.武漢工程職業技術學院,湖北武漢 430080;2.武鋼金山店鐵礦,湖北黃石 435006)
PLC廣泛應用于各種生產機械的生產過程和自動控制中,成為一種最先進、最重要、最普及、應用場合最多的工業自動控制裝置,它不僅可以實現邏輯運算,還具有算術運算、數據處理、聯網通信等功能,是具有工業控制指令的微機系統。PLC技術是機電技術人員和操作人員必備的、重要的知識和技能。PLC技術的核心內容是根據生產工藝流程和控制要求使用某種編程語言進行程序設計,梯形語言形象直觀、容易掌握,成為了應用最為廣泛的編程語言,梯形圖不但沿用和發展了電氣控制技術,而且其功能和控制指令也遠遠超過電氣控制范疇。由于梯形圖的設計是計算機程序設計與電氣控制設計思想結合的產物,因此,梯形圖設計的難度大,是一項高端、復雜、煩瑣的工作。在所有PLC技術的書籍中,關于梯形圖語言的編程方法,要么介紹了經驗編程法、順序控制編程法、結構化編程及分部編程等4種編程方法,要么只介紹經驗編程法和順序控制編程法,但對于初學PLC技術的人員,無論采用哪種方法編寫控制程序都并非易事,因此另辟蹊徑,尋找一種易于掌握、易于理解,應用方便的編程方法十分必要。
作為電氣技術人員和操作人員,一般都熟悉數字電子技術,基于此,本文提出了一種關于梯形圖語言編程的新方法—數字邏輯法。數字邏輯法已經廣泛地應用于生產實際中,例如對某礦選礦車間的天車及抓斗吊進行PLC改造時,編程采用的是數字邏輯法,取得了事半功倍的效果。
編程最常用的方法是經驗法,但是經驗法沒有固定的步驟和模式可以遵循,具有很大的試探性和隨意性,對于不同的控制系統,沒有一種通用的容易掌握的設計方法。在設計復雜系統的梯形圖時,要用大量的中間單元來完成記憶、聯鎖、互鎖及封鎖等功能,由于需要考慮的因素很多,它們往往又交織在一起,分析起來非常困難,在設計程序時,不可能把所有的問題考慮得很周到,程序設計出來后需要反復調試,發現錯誤時再進行修改,即使是非常有經驗的工程師,也很難做到設計的程序試車能一次成功。當修改某一局部電路時,很可能會引發出別的問題,對程序的其它部分產生影響,因此對梯形圖的修改也很麻煩,往往花費很長時間還得不到滿意的結果。另外,用經驗法設計的梯形圖很難閱讀,給系統的維修和改進帶來了很大的困難。
所謂數字邏輯法是指根據系統的控制要求,列出類似真值表的狀態表,然后根據狀態表找出輸出變量的邏輯關系式,最后根據邏輯關系式畫出梯形圖。
數字邏輯法編程時無需試探性編程,更不能隨意畫梯形圖,必須遵循固定的、通用的模式,除了正反轉需要聯鎖外,一般不用考慮聯鎖、互鎖及封鎖等功能,因此交織在一起的因素很少,能在較短的時間內完成程序設計,不用太省費省力,大部分情況下,能一次試車成功,特別適合PLC技術的初學者使用。數字邏輯法設計出來的梯形圖非常簡短、簡潔,便于閱讀。更重要的是,由于輸出變量的狀態與輸入變量沒有直接關系,因此可以將若干個開關或按鈕并接在一個輸入點上,控制系統所占用的PLC的輸入點數大大減少。
下面用兩個比較典型的編程實例介紹數字邏輯法的應用。
如圖1所示為機床滑臺往返、主軸正反轉控制。
控制要求是:按下啟動按鈕→滑臺右行,同時主軸電機正轉(順轉)→滑臺碰SQ2后左行,同時主軸反轉(逆轉)→滑臺碰SQ1又右行。滑臺每碰SQ2一次主軸改變一次旋轉方向。滑臺和主軸按上述規律運行。

圖1 主軸-滑臺示意圖
按照數字邏輯法編程的步驟首先列出輸出變量的狀態表,如表1所示。同時分配I/O地址,如表2所示。

表1 機床滑臺-主軸控制系統狀態表

表2 控制系統I/O地址分配表
在表1中,M1.0和M1.1是字MW0的低2位,滑臺每碰SQ1、SQ2一次,MW0的內容即計數值加1。M1.0及M1.1的內容以4個工步為一個循環周期,即從第5個工步開始,M1.0及M1.1的內容又從“00”開始按表1中的規律循環,因此只需列出4個工步的狀態表。
由于SQ1、SQ2不可能同時動作,因此,在表2中,滑臺的左、右限位開關并接在I0.2上,可以節省1個輸入點。根據表1中輸出變量與M1.0,M1.1的關系很容易找出輸出變量的邏輯代數式:

在上述表達式中,Q4.2等于M1.0和M1.1異或,Q4.3等于M1.0和M1.1同或,根據上述邏輯表達式,很容易畫出控制程序的梯形圖,如圖2所示,在程序段5和程序段6中對異或及同異邏輯的梯形圖作了標注。


圖2 機床滑臺-主軸梯形圖
如圖3所示,某生產線上有一臺運料小車停在A點,小車從A點出發,分別到B、C兩處運送二種物料到A點,控制要求如下。
(1)如果先按下左行按鈕,小車從A點出發先到B點停3s裝物料1,然后返回A點停3s卸料,再從A點出發到C點停3s裝物料2,返回A點停3s卸料;
(2)如果先按下右行按鈕,小車從A點出發先到C點停3s裝物料2,然后返回A點停3s卸料,再從A點出發到B點停3s裝物料1,返回A點停3s卸料;
(3)物料1和物料2各運送二車到A點后系統停車。

圖3 運料小車示意圖
按照數字邏輯法編程的步驟首先列出輸出變量的狀態表,如表3所示。同時分配I/O地址,如表4所示。

表3 運料小車狀態表
在表3中,M1.0和M1.1是字MW0的低2位,小車每碰SQ1、SQ2、SQ3一次,MW0的內容即計數值加1。

表4 控制系統I/O地址分配表
由于SQ1、SQ2、SQ3不可能同時動作,因此,在表4中,小車的左、中、右限位開關并接在I0.3上,可以節省2個輸入點。根據照表3中輸出變量與M1.0,M1.1的關系很容易找出輸出變量的邏輯代數式。
如果先按左行按鈕:

如果先按右行按鈕:

根據上述邏輯表達式,很容易畫出控制程序的梯形圖,總共有5段。由于篇幅限制,僅給出梯形圖的主干部分,如圖4所示。
在圖4中,M2.0、M2.1分別保持按下右行和按下左行按鈕的狀態,T0是小車碰SQ1、SQ2、SQ3后延時3s的接通延時定時器,C0是統計小車裝料車數的減計數器。


圖4 運料小車梯形圖(主干部分)
上述二個例子如果采用經驗法編程,不僅花費的時間和精力要比數字邏輯法多,而且程序的段數多,每段程序用到的指令也多,邏輯關系比較復雜。如果采用順序控制法編程,畫出順序功能圖也并非易事,特別是復雜的大型程序的順序功能圖更難畫,順序控制法編寫的梯形圖段數同樣很多,花費的時間也比較長。而數字邏輯法只需掌握基本的數字電路知識,就能遵循規律畫出梯形圖,在很短的時間內完成程序設計,受到了PLC技術初學者的青睞。另外,從節省PLC的硬件資源方面來看,數字邏輯法的優點也十分顯著,例如萬能銑床的工作臺有前后,左右,上下6個方向要進行限位控制,如果采用數字邏輯法編程,6個限位開關可以并接在一個輸入點上,能節省5個輸入點,意義重大。數字邏輯法不適用于很多廠家的PLC,應用范圍廣泛。
由于PLC外圍電路接線非常簡單,上述二個實例均略去了接線圖。
[1]廖常初.S7-300/400PLC應用技術[M].北京:機械工業出版社,2011.