发表于:2013/10/8 20:13:40
#0楼
网友秀全说:“我编写的功能FC1里边有一个SR置位复位块,在OB1调用4次FC1,怎么搞也不行,后来我把它改为分开的置位、复位指令就好了。我怎么也想不明白怎么回事。”
下图是他的FC的局部程序。
首先要注意SR触发器用来对图中的M0.0置位和复位,同时也对Q输出端可选的BOOL变量置位和复位。程序中的M0.0和局部变量#zuudianyuan(主电源)的作用是重复的,可以只用其中之一。
SR触发器有记忆和保持的功能。调用一次FC1,M0.0用来记忆一台设备的启动、停止命令。调用两次FC1,能用M0.0同时记忆两台设备的启动、停止命令吗?当然不行。
要想多次调用FC,其中有记忆功能的变量不能使用绝对地址,也不能使用局部变量中的临时变量。
最简单的解决方法是删除图中的线圈,将M0.0改为要控制的#zuudianyuan。
对于S7-300来说,SR方框上的地址可以使用输出参数。但是对于S7-200的子程序(相当于S7-300的FC),如果使用输出参数,多次调用该子程序时就会出错。应改为IN_OUT参数。
我是廖常初,是一个高校的老师,曾在企业从事机械、电气技术工作,长期从事工业控制和PLC应用的教学、科研和工程应用工作。博客中的日志除注明外均为原创。愿意在此与大家探讨工控的问题!
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/
廖常初工控博客地址:http://blog.gkong.com/blog.asp?name=liaochangchu
我曾写过几本小书: 《PLC编程及应用》第3版(S7-200)、《S7-300/400 PLC应用技术》第3版、《FX系列PLC编程及应用》第2版、《S7-200 PLC编程及应用》、《PLC基础及应用》第2版(FX系列大专教材)、《西门子人机界面(触摸屏)组态与应用技术》、《西门子工业通信网络组态编程与故障诊断》、《S7-1200 PLC编程及应用》第2版、《跟我动手学S7-300/400 PLC》、《跟我动手学FX系列PLC》
机械工业出版社廖常初图书专题:http://www.gkong.com/zt/liaochangchu/