在這里電工學習網(wǎng)小編介紹plc常用的編程技巧。
1)外部輸入、輸出繼電器、內(nèi)部繼電器、定時器、計數(shù)器等器件的接點可多次重復使用,無需用復雜的程序結構來減少接點的使用次數(shù)。
2)梯形圖每一行都是從左母線開始,線圈接在最右邊,接點不能放在線圈的右邊,如圖1所示。
3)線圈不能直接與左母線相連。如果需要,可以通過一個沒有使用的內(nèi)部繼電器的常閉接點或者特殊內(nèi)部繼電器R9010(常ON)的常開接點來連接。
4)同一編號的線圈在一個程序中使用兩次稱為雙線圈輸出。雙線圈輸出容易引起誤操作,應盡量避免線圈重復使用。
5)梯形圖程序必須符合順序執(zhí)行的原則,即從左到右、從上到下地執(zhí)行,如不符合順序執(zhí)行的電路不能直接編程,如圖2所示的橋式電路就不能直接編程。
6)在梯形圖中串聯(lián)接點、并聯(lián)接點的使用次數(shù)沒有限制,可無限次地使用。
7)兩個或兩個以上的線圈可以并聯(lián)輸出,如圖3所示。
8)兩個及以上的線圈或指令可以并聯(lián)輸出。
9)觸點組(邏輯塊)與單個觸點并聯(lián)時,應將復雜的塊放在上面,較簡單的塊放在下面,可以節(jié)省一條OR LD指令。
10)并聯(lián)觸點組與幾個觸點相串聯(lián)時,應將較復雜的塊放在左邊,可以節(jié)省一條AND LD指令。
11)如果一條指令只需在PLC上電之初執(zhí)行一次,可用253 15作為其執(zhí)行條件。
12)有些梯形圖難以用塊操作指令AND LD、OR LD等編寫時,可以重新安排梯形圖結構。將圖4a若改畫成圖4b,再用語句表編程就較清楚了。
優(yōu)秀的可編程邏輯控制器(PLC)程序員,在編寫代碼時應始終為用戶著想,努力為其編寫最適合實際情況的代碼。
一個好的可編程邏輯控制器(PLC)程序員,心間應始終想著最終用戶的需求,并編寫可理解和可復用的代碼。使用有效的方法和實踐將使程序員和用戶的生活更輕松。每個程序員都應該知道這7個技巧,以充分利用PLC和控制系統(tǒng)。
01 實施模塊化系統(tǒng)
在模塊化的PLC系統(tǒng)中,可以使用幾個附加模塊來提供整體的靈活性。因為模塊易于更換,模塊化的PLC系統(tǒng)還具有可擴展性,能夠容納更多的I/O設備,更容易排除故障,并且由于模塊可以很容易地被替換,所以系統(tǒng)總體上更快。
PLC程序應以合理的方式組織,例如將每個設備分開,并使用可復用且易于理解的結構。當使用模塊化的結構時,程序員可以對同一類型的所有設備進行修改,而不是對每個設備進行修改。
保持代碼的模塊化,可以讓各方了解每一段代碼的功能。例如,如果有一個堆棧燈,則驅(qū)動它的代碼來自堆棧燈結構,而不是模式塊。
02 按照客戶要求來組織代碼
程序員需要分析最終用戶的需求,并利用標準化的代碼來滿足用戶需求。這為維護團隊和支持人員提供了標準的布局和結構,以便他們能夠方便地理解和支持日常設備。
最終用戶可以指定PLC的編程環(huán)境,以與設施中的設備類型保持一致,確保所有功能正常工作。在項目的開發(fā)階段,程序員應復用為現(xiàn)有接口開發(fā)的任何標準代碼塊或其它代碼。盡管程序員可能需要更長的時間來熟悉并應用這些代碼塊,但最終用戶對這些代碼已經(jīng)熟悉了,比起學習一個新的界面,他們可以更容易地支持它。
03 選擇最合適的語言
程序員并不總是能使用“最佳”的語言來實現(xiàn)應用程序;他們必須滿足最終用戶的要求。如上所述,客戶團隊需要每日處理工廠的設備,如果他們不熟悉所使用的編程語言,也就無法對其進行有效的支持,那么當設備出現(xiàn)故障時,程序員很可能在凌晨兩點接到求助電話。
PLC的外部設備主要是指控制系統(tǒng)中的輸入輸出設備,其中輸人設備是對系統(tǒng)發(fā)出各種控制信號的主令電器,在編寫控制程序時必須注意外部輸入設備使用的是常開還是常閉觸點,并以此為基礎進行程序編制。否則易出現(xiàn)控制錯誤。
在PLC內(nèi)部存儲器中有專用于輸入狀態(tài)存儲的輸入繼電器區(qū),各輸入設備(開關、按鈕、行程開關或傳感器信號)的狀態(tài)經(jīng)由輸入接口電路存儲在該區(qū)域內(nèi),每個輸入繼電器可存儲一個輸入設備狀態(tài)。
PLC中使用的"繼電器"并非實體繼電器,而是"軟繼電器",可提供無數(shù)個常開、常閉觸點用于編程。每個"軟繼電器"僅對應PLC存儲單元中的一位(bit),該位狀態(tài)為"1",表示該"軟繼電器線圈"通電,則程序中所有該繼電器的觸點都動作。輸入繼電器作為PLC接收外部主令信號的器件,通過接線與外部輸入設備相聯(lián)系,其"線圈"狀態(tài)只能由外部輸入信號驅(qū)動。輸入信號的采集工作示意圖如圖1。
圖1 PLC輸入信號采集示意圖
圖1中,輸入設備選用的是按鈕SB0的常閉觸點,輸入繼電器X0的線圈狀態(tài)取決于SB0的狀態(tài)。該按鈕未按下時,輸入繼電器X0線圈狀態(tài)為"1"通電狀態(tài),程序中所有X0觸點均動作,即常開觸點接通,常閉觸點斷開;
若按下該按鈕,則輸入繼電器X0線圈狀態(tài)為"0"斷電狀態(tài),程序中所有X0觸點均恢復常態(tài)。如果輸入繼電器連接的輸入設備是按鈕SB0的常開觸點,則情況恰好相反:在該按鈕未按下時,輸入繼電器X0線圈狀態(tài)為"0"斷電狀態(tài),程序中所有X0觸點均不動作;若按下該按鈕,輸入繼電器X0線圈狀態(tài)為"1"通電狀態(tài),程序中所有X0觸點均動作。
2. 停車按鈕使用常閉型
由于PLC在運行程序判別觸點通斷狀態(tài)時,只取決于其內(nèi)存中輸入繼電器線圈的狀態(tài),并不直接識別外部設備,因此編程時,外部設備的選用與程序中的觸點類型密切相關。這是一個在對照電氣控制原理圖進行PLC編程時易出現(xiàn)的問題。最典型的例子是基本控制--"起保??刂?中的停車控制。
圖2 "起保??刂?電氣原理圖
圖2為"起保停控制"電氣原理圖,在該系統(tǒng)中,按鈕SB0用于停車控制,因此使用其常閉觸點串聯(lián)于控制線路。SBl為起動按鈕,使用其常開觸點。若使用相同的設備(即停車SB0用常閉觸點,起動SBl用常開觸點),利用PLC進行該控制,則需編程梯形圖程序(圖3):
圖3 "起保??刂?梯形圖程序(停車按鈕使用常閉觸點)
I/O分配:SB0--X0,SBl--Xl,輸出Y0
該梯形圖中停車信號X0使用的是常開觸點串聯(lián)在控制線路中,這是因為外部停車設備選取按鈕常閉觸點所致,不操作該按鈕,則輸出Y0正常接通,若按下該按鈕,輸出Y0斷電。
3. 停車按鈕使用常開型
若希望編制出符合我們平時閱讀習慣的梯形圖程序,則在選用外部停車設備時需使用按鈕SB0的常開觸點與X0相連。
梯形圖程序更加符合我們的閱讀習慣,也更易分析其邏輯控制功能,因此在PLC構成控制系統(tǒng)中,外部開關、按鈕無論用于起動還是停車,一般都選用常開型,這是一個在使用PLC時需要格外注意的問題。
二、PLC的"串行"運行方式與控制程序的編制
PLC與繼電接觸器控制的重要區(qū)別之一就是工作方式不同。繼電接觸器控制系統(tǒng)是按"并行"方式工作的,也就是說是按同時執(zhí)行的方式工作的,只要形成電流通路,就可能有幾個電器同時動作。而PLC是以"串行"方式工作的,PLC在循環(huán)執(zhí)行程序時,是按照語句的書寫順序自上而下進行邏輯運算,而前面邏輯運算的結果會影響后面語句的邏輯運算結果。因此梯形圖編程時,各語句的位置也會對控制功能產(chǎn)生關鍵影響。例如: