万泉河
WX:ZHO6371995,欢迎+
级别: 略有小成
精华主题: 0
发帖数量: 130 个
工控威望: 246 点
下载积分: 831 分
在线时间: 11(小时)
注册时间: 2021-06-11
最后登录: 2024-11-07
查看万泉河的 主题 / 回贴
楼主  发表于: 2022-12-07 18:11
【万泉河】三菱PLC中的多重背景

多重背景在PLC的应用中,在标准化编程中,在烟台方法中,有非常重要的地位。

然而属于非常非常基础的基本功的技能。

比我所总结归纳的工控行业五连鞭:万线圈, 不用MT, 不用交叉索引, 不用IO映射, 不用UDT。那本来是烟台方法的基本功, 而多重背景比五连鞭还要低出来至少N个层级。

所以,所有PLC的学习者,都首先一步要掌握多重背景的使用方法。 不管是否要学习,也不管什么品牌的PLC。 而经常见到很多初学者表示,虽然看过了示例和教程,但仍然对多重背景的机制不能理解,感觉有些烧脑。 那就说明入门之路还很漫长,还有很长的路要走。 也就暂时不必要考虑学习烟台方法,先把基本功打好再说。

然而, 多重背景的这种叫法只是西门子中的称谓,英文单词叫做Multi-instance ,讲的是多个FB块的多重嵌套机制。 即,一个FB1原本它被系统调用的时候,会产生单独的背景数据块,然而它如果不是被系统直接调用,而是嵌套在另一个FB2中调用它时,会在FB2的静态变量中生成FB1的实例背景数据。最终FB2被系统调用并实例化的时候, 所生成的背景数据块实例里面,包含了FB1的数据。

假设FB2中调用3次FB1,而最终OB1调用了2次FB2,那么在得到的FB2的2个实例的背景数据块IDB中,每一个里面均有3套FB1的数据信息, 而整个系统中有3*2=6套FB1的数据信息。

我这里不去讲入门的基本功的多重背景的原理,因为读者在网上随便搜索多重背景+FB的关键词,都可以搜索到很多文章。 而且,即便你加上三菱的关键词,搜到的文章也全部是西门子的。 并没有三菱的相关的文章出现。

所以可以证明,只有西门子中称之为多重背景,而要么是三菱的语境中有别的不被知晓的称谓方法,要么在三菱生态中还没有发展到这一步。

然而, 我在编著《三菱标准化编程烟台方法》的新书的时候,对这一块的词汇就特别困扰。 专门搜索过相关的资料,然而没有得到准确的答案。所以,在书中还是仍然按照西门子的叫法来称谓了。

包括背景数据本身,西门子中叫做IDB, 那么在之外的其他系统中也直接称之为IDB了。 有见过我书的目录的读者,跟我纠正说, 在三菱中根本不存在DB,FB的实例也不叫IDB,而是有另外的叫法。

我当然知道他们不叫IDB, 叫啥呢?叫标签, 全局标签中的一个普通的标签, 和你建立一个INT或者BOOL类型的数据标签称谓上并没有什么区别。

而那些简单数据变量,我们称之为变量,在全局标签中的变量,即为全局变量。 对于所使用的内存地址是隐式的系统,虽然只有名字,但我们也认为和西门子系统中的M变量相当,是属于烟台方法编程中用不到的东西。 即五连鞭中的第二鞭。

不使用全局变量M的理念,可以扩大到全局DB也不使用,但显然就不能再引申扩大到IDB了,否则程序都没有存在的基石了。

所以,即便在三菱系统中对多重背景和背景数据块尽管没有找到他们家更专业的称谓,尽管也有可能找到,但我还是继续沿用在西门子的叫法了。

这样更便于读者把同一个原理方法理解到不同的系统架构中,而不会因为语境不同,又带来没必要的歧义。

所以,其实我想倡导的是, 这种同一概念同一逻辑的词汇用法,各厂家应该尽量统一一致,最好是有个标准来规范使用。

这貌似应该是IEC 61131的内容,然而我从IEC标准中并没有发现这方面的约定。

所以,应该建议IEC标准把这方面的词汇加以统一规定。

zuyi.xu
级别: 探索解密
精华主题: 0
发帖数量: 62 个
工控威望: 130 点
下载积分: 896 分
在线时间: 20(小时)
注册时间: 2021-08-12
最后登录: 2024-11-03
查看zuyi.xu的 主题 / 回贴
1楼  发表于: 2022-12-07 22:10
在三菱里面就不要按照西门子的叫法了,三菱官方叫它标签,那它就是标签,标签可以是基本数据类型也可以是FB也可以是结构体。