最近从西门子转到三菱PLC编程,发现一些用法和技巧,也有点疑问,所以求助一下大家。这次请教子程序的一些用法。
用法1:同事发给我的程序,他的框架是这样搭的,在程序--扫描---MAIN程序下,新建了几个程序块,分别取名auto,manual,parameter,failure等,分别代表自动,手动,参数,故障各个程序块。这种用法相当于都是OB1主程序,按给定的扫描先后顺序从下到下逐行执行。以前我也是这样弄的。如图
用法2:我想试试别的用法,就是在程序--FB/FUN下面新建几个FC函数,分别取名自动,手动,参数,故障。这几个FC函数我全部采用全局变量。让他们几个FC函数成为“子程序”,在扫描的MAIN程序里都只调用1次(绝不调用第2次)。如图
问题1:上面第1种用法我知道是很成熟的,四平八稳,我看到同事都是这样用的。主要是想开阔一下多了解下, 请问上面第2个用法可靠吗,FC函数对程序指令和全局变量以及标签之类有没有什么限制吗?程序监控等方便吗?有哪些弊端?
问题2:我记得还有一种真正最正宗的子程序用法,就是在主程序END后面,再添加P10(手动)---SRET结束,P11(自动)----SRET结束,P12(参数)----SRET结束。 然后在上面主程序中用CALL指令调用这些子程序。这种调用子程序的程序结构是不是基本淘汰了,好像没有什么人用他了?这种有什么优缺点?
问的有点多,都是一些基本的知识,见笑了,莫怪多多包涵,谢谢。