С выходом из режима редактирования проблем нет. Проблема в переходе к редактирования следующего параметра на том же экране.
Вид для печати
Здравствуйте. Я только начинаю разбираться в данное среде, потому надеюсь на понимание. У меня возник вопрос касательно сетевых переменных, а именно их сброса. У объекта, с которым я общаюсь по rs485 есть регистры, которые мне нужно перезаписывать. При начале работы логики ПР в регистр записываются нули, так как еще не сработали триггеры на запись значений в регистры, что портит работу алгоритма, а также из-за постоянной перезаписи регистра объект зависает на время от 5 секунд до нескольких минут. Видел в документации, что у сетевых переменных можно делать запись в регистры по команде переменной. Я реализовал данный вариант, но как показала практика, запись все равно происходит, что с моей стороны кажется странным при наличии запрета записи. В связи с этим вопрос, как запретить запись значения в регистр если значение на входе не поменялось или реализовать как-то интервально?
Все сетевые переменные энергонезависимые и они сохраняют своё значение при выключении устройства. Соответственно при запуске они (значения) будут восстановлены на те, что были в момент выключения.
После загрузки ПР и запуска прошивки можно по очереди обновить значения переменных, требующих корректировки.
Подскажите, пожалуйста - столкнулся с проблемой определения импульса для записи значений в переменные "Длина"
Импульсы приходят с энкодера, который измеряет длину. Через определенную длину срабатывает автоматика отрезного механизма продолжительностью около 10 секунд.
На тестовых подключениях, где срабатывание автоматики я эмулировал нажатием кнопки без фиксации - все работает замечательно, таким методом(спасибо EFrol'у):
Вложение 74772
Но, как оказалось - при включении отрезного механизма идёт не один импульс, а целый пакет импульсов общей продолжительностью 10 секунд.
В результате каждый следующий импульс обнуляет показания длины и я не вижу предыдущего значения - всё забивается нулями.
Победить получилось, используя FTRIG вместо RTRIG, т.е. по заднему фронту последнего импульса.
Можно ли как-то зафиксировать только первый импульс из пучка, сохранить в памяти значение длины, а затем подождать 15 секунд и записать значение в переменную?
Один пропускает - следующий через 15 сек:
Вложение 74777
Импульс формируется при паузе между входными импульсами более 1 секунды, т.е. в конце пачки:
Вложение 74778
Если заменить FTRIG на RTRIG, то наоборот фиксирует начало пачки.
Элегантно, спасибо
Вот здесь, в посте #3526 макрос выкладывал для разруливания одновременного запуска 8 устройств: https://owen.ru/forum/showthread.php?t=26216&page=353
В смысле на выход пропускается первый импульс, последующие импульсы пройдут не ранее минимального периода следования, настраивается в свойствах макроса, вроде, как Вы хотите!
Можно использовать любой вход-выход(с одинаковым номером).