三菱PLC的全局标签和局部标签编程应用问题
![](https://img-home.csdnimg.cn/images/20240711042549.png)
三菱的全局标签和FB的局部标签相当于高级语言中的全局变量和局部变量,他们都有自己的作用域。
如果变量声明在主函数中,其作用域就是整个主函数,如果变量声明在被调用的函数中,其作用域就只限于那个被调用的函数。超范围使用编译系统都会报错。
三菱PLC的全局标签(其实就是全局变量、全局符号名)的作用域就是整个主程序区,局部标签也叫作局部变量,它的作用域只限定在该变量所定义的函数内部。局部变量只在本函数内部有效,同理局部标签只在本FB块内部有效。在被调用FB中形式参数就是该FB的局部变量。形式参数的作用域也只在本FB内部有效。
有时我们给全局标签和局部标签起相同的名字只是为了方便,使代码的可读性增强,我们以信号滤波FB举例,我们一般定义接口输入参数为sign。我们在主程序里调用FB的时候,有时候也喜欢定义全局标签名为sign这样也方便我们的理解。不同作用域上的变量可以有相同的名字,而同一作用域上的变量不能有相同的名称。
三菱PLC的编译系统默认是不支持全局标签和局部标签同名的,我们在工具--选项菜单里可以修改。
RXXW_Dor: 不会,IF条件不满足不会执行,只不过i循环计数会加1
欧,利奥。: 第12小节的循环语句,这里用while循环比较好吧,如果用for的话无论是否产生了done还是error, step都会+1的吧
m0_63943470: 他会吞掉,我抖音私信你吧
m0_63943470: 好像私信不了
m0_63943470: 没有,我私信你。抖音上我也关注你了