可編程邏輯控制器開關硬體級解彈跳

返回工業控制與自動化指南

你的數位邏輯和微控制器課程可能涵蓋了開關解彈跳的概念。你在那堂課上學到,開關或繼電器的閉合方式並非乾淨俐落。相反,觸點會像鋼球撞擊鋼砧一樣彈跳。結果就是訊號在完全導通之前會經歷數十次「開-關-開」的轉換。數位邏輯通常比開關閉合速​​度更快,並且完全能夠讀取這些轉換,從而導致操作不可預測。令人驚訝的是,可編程邏輯控制器(PLC)程式設計師通常不會考慮這一點。本文將透過探討典型的底層硬體來解答其中的原因。

首先,我們要認識到開關解彈跳是 PLC 非常重要的考量。畢竟,PLC 的核心是高速微控制器,能夠響應諸如開關彈跳之類的快速轉換。PLC 的優勢在於,大多數製造商已經解決了這個問題。大多數製造商都提供了預設設置,可以適應最常見的開關和按鈕的解彈跳。因此,PLC 程式設計新手無需考慮這個問題。然而,並非所有輸入訊號都相同。未來,您可能想要監控一個快速轉換的訊號,而這些訊號可能會在解彈跳濾波器中遺失。

在本文中,我們將探討圖 1 所示的 KUNBUS DIO 模組所採用的開源設計。圖中,上方是 DIO 模組,下方是 Revolution PI Core S,其乙太網路和 USB 連接位於下方。我們將探討電壓域的概念,並明確區分 DIO 模組的輸入連接。我們也將探討專用 PLC 介面模組,例如 KUNBUS 產品中的 MAX31913

圖 1:KUNBUS DIO 模組(上圖)以及 Revolution Pi PLC 控制器的圖片。

PLC 電壓域的重要性

開放源硬體對於技術開發專家和工程師來說是一項寶貴的禮物。其優勢之一是我們可以訪問實際的功能設計。例如,圖 1 中 DIO 模組圖片的輸入部分使用了兩個重要的積體電路,包括一對 MAX31913 IC 和一個 MAX14850。

MAX31913:專為 PLC 輸入應用打造的 8 通道數位轉序列(SPI)介面。它內建解彈跳濾波器。這些元件共同構成一道保護傘,為底層精密的微控制器提供保護:

MAX14850:6 通道數位隔離器,可承受高達 600 V_{RMS} 的電壓,資料速度高達 50Mbps。

如果您曾經損壞過微控制器,您肯定知道有很多方法可以損壞它。只需一秒鐘的反極性或過壓就能損壞微控制器。DIO 模組內部的 ADI(Maxim) IC 可抵禦工業環境中常見的各種危險,例如瞬變、反極性以及一定程度的過壓條件。可以說,損壞微控制器很容易。但要損壞 PLC 模組則需要付出更大的努力。

使用專用 PLC 輸入模組實現開關解彈跳

圖 2 顯示了典型的開關彈跳波形。這個特殊的速動開關需要近 1.5ms 才能穩定下來。顯然,PLC 必須應對這個物理問題,否則程式回應可能會變得難以預測。

圖 2:為 PLC 輸入提供 24VDC 電源的常開開關的解彈跳時間。

第一道防線位於 MAX31913 內部。查看規格書後發現,串列器 IC 本身內建濾波器。此濾波器透過 MAX14850 DB1 和 BD0 輸入設置,具有 4 個離散範圍,從關閉到 3ms。

我們可以說硬體解決方案是理想的,因為它可以最大限度地降低程式碼複雜度。但是,如果需要,用軟體建置解彈跳操作也並非難事。我們可能會在多次 PLC 程式掃描中監控開關變化。

技術提示:務必驗證 PLC 軟體中的解彈跳設定。這可以節省大量故障排除時間。例如,Revolution Pi PiCtory 的設定如圖 3 所示。此處的解彈跳設定(紅色箭頭)與 ADI(Maxim) MAX31913 規格書中所列的設定相對應。

圖 3:此 PiCtory 螢幕截圖中突出顯示了解彈跳設定。

您是否遇到過 PLC 開關解彈跳濾波器的問題?我們很樂意聽取您的意見。您花了多長時間找到問題所在?是什麼促使您找到解決方案的?歡迎在下面留言與我們分享。

返回工業控制與自動化指南