У меня astErrorData[0].xAlarm сразу присваивается TRUE. Есть ли разница где будет установлен обработчик этого события в начале кода или в конце?
Вид для печати
До проверки всего массива вы не можете однозначно утверждать, какое значение должен иметь astErrorData[0].xAlarm.
Так что, на мой взгляд, обработчик должен быть не в начале кода.
Заменил весь код на это (воспринимаю xError1, xError2, xError3 как сигналы возникновения тревог):
Код:astErrorData[1].xAlarm := xError1;
astErrorData[2].xAlarm := xError2;
astErrorData[3].xAlarm := xError3;
// изначально предполагаем, что ошибок нет
astErrorData[0].xAlarm := TRUE;
FOR i := 1 TO c_ierrorCount DO
IF astErrorData[i].xAlarm THEN
astErrorData[0].xAlarm := FALSE;
// при наличии хотя бы одной ошибки - проверять дальше нет смысла
// так что выходим из цикла
EXIT;
END_IF
END_FOR
Добрый день.
Проект разрабатывается на CODESYS 3.5.17.3.
Каждый раз при загрузке проекта предлагается обновить библиотеку Mx110 Assistant с 3.5.4.17 на 3.5.4.18. Обновлял, но все повторяется: в проекте Mx110 Assistant с 3.5.4.17 и предлагается обновление.
Добрый день.
Проще всего нажимать "Нет" на предложение обновления.
Если вы хотите, чтобы это предложение не появлялось в принципе - то нужно удалить из дерева проекта все шаблоны Mx110 и добавить их заново, но уже с версией 3.5.11.10.
Соответственно, потребуется перепривязать к их каналам все переменные.