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