首页 理论教育 子程序处理:优化你的程序

子程序处理:优化你的程序

时间:2023-06-23 理论教育 版权反馈
【摘要】:因为200.00、200.01、200.02地址只是在子程序中引用,不是实际要处理的地址,故又称之为形式参数(地址)。那样,即可用一个子程序,处理多个逻辑关系雷同,但地址不同问题。其目的是把形式参数的值赋给实际参数,完成调子程序,处理0.00、“工作”及202.00的目的。在子程序中,怎样增加赋值处理,在此略。至于可使用的子程序号,不同的机型也不同。

子程序处理:优化你的程序

逻辑关系是相同的,还可用子程序、宏处理,而不必对每一个位都做雷同的编程。但有关地址要分配好。

OMRONPLC子程序无法带参数调用。但可作适当处理,达到带参数调用的目的。而且,也只有带参数调用子程序,才能在逻辑关系相同问题的处理时,简化编程。

1.带参数调用子程序处理

图3-75b所示为子程序体。其使用的地址有200.00、200.01、200.02三个。200.00为输入信号,在程序中不产生输出。200.01与200.02产生输出,而且,其触点还作为输入的一部分,起到反馈作用。

该子程序的功能是,200.00 ON、OFF一次,200.01 ON,再ON、OFF一次,200.01 OFF。当然,这只是一个例子。其实,子程序的内容不同,可实现的功能也将不同。

显然,如不是带参数调用子程序,那只是对200.01的处理,对别的地址就不起作用。如要想对雷同的逻辑都用它处理,就要带参数调用它。

这里用的参数就是200.00、200.01、200.02、200.00为输入参数,200.01、200.02既有输入,又有输出,为输入输出参数。因为200.00、200.01、200.02地址只是在子程序中引用,不是实际要处理的地址,故又称之为形式参数(地址)。

要带参数调用,就要在调用子程序前,先对形式参数赋值,把要处理的地址,即实际参数值赋给形式参数。在调子程序之后,则要做相反的赋值,把形式参数赋给实际参数。那样,即可用一个子程序,处理多个逻辑关系雷同,但地址不同问题。

978-7-111-26319-7-Chapter03-184.jpg

图3-75 带参数调用子程序

图3-75a所示的就是一个带参数调用例子。图中P_ON为常为ON的触点,说明在它之后的所有指令,在每扫描周期都将执行。在这些指令中,先是3组简单的赋值逻辑,把0.00、“工作”、201.00的值(0或1)分别赋值给200.00、200.01、200.02。其目的是把实际参数的值赋给形式参数,使调子程序时,将按0.00、“工作”、201.00实际值处理。

接着为调子程序。显然,如果执行后,200.00、200.01、200.02的值将取决于调它之前的0.00、“工作”、201.00实际值。

调子程序指令之后,有两组简单的赋值逻辑,把200.01赋值给“工作”、200.02赋值给201.00。其目的是把形式参数的值赋给实际参数,完成调子程序,处理0.00、“工作”及202.00的目的。

978-7-111-26319-7-Chapter03-185.jpg

图3-76 不同参 数调子程序

为了简化调用时赋值的处理,也可在调子程序前指定一个存储参数的地址———指针地址。另外,再在子程序中,增加一些有关用这个指针地址,进行上述两种赋值的逻辑。

图3-76是主程序,它调两次子程序,第一次调制前,先把常数0赋值给202通道(在子程序中指定为指针地址,如图3-76所示),然后才调子程序1。这时,希望用输入点0.00去控制输出点10.00。第二次调制前,先把常数1赋值给202通道,然后才调子程序1。这时,希望用输入点0.01去控制输出点10.01,等等。由于在这两次调之前,对指针地址的赋值不同,其结果也将是不同的。在子程序中,怎样增加赋值处理,在此略。

2.用宏处理(www.xing528.com)

OMRON PLC子程序无法带参数调用,但它有宏指令MCRO(99),也是用以调子程序,只是它为带参数的子程序调用。宏指令MCRO梯形图符号为

978-7-111-26319-7-Chapter03-186.jpg

指令块中99,为本指令的功能码。N为将调用的子程序号。I1为输入首地址,O1输出首地址。这里的I1、O1即为形式参数。

I1为输入,从通道I1开始有四个通道,I1、I1+1、I1+2、I1+3,可做输入实际参数,从O1为输出,从通道O1开始也有四个通道,O1、O1+1、O1+2、O1+3,可做输出实际参数。子程序中的对应地址为形式参数。只是不同机型,形式参数地址也不同。如CPM机与I对应的地址为232~235,与O对应的为236~239。CQM1与I对应的地址为96~99,与O对应的为196~199。C200HS,E,G,X机分别为290~293及294~297。

至于可使用的子程序号,不同的机型也不同。对CPM1为0~49,对C200HS为0到99,对CQM1、C200HX等为0~255。

当逻辑条件满足,执行本指令;否则不执行。本指令可正常执行;也可微分执行,即只在逻辑条件满足的第一周期执行。

本指令执行前,先把I1~I4的内容传送给子程序的形式参数,如为CPM机,232~235。然后执行子程序N。

执行完子程序后,再把235~239的内容传送给O1~O3。

图3-77所示出宏的调用简图。当然,子程序中形式参数地址没有使用时,相应的实参内容也不会改变。

图3-78为运用宏指令的实例。图3-78b为子程序。它的输入只用一个位,232.00。输出用了两个位,236.00、236.08。图3-78a为主程序,这里作了两次调用。

第一次调用时,实际参数为0通道及10通道,0.00对应于232.00,10.00对应于236.00,10.08对应于236.08。这可实现用0.00对10.00起停控制。

第二次调用时,实际参数为1通道及11通道,1.00对应于232.00,11.00对应于236.00,11.08对应于236.08。这可实现用1.00对11.00起停控制。

978-7-111-26319-7-Chapter03-187.jpg

图3-77 宏的调用简图

978-7-111-26319-7-Chapter03-188.jpg

图3-78 宏的调用

宏虽可带参数调用,调用较方便,但其结构是受限制的。其子程序只能是由触点的串、并构合,而且,其地址也要严格对应。否则不能用,或在用时要作适当处理。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈