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

評論