恭喜,你发布的帖子
发布于 2025-10-03 16:01:47
15楼
再讲点细节上的处理
1)数据缓存gDB,我不会用全局数据块,我会在FC里的临时变量区开一个字节数组,数组的上限在FC里定义一个常数变量,固定值,FC不需要数据缓存这个参数引脚。
2)此外,楼主输入变量Data采用的是VARIANT变量定义,而缓存变量gDB采用的ARRAY[*]的定义,这里会有两个数据区长度适配的问题,楼主在程序中没有做合法性检测,以确保gDB的ARRAY[*]数组的长度大于Dada的数据长度。
一般来说,在使用VRIANT以及ARRAY[*]变量作为功能块的接口时,在功能块内部我们需要对接口是否为空,变量类型,元素类型,以及元素数量做合法性检测,如果合法性检测不通过,应退出程序执行并给出错误字。
谢谢你的留言。我这里对你提到的2个问题做个回应。
先说你的第一个问题:用临时变量。这不合适。因为每个优先级的OB的临时区是有限制的。没有任何一个优先级的临时区能达到64K.
第二个问题,就是因为不知道数据的长度所以才用一个64K近乎最大的字节数量的buffer做辅助。通常没有哪个数据能超过64K。
请填写推广理由:
分享
只看
楼主