【问题标题】:Array of pointer to bool in CoDeSysCoDeSys 中指向 bool 的指针数组
【发布时间】:2015-01-08 16:26:00
【问题描述】:

我想声明一个带有初始化的指针数组

Apb : array [0..2] of pointer to bool := adr(r0), adr(r1), adr(r2);

其中 r0, r1, r2 在 Modbus 中声明,类似于按位保持寄存器。 我得到一个错误:错误的初始值。

万一:

Apb : array [0..2] of pointer to bool;
Apb[0]^ := r0;

一切都如我所愿。

【问题讨论】:

    标签: plc codesys


    【解决方案1】:

    我认为 POU 变量声明不希望在其中调用函数,甚至不希望将变量分配给其他变量。

    在声明中包含变量的唯一方法是使用 VAR_CONSTANT。你仍然需要做一些跑腿的工作,但它可以让更大规模的替换更容易管理。

    还有一种方法可以使用 pragma 来使用动态值(虽然我从来没有真正使用过 pragma,所以我不确定它有多强大)。


    来自更多标准编程语言,它具有与 C 相似的规则和结构,但没有那么大的灵活性、可怕的语法,甚至没有类似于“void”类型的东西。我最终使用 python 模板来帮助生成 POU 变量声明头,因为允许的语法非常严格,导致声明过于冗长。

    【讨论】:

    • 根据定义,常量不是变量。 CoDeSys 编译器只接受静态已知值进行初始化,函数和变量都不能在编译时解析。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    • 2021-02-07
    • 2016-07-30
    相关资源
    最近更新 更多