關鍵詞:邏輯設計同步化、脈沖信號產生、前后邏輯條件一致、前后邏輯條件一致實現方法
2.4.1 基本思路
PLC指令是一條一條執行的,先執行的指令執行后,所引起的輸出變量或內部狀態變量變化,將可能改變后執行指令的執行條件。同時,PLC指令還是不間斷地周期執行,前一掃描周期執行的結果,也將對次一周期的執行產生影響。所以,它是典型的異步時序邏輯。
硬件上也有很多用到異步時序邏輯的,如有反饋信號的一些門電路、繼電器控制電路。同時,也還有用到同步時序邏輯的。與異步時序邏輯不同的是,它有統一的節拍轉換脈沖,在這個轉換脈沖作用期間,輸出變量或內部狀態變量變化是同時發生的,同步也有此而得名。因此,它能避免在此轉換脈沖作用期間,變量變化的相互的影響。由于避開了這個相互影響,所以非常復雜時序邏輯電路也比較容易處理。PLC的CPU芯片多復雜!其實它所用的就是高度集成的同步時序邏輯電路。它的工作就是由統一的節拍轉換脈沖,即同步脈沖控制。
能否借用硬件這個同步處理的機理,使 PLC的異步時序邏輯同步化,從而也簡化它的設計?
關鍵在于是否能做到以下3點:
1)在 PLC程序執行后,要靠 I/0刷新才予以輸出,是否可把/0刷新理解為同步脈沖?2)在一個掃描周期中,先執行的指令執行后,會引起輸出變量或內部狀態變量變化,有沒有辦法不使這個變化影響后執行指令的執行條件?
3)能否用脈沖信號,即變量變化時僅在變化后的第一個掃描周期起作用的信號,作為控制輸人,以使輸出變量或內部狀態變量變化僅在這脈沖信號作用的掃描周期中完成?顯然,以上3點是可以做到的。而做到了以上3點,PLC的時序邏輯實質上就是同步時序邏輯.即同步化了。因而,它的問題也都可用同步時序邏輯方法處理了。針對上述3點,為了實現同步化,有兩個要點:1)除邏輯條件用“電平”,即持續的ON或OFF,信號所有引起輸出變量或內部狀態變量變化的輸人信號都用脈沖信號,即用ON或OFF一個掃描周期的信號。這可確保只是在脈沖信號作用期間才有輸出變量或內部狀態變量變化,并經0刷新后輸出的改變才得以實現。而無脈沖信號作用的掃描周期,輸出變量或內部狀態變量都不發生變化。
2)在脈沖作用掃描周期中,用指令執行順序的合理安排等方法,使先執行的指令執行后引起的輸出變量或內部狀態變量變化,不改變后執行指令的執行條件。這如同步脈沖電路一樣,在脈沖信號作用期間,所有輸出變量及內部變量狀態變量的變化都與沖信號作用前相同,做到前后邏輯條件一致。
2.4.2 產生脈沖的方法
本方法的關鍵是要用到脈沖信號。脈沖產生方法有:
(1)微分指令多數PLC都有這個指令。如OMRON公司PLC的DIFU(三菱PLC用PLS),上升沿微分,即在信號從OFF到ON時,它ON一個掃描周期:DIFD(三菱PLC用PLF),下降沿微分,即在信號從ON到OFF時,它ON一個掃描周期。西門子公司PLC則用P指令作上升沿微分;用NOT加P指令作下降沿微分。其效果也是相同的。
(2)基本指令組合圖1-18中的MM1、MM2就是脈沖信號。從圖知,左閥開不到位時MM1、MM2全為OFF。一旦到位,先是MM1ON,接著MM2ON。但到了下一個掃描周期時由于MM2常閉點作用,則使MM10FF。顯然,當左閥開到位時,這里的MM1只ON一個掃描周期。
讀者自己可以分析,圖2-18的MM3左閥開到位的下降脈沖信號。
2.4.3 前后邏輯條件一致的方法
有3種方法可作到前后邏輯條件一致。
1.合理地安排指令的先后順序
在脈沖信號作用下執行“某一梯級指令”,可能產生某輸出或內部狀態改變,而這個改變又可能改變“別的一組指令”的執行條件,則應把這“某一梯級指令”排在后面,后執行;而可能被其變化的而改變指令執行條件的這個“別的一梯級指令”排在前面,先執行。這可使得這輸出或內部狀態改變不會在本掃描周期內對別的變量的處理產生影響,可作到前后邏條件一致。
如圖 2-19所示,在原始狀態(所有輸出均0FF)時,來了第一個脈沖信號PP,從圖知,只有第四梯級指令執行有效果,使YY0置位。YY0置位會改變第三梯級的指令執行條件,但這時它的指令已執行完畢,故在此脈沖作用期間不再會有什么變化。
這時,如再來一個脈沖信號PP,從圖知,只有第三梯級指令執行有效果,由于這時YY0ON,故使YY1置位、YYO復位。YY1置位會改變第二梯級的指令執行條件,但這時它的指令已執行完畢,故在此脈沖作用期間,也不再會有什么變化。
這時,如來第三個脈沖信號PP,從圖知,只有第二梯級指令執行有效果,由于這時YY1ON,故使YY2置位、YY1復位。YY2置位會改變第一梯級的指令執行條件,但這時它的指令
已執行完畢,故在此脈沖作用期間,也不再會有什么變化。
到了第三個脈沖信號PPOFF,從圖知,只有第一梯級指令執行有效果,由于這時YY20N,故使 YY2復位。而執行第二、三、四梯級指令時,由于脈沖信號為OFF,所以,不會有其它的輸出變化。此時,此梯形圖邏輯又回到原始狀態。
如再來脈沖,將重復上述過程。
可知,如指令的順序安排得當,可避免脈沖期間,前面的變化對后面的影。
但是,在關系較復雜的梯形圖中,有時難以對所有的輸出或內部狀態變量,都能達到上述要求。這時,就要用以下兩種方法。
2.對輸出作中間記錄
在所設計的梯形圖后面,加人一組邏輯,對輸出及內部狀態作中間記錄,以把該梯形圖的有關輸出或內部變量變化記錄下來。記錄辦法是,用有關輸出或內部變量作為常開觸點,去控制一個對應的內部變量,并用這個對應的內部變量去取代在原梯形圖中用以建立各個邏輯條件的原輸出與內部的變量。
如圖 2-20所示,B0、B1、B2 即為這里講的輸出或內部變量,而 B00、B11、B22 即為這里講的用以記錄這些變量的對應變量。B00、B11、B22對B0、B1、B2的作中間記錄。要用到B0、B1、B2作邏輯條件的變量,就用 B00、B11、B22代替。
由于這組記錄列在所設計的梯形圖后面,所以,如脈沖作用使B0、B1、B2變化,雖會引起B00、B11、B22的相應變化,但在本掃描周期中,B00、B11、B22的這個變化,對B0、B1、B2邏輯條件將不起作用,這就保證了在脈沖信號作用引起的輸出與內部變量變化的周期中,各有關邏輯條件都不會改變,保持了前后邏輯條件的一致。
這個方法要多用一些內部器件,也要增加一些指令,這是它的不足。但用起來非常簡單,而可確保作到“前后邏輯條件一致”。且,
3.用變量變化產生的脈沖信號屏蔽
利用有關輸出或內部變量變化產生的脈沖信號,對變量的變化進行屏蔽。其目的是在本脈沖信號作用周期中,如某個變量有所變化,但在其后的要執行的指令中,如有該變量,那該變量要按變化前的狀態取值。
這3種方法中,使用較簡單的還是對輸出作中間記錄。
2.4.4 同步化處理實例
圖 2-20是很好同步化處理實例。它有B2、B1、B0共3個輸出。為把這個梯形圖處理成同步.時序邏輯,用b22、b11、b00對B2、B1、B0作中間記錄,且主令信號為計數脈沖,它ON時只作用一個掃描周期。但圖中未列出脈沖信號產生的邏輯。
起始時,B2、B1、B0全為0,其狀態用000表示。b22、b11、b00也全為0。這時,如計數脈沖 PPON,在執行計數段指令時,b22、b11、b00狀態不會變,仍然全為0,從分析 B0、B1、B2起動邏輯知,B0起動條件為1,將工作,0N。而B2、B1起動條件均為0,不可能工作,仍都為0。
之后,執行中間記錄處的幾條指令。執行后,b00、b11、b22對B2、B1、B0的變化了的狀態作了記錄,為以后計數脈沖的作用提供新的邏條件。但不會對本掃描周期計數段指令的執行起作用。因為,到了下一個掃描周期,計數脈沖已OFF,B1、B2不可能起動。B0則由于計數脈沖的非為1,保持條件為1,肯定將繼續0N。可知,000狀態,接受一個計數脈沖后,將變為001。
在001時,若計數脈沖PP再ON,在執行計數段指令時,b22、b11、b00狀態不變,為001,從分析知,B0保持條件為1,將保持工作,仍為N。而B1起動條件為1,將起動、工作,變為ON。而B2起動條件為0,不能工作,仍為0。之后,執行中間記錄處的幾條指令。執行后b22、b11、b00將記錄為 011。又為下一次計數作準備。可知,001狀態,接受一個計數脈沖 PF后,將變為011。
在011時,若計數脈沖PP再ON,在執行計數段指令時,b22、b11、b00狀態不變,為011從分析知,B0保持條件為0,起動條件也為0,B0將停止工作,轉為OFF。而B1保持條件為1將保持工作,仍為 0N。而 B2起動條件為0,不能工作,仍為0。之后,執行中間記錄處的幾條指令。執行后,B22、B11、B00將記錄為010。又為下一次計數作準備。可知,011狀態,接受一個計數脈沖后,將變為010。
在010時,若計數脈沖PP再ON,還可作類似的分析,可知它將為110。再接著為111。再接著為 101。再接著為100。再接著為000。
此邏輯即為有名的“格雷碼”計數器。顯然,如不用同步化處理,要設計這樣的計數器是不易的。
素材來源:
易啟邦(工控一體化縱深服務生態平臺)編輯部
#易啟邦 #儀器幫 #一起幫
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.