问题描述:
1. 新的博途中,生成一个全局DB,打开,在第一行自动生成了“名称”为static的变量,名称无法修改,数据类型无法选择。
而在老版的STEP7里,分明是一个无名称,数据类型是STRUCT(无法重新选择)的变量。
为什么做了这样的改变?是对以前的改正?
2. 一个DB里,名称为static的变量,只能有一个,无法再添加。这意味着一个DB中,只能定义一个数组或结构类型的变量(不含嵌套的)?
图片说明:
最佳回答:既然一棵树钻了牛角尖,咱就把牛角给掰开。
1. 博途全局DB里面第一行static是啥?为什么无法修改?老版怎么没有,而是一个写着struct的无名玩意?
你的博途建立的全局DB,看到的static,是一个结构的名称,而不是变量的名称。数据块本身就是一个大的结构体。你确实可以理解为变量,只不过它是系统使用的,不是用户使用的。类比背景数据块你应该会看出来,背景数据块还有Input等结构。原因嘛,我想是TIA博途采取全局符号寻址的方式了吧。如果你非得问博途为类型为什么的不写STRUCT呢,我想是为了区别与用户生成的变量吧。至于真正原因,还是问博途开发人员吧。
2. 为什么我在static下面无法添加变量?是不是意味着DB中,只能定义一个数组或结构类型的变量?
因为全局DB是一个大的结构体,你所建的变量必须嵌套其中。你确实可以说,全局DB中总的只有这么一个结构,但是这句正确的话对使用没有意义,也不影响你的实际使用。你可以在static里建你希望的结构,数组,各种嵌套等。
说实在的,我用了这么长时间了,一直都没有在意过这些,因为一直没有影响我的使用。楼主观察挺仔细。希望我的回答能够为你解惑。
图片说明:
提问者对于答案的评价:分析得也有道理。特别是拿DI作对比。谢了!