背景:我用200做的程序,是为玻璃生产线做的烟囱除尘系统。其中有700吨和500吨的两套大烟囱需要除尘。但他们的控制要求都是一样的。所以我就做了一个公共的子程序,希望这两套系统同时调用它来工作。
现象:我发现做一个子程序的时候系统根本就是乱工作,然后我就又复制了一个子程序,并且把里面的定时器,计数器什么的都区分开了,但这两个子程序中定义的输入变量,输出变量,中间变量的地址是一样的(名称不一样)。比如我第一个子程序中的中间临时变量起名叫“run_500”,第二个子程序中间临时变量起名叫“run_700”。他们的地址都是“L16.0”.这个时候我发现在500吨的系统调用与其对应的子程序时,出现了一个严重的问题,就是“run_500”为“1”的时候,“run_700”也为“1”。这样导致我700吨的那个系统完全不能正常工作。而我删除其中任意一个,而单独调用另外一个的时候,系统运行是正常的。
问题:我现在还是对那个L16.0这个地址究竟起的是什么作用不太了解,从现象上看,很显然是因为我调用500吨的时候对"run_500"的值进行了修改。而这也影响到了“run_700”的内容。因为他们俩都是用的同一个地址“L16.0”。
请大家帮帮我,讲讲这个知识点,谢谢。以免以后再遇到这个问题的时候不知所措~。非常感谢。