產(chǎn)品簡(jiǎn)介
詳細(xì)介紹
西門(mén)子模塊6ES7288-2DE16-0AA0功能
1 CALL (子例程)和 RET (有條件返回)
要添加新子例程,請(qǐng)選擇“ “ 編輯 "(Edit) 功能區(qū),然后選擇“ “ 插入對(duì)象 "(Insert Object) 和“ “ 子例
程 程 "(Subroutine) 命令。 STEP 7-Micro/WIN SMART 自動(dòng)在每個(gè)子例程中添加一個(gè)無(wú)條件
返回。 還可以在子例程中添加有條件返回 CRET 指令。
在主程序中,可以嵌套調(diào)用子例程(在子例程中調(diào)用子例程),大嵌套深度為八。
在中斷例程中,可嵌套的子例程深度為四。
說(shuō)明
允許遞歸調(diào)用(子例程調(diào)用自己),但在子程序中進(jìn)行遞歸調(diào)用時(shí)應(yīng)慎重。
程序指令
7.18 子例程
S7-200 SMART
系統(tǒng)手冊(cè), V2.5, 01/2020, A5E03822234-AI 403
LAD/FBD STL 說(shuō)明
CALL SBR_n,
x1, x2, x3
子例程調(diào)用指令將程序控制權(quán)轉(zhuǎn)交給子例程 SBR_N。可以使用帶參數(shù)
或不帶參數(shù)的子例程調(diào)用指令。 子例程執(zhí)行完后,控制權(quán)返回給子例
程調(diào)用指令后的下一條指令。
調(diào)用參數(shù) x1 (IN)、x2 (IN_OUT) 和 x3 (OUT) 分別表示傳入、傳入和傳
出或傳出子例程的三個(gè)調(diào)用參數(shù)。 調(diào)用參數(shù)是可選的。 可以使用 0 到
16 個(gè)調(diào)用參數(shù)。
調(diào)用子例程時(shí),保存整個(gè)邏輯堆棧,棧頂值設(shè)置為一,堆棧其它位置的
值設(shè)置為零,控制權(quán)交給被調(diào)用子例程。 該子例程執(zhí)行完后,堆?;?br />復(fù)為調(diào)用時(shí)保存的數(shù)值,控制權(quán)返回給調(diào)用例程。
子例程和調(diào)用例程共用累加器。 由于子例程使用累加器,所以不對(duì)累
加器執(zhí)行保存或恢復(fù)操作。
在同一周期內(nèi)多次調(diào)用子例程時(shí),不應(yīng)使用上升沿、下降沿、定時(shí)器和
計(jì)數(shù)器指令。
CRET
從子例程有條件返回指令 (CRET) 根據(jù)前面的邏輯終止子例程。
ENO = 0 時(shí)的錯(cuò)誤條件 受影響的 SM 位
? 0006H 間接地址
? 008H 超出子例程大嵌套限
制
無(wú)
輸入/ / 輸出 數(shù)據(jù)類型 操作數(shù)
SBR_n WORD 常數(shù): 0-127
IN BOOL V、I、Q、M、SM、S、T、C、L、能流 (LAD)、邏輯流 (FBD)
BYTE VB、IB、QB、MB、SMB、SB、LB、AC、*VD、*LD、*AC 1 、常數(shù)
WORD, INT VW、T、C、IW、QW、MW、SMW、SW、LW、AC、AIW、*VD、
*LD、*AC 1 、常數(shù)
程序指令
7.18 子例程
S7-200 SMART
404 系統(tǒng)手冊(cè), V2.5, 01/2020, A5E03822234-AI
輸入/ / 輸出 數(shù)據(jù)類型 操作數(shù)
DWORD, DINT VD、ID、QD、MD、SMD、SD、LD、AC、HC、*VD、*LD、*AC 1 、
&VB、&IB、&QB、&MB、&T、&C、&SB、&AI、&AQ、&SMB、常數(shù)
STRING *VD、*LD、*AC 1 、常數(shù)
IN_OUT BOOL V、I、Q、M、SM 2 、S、T、C、L
BYTE VB、IB、QB、MB、SMB 2 、SB、LB、AC、*VD、*LD、*AC 1
WORD, INT VW、T、C、IW、QW、MW、SMW 2 、SW、LW、AC、*VD、*LD、
*AC 1
DWORD, DINT VD、ID、QD、MD、SMD 2 、SD、LD、AC、*VD、*LD、*AC 1
OUT BOOL V、I、Q、M、SM 2 、S、T、C、L
BYTE VB、IB、QB、MB、SMB 2 、SB、LB、AC、*VD、*LD、*AC 1
WORD, INT VW、T、C、IW、QW、MW、SMW 2 、SW、LW、AC、AQW、*VD、
*LD、*AC 1
DWORD, DINT VD、ID、QD、MD、SMD 2 、SD、LD、AC、*VD、*LD、*AC 1
1 只允許 AC1、AC2 或 AC3(不允許 AC0)
2 字節(jié)偏移必須在 30 到 999 之間才能進(jìn)行讀/寫(xiě)訪問(wèn)
帶調(diào)用參數(shù)調(diào)用子例程
子例程可選擇使用傳遞參數(shù)。這些參數(shù)在子例程的變量表中定義。必須為每個(gè)參數(shù)分配局
部符號(hào)名稱(多 23 個(gè)字符)、變量類型和數(shù)據(jù)類型。一個(gè)子例程多可以傳遞十六個(gè)
參數(shù)。變量表中的 VAR_Type 類型字段定義變量是傳入子例程 (IN)、傳入和傳出子例程
(IN_OUT),還是傳出子例程 (OUT)。
要添加新參數(shù)行,請(qǐng)將光標(biāo)置于要添加變量類型 IN、IN_OUT、OUT 或 TEMP 的
Var_Type 字段上。單擊鼠標(biāo)右鍵打開(kāi)選擇菜單。選擇“插入"(Insert) 選項(xiàng),然后選擇“下一
行"(Row Below) 選項(xiàng)。所選類型的另一個(gè)參數(shù)行將出現(xiàn)在當(dāng)前條目下方。
可在變量表中分配臨時(shí) (TEMP) 參數(shù)來(lái)存儲(chǔ)只在子例程執(zhí)行過(guò)程中有效的數(shù)據(jù)。局部
TEMP 數(shù)據(jù)不會(huì)作為調(diào)用參數(shù)進(jìn)行傳遞。也可在主例程和中斷例程中分配 TEMP 參數(shù),
但只有子例程可以使用 IN、IN_OUT 和 OUT 調(diào)用參數(shù)。
程序指令
功能
7.18 子例程
S7-200 SMART
系統(tǒng)手冊(cè), V2.5, 01/2020, A5E03822234-AI 405
子例程的變量表參數(shù)類型
參數(shù) 說(shuō)明
IN 參數(shù)傳入子例程。如果參數(shù)是直接地址(例如 VB1位置的值傳入子例程。如
果參數(shù)是間接地址(例如 *AC1),則指針指代位置的值傳入子例程。如果參數(shù)是數(shù)據(jù)常數(shù)
(16#1234) 或地址 (&VB100),則常數(shù)或地址值傳入子例程。
參數(shù)位置的值傳入子例程,子例程的結(jié)果值返回至同一位置。常數(shù)(例如 16#1234)
和地址(例如 &VB100)不允許用作輸入/輸出參數(shù)。
OUT 子例程的結(jié)果位置。常數(shù)(例如 16#1234)和地址(例如 &VB100)不
允許用作輸出參數(shù)。由于輸出參數(shù)并不保留子例程后一次執(zhí)行時(shí)分配給它的值,所以每
次調(diào)用子例程時(shí)必須給輸出參數(shù)分配值。
TEMP 沒(méi)有用于傳遞參數(shù)的任何局部存儲(chǔ)器都可在子例程中作為臨時(shí)存儲(chǔ)單元使用。
調(diào)用參數(shù)允許的數(shù)據(jù)類型
● 能流:布爾能流僅允許用于位(布爾)輸入。此聲明將輸入?yún)?shù)分配給基于位邏輯指
令組合的能流結(jié)果。能流輸入與 EN 輸入相似,都與位邏輯(例如,LAD 觸點(diǎn))相連
接,而不連接到直接/間接地址分配。必須在變量表的上一行(或多布爾能
流輸入,然后何非布爾數(shù)據(jù)類型。只有輸入?yún)?shù)可以這樣使用。下例中的使
能輸入 (EN) 和 IN1 輸入使用能流邏輯。
● BOOL:此數(shù)據(jù)類型用于單個(gè)位輸入和輸出。下例中的 IN3 是分配給直接地址的布爾
輸入。
● BYTE、WORD、DWORD:這些數(shù)據(jù)類型分別標(biāo)識(shí) 1、2 或 4 字節(jié)的無(wú)符號(hào)輸入或輸
出參數(shù)。
● INT、DINT:這些數(shù)據(jù)類型分別標(biāo)識(shí) 2 或 4 字節(jié)有符號(hào)輸入或輸出參數(shù)。
● REAL:此數(shù)據(jù)類型標(biāo)識(shí)單精度(4 字節(jié))IEEE 浮點(diǎn)值。
● STRING:此數(shù)據(jù)類型用作指向字符串的四字節(jié)指針。
程序指令
7.18 子例程
S7-200 SMART
406 系統(tǒng)手冊(cè), V2.5, 01/2020, A5E03822234-AI
變量表示例
示例:帶調(diào)用參數(shù)的子例程調(diào)用
LAD STL
僅在 STL 中顯示:
Network 1
LD I0.0
CALL SBR_0, I0.1, VB10, I1.0, &VB100, *AC1, VD200
可在 LAD 和 FBD 中正確顯示:
Network 1
LD I0.0
= L60.0
LD I0.1
= L63.7
LD L60.0
CALL SBR_0, L63.7, VB10, I1.0, &VB100, *AC1, VD200
說(shuō)明
上面提供了兩個(gè) STL 示例。STL 程序員可使組只能顯示在 STL 編輯器中的簡(jiǎn)化
STL 指令。這是因?yàn)橛米?LAD/FBD 能流輸入的 BOOL 參數(shù)不保存到 L 存儲(chǔ)器。
第二組編譯器生成的 STL 指令可顯示在 LAD、FBD 和 STL 編輯器中,因?yàn)槌绦蚓幾g器
使用 L 配給局部存儲(chǔ)器,起始地址是 L
0.0。
● 一至八個(gè)連續(xù)位參數(shù)值分配給從 Lx.0 到 Lx.7 的單個(gè)字節(jié)。
● 字節(jié)、字和雙字值分配給以字節(jié)為邊界的局部存儲(chǔ)器(LBx、LWx 或 LDx)。
在帶參數(shù)的子例程調(diào)用指令中,必須按照一定的順序排列參數(shù),輸入?yún)?shù)在前面,其次
是輸入/輸出參數(shù),然后是輸出參數(shù)。
如果使用 STL 編程,則 CALL 指令的格式是:
CALL 子例程編號(hào), 參數(shù) 1, 參數(shù) 2, ... , 參數(shù) 16
示例:子例程和子例程返回指令
LAD STL
MAIN
*掃描時(shí),調(diào)用子例程 0 進(jìn)
行初始化。
Network 1
LD SM0.1
西門(mén)子模塊6ES7288-2DE16-0AA0功能西門(mén)子模塊6ES7288-2DE16-0AA0
本公司*銷售西門(mén)子PLC,200,300,400,1200,西門(mén)子PLC附件,西門(mén)子電機(jī),西門(mén)子人機(jī)界面,西門(mén)子變頻器,西門(mén)子數(shù)控伺服,西門(mén)子總線電纜現(xiàn)貨供應(yīng),咨詢系列產(chǎn)品,折扣低,貨期準(zhǔn)時(shí),并且備有大量庫(kù)存.長(zhǎng)期有效
PLC工作狀態(tài)一目了然安裝便捷,支持導(dǎo)軌式和螺釘式安裝所有模塊的輸入輸出端子可拆卸集成以太網(wǎng)口,程插針式連接,模塊序下載、設(shè)備組網(wǎng)連接更加緊密通用 Micro sD卡支持程序下載和信號(hào)板擴(kuò)展實(shí)現(xiàn)化PLC固件更新配置,同時(shí)不占用電控西門(mén)子高速芯片配備超級(jí)電容,掉電基本指令執(zhí)行時(shí)間可情況下,依然能保證時(shí)鐘正常工作
CALL SBR_0
SBR0
可以在后一個(gè)程序段前使用
有條件返回指令來(lái)退出子例
程。
Network 1
LD M14.3
CRET
SBR0
如果 M14.3 接通,將跳過(guò)此網(wǎng)
絡(luò)。
Network 2
LD SM0.0
MOVB 10, VB0
程序指令
7.18 子例程
S7-200 SMART
408 系統(tǒng)手冊(cè), V2.5, 01/2020, A5E03822234-AI
存。然后,通過(guò)間接地址將字符串地址傳入子例程。子例程輸入?yún)?shù)的數(shù)據(jù)類型是字符
串。然后,子例程將字符串移到其它位置。
字符串文字也可傳入子例程。子例程內(nèi)的字符串引用始終相同。
LAD
STL
MAIN
Network 1
LD I0.0
SCPY "string1", VB100
AENO
MOVD &VB100, VD0
MAIN
Network2
LD I0.1
SCPY "string2", VB200
AENO
MOVD &VB200, VD0
MAIN
Network3
LD I0.2
CALL SBR_0, *VD0
MAIN
Network4
LD I0.3
CALL SBR_0, "string3"
SBR0
Network 1
LD SM0.0
SSCPY *LD0, VB300
程序指令
7.19 PROFINET
S7-200 SMART
系統(tǒng)手冊(cè), V2.5, 01/2020, A5E03822234-AI 409
7.19 PROFINET
7.19.1 編程指令 "PROFINET" 的特性
“PROFINET"文件夾下有兩組編程指令:
● RDREC 和 WRREC (頁(yè) 409):從任何連接的 PROFINET 設(shè)備讀取數(shù)據(jù)記錄或?qū)?shù)據(jù)
記錄寫(xiě)入任何連接的 PROFINET 設(shè)備。
● BLKMOV_BIR 和 BLKMOV_BIW (頁(yè) 414):立即從 PROFINET 設(shè)備讀取多個(gè)字節(jié)或
立即將多個(gè)字節(jié)寫(xiě)入 PROFINET 設(shè)備。
說(shuō)明
對(duì)于任何可訪問(wèn) I 或 Q 存儲(chǔ)區(qū)的傳統(tǒng)指令,均可訪問(wèn) PROFINET 網(wǎng)絡(luò)的 I 或 Q 存儲(chǔ)區(qū)。
7.19.2 讀取和寫(xiě)入數(shù)據(jù)記錄
7.19.2.1 RDREC 和 WRREC 指令的輸入和輸出接口
RDREC 和 WRREC 指令如下:
表格 7- 21 RDREC 和 WRREC
LAD/FBD STL 說(shuō)明
RDREC Req, Table, Done, Sta-
tus
使用 RDREC 指令從 PROFINET
設(shè)備讀取數(shù)據(jù)記錄。
WRREC Req, Table, Done,
Status
使用 WRREC 指令將數(shù)據(jù)記錄寫(xiě)
入 PROFINET 設(shè)備。
程序指令
7.19 PROFINET
S7-200 SMART
410 系統(tǒng)手冊(cè), V2.5, 01/2020, A5E03822234-AI
RDREC 和 WRREC 指令的參數(shù)如下:
表格 7- 22 RDREC 和 WRREC 指令的參數(shù)
參數(shù)和類型 數(shù)據(jù)類型 操作數(shù) 說(shuō)明
REQ IN BOOL I, Q, V, M, T, C,
SM, S, L
REQ=1:傳送數(shù)據(jù)記錄
TABLE IN/OUT BYTE Q, V, M, SM, S, L,
*AC,*VD,*LD, Con-
stant
為數(shù)據(jù)讀/寫(xiě)記錄設(shè)置的參數(shù)表。有關(guān)詳細(xì)信息,
請(qǐng)參見(jiàn) “TABLE"參數(shù)的定義 (頁(yè) 411)。
DONE OUT BOOL I, Q, V, M, SM, S, L 完成指令。
STATUS OUT BYTE I, Q, V, M, SM, S, L 當(dāng)前操作的狀態(tài)。有關(guān)詳細(xì)信息,請(qǐng)參見(jiàn)
“STATUS"參數(shù)的定義 (頁(yè) 412)。
說(shuō)明
支持的大數(shù)據(jù)記錄長(zhǎng)度為 1024 字節(jié)。
程序指令
西門(mén)子模塊6ES7288-2DE16-0AA0功能
6ES7288-2DE16-0AA0
原裝
本公司*銷售西門(mén)子PLC,200,300,400,1200,西門(mén)子PLC附件,西門(mén)子電機(jī),西門(mén)子人機(jī)界面,西門(mén)子變頻器,西門(mén)子數(shù)控伺服,西門(mén)子總線電纜現(xiàn)貨供應(yīng),咨詢系列產(chǎn)品,折扣低,貨期準(zhǔn)時(shí),并且備有大量庫(kù)存.長(zhǎng)期有效
7.19 PROFINET
S7-200 SMART
系統(tǒng)手冊(cè), V2.5, 01/2020, A5E03822234-AI 411
“TABLE" 參數(shù)的定義
下表列出了“TABLE"的參數(shù)信息:
表格 7- 23 TABLE
字節(jié)偏移 參數(shù)和類型 注釋
0 Device Number Input
注:
值的范圍為 1 至
8。
設(shè)備編號(hào)、API 編號(hào)、插槽編號(hào)和子
插槽編號(hào)用于尋址子模塊。
可在 PROFINET 向?qū)е姓业皆O(shè)備編
號(hào)、API 編號(hào)、插槽編號(hào)和子插槽編
號(hào)。
1
2 API Number Input
3
4
5
6 Slot Number Input
7
8 SubSlot Number Input
9
10 Record Index Input 記錄索引包括協(xié)議中或用戶定義的記
錄索引。
有關(guān)協(xié)議中索引的詳細(xì)信息,請(qǐng)參見(jiàn)
PROFINET IO(版本 2.3)的技術(shù)規(guī)
范 。
下一篇:西門(mén)子模塊6ES7288-2DR08-0AA0功能