三菱的全局标签和FB的局部标签相当于高级语言中的全局变量和局部变量,他们都有自己的作用域。
如果变量声明在主函数中,其作用域就是整个主函数,如果变量声明在被调用的函数中,其作用域就只限于那个被调用的函数。超范围使用编译系统都会报错。
三菱PLC的全局标签(其实就是全局变量、全局符号名)的作用域就是整个主程序区,局部标签也叫作局部变量,它的作用域只限定在该变量所定义的函数内部。局部变量只在本函数内部有效,同理局部标签只在本FB块内部有效。在被调用FB中形式参数就是该FB的局部变量。形式参数的作用域也只在本FB内部有效。
有时我们给全局标签和局部标签起相同的名字只是为了方便,使代码的可读性增强,我们以信号滤波FB举例,我们一般定义接口输入参数为sign。我们在主程序里调用FB的时候,有时候也喜欢定义全局标签名为sign这样也方便我们的理解。不同作用域上的变量可以有相同的名字,而同一作用域上的变量不能有相同的名称。