lingcore
級別: 探索解密
|
許多教科書上都有搶答器的例子,但不少搶答器是不公平的,也就是說,如果兩個人在同一PLC掃描周期內按下搶答按鈕,搶答程序只接受程序位置上排在前面的搶答者的按鈕信號。 附件是一個公平搶答器的設計過程。 |
---|---|
|
cvlsam
富士低壓,POD(觸摸屏),PLC專賣
級別: VIP會員
|
樓主,您的程序仍然存在先后掃描的問題,即在同一個掃描周期內,仍然存在按鈕的先后,誰在上面誰就占優勢。 要改變這一狀況,應該使用諸如西門子的比較指令去同時讀取每個輸入位狀態,如三菱的K2X0這樣的讀取方式,西門子則應該使用IB~~~~ 否則,仍然會出現掃描周期的問題。 Regards |
---|---|
|
打豆豆
歐姆龍-NJ系列 NX系列 NY系列,遠程解密,西門子120
級別: VIP會員
|
中斷會么? |
|
---|---|---|
|
lingcore
級別: 探索解密
|
回復1樓: 不太明白您的意思,這里盡力理解和回答。 PLC一個周期的工作過程是:讀入數據,處理數據,輸出數據。 在同一個周期內,外部信號到達PLC有快有慢,在“讀入數據階段”,所有輸入數據都從外部復制到內部寄存器,因此在處理數據階段,CPU所看到的輸入數據全部來自前一個數據輸入階段所讀入的數據,已經無法分辨它們的先后順序,因此對程序而言,所有輸入數據都是同時得到的,沒有先后之分。 三菱的K1X0相當于X1,X2,X3,X4。對CPU而言,無論用K1X0去訪問這四個變量,還是分別用X1,X2,X3,X4訪問它們,結果是一樣的。 原帖只是對一個現有程序的一個改進,也許會有更好的解決方案。比如,S7-200有一個物理讀指令,可以在一個周期的工作過程中直接讀入外部信號,不必等待周期結束再讀。有興趣的朋友也許可以考慮如何用這樣的質量把搶答器做的更好。使用中斷或許是一種解決方案,但是中斷程序一般執行時間比較長,而且書寫中斷程序也比較復雜,時間分析也比較困難。 搶答器指令數量并不多,執行速度很快,因此一個周期的時間并不長。要得到更好的結果,還可以去找速度更快的PLC。絕對公平不存在,但是,只有使PLC工作周期越短,那么精確程度就越高。 歡迎進一步探討,最好直接給出更好的程序。 [ 此帖被lingcore在2010-12-17 23:09重新編輯 ] |
---|---|
|
打豆豆
歐姆龍-NJ系列 NX系列 NY系列,遠程解密,西門子120
級別: VIP會員
|
在解釋一下 中斷不受掃描影響 |
|
---|---|---|
|