章宇(1984-)
女,(信息產業部電子六所,北京 100083)信息產業部電子六所碩士研究生,計算機應用技術專業,研究方向為系統的功能安全。
摘要:在自動化解決方案中,安全性集成的問題已經出現。本文闡述了什么是安全相關控制系統,介紹了符合IEC61131-3的安全應用程序的結構模型,以達到工業控制編程能符合安全標準的目的。
關鍵詞:工業控制編程;安全
Abstract: The problems of safety integrity in automation solutions have appeared. This paper explains what safety-related control system is, and introduces the architectural model of the safety application according to IEC61131-3 so that the industry control programming can satisfy the safety standards.
Key words: industry control programming;safety
1 自動化解決方案中所遇到的安全標準問題
機械制造商們往往面對著一大堆與安全相關的標準;要完全理解它們,代價往往是昂貴的,甚至在某些情況下是不可能的,但是到最后他們仍得對其產品和相關安全方面負責。當法律給設備供應商強加了諸多約束時,這種情形卻仍舊存在,是不正常的。
現在,安全相關部分和功能應用部分常常有一個明顯的界線。這個界線產生于運用不同的系統,不同的工具,甚至不同的人。這使得安全部分直到最后才能被包括進來,并且只能對其做有限的測試,而沒有從一開始就將它集成到整個系統的體系中。這種做法明顯無助于整體的安全考慮。
同時,與日俱進的技術革新現可提供安全的數字通訊總線。這支持了從硬件系統到以軟件為解決方案的轉變趨勢。一根并行線可從硬件連線的繼電器邏輯連到可編程邏輯控制器(PLC)上。但這樣的變化還需要時間,以及工業界的廣泛支持。
2 安全相關控制系統簡介
根據IEC標準,安全型系統稱為Safety-Related System。它覆蓋的范圍很廣,適用于所有工業系統,它包含了影響安全的各種因素,如儀表組成的保護系統,工藝設備的安全措施以及管理和人員的操作和規章制度等各方面。對于我們平常所說的安全控制系統就是指儀表和控制設備構成的保護系統。
安全控制系統主要由現場檢測儀表、控制邏輯單元和現場執行裝置和他們之間的連線組成,其中控制邏輯單元是整個控制系統的核心。這一系統能以符合安全要求的概率,在工藝過程出現預先規定的故障情況時,使過程處在安全狀態。
在安全控制系統的設計中,為了定量的來分析各種生產裝置的安全性,并作為安全控制系統的配置依據,IEC61508定義了4個安全度等級( Safety Integrity Level)SIL1-4,同時每個等級包括兩個定量的安全要求,即系統連續操作每小時故障概率(PFH)和按要求模式執行指定功能的故障概率(PFD),見表1。
表1
安全控制系統的設計以及系統結構既要滿足工業過程的安全度要求,又要保證可靠性和可用性,因此,必須對具體的工業過程進行安全評價。我國目前還沒有具體的安全等級評價和設計標準,而目前國際上通用的標準有德國的DIN19250、美國的ISA S84.01和IEC61508;權威的認證機構包括德國的T?V、美國的UL和FM等。
安全度等級可以根據IEC61508提供的風險圖(Risk Graph),按照估計發生危險時的損害程度、人員存在的可能性、防止危險發生的可能性以及無保護系統時出現危險的可能性這四個參數來計算故障概率PFD而最終確定。按照這一要求,電廠的爐膛安全保護系統的安全度等級一般被定義為SIL3 (IEC61508),此等級相當于DIN19250標準的RC6級。
對于安全相關的控制系統來說,一直以來所采用的硬件主要有以下三種形式:
1) 繼電器;
2) 硬接線固態電路;
3) 可編程電子系統(大多為PLC 系統)。
目前,由于采用微處理器技術的PLC具有高可靠性、高可用性和可維護性,因此在工程實際中得到了廣泛的應用。
3 總的設計思想
3.1 概述
安全方面的實現,可集成到軟件的開發工具中。這樣的結合可使得開發者在剛開始進入開發周期時,就可將與安全相關的功能集成到他們的系統中去。
圖1 在一個平臺上合并三個環境
3.2 安全控制系統的基本要求
在所有可應用的安全標準中,對機械制造商來說,一個安全應用程序的通用基本要求如下:
* 安全與非安全功能性的區別
* 可應用的編程語言和語言子集的運用
* 認證的軟件模塊的運用
* 可應用的編程指導方針的運用
* 安全相關軟件的生命周期中,被認可的降低錯誤的測量手段的運用
3.3 提供易用的工業控制編程環境
對用戶來說,為符合上述高要求所做的努力應該盡量減少。要做到這點,可采用標準化的解決方案,使得典型的功能可以輕松實現。功能塊的標準化、軟件工具的支持和集成,使得程序員從一開始就可在他們的應用中集成安全部分。
3.3.1安全功能塊的標準化
為了幫助開發者使用安全相關的功能,他們使用軟件時的舒適度應當被提高,這樣便更容易去接受這種工作方式。要做到這點,需要標準化安全功能塊。這樣,安全功能能更好地被辨認出來,做出專業化的安全功能塊的趨勢被降低。所以,便沒有必要進行再培訓;另外,也有利于認證實體更容易、快捷地檢查安全軟件。
在較高的層次提供功能塊,使得它們較少地依賴于下層的硬件結構。
3.3.2標準程序的集成
一旦功能塊具有了其功能,下一步便要決定如何將安全相關的程序并入其中。在這一層面上,軟件工具應該盡可能地幫助使用者。所以,可以定義一種新的布爾變量,它可應用于安全相關環境中,于是安全相關和非安全相關的布爾變量便有了區別。這使得開發工具有了可辨別安全程序部分的基礎,引導用戶做出被允許的連接,同時阻止了錯誤的連接。
并且,編程語言的功能要減少。另外,最好使用FBD和LD 圖形,這樣程序部分可以更容易地去寫和檢查。
4 安全應用程序的模型
4.1 控制系統的結構及相關的安全標準
圖2 框架
不同標準開發階段和運行時間的關系如圖2 所示,左側是兩個層次軟件的開發環境。
(1)嵌入式軟件、固件或操作系統,必須遵從IEC 61508規范,尤其是第3部分。該部分可以使用的語言包括C、C++、匯編或其它。這些是完全可變語言(FVL):是組件提供商用于實現(安全)固件、操作系統或開發工具的獨立語言,很少用于安全應用本身。
(2)安全應用軟件,如果用C、C++、匯編和其它語言實現的,必須象上面一樣遵守IEC61508規則,它們仍是基于完全可變語言(FVL)。如果做到了精簡編程語言、指令和認證功能塊,那么機械業的標準,如IEC62061和ISO13849-1,則必須被用戶在各個專業的工業中所遵守。這樣可極大地簡化軟件的開發和認證。在這種情況下,它們可被認為是限制可變語言(LVL)。這些語言針對那些開發自己的安全應用功能塊的用戶。典型的語言是梯形圖(LD)和功能塊圖(FBD)。這兒所說的功能塊并不是IEC62061中定義的“子系統要素”,而是IEC61131-3功能塊。功能塊的IEC62061定義不同于IEC61131-3中的定義,就某一方面來說,前者包含硬件,提供安全子系統功能。
4.2 安全應用程序的結構模型
圖3所示的軟件結構模型描述了在機械控制系統中,安全功能塊的一般位置。這個模型盡可能地做到簡化,這樣它便可覆蓋到現有的和將來的安全控制系統。在這個軟件說明中,不應該排斥任何的安全控制硬件結構。
上面的結構模型與功能應用部分和安全應用部分不同,它是與兩個層次的軟件環境相聯系的。要做的是合并這兩個環境,也就是,功能部分的開發環境中集成一個安全部分,包括編程語言和安全部分的功能的精簡。
以上兩個應用程序部分可以運行在一個設備上,或者在兩個或更多的、雖然分散卻被接在一起的設備上。上圖中的虛線表示應用程序間的數據交換,它可以通過網絡、連線輸入/輸出或設備中的存儲器交換來實現。
模型的左側是兩類輸入,右側是兩類輸出。在中間,兩個環境是分開來表示的,它們都與各自的輸入輸出相連接。
模型的中間表示了功能和安全應用程序所允許的數據交換。
* 功能應用程序有權讀取安全輸入和全局變量(正如左邊的箭頭所示)
* 在安全應用程序中,非安全信號僅能用來控制程序走向,不能被直接連至安全輸出上(正如右箭頭和AND操作符所示)
5 結語
安全控制系統的運行需要底層硬件的支持——硬件采集上來的數據本身已有安全信號和標準信號之分;但安全控制系統里的安全應用程序的實現則獨立于底層硬件。在工業控制編程環境中提供安全數據變量和安全功能塊,有利于用戶輕松的將安全性集成到他們的功能應用中。
編號:080525