Вылез небольшой нюанс при управлений с двух мест(Скада+Панель). https://disk.yandex.ru/i/kVmGXhrjZ1lzIw
Вылез небольшой нюанс при управлений с двух мест(Скада+Панель). https://disk.yandex.ru/i/kVmGXhrjZ1lzIw
У вас скорее неправильная реализация. Нужно со скады или с панели посылать бит на запуск, а в программе после запуска этот бит сбрасывать в 0. А вы похоже его делаете основным. А если у вас скада или панель перезагрузятся при запущенном механизме как они это перенесут, хотя возможно это не повлияет. С удалённых устройств вы посылаете команду 1, в ПЛК исполняете её и тут же сбрасываете в 0.так будет работать.
Как сделали вы?
Не работает, потому что вы сделали по своему, а не как было написано. При изменении с обоих мест и записываться должно в оба места, а у вас на выходе только одна переменная. Смотрим мой скрин https://owen.ru/forum/showthread.php...24&page=19#185
Последний раз редактировалось kondor3000; 13.09.2024 в 17:22.
Это неправильно, это то что я и предположил.
Надо примерно так:
И мест управления хоть до одного места. Можно вообще i1 менять в 1 с любого устройства, если не хотите лог вести, откуда запустили. Со стопом тоже.Код:If i1 or i2 then это кнопки старт на панели или скаде StartBit:= true i1:=false i2:=false End if If i3 or i4 then это кнопки стоп... StartBit:=false i3:=false i4:=false End if Q:=StartBit
И вот тут:
I_1:= I1; I_2 := I2;
А не правильнее:
I_1:= Q; I_2 := Q;
Я бы и i1 и i2 в процедуре приравнял к Q, чтобы на 2х устройствах ввода после изменения задания были после обработки одинаковые задания.
С аналоговым выходом согласен сложнее операции при задании с разных интерфейсов, например, но тоже выполнимо.