上一篇文章我們對Graph語言的順控器做過介紹,可以概括為如下幾個知識點:
順控器是由一系列的步和跳轉條件組成的代碼;
順控器的步有激活和未激活兩種狀態;
可以為每個步編輯相應的動作(指令代碼),當步處于激活狀態時,會執行這些動作;
順控器有線形、選擇、并行三種結構;
步的動作是很重要的內容,通常在動作中我們會對一些全局變量進行操作。通過這些變量,可以與該函數塊之外的函數/函數塊進行交互,從而實現控制目的。今天這篇文章,我們就來詳細介紹下——動作(Action)。
動作是“步”要執行的指令代碼(指令和變量)。在編程開發環境下單擊步的右上角圖標,可以打開步的動作表,如下圖所示:動作表中“限定符”是指令,其右側的“動作”則是該指令操作的變量。除此之外還有“事件”和“互鎖”兩欄。
事件:如果某條指令與某個事件綁定,則表示僅在該事件發生時該指令才會被執行;在Graph語言中,有些指令必須與事件綁定,這類指令稱為依賴于事件的指令。比如定時器、計數器指令均是依賴于事件的指令;有些指令可以與事件綁定,也可以不綁定,這類指令稱為標準指令;
互鎖:如果某條指令與“互鎖”綁定,則表示僅在互鎖條件滿足的情況下該指令才會被執行。互鎖條件用“-(C)-”表示。雙擊“步”進入編輯狀態時,可以看到互鎖條件(interlock)代碼編輯區,如下圖所示:
上圖中編寫了步S3的互鎖條件代碼,即當變量“temperatue”的值小于100時互鎖條件滿足(為真)。如果不編寫互鎖條件代碼(留空),則表示互鎖條件一直滿足;
下面來詳細介紹下指令與事件。
1、標準指令
標準指令所完成的動作稱為標準動作,具體含義見下面的表格:
指令 | 數據類型 | 含義 |
---|---|---|
N |
BOOL FB、FC、SFB、SFC |
當步激活時,操作數(布爾值)被置位并保持;當步取消激活時,操作數被復位;如果是調用函數/函數塊,則步激活時調用,取消激活時不調用; |
S | BOOL | 當步激活時,操作數(布爾值)被置位并保持; |
R | BOOL | 當步激活時,操作數(布爾值)被復位并保持; |
D | BOOL,TIME | 該指令有兩個操作數,第一個為布爾型,表示要操作的變量(n);第二個為時間型,表示延時的時間(t)。其含義為:當步激活后,延時t時間,將n置位; |
L | BOOL,TIME | 該指令有兩個操作數,第一個為布爾型,表示要操作的變量(n);第二個為時間型,表示延時的時間(t)。其含義為:當步激活后,將n置位,并保持t時間; |
注:置位表示將布爾值設置為1(true),復位表示將布爾值設置為0(false)
2、定時器指令
多數定時器指令須與事件綁定(TF指令除外),當事件發生時,定時器指令激活并執行。具體的定時器指令見下面的表格:
指令 | 含義 |
---|---|
TL | 擴展脈沖定時器。當綁定的事件發生時,定時器激活并保持設定的時間,該時間段內定時器的輸出為true;當超過設定的時間后,定時器的輸出為false。 |
TD | 保持接通延時定時器。當綁定的事件發生時,定時器激活,該時間段內定時器的輸出為false;當超過設定的時間后,定時器的輸出為true。 |
TR | 停止定時器并復位。當綁定的事件發生時,則立即停止指定的定時器,將其狀態和時間值將復位; |
TF | 延時關閉定時器。該指令無需與事件綁定,當步激活時,定時器輸出為true。當步取消激活時,定時器開始運行,到達設定的時間后,定時器輸出為false; |
注:輸出為true表示置位(設置為1),輸出為false表示復位(設置為0)
3、計數器指令
計數器指令須與事件綁定(下文介紹事件),具體含義見下面的表格:
指令 | 含義 |
---|---|
CS | 設置計數器的初始值。有兩個操作數:計數器(C#0~C#999)和初始值(WORD)。當綁定的事件發生后,該指令將指定計數器的初始值設置為指定的初始值; |
CU | 加計數(向上計數)。當綁定的事件發生后,計數器值加“1”。若計數器值達到上限“999”后,則停止增加。達到上限后,即使出現信號上升沿,計數值也不再遞增; |
CD | 減計數(向下計數)。當綁定的事件發生后,計數器值減“1”。若計數器值達到下限“0”時,則停止遞減。達到下限后,即使出現信號上升沿,計數值也不再遞減; |
CR | 復位計數器。當綁定的事件發生后,計數器值將立即復位為“0”; |
4、事件
事件與指令綁定,以期在特定的條件下執行指令。Graph支持的事件含義見下面的表格:
事件 | 信號檢測 | 說明 |
---|---|---|
S1 | 上升沿 | 步從未激活轉為激活狀態 |
S0 | 下降沿 | 步從激活轉為未激活狀態 |
V1 | 上升沿 | 監控條件從不滿足轉為滿足狀態 |
V0 | 下降沿 | 監控條件從滿足轉為不滿足狀態 |
L0 | 上升沿 | 互鎖條件從不滿足轉為滿足狀態 |
L1 | 下降沿 | 互鎖條件從滿足轉為不滿足狀態 |
A1 | 上升沿 | 報警從未確認轉為確認 |
R1 | 上升沿 | 注冊觸發(REG_EF/REG_S 輸入端的上升沿) |
注1:事件均為沿信號,因此其綁定的指令僅執行一個掃描周期;
注2:互鎖條件滿足時,與其綁定的指令才會被執行;
注3:若監控條件滿足,則順控器不再跳轉到下一步;若不滿足,則順控器可跳轉到下一步;如果監控條件為空,則認為不滿足;
監控條件和互鎖條件如下圖所示:
好了,關于GRAPH語言教程的第三篇文章就先介紹到這里。
責任編輯:彭菁
-
代碼
+關注
關注
30文章
4748瀏覽量
68355 -
語言教程
+關注
關注
0文章
2瀏覽量
5688 -
Graph
+關注
關注
0文章
36瀏覽量
9064
原文標題:西門子S7-GRAPH編程語言連載(3)——動作
文章出處:【微信號:方正智芯,微信公眾號:方正智芯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論