我們知道,PLC中其實運行著兩類程序:操作系統和用戶程序。操作系統預留各種接口,通過這些接口來調用用戶程序。對于西門子PLC而言,這些接口被稱為組織塊(Organization Block),簡稱為OB。組織塊有很多類型,大體上可以分為兩個大類:程序循環組織塊和中斷組織塊(后者又包括循環中斷、硬件中斷、日期時間中斷等等)。組織塊具有不同的優先級,程序循環組織塊的優先級最低。
對于西門子標準型CPU模塊,它的用戶程序被稱為標準程序。標準程序的稱謂是為了與故障安全型程序進行區別。用戶為了處理標準模塊的信號(通信等)而編寫的程序都屬于標準程序。標準程序必須直接或間接的被程序循環組織塊調用才能被執行(中斷程序除外)。
對于S7-300/400系列CPU,程序循環組織塊就是指OB1;對于S7-1200/1500系列CPU,除了OB1外,用戶可以根據需要添加多個程序循環組織塊,操作系統會根據程序循環組織塊的編號從小到大依次調用。再說一遍,程序循環組織塊是一種優先級最低的組織塊,其它組織塊可以中斷它并優先執行。
故障安全程序是為了處理故障安全信號而編寫的程序,只有故障安全型CPU才能執行故障安全程序。換句話說,西門子故障安全型CPU既可以執行標準程序,也可以執行故障安全程序。通常(注意是通常),用戶編寫的故障安全型程序是在另一種組織塊——循環中斷組織塊(Cyclic Interrupt OB)中調用的。雖然官方稱為“循環中斷組織塊”,但我覺得稱為“周期性中斷組織塊”更恰當一些。這種組織塊可以產生周期性中斷,中斷的周期可以根據需要自己設置。
在博途開發環境中,當你組態了故障安全型CPU時,默認情況下,左側項目樹中會有一個“安全管理(Safety Administration)”的選項,并自動添加了三個模塊:FOB_RTG1[OB123]、Main_Safety_RTG1[FB1]和Main_Safety_RTG1_DB[DB1],如下圖所示:
安全管理可以查看安全程序的狀態、安全簽名、安全功能塊、數據類型、Flexible F-Link通信等,不過最重要的功能是設置安全運行組,如下圖所示:
安全運行組(F-runtime group)由安全組織塊(F-OB)、主安全程序塊(Main F-Block)和主安全程序塊的背景數據塊構成,如下圖所示:
對于S7-1200的F-CPU,安全組織塊為循環中斷組織塊,可以根據需要設置其中斷時間及優先級。對于S7-1500的F-CPU,安全組織塊可以為循環中斷組織塊(默認)、程序循環組織塊或者等時同步中斷組織塊。默認情況下,等時同步中斷組織塊的優先級最高,其次是循環中斷組織塊。如果有必須可以修改其優先級,但不允許它們的優先級比程序循環組織塊低或相同。
安全組織塊調用主安全程序塊,用戶編寫的安全程序需要在主安全程序塊中調用才能被執行。
S7-1200的F-CPU只支持一個安全運行組,S7-1500的F-CPU最多支持兩個安全運行組。F-CPU通過F-OB調用主安全程序塊,再通過主安全程序塊調用用戶編寫的其它安全程序是西門子故障安全程序的基本架構。
審核編輯:劉清
-
plc
+關注
關注
5016文章
13385瀏覽量
464809 -
硬件中斷
+關注
關注
0文章
11瀏覽量
6878 -
S7-1200
+關注
關注
11文章
331瀏覽量
18043
原文標題:西門子故障安全系統的程序架構
文章出處:【微信號:方正智芯,微信公眾號:方正智芯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論