恭喜,你发布的帖子
发布于 2023-07-18 13:06:42
2楼
我却没有见到过有人编写一个块,这个快只能控制一个设备,但是通过多次调用这个块,并使用数组连接起来,于是可以像搭积木一样,形成可以控制任意数量设备的大功能块。
---------------------------------------------------------------------------------------------------------------
这个实现起来并不难,300、400的年代就可以实现。
还有,最简单的入栈出栈功能块,我见到的也是一个块,但是这个块的栈位总是有限的,但完全可以编写一个块,这个块只能提供一个栈位,通过多次调用并使用同一个数组连接,于是可以提供任意多的栈位。
------------------------------------------------------------------------------------------------------------
数组数组,组就是集中在一起,无论是逻辑上的或者是物理上的,楼主分散集中的想法够新颖,是不是能再仔细说说呢?
我却没有见到过有人编写一个块,这个快只能控制一个设备,但是通过多次调用这个块,并使用数组连接起来,于是可以像搭积木一样,形成可以控制任意数量设备的大功能块。
---------------------------------------------------------------------------------------------------------------
这个实现起来并不难,300、400的年代就可以实现。
--------------------------------------------------------------------------------------------------------
只要使用功能块都是可以实现的,但我要说的是,每一个功能块都是同样的,且任意一个实例与其他所有实例都存在连锁关系。
就拿排队块来说。
栈位1到栈位100,调用100个实例,如果栈位1功能块出栈,那么栈位2-100的功能块的栈位输出都会减一。
如果有功能块入栈,且它入栈得到的栈位是50,那么原来的栈位为50的功能块会变成51,原来的51变成52......
一般实现这些功能,以往都喜欢做成一个功能块,然后所有的连锁、输出都在这个功能块中,但是往往存在弊端。
比如需求变为101个,又该如何?重新写逻辑关系?调试?修复bug?
为什么不能写成一个块,这个块只能提供一个栈位输出,当需要两个栈位时,调用两个实例,则提供两个栈位输出,需要100个栈位则调用100个实例......
这些功能块之间只需要一个简单的数组:Array[0..1] of Int 负责连接成为整体,它能够传递这些块之间的连锁关系、信息。
值得一说的是,即使你调用六万个实例,依然可以使用Array[0..1] of Int 将他们连接,它不会因为你调用的实例多了,数组的元素也需要增加,永远是Array[0..1] of Int。
甚至,你还能够将这些栈位分为两组,使用同一个数组连接。
通过这样,我们可以把这个功能块放在一个fb内,组成一个大功能块,也可以打散。
比如,当我们有一百台设备,他们需要进行排队,于是我们可以将一个排队块集成在设备功能块内,只需在inout定义一个Array[0..1] of Int数组,连接起来之后,这些设备之间就能够自动形成队列,即使你突然增加一台设备,也无需重新考虑逻辑,直接增加一个排队块的实例即可。
请填写推广理由:
分享
只看
楼主