Доброй ночи! На второй день знакомства с CoDeSys 3.5 не нашёл ответа на вопрос
из той же оперы после применения квадратных вот только здесь обнаруженных скобок -
PROGRAM PLC_PRG
VAR
wtpr1: INT := 65;
wtpr2: INT := 78;
wtpr3: INT := 25;
wtpr4: INT := 59;
wt1:INT;
wt2:INT;
wt3:INT;
wt4:INT;
wt: ARRAY [1..4] OF INT:= [wt1,wt2,wt3,wt4];//[wt1:=120,wt2:=56,wt3:=84,wt4:=33]
check:INT;
END_VAR
Компилятор ругается на попытку обратиться к элементу через точку - wt.wt1:=wtpr1;
считает, что wt вообще не структурированная штука. Никаких вариантов синтаксиса
нигде не обнаружил. Может, я слепой - подскажите, чего не хватает, чтобы записывать
значения в массив.
C0018: 'wt.wr1:=wtpr1' is no valid assignment target
C0062: 'wt' не является структурированной переменной
Добавлю после экспериментов. Компилятор не бракует такой вариант
wt[wt4]:=wt4:=wtpr4;
check:=wt[wt4];
и в эмуляторе действительно все четыре значения дружно изменяются, вот только в таблице
эмулятора значения массива wt[n] по нулям. В "Ассистенте ввода" wt[wt4] нет конечно, то есть
это действительно обращение, а не переменная.
И как эти нули понимать?..




Ответить с цитированием