1.主程序和END指令
FS-0iD的PMC程序一般采用分时管理线性化结构,其用户主程序可分为高速扫描和普通扫描两部分,两者通过程序结束指令END1、END2区分,END1代表高速扫描程序结束;END2代表普通扫描程序的结束。在图9.1-1所示使用2级高速扫描程序的PMC上,第1、2级高速程序的结束指令分别为END1、END2,普通程序结束指令为END3(SUB48)。如果不使用高速扫描程序,其高速程序结束指令END1(END2)也需要编制,指令应编制在程序的起始位置。
图9.1-1 主程序结构
2.子程序和SPE指令
PMC程序也可以采用主、子程序分块式结构。子程序以子程序号(SP)起始、指令SPE结束。采用主、子程序结构的PMC程序从上到下的排列次序依次为高速扫描程序、普通扫描程序、子程序,子程序需要统一编制在主程序之后。由于子程序结束指令SPE仅代表某一子程序的结束,当程序中有多个子程序时,在全部子程序编制完成后需要用END(SUB64)指令结束梯形图程序。
主、子程序分块式结构的PMC程序如图9.1-2所示。
图9.1-2 主、子程序结构
3.子程序的调用和返回
在使用主、子程序结构的PMC程序上,子程序应以SP(SUB71)指令作为开始标记,以SPE(SUB72)指令作为结束标记,不同子程序通过子程序号P区分,子程序号P需要在SP指令中定义,0iD-PMC/L的子程序号范围为P1~P512,0iD-PMC的子程序号范围为P1~P5000。子程序定义指令编程格式如图9.1-3所示。
子程序可通过主程序中的调用指令调用,子程序调用可分条件调用和无条件调用两种,调用指令的编程格式如图9.1-4所示。条件调用指令只有在ACT信号为“1”时才能调用子程序;无条件调用指令可直接调用子程序。
图9.1-3 子程序定义(www.xing528.com)
a)子程序开始 b)子程序结束
图9.1-4 子程序调用
a)条件调用 b)无条件调用
在正常情况下,子程序执行完成后可通过结束指令SPE返回到主程序,并继续执行调用指令后的主程序;如需要返回到主程序的特定位置,则需要编制JMPC(SUB73)指令,JMPC返回的位置应通过LBL(SUB69)标记,JMPC指令编程格式如图9.1-5所示。
图9.1-5 子程序返回
a)正常返回 b)特定位置返回
FS-0iD的PMC子程序设计需要注意以下问题。
1)返回指令JMPC的目标位置不可在高速扫描中或子程序调用指令(CALL/CALLU)之前,也不能在后述的公共线控制区域内。
2)返回指令JMPC必须指定返回目标,其目标位置标记LBL可以和其他JPMB指令共用,但LBL指令的编号(L1~L999)不可重复。
3)子程序调用CALL、CALLU指令可与后述的程序跳过指令JPM(SUB10)、标记跳转指令JPMB(SUB68)同时使用。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。