第五講:西門子特殊指令
聲明:您必須遵守我們的協(xié)議,如果您下載了該資源行為將被視為對《電天下賬號管理規(guī)范》全部內(nèi)容的認(rèn)可,本網(wǎng)站資源來自原創(chuàng),僅供用于學(xué)習(xí)和交流,請勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請舉報(bào)本資源,我們將及時審核處理!
第五講:西門子特殊指令
文本預(yù)覽
制作/授課:朱忠海
5 局部變量表與子程序
一、 局部變量表
1.局部變量與全局變量
程 序 中 的 每 個 程 序 組 織 單 元 POU ( Program
Organizational Unit)均有由64字節(jié)L存儲器組成的局部
變量表。局部變量只在它被創(chuàng)建的POU中有效,全局
符號在各POU中均有效。局部變量有以下優(yōu)點(diǎn):
? (1) 盡量使用局部變量的子程序易于移植到別的項(xiàng)
目。
? (2) 如果使用臨時變量(TEMP),同一片物理存
儲器可以在不同的程序中重復(fù)使用。2.局部變量的類型
?TEMP (臨時變量):暫時保存在局部數(shù)據(jù)區(qū)中的變量。主程序或
中斷程序的局部變量表只有TEMP變量。(一般用于中間過渡)
? IN (輸入變量):由調(diào)用它的POU提供的傳入子程序的輸入?yún)?shù)。
?OUT(輸出變量):子程序返回給調(diào)用它的POU的輸出參數(shù)。
?IN_OUT(輸入_輸出變量):其初始值由調(diào)用它的POU提供,并
用同一變量將子程序的執(zhí)行結(jié)果返回給調(diào)用它的POU。3.局部變量的地址分配
?在局部變量表中賦值時,只需指定局部變量的類型和
數(shù)據(jù)類型,不用指定存儲器地址;
?程序編輯器自動地在局部存儲器中為所有局部變量指
定存儲器位置,起始地址為LB0,1~8個連續(xù)的位參數(shù)
分配一個字節(jié),字節(jié)中位地址為Lx.0~Lx.7。
(主程序調(diào)用子程序時,數(shù)據(jù)類型必須匹配)二、 子程序的編寫與調(diào)用
1.子程序的作用
子程序?qū)⒊绦蚍殖扇菀坠芾淼男K,使程序結(jié)構(gòu)簡
單清晰,易于查錯和維護(hù)。子程序調(diào)用是有條件的,
可以多次調(diào)用,使用子程序可以減少掃描時間。
2.子程序的創(chuàng)建
3.子程序的調(diào)用舉例局部變量表
分裂條
圖6-5 局部變量表與模擬量計(jì)算子程序
鼠標(biāo)右擊,選擇插入子程序/中斷程序,可以增加多個子程序或中斷程序圖6-6 在主程序中調(diào)用子程序6 中斷程序與中斷指令
1、中斷程序的特點(diǎn)
中斷功能是用中斷程序及時處理中斷事件,中斷事件與用戶程序的執(zhí)行時序無關(guān),
特點(diǎn):
中斷程序由用戶編寫;但不是由用戶程序調(diào)用,而是在中斷事件發(fā)生時由操作系統(tǒng)調(diào)用;
中斷程序應(yīng)盡可能短,目的:實(shí)現(xiàn)對中斷事件的快速響應(yīng)
(若過長會導(dǎo)致程序的掃描周期就難以判斷,可能會引發(fā)其它事件)
系統(tǒng)中需要由用戶程序把中斷程序與中斷事件連接起來并且開放系統(tǒng)中斷后才能進(jìn)入
等待中斷事件觸發(fā)中斷程序執(zhí)行的狀態(tài);可用指令取消中斷程序與中斷事件的連接或
禁止全部中斷。這需要相應(yīng)的中斷指令來完成。
2、中斷事件與中斷指令
中斷事件:又稱中斷源 即發(fā)出中斷請求的事件
為了便于識別,系統(tǒng)給每個中斷源都分配一個編號,稱為中斷事件號。
S7-200系列可編程控制器最多有34個中斷源,分為三大類:
外部中斷,時基中斷,高速計(jì)數(shù)與脈沖輸出中斷中斷指令:
Enable Interrupt
中斷允許(ENI)指令: 又稱開中斷指令
全局性地允許所有被連接的中斷事件
中斷禁止(DISI)指令:
又稱關(guān)中斷指令 Disable Interrupt
全局性中斷連接指令與中
斷分離指令:
中斷連接指令(ATCH) : Attach Interrupt
將中斷事件(EVNT)與中斷程序號碼(INT)相連接,并啟
用這個單一中斷事件。
中斷事件由中斷事件號指定;
中斷程序由中斷程序號指定。
注意: 局部性
一個中斷事件只能連接一個中斷程序,
但多個中斷事件可以調(diào)用一個中斷程序。
中斷分離(DTCH)指令:
Detach Interrupt
取消某中斷事件(EVNT)與所有中斷程序之間的連
接,并禁用該中斷事件。輸入輸出中斷I/O中斷
? I/O 中斷包含了上升沿或下降沿中斷、高速計(jì)數(shù)器中斷和
脈沖串輸出(PTO) 中斷。
– S7-200 CPU 可用輸入I0.0 至I0.3 的上升沿或下降沿產(chǎn)
生中斷,這些輸入點(diǎn)捕獲的上升沿或下降沿事件可被
用來指示當(dāng)某個事件發(fā)生時必須引起注意的錯誤條件。
– 高速計(jì)數(shù)器中斷允許響應(yīng)諸如當(dāng)前值等于預(yù)置值、相
應(yīng)于軸轉(zhuǎn)動方向變化的計(jì)數(shù)方向改變和計(jì)數(shù)器外部復(fù)
位等事件而產(chǎn)生中斷,每種高速計(jì)數(shù)器可對高速事件
實(shí)時響應(yīng),而PLC 掃描速率對這些高速事件是不能控
制的。
– 脈沖串輸出中斷給出了已完成指定脈沖數(shù)輸出的指示,
脈沖串輸出的一個典型應(yīng)用是步進(jìn)電機(jī),可以通過將
一個中斷程序連接到相應(yīng)的I/O 事件上來允許上述的每
一個中斷。用中斷實(shí)現(xiàn)左圖中的功能:通過該例來
體會中斷程序不是由用戶程序調(diào)用的,
而是由系統(tǒng)調(diào)用的時基中斷
? 時基中斷包括定時中斷SMB34/SMB35和定時器T32/T96
中斷,CPU 可以支持定時中斷,可以用定時中斷指定一
個周期性的活動周期,以1ms 為增量單位周期時間可從5
ms 到255ms 。
? 對定時中斷0 把周期時間寫入SMB34 ,對定時中斷1 把
周期時間寫入SMB35,每當(dāng)定時器溢出時,定時中斷事
件把控制權(quán)交給相應(yīng)的中斷程序,通??捎枚〞r中斷以固
定的時間間隔去控制模擬量輸入的采樣
? 當(dāng)把某個中斷程序連接到一個定時中斷事件上,如果該定
時中斷被允許,那就開始計(jì)時,在連接期間系統(tǒng)捕捉周期
時間值,因而后來的變化不會影響周期,為改變周期時間
首先必須修改周期時間值,然后重新把中斷程序連接到定
時中斷事件上。當(dāng)重新連接時,定時中斷功能清除前一次
連接時的任何累計(jì)值,并用新值重新開始計(jì)時。用中斷功能實(shí)現(xiàn):按下啟動按鈕,控制一盞燈亮一秒
滅一秒閃爍按下停止按鈕,停止閃爍。
次數(shù)記錄存儲器這里定時器是一直通電工作的,所以每當(dāng)
中斷發(fā)生時,需要給定時器復(fù)位,讓定時
器可以循環(huán)工作7 項(xiàng)目簡介
5 局部變量表與子程序
一、 局部變量表
1.局部變量與全局變量
程 序 中 的 每 個 程 序 組 織 單 元 POU ( Program
Organizational Unit)均有由64字節(jié)L存儲器組成的局部
變量表。局部變量只在它被創(chuàng)建的POU中有效,全局
符號在各POU中均有效。局部變量有以下優(yōu)點(diǎn):
? (1) 盡量使用局部變量的子程序易于移植到別的項(xiàng)
目。
? (2) 如果使用臨時變量(TEMP),同一片物理存
儲器可以在不同的程序中重復(fù)使用。2.局部變量的類型
?TEMP (臨時變量):暫時保存在局部數(shù)據(jù)區(qū)中的變量。主程序或
中斷程序的局部變量表只有TEMP變量。(一般用于中間過渡)
? IN (輸入變量):由調(diào)用它的POU提供的傳入子程序的輸入?yún)?shù)。
?OUT(輸出變量):子程序返回給調(diào)用它的POU的輸出參數(shù)。
?IN_OUT(輸入_輸出變量):其初始值由調(diào)用它的POU提供,并
用同一變量將子程序的執(zhí)行結(jié)果返回給調(diào)用它的POU。3.局部變量的地址分配
?在局部變量表中賦值時,只需指定局部變量的類型和
數(shù)據(jù)類型,不用指定存儲器地址;
?程序編輯器自動地在局部存儲器中為所有局部變量指
定存儲器位置,起始地址為LB0,1~8個連續(xù)的位參數(shù)
分配一個字節(jié),字節(jié)中位地址為Lx.0~Lx.7。
(主程序調(diào)用子程序時,數(shù)據(jù)類型必須匹配)二、 子程序的編寫與調(diào)用
1.子程序的作用
子程序?qū)⒊绦蚍殖扇菀坠芾淼男K,使程序結(jié)構(gòu)簡
單清晰,易于查錯和維護(hù)。子程序調(diào)用是有條件的,
可以多次調(diào)用,使用子程序可以減少掃描時間。
2.子程序的創(chuàng)建
3.子程序的調(diào)用舉例局部變量表
分裂條
圖6-5 局部變量表與模擬量計(jì)算子程序
鼠標(biāo)右擊,選擇插入子程序/中斷程序,可以增加多個子程序或中斷程序圖6-6 在主程序中調(diào)用子程序6 中斷程序與中斷指令
1、中斷程序的特點(diǎn)
中斷功能是用中斷程序及時處理中斷事件,中斷事件與用戶程序的執(zhí)行時序無關(guān),
特點(diǎn):
中斷程序由用戶編寫;但不是由用戶程序調(diào)用,而是在中斷事件發(fā)生時由操作系統(tǒng)調(diào)用;
中斷程序應(yīng)盡可能短,目的:實(shí)現(xiàn)對中斷事件的快速響應(yīng)
(若過長會導(dǎo)致程序的掃描周期就難以判斷,可能會引發(fā)其它事件)
系統(tǒng)中需要由用戶程序把中斷程序與中斷事件連接起來并且開放系統(tǒng)中斷后才能進(jìn)入
等待中斷事件觸發(fā)中斷程序執(zhí)行的狀態(tài);可用指令取消中斷程序與中斷事件的連接或
禁止全部中斷。這需要相應(yīng)的中斷指令來完成。
2、中斷事件與中斷指令
中斷事件:又稱中斷源 即發(fā)出中斷請求的事件
為了便于識別,系統(tǒng)給每個中斷源都分配一個編號,稱為中斷事件號。
S7-200系列可編程控制器最多有34個中斷源,分為三大類:
外部中斷,時基中斷,高速計(jì)數(shù)與脈沖輸出中斷中斷指令:
Enable Interrupt
中斷允許(ENI)指令: 又稱開中斷指令
全局性地允許所有被連接的中斷事件
中斷禁止(DISI)指令:
又稱關(guān)中斷指令 Disable Interrupt
全局性中斷連接指令與中
斷分離指令:
中斷連接指令(ATCH) : Attach Interrupt
將中斷事件(EVNT)與中斷程序號碼(INT)相連接,并啟
用這個單一中斷事件。
中斷事件由中斷事件號指定;
中斷程序由中斷程序號指定。
注意: 局部性
一個中斷事件只能連接一個中斷程序,
但多個中斷事件可以調(diào)用一個中斷程序。
中斷分離(DTCH)指令:
Detach Interrupt
取消某中斷事件(EVNT)與所有中斷程序之間的連
接,并禁用該中斷事件。輸入輸出中斷I/O中斷
? I/O 中斷包含了上升沿或下降沿中斷、高速計(jì)數(shù)器中斷和
脈沖串輸出(PTO) 中斷。
– S7-200 CPU 可用輸入I0.0 至I0.3 的上升沿或下降沿產(chǎn)
生中斷,這些輸入點(diǎn)捕獲的上升沿或下降沿事件可被
用來指示當(dāng)某個事件發(fā)生時必須引起注意的錯誤條件。
– 高速計(jì)數(shù)器中斷允許響應(yīng)諸如當(dāng)前值等于預(yù)置值、相
應(yīng)于軸轉(zhuǎn)動方向變化的計(jì)數(shù)方向改變和計(jì)數(shù)器外部復(fù)
位等事件而產(chǎn)生中斷,每種高速計(jì)數(shù)器可對高速事件
實(shí)時響應(yīng),而PLC 掃描速率對這些高速事件是不能控
制的。
– 脈沖串輸出中斷給出了已完成指定脈沖數(shù)輸出的指示,
脈沖串輸出的一個典型應(yīng)用是步進(jìn)電機(jī),可以通過將
一個中斷程序連接到相應(yīng)的I/O 事件上來允許上述的每
一個中斷。用中斷實(shí)現(xiàn)左圖中的功能:通過該例來
體會中斷程序不是由用戶程序調(diào)用的,
而是由系統(tǒng)調(diào)用的時基中斷
? 時基中斷包括定時中斷SMB34/SMB35和定時器T32/T96
中斷,CPU 可以支持定時中斷,可以用定時中斷指定一
個周期性的活動周期,以1ms 為增量單位周期時間可從5
ms 到255ms 。
? 對定時中斷0 把周期時間寫入SMB34 ,對定時中斷1 把
周期時間寫入SMB35,每當(dāng)定時器溢出時,定時中斷事
件把控制權(quán)交給相應(yīng)的中斷程序,通??捎枚〞r中斷以固
定的時間間隔去控制模擬量輸入的采樣
? 當(dāng)把某個中斷程序連接到一個定時中斷事件上,如果該定
時中斷被允許,那就開始計(jì)時,在連接期間系統(tǒng)捕捉周期
時間值,因而后來的變化不會影響周期,為改變周期時間
首先必須修改周期時間值,然后重新把中斷程序連接到定
時中斷事件上。當(dāng)重新連接時,定時中斷功能清除前一次
連接時的任何累計(jì)值,并用新值重新開始計(jì)時。用中斷功能實(shí)現(xiàn):按下啟動按鈕,控制一盞燈亮一秒
滅一秒閃爍按下停止按鈕,停止閃爍。
次數(shù)記錄存儲器這里定時器是一直通電工作的,所以每當(dāng)
中斷發(fā)生時,需要給定時器復(fù)位,讓定時
器可以循環(huán)工作7 項(xiàng)目簡介
相關(guān)資源推薦