單價(jià): | 1100.00元/臺 |
發(fā)貨期限: | 自買家付款之日起 天內(nèi)發(fā)貨 |
所在地: | 直轄市 上海 上海松江 |
有效期至: | 長期有效 |
發(fā)布時(shí)間: | 2023-11-25 01:41 |
最后更新: | 2023-11-25 01:41 |
瀏覽次數(shù): | 84 |
采購咨詢: |
請賣家聯(lián)系我
|
模擬量模塊6ES7231-7PC22-0XA0西門子觸摸屏代理商西門子交換機(jī)代理商
所謂子程序,它是區(qū)別于主程序而存在的獨(dú)立程序段,只能呆在副程序區(qū)的可憐瓜娃子。就像我之前說的,你媽媽叫你打醬油,有蘋果就順便買幾個(gè),這里的打醬油是主程序,買蘋果是子程序。
西門子 | 模塊 | 6ES7512-1DK01-0AB0 |
西門子 | 模塊 | 6ES7132-6BF01-0AA0 |
Siemens | 電纜 | 6ES7288-6EC01-0AA0 |
西門子 | 存儲卡 | 6ES7954-8LL03-0AA0 |
西門子 | 交換機(jī) | 6GK5216-0BA00-2AC2 |
西門子 | 交換機(jī) | 6GK5208-0BA00-2AC2 |
Siemens | 模塊 | 6ES7288-1CR60-0AA0 |
醬油是必須要打的,但蘋果買不買取決于你CALL不CALL,如果你想把買蘋果的錢拿去買辣條,此時(shí)買蘋果這個(gè)子程序就不會被驅(qū)動(CALL),不過,你媽媽會不會賞你一個(gè)鞋餅就另說了。
調(diào)用子程序和條件跳轉(zhuǎn)一樣,都是PLC的瞬移特異功能,但CJ主要是在主程序區(qū)蹦跶,怎么跳轉(zhuǎn),都逃不過主程序區(qū)這五指山,但調(diào)用子程序就不一樣了,它一跳就直接跳到副程序區(qū)去了,就跟孫猴子的筋斗云似的。那么,這個(gè)筋斗云怎么用呢?我們接著往下看。
1、子程序調(diào)用指令CALL、SRET
要想在PLC梯形圖中跳出主程序這個(gè)牢籠,召喚子程序,就必須要用到子程序調(diào)用指令CALL,而且還要捎帶上CALL的媳婦SRET。
和CJ不一樣的是,子程序調(diào)用指令CALL必須要和子程序返回指令SRET成對使用。但又和CJ指令一樣,CALL的適用軟元件也是分支指針P0~P127,且P63不能用于CALL。
所以,在編程時(shí)要注意分支指針P的使用,同一標(biāo)號的P不能同時(shí)被CJ指令和CALL指令共用,例如CALL P5中的P5就不能用于CJ P5。
從編程手冊中可以看到,CALL指令僅用于16位,且具有連續(xù)執(zhí)行型和脈沖執(zhí)行型兩種。連續(xù)執(zhí)行型和脈沖執(zhí)行型的區(qū)別于CJ差不多,在此不再贅述。
SRET指令和FEND指令一樣無驅(qū)動條件,僅用于子程序的返回。在子程序中,執(zhí)行到子程序返回指令SRET時(shí),立即返回到主程序調(diào)用指令的下一行繼續(xù)往下執(zhí)行。
如上圖所示,當(dāng)驅(qū)動條件X0接通(X0=ON),執(zhí)行CALL P5,程序跳轉(zhuǎn)到副程序區(qū)中子程序的入口地址P5處往下執(zhí)行,執(zhí)行到SRET指令時(shí),立即返回到主程序區(qū)CALL P5的下一行繼續(xù)往下執(zhí)行。
2、子程序嵌套
子程序嵌套,是指子程序中再應(yīng)用子程序調(diào)用指令去調(diào)用其他子程序,所謂“三十六計(jì)計(jì)中計(jì)”,一環(huán)扣一環(huán),一套嵌一套。當(dāng)然,這個(gè)再次調(diào)用的過程類同于主程序調(diào)用子程序的過程。
如上圖所示就是2層嵌套的程序流程圖,當(dāng)驅(qū)動條件X0接通,調(diào)用子程序1,在執(zhí)行子程序1的過程中,驅(qū)動條件X1接通,調(diào)用子程序2,執(zhí)行完子程序2后,返回到子程序1中調(diào)用指令CALL P6的下一行繼續(xù)執(zhí)行完子程序1,直到執(zhí)行到子程序1的返回指令后返回到主程序中調(diào)用指令CALL P5的下一行繼續(xù)往下執(zhí)行。
在三菱PLC2N中,調(diào)用子程序的嵌套層數(shù),對主程序而言多有5層,顯然,對子程序而言就要少一層,就是4層。如上圖的子程序嵌套流程圖,子程序2中還可以有3,3中有4,4中有5,5中就不能有6了。
3、子程序的軟元件使用
按理來說,主程序和子程序的軟元件是通用的,也就是說,三菱PLC2N中的軟元件,可以用于主程序,也可用于子程序,但有一個(gè)比較特殊,那就是定時(shí)器。
所有定時(shí)器均可用于主程序,但子程序要用定時(shí)器的話,就沒這么簡單了,它只能是T192~T199、T246~T249這10個(gè)。
另外,在子程序調(diào)用過程中被驅(qū)動的軟元件,其狀態(tài)在子程序調(diào)用結(jié)束后,會保持在后一次調(diào)用時(shí)候的狀態(tài)不變。哪怕這些軟元件的驅(qū)動條件在子程序調(diào)用結(jié)束后發(fā)生了改變,軟元件的狀態(tài)也不會發(fā)生改變。
4、子程序應(yīng)用
什么時(shí)候才會用到子程序呢?顯然,子程序是區(qū)別于主程序的獨(dú)立程序段,這里的獨(dú)立,其實(shí)就很明顯的突出的子程序的作用,那就是把功能模塊化,不同的子程序互相獨(dú)立,各自有著不同的功能,為主程序提供不同的服務(wù)。
所以,當(dāng)系統(tǒng)規(guī)模很大、控制要求復(fù)雜時(shí),可以把程序分為一塊一塊的子程序,使程序簡化;另外,當(dāng)某個(gè)功能需要多次執(zhí)行時(shí),也可以編成子程序,需要時(shí)直接調(diào)用,清晰方便,是主程序簡單化。
子程序調(diào)用的實(shí)際應(yīng)用,在這里我就不舉例了,因?yàn)檫@和主程序區(qū)別也不大,只不過是功能模塊化而言。打敗了子程序調(diào)用后,我們乘勝追擊,繼續(xù)進(jìn)攻PLC的FOR循環(huán)吧!
二、循環(huán)
PLC的循環(huán)也是程序流程轉(zhuǎn)移的一種,對應(yīng)的指令為FOR、NEXT。
和子程序調(diào)用指令一樣,循環(huán)指令FOR和NEXT也是成對出現(xiàn)的,但不同的是,F(xiàn)OR指令和NEXT指令都沒有驅(qū)動條件。在子程序調(diào)用指令CALL、SRET中,CALL指令是需要驅(qū)動條件的,條件跳轉(zhuǎn)指令CJ 也需驅(qū)動條件。
從編程手冊中,我們可以看到,F(xiàn)OR指令僅用于16位,且只有連續(xù)執(zhí)行型。這是顯然的,因?yàn)樗鼪]有驅(qū)動條件,哪來的脈沖執(zhí)行型?
所謂FOR循環(huán),指的是重復(fù),在程序中,PLC掃描到FOR-NEXT指令時(shí),對FOR-NEXT指令之間的程序重復(fù)執(zhí)行n次。如下圖所示,程序掃描到FOR K5時(shí),在FOR K5與NEXT指令之間的程序2重復(fù)執(zhí)行5次,然后再退出循環(huán)繼續(xù)往下執(zhí)行。
雖然FOR指令的適用軟元件有很多,但常用的是常數(shù)K,也就是用常數(shù)K指定程序重復(fù)執(zhí)行的次數(shù)。循環(huán)指令的應(yīng)用相對簡單,但有幾點(diǎn)還是需要我們注意的。
1、循環(huán)嵌套
從上文中我們知道了子程序可以嵌套,同樣的,循環(huán)指令也可以嵌套,而且多也是5層。如下圖所示為5層循環(huán)嵌套,如下圖所示。
如上圖所示,若這5層循環(huán)中,每層循環(huán)的次數(shù)均為10,顯然,所有循環(huán)全部執(zhí)行完時(shí),第五層循環(huán)被執(zhí)行了100000次,第4層執(zhí)行了10000次,依次類推,第1層被執(zhí)行了10次。這就跟剝洋蔥似的,“一層一層剝開我的心~”咳咳,抱歉,一不小心就唱起來了,回歸正題。
所以,我們在應(yīng)用循環(huán)嵌套時(shí),一定要注意所嵌循環(huán)的次數(shù),因?yàn)檠h(huán)次數(shù)過多會造成程序運(yùn)算時(shí)間過長,使PLC的響應(yīng)變慢,甚至超時(shí)。
另外,循環(huán)是可以并立嵌套的,如下圖所示。此時(shí)兩個(gè)并立的循環(huán)為一層,也就是說,下圖為2層的循環(huán)嵌套。
2、循環(huán)指令使用
循環(huán)指令使用在使用時(shí)要注意以下幾點(diǎn):
(1)循環(huán)指令FOR必須要和NEXT指令成對使用,缺一不可,同生共死;
(2)FOR指令和NEXT指令的順序不能顛倒;
(3)FOR指令和NEXT指令必須同時(shí)存在同一程序區(qū),F(xiàn)OR指令在主程序區(qū),對應(yīng)NEXT指令也必須在主程序區(qū),不能寫在副程序區(qū)。
6AV2181-8XP00-0AX0 |
6EP1437-2BA20 |
6EP3337-8SB00-0AY0 |
6ES7288-7DP01-0AA0 |
6ES7132-6BH01-0BA0 |
6ES7231-5PD32-0XB0 |
CTS7214-1AD33-0X24 |
6ES7215-1BG40-0XB0 |
6ES7288-2QT16-0AA0 |
6ES7512-1DK01-0AB0 |
6ES7132-6BF01-0AA0 |
6ES7288-6EC01-0AA0 |
6ES7954-8LL03-0AA0 |
模擬量模塊6ES7231-7PC22-0XA0西門子觸摸屏代理商西門子交換機(jī)代理商模擬量模塊6ES7231-7PC22-0XA0西門子觸摸屏代理商西門子交換機(jī)代理商模擬量模塊6ES7231-7PC22-0XA0西門子觸摸屏代理商西門子交換機(jī)代理商西門子電機(jī)代理商西門子變頻器代理商