当前位置:首页>java>“PLC编程工程应用案例分享”——“STL”轻松高效解决__子程序修改更新问题

“PLC编程工程应用案例分享”——“STL”轻松高效解决__子程序修改更新问题

  • 2026-10-23 17:20:17
“PLC编程工程应用案例分享”——“STL”轻松高效解决__子程序修改更新问题

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

“子例程无效引用”!

在“LAD”模式下,可能需要删除原“子程序”块(对于低版本的编程软件),重新添加新修改的子程序,几乎相当于重写所有程序。这问题可怕吧?!
下面上一个西门子SMART PLC的程序实例,演示说明。
(本例使用编程软件版本为V2.5。本方法不受软件版本的限制)
下图1,是1个多台电机启停控制的程序。(图中仅展示其中2段,即2台电机的控制程序部分,其余类同)
图1
下图2,是主程序中多次调用的"电机启停_控制"子程序SBR1。
图2
下图3,是"电机启停_控制"子程序SBR1--新增修改,增加“运行状态”输出。
图3
修改子程序SBR1后,主程序查看时,弹出“提示”——“子例程无效引用”,如下图4。
图4
很明显,这是因为子程序SBR1被修改了,梯形图下,子程序SBR1新增的参数接口并不能被直接同步更新。
那么,如何解决这个问题并快速完成修改呢?

“STL”让我们轻松解决。

首先,关闭图4弹窗“提示”。然后,切换到“STL”编辑器模式。

当从LAD(梯形图) 切换到 STL 时,什么——“无效程序段”!

看到下图5,不要被吓到。

图5

开始拯救操作:

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

图6

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

图7

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

(以下步骤都在“STL”模式下,切记!)

图8

步骤3——双击子程序"电机启停_控制"SBR1,进入子程序的编辑界面,重新将子程序"电机启停_控制"SBR1恢复到如图6 。

步骤4——在“STL”模式下,进入主程序“MAIN(OB1)”,每个调用子程序SBR1处,仅需添加1个(参数)寄存器即可。

下图9是未添加参数变量时,显示程序有错误。

图9

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

图10

如图10,程序段1--增加V0.0做为1#电机的运行状态指示;程序段2--增加V0.1做为2#电机的运行状态指示。更多引用处,都仅需复制粘贴修改1个寄存器变量即可。

如此,像在记事本中编辑修改程序,非常方便快捷,修改1处,也就几秒的事,分分钟搞定整个程序的修改。

而如果在“LAD”模式下,可能需要删除原“子程序”块(对于低版本的编程软件而言),重新添加新修改的子程序,几乎相当于重写所有程序。有时候,可能不是工作多么困难,而是重复的返工——枯燥乏味,让人懊恼!

如文前所述,本例使用编程软件版本为V2.5,本方法基本不受软件版本的限制。

听说最新版本的编程软件,在“LAD”模式下,已经有了“子程序”块更新选项。西门子smart 编程软件从 V2.6开始,更新还是挺快的,没多久就更新一版。

喜欢追新的朋友,也可以换新版本的用。如果,没有特别功能需求的话,不换版本也可以,毕竟软件装了又卸载,卸载了再装新的软件,有时候搞不好,连操作系统都要重装(那就有点悲催)。

“STL”——复制粘贴修改方便,“LAD”看起来直观,西门子smart 编程软件可以随时切换两种编辑器进行查看编辑,这个很赞。有这么赞的功能,大家用起来!省的修改返工的时候,懊恼!

欢迎大家留言交流分享。

最后,看一下图10 切换到 梯形图“LAD”下的截图。

朋友们,我们下期见!

最新文章

随机文章