电子开发 | 基础入门 | 电路原理图 | 婵⿴鍨伴懜浼村炊閹呮澖濞撴熬鎷� | PLC闁糕晞娅i、锟�   闁靛棗锕ら々褔寮稿⿰鍐╃仒婵炲棎鍨哄﹢鎵博濞嗘瑧绀夐悹鍥敱鐎碉拷 Ctrl+D 闁归潧顑呮慨鈺呭绩閹増顥戦柨娑楃劍閸斿懐鎷姀鈥充憾闁汇劌瀚弫顕€骞愭担纰樺亾閿燂拷濞戞挴鍋撻悹褍鍢查鐔哥▕閻樿京顏遍悹褏鏌夌换妯侯潰閵夘垳绀夐柣銏ゆ涧閻℃瑥顕i埀顒勫矗閹寸姴绔炬繛鍡愬灱缁诲骞冮…鎺旂<.

电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册

閳藉懐鏁哥捄顖氬彆瀵繑澧滈崘宀嬬礉閺堚偓閺傛壆澧楅妴濠勬暩鐎涙劗鏁哥捄顖氬彆瀵繗顓哥粻妤€娅掗妴瀣剁礉閻絻鐭鹃崗顒€绱¢弻銉嚄閹靛鍞� 閻絻鐭鹃崗顒€绱$拋锛勭暬閸c劊鈧劗鏁哥€涙劒绮犳稉姘眽閸涙ê绻€婢跺洦澧滈崘灞烩偓锟�
閳藉棗宕勬径鈺侇劅娴兼艾宕熼悧鍥ㄦ簚鐎圭偘绶�100 c鐠囶叀鈻� chm閺嶇厧绱¢妴鍌濈カ閺傛瑥鍞寸€圭顕涚紒鍡礉鐟曞棛娲婃笟瀣摍婢舵熬绱濋崘鍛啇楠炶¥鈧劗鏁哥€涙劒绮犳稉姘眽閸涙ê绻€婢跺洦澧滈崘灞烩偓锟�
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 其他PLC >> 三菱PLC >> 正文

三菱plc子程序调用,三菱FX PLC学习之子程序调用与循环,CALL和SRET、FOR

作者:佚名    文章来源:网络整理    点击数:695    更新时间:2025/2/3

上次,我们学习了程序流程转移中的条件跳转CJ,这次,我们接着向子程序调用CALL和FOR循环发起进攻吧!

 

显然,子程序调用CALL和FOR循环和条件跳转CJ一样,都是PLC程序中用于流程转移的,所以,上次所学的程序区、主程序结束指令FEND等知识点可不要丢哟~在这里我也不再赘述了,这是为了给读者们省时间,可不是我想偷懒。那么,我们开始这次的学习吧!

 

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

所谓子程序,顾名思义,它是程序的孩子,啊呸,它是区别于主程序而存在的独立程序段,只能呆在副程序区的可怜瓜娃子。就像我之前说的,你妈妈叫你打酱油,有苹果就顺便买几个,这里的打酱油是主程序,买苹果是子程序。酱油是必须要打的,但苹果买不买取决于你CALL不CALL,如果你想把买苹果的钱拿去买辣条,此时买苹果这个子程序就不会被驱动(CALL),不过,你妈妈会不会赏你一个鞋饼就另说了。

 

调用子程序和条件跳转一样,都是PLC的瞬移特异功能,但CJ主要是在主程序区蹦跶,怎么跳转,都逃不过主程序区这五指山,但调用子程序就不一样了,它一跳就直接跳到副程序区去了,就跟孙猴子的筋斗云似的。那么,这个筋斗云怎么用呢?我们接着往下看。

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

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

要想在PLC梯形图中跳出主程序这个牢笼,召唤子程序,就必须要用到子程序调用指令CALL,而且还要捎带上CALL的媳妇SRET。

和CJ不一样的是,子程序调用指令CALL必须要和子程序返回指令SRET成对使用。但又和CJ指令一样,CALL的适用软元件也是分支指针P0~P127,且P63不能用于CALL。所以,在编程时要注意分支指针P的使用,同一标号的P不能同时被CJ指令和CALL指令共用,例如CALL P5中的P5就不能用于CJ P5

 

从编程手册中可以看到,CALL指令仅用于16位,且具有连续执行型和脉冲执行型两种。连续执行型和脉冲执行型的区别于CJ差不多,在此不再赘述。

SRET指令和FEND指令一样无驱动条件,仅用于子程序的返回。在子程序中,执行到子程序返回指令SRET时,立即返回到主程序调用指令的下一行继续往下执行。

 

如上图所示,当驱动条件X0接通(X0=ON),执行CALL P5,程序跳转到副程序区中子程序的入口地址P5处往下执行,执行到SRET指令时,立即返回到主程序区CALL P5的下一行继续往下执行。

所以,我们在使用CALL指令时,千万不要忘了它的媳妇SRET指令哦,所谓“宁拆十座庙 ,不毁一桩婚”,可不要做了那棒打鸳鸯的坏人。

2、子程序嵌套

子程序嵌套,是指子程序中再应用子程序调用指令去调用其他子程序,所谓“三十六计计中计”,一环扣一环,一套嵌一套。当然,这个再次调用的过程类同于主程序调用子程序的过程。

 

如上图所示就是2层嵌套的程序流程图,当驱动条件X0接通,调用子程序1,在执行子程序1的过程中,驱动条件X1接通,调用子程序2,执行完子程序2后,返回到子程序1中调用指令CALL P6的下一行继续执行完子程序1,直到执行到子程序1的返回指令后返回到主程序中调用指令CALL P5的下一行继续往下执行。

这就好比你打酱油,途中去买苹果,买苹果的途中看到辣条忍不住,然后跑去买辣条,卖完辣条再去买苹果,最后才去买酱油,最后回家。这里打酱油是主程序,买苹果是子程序1,买辣条是子程序2。

 


在三菱PLC2N中,调用子程序的嵌套层数,对主程序而言最多有5层,显然,对子程序而言就要少一层,就是4层。如上图的子程序嵌套流程图,子程序2中还可以有3,3中有4,4中有5,5中就不能有6了。

 

3、子程序的软元件使用

按理来说,主程序和子程序的软元件是通用的,也就是说,三菱PLC2N中的软元件,可以用于主程序,也可用于子程序,但有一个比较特殊,那就是定时器。

所有定时器均可用于主程序,但子程序要用定时器的话,就没这么简单了,它只能是T192~T199、T246~T249这10个。

另外,在子程序调用过程中被驱动的软元件,其状态在子程序调用结束后,会保持在最后一次调用时候的状态不变。哪怕这些软元件的驱动条件在子程序调用结束后发生了改变,软元件的状态也不会发生改变。

4、子程序应用什么时候才会用到子程序呢?显然,子程序是区别于主程序的独立程序段,这里的独立,其实就很明显的突出的子程序的作用,那就是把功能模块化,不同的子程序互相独立,各自有着不同的功能,为主程序提供不同的服务。

所以,当系统规模很大、控制要求复杂时,可以把程序分为一块一块的子程序,使程序简化;另外,当某个功能需要多次执行时,也可以编成子程序,需要时直接调用,清晰方便,是主程序简单化。

 

子程序调用的实际应用,在这里我就不举例了,因为这和主程序区别也不大,只不过是功能模块化而言。打败了子程序调用后,我们乘胜追击,继续进攻PLC的FOR循环吧!

二、循环

PLC的循环也是程序流程转移的一种,对应的指令为FOR、NEXT。

 

和子程序调用指令一样,循环指令FOR和NEXT也是成对出现的,但不同的是,FOR指令和NEXT指令都没有驱动条件。在子程序调用指令CALL、SRET中,CALL指令是需要驱动条件的,条件跳转指令CJ 也需驱动条件。

从编程手册中,我们可以看到,FOR指令仅用于16位,且只有连续执行型。这是显然的,因为它没有驱动条件,哪来的脉冲执行型?

所谓FOR循环,指的是重复,在程序中,PLC扫描到FOR-NEXT指令时,对FOR-NEXT指令之间的程序重复执行n次。如下图所示,程序扫描到FOR K5时,在FOR K5NEXT指令之间的程序2重复执行5次,然后再退出循环继续往下执行。

 

虽然FOR指令的适用软元件有很多,但最常用的是常数K,也就是用常数K指定程序重复执行的次数。循环指令的应用相对简单,但有几点还是需要我们注意的。

1、循环嵌套从上文中我们知道了子程序可以嵌套,同样的,循环指令也可以嵌套,而且最多也是5层。如下图所示为5层循环嵌套,如下图所示。

 

如上图所示,若这5层循环中,每层循环的次数均为10,显然,所有循环全部执行完时,第五层循环被执行了100000次,第4层执行了10000次,依次类推,第1层被执行了10次。这就跟剥洋葱似的,“一层一层剥开我的心~”咳咳,抱歉,一不小心就唱起来了,回归正题。

所以,我们在应用循环嵌套时,一定要注意所嵌循环的次数,因为循环次数过多会造成程序运算时间过长,使PLC的响应变慢,甚至超时。

另外,循环是可以并立嵌套的,如下图所示。此时两个并立的循环为一层,也就是说,下图为2层的循环嵌套。

 

2、循环指令使用循环指令使用在使用时要注意以下几点:

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

 

(2)FOR指令和NEXT指令的顺序不能颠倒;

(3)FOR指令和NEXT指令必须同时存在同一程序区,FOR指令在主程序区,对应NEXT指令也必须在主程序区,不能写在副程序区。

关于循环指令的实际应用,这里我也不列举了,因为我累了。但我们知道了它的作用,能看懂程序也就可以了。

那么,这次的学习分享就到这里啦,共勉!


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 个字
[ 查看全部 ] 网友评论
    没有任何评论
閻㈤潧鐡欏鈧崣鎴犵秹閿涙碍鐪归梿鍡欐偅閸氬牆鎮囩猾鑽ゆ暩鐎涙劕鍩楁担婊€绗岄悽浣冪熅閸ュ墽娈戠純鎴犵彲閿涘lc瀹搞儲甯堕幎鈧張锟�,濡紕鏁搁弫鎵暩閻儴鐦�,閸楁洜澧栭張绡岲A缁涘鐡戦敍浣藉疮閽€鍐暩鐠侯垰娴樼純鎴犵彲缁儳宕曢敍灞艰礋瀹搞儳鈻肩敮鍫濆灡闁姳鐜崐绗衡偓鍌涱偨鏉╁骸鍙у▔銊ヤ簳娣団€冲彆娴兼褰块敍姘辨暩鐎涙劕绱戦崣鎴犵秹閿涳拷
最新推荐
鐠у嫭鏋¢崠鍛瑓鏉烇拷
 [闂備礁鎲¢〃鍡椕哄⿰鍕珷闁哄稁鍘肩€氬螖閿曚焦纭堕柕鍫亰閺岋繝宕掗敂钘夘伓]闂備礁鎲¢妵鐐电矆娓氣偓婵″灚寰勭仦绋夸壕婵炴垵纾槐鎵磼閸欐ê宓嗙€规洩绻濆鎾偐瀹割喗姣堥梻浣告惈閻楀棝骞栭锔藉仾闁告洦鍓涢悷褰掓煥閻曞倹瀚�100 c闂佽崵濮村ù鍕箯閿燂拷
 [闂佸搫顦遍崕鎰板垂椤栨埃鏋庨柕蹇嬪灮鐏忕敻鏌ㄩ悤鍌涘]濠电偞鍨堕幐鎼佀囩€圭姰浜圭紒鈧悜鐫犻梺璇插閸愯崵绱撳鍗炲К闁告洦鍓涢々鐑芥偣閹帒濡介柛鈺佸€垮鍫曟倻閸℃浠у┑鐐叉-閺侇煝-TR
 [闂備焦妞垮鈧紒鎻掝煼閹矂鎮欓鍌ゆ祫闁荤姵浜介崝宥夊春閸岀偞鍋eù锝囨嚀缁€鍐┿亜閹垮嫭瀚�]LM324闂佸搫顦弲婊堝礉閺嶎厼妫橀柨鐕傛嫹4~20mA闂佸搫顦遍崕鎴﹀箯閿燂拷1~5V闂備焦鐪归崹褰掓倶濮樿京鐭堥柨鐕傛嫹
 [闂備焦妞垮鈧紒鎻掝煼閹矂鎮欓鍌ゆ祫闁荤姵浜介崝宥夊春閸岀偞鍋eù锝囨嚀缁€鍐┿亜閹垮嫭瀚�]LM386濠碉紕鍋涘﹢杈╁垝椤栫偞鍊垫い鎺嶇劍婵挳鏌熼幑鎰靛殭妞ゆ柨锕弻娑滅疀閹垮啫鍓跺銈冨劜閹瑰洤顕i妸鈺佺畾鐟滃绂嶉敐澶嬬厱闁挎繂鍟俊濂告偨椤栥倖瀚�
 [闂備焦妞垮鈧紒鎻掝煼閹矂鎮欓鍌ゆ祫闁荤姵浜介崝宥夊春閸岀偞鍋eù锝囨嚀缁€鍐┿亜閹垮嫭瀚�]936闂備胶绮敮鎺楁晝閵堝牄浜归柟缁㈠枟閸嬨劌霉閿濆懎鏆熼柣鏂挎嚇閺屾稑螣閻撳孩鐏侀梺璇″枛閿曨亜鐣烽崼鏇熸櫢闁跨噦鎷�
 [闂備礁鎲¢〃鍡椕哄⿰鍕珷闁哄稁鍘肩€氬螖閿曚焦纭堕柕鍫亰閺岋繝宕掗敂钘夘伓]闂佺儵鍓濈敮鎺楀箠鎼淬劍鏅柟閭﹀厴閺嬫牠鏌曡箛銉х?闁靛牊鎸抽幃褰掓偖鐎涙ê顏�+婵犵數鍋為幐鎾疾濞戞埃鍋撻惂鍛婂+闂備胶顢婄紙浼村磿閹绢噮鏁嗛柣鏂垮悑閸庡秹鏌涢弴銊ヤ簻缂佲偓閿燂拷
 [闂傚倷绶¢崑鍛潩閵娾晛鏋侀柕鍫濐槹閸嬨劑姊婚崼鐔恒€掗柟钘夌Ч閹鎷呴悷鎵槰濡炪倖鎸搁幉鈥翅缚椤忓牜鏁嶆繛鍡樺姦閸嬶拷]S7-200PLC闂備焦鐪归崝宀€鈧凹浜為幐鎺楀閵堝棗鍓抽梺缁樻⒐濡叉帡骞忛鈷氬綊鎮崨顔碱伓 S7_2
 [闂佸搫顦遍崕鎰板垂椤栨埃鏋庨柕蹇嬪灮鐏忕敻鏌ㄩ悤鍌涘]S7-200闂佸湱鍘ч悺銊╁箰婵犳艾鍑犻柛鎰ㄦ櫇椤╃兘鎮规担鍛婅础缂佲偓閸曨垱鐓曢煫鍥风悼閸樻粎绱掗幉瀣,STEP7
 [闂佸搫顦遍崕鎰板垂椤栨埃鏋庨柕蹇嬪灮鐏忕敻鏌ㄩ悤鍌涘]ModbusPoll闂備礁鎲$划宀勵敆閻栧獛busSalve闂備胶枪妤犲繘骞忛敓锟�
 [闂佸搫顦遍崕鎰板垂椤栨埃鏋庨柕蹇嬪灮鐏忕敻鏌ㄩ悤鍌涘]STEP7婵犵妲呴崹顏堝礈濠靛牃鍋撳顓犳噰闁哄苯鐭佺粻娑㈠棘鐠恒劍鈻屽┑鐐差嚟婵即宕愰弴鐘哄С闁跨噦鎷� Smart_
 [闂佸搫顦遍崕鎰板垂椤栨埃鏋庨柕蹇嬪灮鐏忕敻鏌ㄩ悤鍌涘]Modbus闂佽崵濮撮鍛村疮閹惰姤鍎婃い鏍ㄧ矊閸ㄦ繈鏌涢幘妤€鍊荤憴锟� v1.024 缂傚倸鍊风欢銈夊箯閿燂拷
 [闂佸搫顦遍崕鎰板垂椤栨埃鏋庨柕蹇嬪灮鐏忕敻鏌ㄩ悤鍌涘]Modscan32闂備礁鎲$划宀勵敆閻栧獛sim32,modb
 [闂備焦妞垮鈧紒鎻掝煼閹矂鎮欓鍌ゆ祫闁荤姵浜介崝宥夊春閸岀偞鍋eù锝囨嚀缁€鍐┿亜閹垮嫭瀚�]89c51闂備胶枪缁绘劙藝闁秵鍋熸繛鎴欏灩濡﹢姊洪锝囶灱闂傚棗缍婇弻锝夘敂閸℃鐝㈢紓浣介哺閻涱槝otues
 [闂備焦妞垮鈧紒鎻掝煼閹矂鎮欓鍌ゆ祫闁荤姵浜介崝宥夊春閸岀偞鍋eù锝囨嚀缁€鍐┿亜閹垮嫭瀚�]濠电偞鍨堕幐绋棵洪妶澶婄濡わ絽鍟崒銊╂煕閻愭潙袨otues濠电偛顕慨鎯р枖閺囩儑鑰块柨娑樺閻瑩鎮楅敐搴濈敖缁炬澘绉电换婵婎槼闁告梹顨婇幃銉╂晸閿燂拷
 [闂備焦妞垮鈧紒鎻掝煼閹矂鎮欓鍌ゆ祫闁荤姵浜介崝宥夊春閸岀偞鍋eù锝囨嚀缁€鍐┿亜閹垮嫭瀚�]51闂備礁鎲¢〃鍡椕哄⿰鍕珷闁哄稁鍘肩€氬鏌涘┑鍡楊仼闁秆冿功缁辨帞鈧綀鍩栫€氾拷 protues濠电偛顕慨鎯р枖閺囩儑鑰块柨鐕傛嫹
閺堚偓閺傜増鏋冪粩锟�
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询