PLC项目中,子程序已被多次调用,由于新的需求,修改了这个子程序,此时,问题就来了。
“子例程无效引用”!




“STL”让我们轻松解决。
首先,关闭图4弹窗“提示”。然后,切换到“STL”编辑器模式。
当从LAD(梯形图) 切换到 STL 时,什么——“无效程序段”!
看到下图5,不要被吓到。

开始拯救操作:
步骤1——双击子程序"电机启停_控制"SBR1,进入子程序的编辑界面,如下图6

步骤2——将子程序SBR1中,最后1行注释掉,变量表中新增的“运行状态”删除(见图7),保存编译。此时,可以看到编译结果--0个错误。

在“STL”模式下,双击主程序“MAIN(OB1)”,看到的可能还是如图5--“无效程序段”,莫慌,切换到“LAD”下,已经恢复显示正常,再次切换到“STL”模式下,主程序正常显示,如下图8。
(以下步骤都在“STL”模式下,切记!)

步骤3——双击子程序"电机启停_控制"SBR1,进入子程序的编辑界面,重新将子程序"电机启停_控制"SBR1恢复到如图6 。
步骤4——在“STL”模式下,进入主程序“MAIN(OB1)”,每个调用子程序SBR1处,仅需添加1个(参数)寄存器即可。
下图9是未添加参数变量时,显示程序有错误。

下图10,是添加参数后,显示程序正确。

如图10,程序段1--增加V0.0做为1#电机的运行状态指示;程序段2--增加V0.1做为2#电机的运行状态指示。更多引用处,都仅需复制粘贴修改1个寄存器变量即可。
如此,像在记事本中编辑修改程序,非常方便快捷,修改1处,也就几秒的事,分分钟搞定整个程序的修改。
而如果在“LAD”模式下,可能需要删除原“子程序”块(对于低版本的编程软件而言),重新添加新修改的子程序,几乎相当于重写所有程序。有时候,可能不是工作多么困难,而是重复的返工——枯燥乏味,让人懊恼!
如文前所述,本例使用编程软件版本为V2.5,本方法基本不受软件版本的限制。
听说最新版本的编程软件,在“LAD”模式下,已经有了“子程序”块更新选项。西门子smart 编程软件从 V2.6开始,更新还是挺快的,没多久就更新一版。
喜欢追新的朋友,也可以换新版本的用。如果,没有特别功能需求的话,不换版本也可以,毕竟软件装了又卸载,卸载了再装新的软件,有时候搞不好,连操作系统都要重装(那就有点悲催)。
“STL”——复制粘贴修改方便,“LAD”看起来直观,西门子smart 编程软件可以随时切换两种编辑器进行查看编辑,这个很赞。有这么赞的功能,大家用起来!省的修改返工的时候,懊恼!
欢迎大家留言交流分享。
最后,看一下图10 切换到 梯形图“LAD”下的截图。
