
Сообщение от
Asbi
Как-то раз тех поддержка тоже такое советовало, но это замедляет работу протокола. И у меня в общей сложности устройств намного больше, а 16 привел только для примера.
Кнопки только импульсные, на самом деле в алгоритме делаю, что-то наподобие самоподхвата. А читаю регистры, потому что было такое, что при изменении какого-либо бита в остальные биты записывались False (0), поэтому я начал туда записывать актуальные значения.
Попробуйте так:
Код:
Выход.Value.0 := x0;
Выход.Value.1 := x1;
Выход.Value.2 := x2;
Выход.Value.3 := x3;
Выход.Value.4 := x4;
Выход.Value.5 := x5;
Выход.Value.6 := x6;
Выход.Value.7 := x7;
Выход.Value.8 := x8;
Выход.Value.9 := x9;
Выход.Value.10 := x10;
Выход.Value.11 := x11;
Выход.Value.12 := x12;
Выход.Value.13 := x13;
Выход.Value.14 := x14;
Выход.Value.15 := x15;
Выход.StatusCode := Вход.StatusCode;
т.е. просто упаковать сигналы с кнопок (импульсы) и присвоить выходу статус входного слова.
А для надёжности было бы в конце программного цикла ПЛК обнулять регистр с командами (если конечно есть такая возможность)