不可不知的 S7-1500 GRAPH使用小貼士
GRAPH 是創(chuàng)建順序控制系統(tǒng)的圖形編程語言。使用順控程序,可以更為快速便捷和直觀地對順序進(jìn)行編程。在制造和加工技術(shù)領(lǐng)域的多種應(yīng)用都具有順序的結(jié)構(gòu),同時(shí)存在必須以順序處理步驟執(zhí)行的過程。在這些領(lǐng)域內(nèi)使用GRAPH編程語言能夠使得解決方案變得非常簡便。
本文將提供10個(gè)S7-1500 GRAPH使用的小貼士!為大家學(xué)習(xí)S7-1500 GRAPH助力加油!
1. 是否需要單獨(dú)的GRAPH安裝軟件包
從STEP 7 Professional V12 SP1開始,S7-1500開始支持GRAPH編程語言。TIA Portal STEP 7 Professional本身已經(jīng)集成GRAPH語言包,S7-1500在使用GRAPH語言編程時(shí),無需單獨(dú)安裝GRAPH軟件包。
2. S7-1500 GRAPH編程可用的塊及支持的調(diào)用方式
S7-1500 GRAPH編程語言,只有在添加FB塊時(shí)才可以選擇,如圖1所示。

圖1.添加GRAPH FB
GRAPH FB在被其他FB塊調(diào)用的時(shí)候,支持單個(gè)實(shí)例或者參數(shù)實(shí)例;不可以選擇多重背景調(diào)用,如圖2所示。

圖2.調(diào)用GRAPH FB
3. GRAPH FB塊接口參數(shù)定義和存儲空間占用?
GRAPH FB實(shí)際上是一個(gè)帶參數(shù)的FB塊,F(xiàn)B塊的接口參數(shù)數(shù)量是可以進(jìn)行設(shè)置的。設(shè)置接口參數(shù)的方法有兩種:
· 全局設(shè)置:適用于所有GRAPH FB塊。在TIA Portal 菜單欄>選項(xiàng)>設(shè)置>PLC編程>GRAPH>接口下設(shè)置,如圖3所示。
· 本地設(shè)置:適用于某一個(gè)GRAPH FB塊。打開某個(gè)GRAPH FB塊,在TIA Portal菜單欄>編輯>接口參數(shù)>下一級菜單中設(shè)置,如圖4所示。
本地設(shè)置接口參數(shù)的權(quán)限高于全局設(shè)置。

圖3.接口參數(shù)全局設(shè)置

圖4.接口參數(shù)本地設(shè)置
GRAPH FB被調(diào)用后,程序塊上會出現(xiàn)形參。接口參數(shù)設(shè)置的類型不同,F(xiàn)B上形參數(shù)量也是不同的。接口參數(shù)設(shè)置可以在三種類型中選擇:
· 最小接口參數(shù)集:輸入僅包含INIT_SQ,無輸出;
· 標(biāo)準(zhǔn)接口參數(shù)集:設(shè)置操作模式并包含確認(rèn)報(bào)警;
· 最大接口參數(shù)集:還可進(jìn)行其他操作及診斷。
設(shè)置不同接口參數(shù)時(shí),調(diào)用GRAPH FB塊如圖5所示。

圖5.調(diào)用 GRAPH FB塊(左:最小接口;中:標(biāo)準(zhǔn)接口;右:最大接口)
在GRAPH FB中編寫簡單程序。同一程序塊,在設(shè)置不同接口參數(shù)時(shí),占用的存儲區(qū)大小也是不同的,如圖6所示。

圖6. GRAPH FB占用存儲區(qū)
無論設(shè)置何種接口參數(shù),都可以手動對GRAPH FB接口參數(shù)進(jìn)行添加或刪除的操作。例如:在最小塊接口時(shí),手動在GRAPH FB塊接口中添加輸入?yún)?shù):ACK_EF、S_SEL及S_SELOK,如下圖7所示。

圖7.手動增加GRAPH FB塊接口
4. GRAPH FB背景數(shù)據(jù)塊中的MOP?
S7-1500無法對GRAPH FB內(nèi)部接口參數(shù)執(zhí)行寫訪問,但可以對GRAPH FB背景數(shù)據(jù)塊>靜態(tài)變量>RT_DATA>MOP結(jié)構(gòu)中變量進(jìn)行訪問,支持寫操作的變量已用紅色方框標(biāo)注,如圖8所示。
使用MOP結(jié)構(gòu)中支持寫操作的變量,可對GRAPH FB進(jìn)行初始化、禁用、操作模式切換及暫停等功能,和直接在GRAPH FB接口參數(shù)上修改的效果一致。

圖8.MOP結(jié)構(gòu)
5. GRAPH FB背景數(shù)據(jù)塊的保持性如何設(shè)置?
GRAPH FB背景數(shù)據(jù)塊的保持性無法在FB塊接口中直接修改設(shè)置,需要打開FB塊,然后在TIA Portal菜單欄>編輯>>激活“保持性內(nèi)部存儲器",如圖9所示。

圖9.設(shè)置GRAPH FB 背景數(shù)據(jù)塊保持性
斷電重新上電后,如需順控器保持在斷電前執(zhí)行的步,可以對GRAPH FB設(shè)置保持性。
6. GRAPH FB操作模式是什么?
GRAPH FB操作模式定義了順控器中步與步的切換方式,一共有四種操作模式:
· 自動(AUTO):完依靠轉(zhuǎn)換條件切換步;
· 半自動-忽略轉(zhuǎn)換條件(TOP):轉(zhuǎn)換條件滿足時(shí),或者通過T_PUSH/調(diào)試面板,轉(zhuǎn)至下一步;
· 半自動-轉(zhuǎn)換條件切換(TAP):轉(zhuǎn)換條件滿足時(shí),且通過T_PUSH/調(diào)試面板,轉(zhuǎn)至下一步;
· 手動( MAN):與轉(zhuǎn)換條件完無關(guān);通過S_ON(S_OFF)/調(diào)試面板,啟用/禁用指的步。
不同的操作模式可以滿足順序控制中多樣性的需求,使控制更加靈活。
7. GRAPH FB如何切換操作模式?
操作模式之間的切換方法有兩種:
· 調(diào)試面板操作:一般調(diào)試或檢修時(shí)可以使用,操作簡單。
· 指令參數(shù)變量切換:一般投入運(yùn)行時(shí)使用,需要讀寫程序。
下面具體查看操作模式的切換。
7.1 自動(AUTO)
· 自動模式為默認(rèn)模式
· 方法1:調(diào)試面板,選擇自動模式,如圖10(左)所示。
· 方法2:指令參數(shù),SW_AUTO上升沿切換模式,如圖10(右)所示。

圖10. 自動
7.2 半自動-忽略轉(zhuǎn)換條件(TOP)
· 方法1:調(diào)試面板
選擇半自動,如果轉(zhuǎn)換條件滿足,則自動轉(zhuǎn)至下一步執(zhí)行,如果轉(zhuǎn)換條件不滿足,則點(diǎn)擊忽略轉(zhuǎn)換條件按鈕,轉(zhuǎn)至下一步執(zhí)行,如圖11(左)所示。
· 方法2:指令參數(shù)
使用S_TOP上升沿切換模式,如果轉(zhuǎn)換條件滿足,則自動轉(zhuǎn)至下一步執(zhí)行,如果轉(zhuǎn)換條件不滿足,則T_PUSH上升沿轉(zhuǎn)至下一步執(zhí)行,如圖11(右)所示。

圖11.半自動-忽略轉(zhuǎn)換條件
7.3 半自動-轉(zhuǎn)換條件切換(TAP)
· 方法1:調(diào)試面板
選擇手動,當(dāng)前步中的轉(zhuǎn)換條件滿足后,點(diǎn)擊下一步按鈕,切換至下一步執(zhí)行,如圖12(左)所示。
· 方法2:指令參數(shù)
使用S_TAP上升沿切換模式,當(dāng)前步滿足轉(zhuǎn)換條件后,則T_PUSH上升沿轉(zhuǎn)至下一步執(zhí)行,如圖12(右)所示。

圖12.半自動-轉(zhuǎn)換條件
7.4 手動(MAN)
· 方法1:調(diào)試面板
選擇手動模式,手動選擇步中輸入待啟用/禁用的步編號,點(diǎn)擊啟用/禁用按鈕,相應(yīng)步執(zhí)行/取消,如圖13(左)所示。
· 方法2:指令參數(shù)
最大接口:SW_MAN上升沿切換模式,DISP_SALL上升沿顯示所有步,S_SEL輸入步編號,S_SELOK確認(rèn),S_ON上升沿啟用/S_OFF上升沿禁用相關(guān)步,如圖13(右)所示。
標(biāo)準(zhǔn)接口:SW_MAN上升沿切換模式,S_SEL輸入步編號,S_ON上升沿啟用/S_OFF上升沿禁用相關(guān)步。

圖13.手動
8. 半自動TAP和TOP區(qū)別?
下面通過順控器的執(zhí)行情況說明半自動-忽略轉(zhuǎn)換條件(TOP)和半自動-帶有轉(zhuǎn)換條件(TAP)的區(qū)別,如圖14和圖15所示。

圖14.TOP模式

圖15.TAP模式
9. GRAPH FB 互鎖條件和監(jiān)控條件如何使用?
順控器中的每一步中都有互鎖條件Interlock-(C)和監(jiān)控條件Supervision-(V)。僅在步激活時(shí),該步中的互鎖條件和監(jiān)控條件有效。互鎖條件和監(jiān)控條件中可以編寫程序,也可以保持默認(rèn)狀態(tài)。默認(rèn)狀態(tài)是滿足互鎖條件,不滿足監(jiān)控條件)。當(dāng)在互鎖條件或者監(jiān)控條件中編程時(shí),可參考表1中所列項(xiàng)目。
表1

下面將舉例說明互鎖條件對動作的影響:
在互鎖條件中添加變量“graph_data“.interlock,在動作中分別用互鎖(C),事件L0,事件L1賦值不同變量,如圖16所示。

圖16.Interlock中編程
使用TRACE抓取各個(gè)變量狀態(tài),如圖17所示。
· “graph_data“.interlock上升沿,
L0事件到來,“graph_data“.c_event_come產(chǎn)生一個(gè)沿;
· “graph_data“.interlock下降沿,
L1事件到來,“graph_data“.c_event_go產(chǎn)生一個(gè)沿;
· “graph_data“.interlock高電平,
互鎖(C),“graph_data“.c_action高電平。

圖17.TRACE抓取變量狀態(tài)
10. 如何暫停GRAPH FB
Graph 程序在運(yùn)行過程中,某些情況下需要將Sequence 暫停去解決問題,當(dāng)問題解決后,需要接著當(dāng)前的步繼續(xù)執(zhí)行Graph 程序。GRAPH FB有三個(gè)參數(shù)可以用于暫停順控器:
1.順控器暫停步:可通過HALT_SQ(最大接口參數(shù))或HALT(靜態(tài)變量MOP結(jié)構(gòu)參數(shù)),停止/重新激活順控程序。
暫停步方法及過程,如圖18所示:
· HALT_SQ/HALT第一次上升沿,順控器步暫停,狀態(tài)位SQ_HALTED置位;
· 在順控器步暫停期間,即使當(dāng)前步的轉(zhuǎn)換條件滿足,步也不會切換;
· HALT_SQ/HALT第二次上升沿,順控器步暫停解除,狀態(tài)位SQ_HALTED復(fù)位;
· 順控器步暫停解除后,滿足轉(zhuǎn)換條件時(shí),步會自動切換。

圖18.暫停步
2.暫停步激活時(shí)間:可通過HALT_TM(最大接口參數(shù))或TMS_HALT(靜態(tài)變量MOP結(jié)構(gòu)參數(shù)),停止/重新激活所有步的激活時(shí)間和順控程序中與時(shí)間相關(guān)的操作。
暫停步激活時(shí)間方法及過程,如圖19所示。
· HALT_SQ/HALT暫停步,對步激活時(shí)間T和非中斷步激活時(shí)間U無影響;
· HALT_TM/TMS_HALT第一次上升沿,進(jìn)入步激活時(shí)間暫停狀態(tài),狀態(tài)位TM_HALTED置位。步激活時(shí)間T和非中斷步激活時(shí)間U停止計(jì)時(shí);
· HALT_TM/TMS_HALT第二次上升沿,退出步激活時(shí)間暫停狀態(tài),狀態(tài)位TM_HALTED復(fù)位。步激活時(shí)間T和非中斷步激活時(shí)間U恢復(fù)計(jì)時(shí)。

圖19.暫停步激活時(shí)間
注意:在步激活時(shí)間暫停期間,只要順控器步?jīng)]有暫停,當(dāng)轉(zhuǎn)換條件滿足時(shí),步可以正常切換。但是切換到新步中,新步的激活時(shí)間依然是暫停的,如圖20所示。

圖20.步激活時(shí)間暫停時(shí)步切換
3.暫停動作:可通過ZERO_OP(最大接口參數(shù))或OPS_ZERO(靜態(tài)變量MOP結(jié)構(gòu)參數(shù)),將活動步中帶有標(biāo)識符N、D、L所有操作數(shù)暫停/恢復(fù)。
例如:在順控器中的S3步中添加動作,如圖21所示。
N:S3激活,“graph_data".SetBit賦值為1;S3取消激活,復(fù)位。
D:S3激活,延時(shí)2S“graph_data".D置位;S3取消激活,復(fù)位。
L:S3激活,“graph_data".L置位;10S后“graph_data".L復(fù)位;S3取消激活,復(fù)位。

圖21.添加動作
順控器暫停動作方法及處理過程,如圖22所示。
· ZERO_OP/OPS_ZERO第一次上升沿,進(jìn)入動作暫停狀態(tài),狀態(tài)位OP_ZEROED置位;動作中N、D和L復(fù)位,即“graph_data".SetBit,“graph_data".D和“graph_data".L都復(fù)位;
· ZERO_OP/OPS_ZERO第二次上升沿,退出動作暫停狀態(tài),狀態(tài)位OP_ZEROED復(fù)位;動作中N、D和L恢復(fù),即“graph_data".SetBit,“graph_data".D和“graph_data".L繼續(xù)執(zhí)行動作狀態(tài);
· 動作D和L在暫停動作期間,時(shí)間在后臺累計(jì),不會清零。
