[摘要] 本文介绍了富士N系列PLC中的宏命令,并从应用角度指出了它的局限性。为更好地解决PLC重复程序段的设计问题,就相关系统软件的改进提出了自己的设想。
一.引言
宏在软件编程中非常重要。宏是由一段程序组成的命令,向子程序一样,在一些场合它用来代替在编程过程中经常出现的重复程序段。可编程序控制器(PLC)的工作方式一般为周期性循环扫描梯形图,集中采样输入,集中驱动输出。它的应用领域一般为以开关量为主的顺控系统,但随着PLC的不断发展,其功能越来越强大,使用场合也越来越多,PLC厂商提供的软件功能也越来越强,这使得在PLC编程过程中使用宏或子程序成为可能。使用宏或子程序可以完成某些应用指令中部存在的复杂处理,也可以是重复形式或同意处理的程序标准化,既减少了程序的长度,也使编程变的容易,提高了编程效率。目前在小型PLC中笔者还未见到可以使用子程序的产品,但富士电机的N系列PLC可以使用宏命令编程,下面就其使用情况和在使用中出现的问题作一些讨论。
二.N系列PLC中宏的使用及其局限性讨论
1.宏的使用简介
富士电机提供的宏命令分两类,一类是它为用户制作好的标准宏命令集,使用该宏命令及可以完成应用指令中没有的某些复杂功能的处理任务;另一类就是用户自己制作宏命令,用户宏命令有调用部和执行部组成,如图1、图2 所示。用户宏命令和主程序的关系如图3 所示。
由此可见在PLC中使用宏命令时,参数交换非常重要,也必不可少。富士电机为用户提供了几组字信息和位信息交换所使用的数据寄存器和辅助继电器,其中每组字信息和位信息的入口参数和出口参数各有16个,富士电机还就参数交换顺序、个数、使用指令以及在宏命令中使用定时器、微分指令等作了规定,编程顺序必须符合图1要求。
2.局限性探讨
由上面的使用简介可以看出,在PLC中使用宏有许多限制和不便,笔者在一次较大规模的软件设计中深有体会,具体体现在以下几点:
(1)使用繁琐。使用宏调用指令CALL后,还要进行参数交换工作以及宏的启动、结束工作,且编程顺序和使用指令有严格限制。当宏程序参数较多时,参数交换时宏的调用部程序变的很长,显然起不到使用宏可以缩短程序长度,容易编程的作用。
(2)使PLC的程序扫描时间变长。如果要多次使用宏程序,必然要多次使用宏调用部,CALL(宏命令调用)、UMEND(宏命令结束)等是必须用到的三条指令。在N系列P型机中,这三条指令都是长执行时间指令,多次使用会大大增加程序扫描时间。在新推出的N系列U型机中,这三条指令已改为短执行时间指令,这个问题以不十分突出。但过长的包括参数交换在内的宏调用部肯定会增加程序扫描时间,使程序的实时性降低。
(3)参数个数限制。若宏程序的功能复杂或长度较长,则使用的参数(位参数或字参数)个数可能会超过16个,这时的宏功能就不能使用了。
三.相关系统软件改进设想
虽然PLC的一般应用场合不需要编制复杂的程序,但在某些特殊的系统或中型以上系统中处理复杂重复的动作就可能用到宏或子程序功能,随意方便的重复程序设计功能在PLC的高级应用中时十分必要的。这就要求PLC厂商对PLC的系统软件进行改进,增强其功能。一般来说,条件循环结构能很好地解决重复程序段的编程问题,具备该功能的PLC必须做到:
1.设置有参数寄存器。如I、J等,可对其进行赋值,并有相应的计算功能。
2.PLC中元器件的地址设置可以事变参数的。入当参数I从0到n变化时,M(I)(或X(I)、Y(I)、T(I)等)相应地就从M(0)(或X(0)、Y(0)、T(0)等)变化到M(n)(或X(n)、Y(n)、T(n)等),而且进位时最好符合PLC中元器件地址进位的要求。在处理重复程序段时,宏命令或子程序中可以使用定参数的元器件,也可以使用变参数的元器件,它们所使用的元器件状态随时到相应的元器件映像寄存器中去取,而所计算出的结果随时存储到相应的元器件映像寄存器中,彻底省掉参数交换环节。这样可解决多次调用宏所造成的程序过长和增加扫描时间的问题,而且不受参数交换顺序、个数等闲置。
3.引入逆跳设计。大多数小型PLC的调转时不能逆跳的,在循环结构中,则必须使用逆跳功能。N系列PLC可以逆跳,但在设计程序中,必须注意要使用条件跳转指令,保证不能出现死循环,且整个程序的扫描时间不能大于用户监视定时器(WDT)所设置的时间。
四.结束语
小型PLC中简单、方便、有效的重复程序段设计功能肯定会实现,尽管富士N系列PLC中的宏命令有一些使用上不便,但笔者认为它认为目前功能最强大的小型PLC。本人愿和有兴趣的同行就PLC深入的使用问题进行多方面的探讨。