我有一程序需多次调用同一子程序(带参数),发现调用子程序时,子程序内L区数据未在调用开始进行初始化。我将程序简化如下(原始程序较复杂):
主程序:
LD SM0.0
CALL SBR_0:SBR0, M0.0, M0.1, Q0.0
LD SM0.0
CALL SBR_0:SBR0, M0.2, M0.3, Q0.1
子程序SBR_0:
LD #in1:L0.0
S #out1:L0.2, 1
LD #in2:L0.1
R #out1:L0.2, 1
程序运行后,只要M0.0或M0.2任一个为1,Q0.0及Q0.1均为1。
我的本意为:当M0.0为1时将Q0.0置1,当M0.1为1时将Q0.0复位;当M0.2为1时将Q0.1置1,当M0.3为1时将Q0.1复位;
由于程序要多次调用,故需用子程序。
我感觉子程序中L0.2在调用时保持上一个调用时的状态未复位。
请问各位大虾,我该如何处理带参数的子程序?