是否可以编写带有一些静态参数化的功能块?具体来说,我可以制作一个具有静态容量的缓冲区,但是不同的实例可以有不同的容量吗?
理想情况下,我会想象一些常量参数,如下所示:
FUNCTION_BLOCK FB_Buffer
VAR_INPUT CONSTANT
StorageSize : DINT;
END_VAR
VAR
Storage : ARRAY [1..StorageSize] OF REAL;
END_VAR
然后实例化将是这样的:
FUNCTION_BLOCK FB_Usage
VAR
SmallBuffer : FB_Buffer := (StorageSize := 10);
LargeBuffer : FB_Buffer := (StorageSize := 1000);
END_VAR
假设这是不可能的,那么为不同功能块实例管理不同存储大小的最佳方法是什么?
我将发布我最不坏的解决方法作为回答。