18luck网站

18luck网站電子設計 | 18luck网站Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 18luck网站 >> 18luck平台 >> 其他PLC >> 三菱PLC >> 正文

三菱plc子程序調用,三菱FX PLC學習之子程序調用與循環,CALL和SRET、FOR

作者:佚名    文章來源:網絡整理    點擊數:    更新時間:2025/2/3

上次,我們(men) 學習(xi) 了程序流程轉移中的條件跳轉CJ,這次,我們(men) 接著向子程序調用CALL和FOR循環發起進攻吧!

 

顯然,子程序調用CALL和FOR循環和條件跳轉CJ一樣,都是PLC程序中用於(yu) 流程轉移的,所以,上次所學的程序區、主程序結束指令FEND等知識點可不要丟(diu) 喲~在這裏我也不再贅述了,這是為(wei) 了給讀者們(men) 省時間,可不是我想偷懶。那麽(me) ,我們(men) 開始這次的學習(xi) 吧!

 

一、子程序調用(CALL、SRET)

所謂子程序,顧名思義(yi) ,它是程序的孩子,啊呸,它是區別於(yu) 主程序而存在的獨立程序段,隻能呆在副程序區的可憐瓜娃子。就像我之前說的,你媽媽叫你打醬油,有蘋果就順便買(mai) 幾個(ge) ,這裏的打醬油是主程序,買(mai) 蘋果是子程序。醬油是必須要打的,但蘋果買(mai) 不買(mai) 取決(jue) 於(yu) 你CALL不CALL,如果你想把買(mai) 蘋果的錢拿去買(mai) 辣條,此時買(mai) 蘋果這個(ge) 子程序就不會(hui) 被驅動(CALL),不過,你媽媽會(hui) 不會(hui) 賞你一個(ge) 鞋餅就另說了。

 

調用子程序和條件跳轉一樣,都是PLC的瞬移特異功能,但CJ主要是在主程序區蹦躂,怎麽(me) 跳轉,都逃不過主程序區這五指山,但調用子程序就不一樣了,它一跳就直接跳到副程序區去了,就跟孫猴子的筋鬥雲(yun) 似的。那麽(me) ,這個(ge) 筋鬥雲(yun) 怎麽(me) 用呢?我們(men) 接著往下看。

1、子程序調用指令CALL、SRET

三菱子程序調用指令CALL、SRET 

要想在PLC梯形圖中跳出主程序這個(ge) 牢籠,召喚子程序,就必須要用到子程序調用指令CALL,而且還要捎帶上CALL的媳婦SRET。

和CJ不一樣的是,子程序調用指令CALL必須要和子程序返回指令SRET成對使用。但又和CJ指令一樣,CALL的適用軟元件也是分支指針P0~P127,且P63不能用於(yu) CALL。所以,在編程時要注意分支指針P的使用,同一標號的P不能同時被CJ指令和CALL指令共用,例如CALL P5中的P5就不能用於(yu) CJ P5

 

從(cong) 編程手冊(ce) 中可以看到,CALL指令僅(jin) 用於(yu) 16位,且具有連續執行型和脈衝(chong) 執行型兩(liang) 種。連續執行型和脈衝(chong) 執行型的區別於(yu) CJ差不多,在此不再贅述。

SRET指令和FEND指令一樣無驅動條件,僅(jin) 用於(yu) 子程序的返回。在子程序中,執行到子程序返回指令SRET時,立即返回到主程序調用指令的下一行繼續往下執行。

 

如上圖所示,當驅動條件X0接通(X0=ON),執行CALL P5,程序跳轉到副程序區中子程序的入口地址P5處往下執行,執行到SRET指令時,立即返回到主程序區CALL P5的下一行繼續往下執行。

所以,我們(men) 在使用CALL指令時,千萬(wan) 不要忘了它的媳婦SRET指令哦,所謂“寧拆十座廟 ,不毀一樁婚”,可不要做了那棒打鴛鴦的壞人。

2、子程序嵌套

子程序嵌套,是指子程序中再應用子程序調用指令去調用其他子程序,所謂“三十六計計中計”,一環扣一環,一套嵌一套。當然,這個(ge) 再次調用的過程類同於(yu) 主程序調用子程序的過程。

 

如上圖所示就是2層嵌套的程序流程圖,當驅動條件X0接通,調用子程序1,在執行子程序1的過程中,驅動條件X1接通,調用子程序2,執行完子程序2後,返回到子程序1中調用指令CALL P6的下一行繼續執行完子程序1,直到執行到子程序1的返回指令後返回到主程序中調用指令CALL P5的下一行繼續往下執行。

這就好比你打醬油,途中去買(mai) 蘋果,買(mai) 蘋果的途中看到辣條忍不住,然後跑去買(mai) 辣條,賣完辣條再去買(mai) 蘋果,最後才去買(mai) 醬油,最後回家。這裏打醬油是主程序,買(mai) 蘋果是子程序1,買(mai) 辣條是子程序2。

 


在三菱PLC2N中,調用子程序的嵌套層數,對主程序而言最多有5層,顯然,對子程序而言就要少一層,就是4層。如上圖的子程序嵌套流程圖,子程序2中還可以有3,3中有4,4中有5,5中就不能有6了。

 

3、子程序的軟元件使用

按理來說,主程序和子程序的軟元件是通用的,也就是說,三菱PLC2N中的軟元件,可以用於(yu) 主程序,也可用於(yu) 子程序,但有一個(ge) 比較特殊,那就是定時器。

所有定時器均可用於(yu) 主程序,但子程序要用定時器的話,就沒這麽(me) 簡單了,它隻能是T192~T199、T246~T249這10個(ge) 。

另外,在子程序調用過程中被驅動的軟元件,其狀態在子程序調用結束後,會(hui) 保持在最後一次調用時候的狀態不變。哪怕這些軟元件的驅動條件在子程序調用結束後發生了改變,軟元件的狀態也不會(hui) 發生改變。

4、子程序應用什麽(me) 時候才會(hui) 用到子程序呢?顯然,子程序是區別於(yu) 主程序的獨立程序段,這裏的獨立,其實就很明顯的突出的子程序的作用,那就是把功能模塊化,不同的子程序互相獨立,各自有著不同的功能,為(wei) 主程序提供不同的服務。

所以,當係統規模很大、控製要求複雜時,可以把程序分為(wei) 一塊一塊的子程序,使程序簡化;另外,當某個(ge) 功能需要多次執行時,也可以編成子程序,需要時直接調用,清晰方便,是主程序簡單化。

 

子程序調用的實際應用,在這裏我就不舉(ju) 例了,因為(wei) 這和主程序區別也不大,隻不過是功能模塊化而言。打敗了子程序調用後,我們(men) 乘勝追擊,繼續進攻PLC的FOR循環吧!

二、循環

PLC的循環也是程序流程轉移的一種,對應的指令為(wei) FOR、NEXT。

 

和子程序調用指令一樣,循環指令FOR和NEXT也是成對出現的,但不同的是,FOR指令和NEXT指令都沒有驅動條件。在子程序調用指令CALL、SRET中,CALL指令是需要驅動條件的,條件跳轉指令CJ 也需驅動條件。

從(cong) 編程手冊(ce) 中,我們(men) 可以看到,FOR指令僅(jin) 用於(yu) 16位,且隻有連續執行型。這是顯然的,因為(wei) 它沒有驅動條件,哪來的脈衝(chong) 執行型?

所謂FOR循環,指的是重複,在程序中,PLC掃描到FOR-NEXT指令時,對FOR-NEXT指令之間的程序重複執行n次。如下圖所示,程序掃描到FOR K5時,在FOR K5與(yu) NEXT指令之間的程序2重複執行5次,然後再退出循環繼續往下執行。

 

雖然FOR指令的適用軟元件有很多,但最常用的是常數K,也就是用常數K指定程序重複執行的次數。循環指令的應用相對簡單,但有幾點還是需要我們(men) 注意的。

1、循環嵌套從(cong) 上文中我們(men) 知道了子程序可以嵌套,同樣的,循環指令也可以嵌套,而且最多也是5層。如下圖所示為(wei) 5層循環嵌套,如下圖所示。

 

如上圖所示,若這5層循環中,每層循環的次數均為(wei) 10,顯然,所有循環全部執行完時,第五層循環被執行了100000次,第4層執行了10000次,依次類推,第1層被執行了10次。這就跟剝洋蔥似的,“一層一層剝開我的心~”咳咳,抱歉,一不小心就唱起來了,回歸正題。

所以,我們(men) 在應用循環嵌套時,一定要注意所嵌循環的次數,因為(wei) 循環次數過多會(hui) 造成程序運算時間過長,使PLC的響應變慢,甚至超時。

另外,循環是可以並立嵌套的,如下圖所示。此時兩(liang) 個(ge) 並立的循環為(wei) 一層,也就是說,下圖為(wei) 2層的循環嵌套。

 

2、循環指令使用循環指令使用在使用時要注意以下幾點:

(1)循環指令FOR必須要和NEXT指令成對使用,缺一不可,同生共死;

 

(2)FOR指令和NEXT指令的順序不能顛倒;

(3)FOR指令和NEXT指令必須同時存在同一程序區,FOR指令在主程序區,對應NEXT指令也必須在主程序區,不能寫(xie) 在副程序區。

關(guan) 於(yu) 循環指令的實際應用,這裏我也不列舉(ju) 了,因為(wei) 我累了。但我們(men) 知道了它的作用,能看懂程序也就可以了。

那麽(me) ,這次的學習(xi) 分享就到這裏啦,共勉!

Tags:子程序,子程序調用,三菱plc  
責任編輯:admin
相關文章列表
三菱PLC的FX2N-2AD模擬量輸入模塊簡述 三菱plc模擬量編程梯形圖實
三菱PLC編程係列學習之七—常用特殊功能模塊,BFM
三菱plc學習入門(一,認識三菱plc)_FX1N-24MT接線圖
三菱plc學習入門(二,三菱plc指令,觸點比較,計數器,交替,四
三菱PLC定時器和計數器,三菱FX PLC入門之定時器和計數器
三菱PLC直接尋址、立即尋址和變址尋址,三菱FX PLC學習之尋址方式
三菱PLC跳轉指令用法,三菱FX PLC學習之條件轉移,轉移指令CJ
三菱PLC比較指令用法,三菱FX PLC學習之比較指令,CMP和ZCP
三菱plc定位控製與伺服的應用(二,原點回歸指令)_三菱plc伺服控
三菱FX3U PLC常用功能指令詳解,三菱FX3U PLC功能指令表
【幹貨】三菱PLC實現定位控製的編程方法
三菱plc FX3U與三菱E800變頻器專用指令通信應用,IVDR指令和 IVCK
三菱PLC的modbus-rtu通訊實例_三菱小型PLC FX3U係列Modbus 通訊教
三菱FX2NPLC與三菱變頻器ModbusRTU協議通訊應用
三菱PLC控製案例——自動門控製
三菱PLC功能指令介紹(二)比較指令和四則運算指令、區間複位指令
一表帶你了解最常用三菱FX3U PLC軟元件
三菱FX3U PLC的自動售貨機程序設計案例詳解(附程序代碼)四則運
三菱PLC特殊功能模塊實戰教程,(Buffer Memory,簡稱BFM)FROM、
一文教你讀寫BFM來操作模擬量模塊!三菱PLC模擬量采集和輸出
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
最新推薦
關於我們 - 聯係我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁麵
下到頁底
晶體管查詢