目前工控領域 Functional Safety 的趨勢是採用IEC 61508 作為設備所需要的標準,當兩個符合 IEC 61508 的工控設備以 field bus 串接一起後,要如何保證安全相關的資料從 A 設備傳到 B 設備後,依然是安全的呢?
IEC 61508 提出兩種方法來確保安全相關的資料在經由 field bus 傳遞後仍然是安全的,其中一個是所謂的 black channel (如下圖),如其名,我們不需要理會 bus 在搞什麼,只要保證資料經過傳遞後仍然是安全的就可以了,那要怎麼做呢?關鍵在於 A 設備和 B 設備事先講好一套機制,根據這套機制得以保證資料經過傳遞後,錯誤率是落在預期範圍內,而且就算錯誤發生了,系統會進入安全模式使該錯誤的後果不會危害人類或環境。
相對於 black,有另一種被稱作 white channel 的通道 (如下圖),這種通道的電氣訊號、線材特性、絕緣方式、開發維修的生命週期等等必須符合 IEC 61508 標準,我們可以把它看成是一個符合 IEC 61508 的設備。
現行的 safety field bus 都是以 black channel 方式來提供安全保證,例如來自 EtherCAT 的 FSoE、PROFINET
的 PROFIsafe、POWERLINK
的 openSAFETY、Ethernet/IP
的 CIP Safety…等,典型作法是將安全機制實作進設備裡的 protocol stack,設備與設備間就可以進行 black
channel 溝通,達到資料的安全傳遞。
那麼在現有的通訊協定裡,要如何能達到 black channel
的要求呢?目前大多是以 IEC 61784-3 作為規範標準,該規範提到為了進行 black channel 通訊,設備必須在應用層之上實作出 Functional Safety Communication Profile (FSCP),也就是在不影響既有通訊協定下,往上堆疊一層 Safety Communication
Layer (如下圖)。
FSCP 必須有足夠的診斷能力偵測出各種通訊錯誤,IEC 61784-3 提供了各種通訊錯誤的因應手段 (見下圖),例如 Corruption 這種錯誤可以使用 Data integrity assurance 來克服,典型作法是使用 CRC 機制。而在偵測到錯誤後更能讓系統進入安全模式,達成 Functional Safety 的要求。
Black channel 是一個邏輯層,各種通訊協定得以發展出各自的安全版本,如上述的 FSoE、PROFIsafe…等,它不涉及硬體,所以更小的系統例如兩顆 safety MCU 之間也可以用 SPI 進行
black channel 通訊,來確保 MCU 之間交換資料的同時,系統依舊兼顧著 Functional Safety。