关于交叉索引。
之前在程序中,提前定义了一些REAL数据类型的变量,地址用的是M地址,比如MD400之类的。
定义过之后,没有马上用,而是作为一个备用的变量,有需要的就从里面选取。
后来有一次写其他程序,使用了几个M地址,测试的时候,发现它们无法操作修改,状态不会变化。
一直以为程序有问题,反复修改没有效果。
无意中才发现,原来是其中几个地址,跟之前创建的变量地址重叠了,因为这个变量目前在使用,所以其中的M地址是有数值的,导致了上文的情况。
除了自己费心注意之外,想到最好还是避免使用M地址,实在有需要,批量的创建几个DB块,对应需要的几种数据类型。
论坛的朋友们还有更好的经验可以分享吗?
提前创建好变量的原因是,这个项目的上位不是WinCC,和PLC之间是OPC通讯,每次新增了变量,都需要重新导出符号表,导入上位系统,这个操作过程比较麻烦,有时候还会引起瞬间的中断,所以就尽可能的一次多创建一些变量导出上去,然后有新增需求的时候,就直接使用。