首頁>科技>

一.你們一想到雙手啟動程式會怎麼做?

2.兩個輸入點,然後輸入點串聯?

3.兩個輸入點,輸入點串聯,再延時?

那麼這樣寫程式真的安全嗎?

二.今天我給大家推薦另外一個思路

硬體環境:S7-1215DCDCDC

軟體環境:TIA V16

1.我們首先新建一個FB塊,我這裡命名為 “雙手啟動安全繼電器” ,然後建立相應的介面變數:

4個Input介面為:

有效檢測時間: Time 用來設定有效檢測時間,並給預設值500ms

允許誤差:Time 用來設定允許按下時間的誤差值,並給預設值100ms

1個Output介面為

安全輸出:bool 將運算結果傳給外部

介面及靜態變數

2.我們用梯形圖寫程式如圖效果

FB塊程式

程式解讀:

第一行程式:檢測 輸入1的狀態 ,如果接通我們延時,進行有效檢測

第二行程式: 檢測輸入2的狀態,如果接通我們延時,進行有效檢測

第一路取上升沿,檢測按下瞬間他們的時序差了多少?也就是兩個值相減,但是結果有可能為負值,那麼我們取其絕對值,獲得時序正差值。

第二路檢測,按鍵時序差絕對值是否小於我們允許的誤差值,並且有效檢測時間大於允許誤差,進行非法資料驗證,如果都滿足我們輸出安全。

3.我們新增測試變數,並呼叫這個FB塊。

安全 M1.0:用來模擬運算結果

模擬同時輸入位元組 MB0 :用來模擬同時按下

呼叫FB塊

由於我這裡的時間已經有預設值,在不需要改時間的情況下就不用改了。

4.我們下載程式,並轉到線上除錯

下載程式

5.我們新增監控表用來除錯:

6.測試,為了直觀有效,我用動畫模擬:

可以看到,由於實際時間差值的絕對值大於允許的誤差值,所以沒有輸出安全訊號。

當我給MB0賦值16#03的時候,也就是2#11,由於實際時間差值的絕對值是0,小於允許的誤差,安全訊號就輸出了。

攻城獅們,老鐵們,如果有更好的想法可以最佳化,並且封裝為庫,重複呼叫還是很香的。

其實,這個原理,是借鑑於安全繼電器檢測按鍵過程的原理,關注的是時序上是否真正同時按下,我們平時寫程式更多的關注結果,沒有關注過程。不知道有沒有朋友想過?有些對安全稍微高點的場景又沒使用安全繼電器。當有人把另外一個感測器短接,遮蔽,或者按鈕機械故障卡住,沒有彈開。作業人員單手操作裝置,萬一夾到手那是我們不願看到的,比如注塑機衝壓機的雙按鈕啟動,沒有很好的防護,磨具容易夾到手。

#電氣自動化# #PLC# #電工# #安全# #安全繼電器#

end

14
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 物聯網、大資料、雲計算、人工智慧之間,有何區別與聯絡?