lingcore
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 5 個
工控威望: 103 點
下載積分: 596 分
在線時間: 6(小時)
注冊時間: 2010-12-15
最后登錄: 2018-07-10
查看lingcore的 主題 / 回貼
樓主  發(fā)表于: 2010-12-16 04:06
許多教科書上都有搶答器的例子,但不少搶答器是不公平的,也就是說,如果兩個人在同一PLC掃描周期內(nèi)按下?lián)尨鸢粹o,搶答程序只接受程序位置上排在前面的搶答者的按鈕信號。

附件是一個公平搶答器的設計過程。
附件: 一個保證公平的搶答器.doc (58 K) 下載次數(shù):145
網(wǎng)站提示: 請不要用迅雷下載附件,容易出錯
lingcore
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 5 個
工控威望: 103 點
下載積分: 596 分
在線時間: 6(小時)
注冊時間: 2010-12-15
最后登錄: 2018-07-10
查看lingcore的 主題 / 回貼
1樓  發(fā)表于: 2010-12-17 00:43
回復1樓:

不太明白您的意思,這里盡力理解和回答。

PLC一個周期的工作過程是:讀入數(shù)據(jù),處理數(shù)據(jù),輸出數(shù)據(jù)。

在同一個周期內(nèi),外部信號到達PLC有快有慢,在“讀入數(shù)據(jù)階段”,所有輸入數(shù)據(jù)都從外部復制到內(nèi)部寄存器,因此在處理數(shù)據(jù)階段,CPU所看到的輸入數(shù)據(jù)全部來自前一個數(shù)據(jù)輸入階段所讀入的數(shù)據(jù),已經(jīng)無法分辨它們的先后順序,因此對程序而言,所有輸入數(shù)據(jù)都是同時得到的,沒有先后之分。

三菱的K1X0相當于X1,X2,X3,X4。對CPU而言,無論用K1X0去訪問這四個變量,還是分別用X1,X2,X3,X4訪問它們,結(jié)果是一樣的。

原帖只是對一個現(xiàn)有程序的一個改進,也許會有更好的解決方案。比如,S7-200有一個物理讀指令,可以在一個周期的工作過程中直接讀入外部信號,不必等待周期結(jié)束再讀。有興趣的朋友也許可以考慮如何用這樣的質(zhì)量把搶答器做的更好。使用中斷或許是一種解決方案,但是中斷程序一般執(zhí)行時間比較長,而且書寫中斷程序也比較復雜,時間分析也比較困難。

搶答器指令數(shù)量并不多,執(zhí)行速度很快,因此一個周期的時間并不長。要得到更好的結(jié)果,還可以去找速度更快的PLC。絕對公平不存在,但是,只有使PLC工作周期越短,那么精確程度就越高。

歡迎進一步探討,最好直接給出更好的程序。
[ 此帖被lingcore在2010-12-17 23:09重新編輯 ]