Добрый вечер!
Подскажите, пожалуйста, следующий момент:
REG1.0 - это доступ к первому биту.
А как сделать это через REG.num ?
Какого типа должен быть num? Пробовал INT и STRING и BYTE - выдаёт ошибку.
Спасибо.
Вид для печати
Добрый вечер!
Подскажите, пожалуйста, следующий момент:
REG1.0 - это доступ к первому биту.
А как сделать это через REG.num ?
Какого типа должен быть num? Пробовал INT и STRING и BYTE - выдаёт ошибку.
Спасибо.
так просто не получится, только согласно документации
И всё-таки что-то не получается.
Делаю так:
1.Объявляю глобальную константу:
VAR_GLOBAL CONSTANT
(* Кол-во вентиляторов -1*)
VDNUM : INT := 2;
END_VAR
2. В цикле пытаюсь выбрать бит:
(* Индивидуальные настройки, полученные с modbus tcp *)
FOR i:= 0 TO VDNUM DO
VDARRAY[i].CmdIn.Hact := ACTUATORS_CMDIN_H.i; (* ACTUATORS_CMDIN_H - VD1..VD3 | KDYVD1..KDYVD3 | OZK1..OZK5 *)
END_FOR
- ошибка 4027: требуется целое число или символьная константа
пробую прямо указать константу:
VDARRAY[0].CmdIn.Hact := ACTUATORS_CMDIN_H.VDNUM;
- тоже самое.
Что я делаю не так?
строчкарасшифровывается как VDARRAY[0].CmdIn.Hact := ACTUATORS_CMDIN_H.2;Код:VDARRAY[0].CmdIn.Hact := ACTUATORS_CMDIN_H.VDNUM;
Вам именно это нужно?
Опечатка в мануале смутила( НЕ НУЖНО "_") и я подумал, что надо VAR_GLOBAL CONSTANT!
объявил как на картинке, которую Вы прикрепили. Но результат тот же.
Вы сами пробовали скомпилировать?
всё работает как надо
Полтергейст.
Вставляю в свой проект - не работает!
Создаю новый проект - не работает!
Компилирую Ваш проект - работает.
:eek:
Хоть в Вами созданный проект всё переноси :rolleyes:
Daedal, вам надо сделать так: Проект - Опции - Генератор кода - поставить галочку Замена констант. И повторно выполнить компиляцию.