【发布时间】:2020-07-07 13:36:53
【问题描述】:
在 codesys 中,一些函数支持在其他语言中通常称为“params”的函数,即可以采用不同数量的类似类型变量的函数。例如ADD 运算符(梯形图函数)。
我的问题是,是否有任何方法可以在用户定义的函数中做同样的事情?
到目前为止,我唯一的想法是使用ARRAY [*] OF SOMETHING 并使用LOWER_BOUND 和UPPER_BOUND 进行计算。这确实有效,但需要用户在每次想要调用我的函数时创建一个额外的数组变量。例如,我们有连接 2 个字符串的 CONCAT 函数。假设我想要一个 CONCAT_ALL 函数,它接受 n 个字符串并将它们全部连接起来:
STRS: ARRAY [0..9] OF STRING := [STR1, STR2, STR3, STR4, STR5, STR6, STR7, STR8, STR9, STR10];
// This works, but I want to avoid creating an array variable!
CONALL1: STRING := CONCAT_ALL(STRINGS := STRS);
// This doesn't work!
CONALL2: STRING := CONCAT_ALL(STRINGS := [STR1, STR2, STR3, STR4, STR5, STR6, STR7, STR8, STR9, STR10]);
(编辑:有人问我,我使用的是 Schneider Electric Machine Expert 1.2,或 CODESYS 编译器 3.5.12.80)
【问题讨论】:
标签: codesys