Продолжу тему! основываясь на уроке
Юрия Реваки обмен данными между ИПП120 и ПР200
хочу рассказать и спросить - если два устройства стартуют одновременно и работают постоянно вопросов никаких нет, а вот если в процессе работы панель ИПП120 отключается, а за это время в ПР200 произведены какие-то изменения, то в ПР200 прописывается то состояние бита, которое сейчас висит в ИПП120 независимо от того, что было установлено в Прке. с одной стороны я прекрасно понимаю, что это связано с работой selchgB, но я не знаю как с этим бороться.
у меня стоит задача сделать на базе панели ИПП120 дублер экрана Прки, но при этом чтобы не переживать, что если питание панели "срубится" неожиданно (будет стоять в другом шкафу), а в это время кто-то поменяет настройки в Прке то вновь включенная панель не "засадила" старые значения в Прку. я так подозреваю, что такое же поведение будет и для инт и флоат переменных...
Добавление: вроде бы я победил пропажу питания. я добавил таймер от момента включения и Sel, который обсасывает регистр, который мы читаем из ПР на регистр, который мы туда пишем (см фото)
2019-12-03_20-58-07.png
все стало хорошо, но теперь у меня другая проблема: если оборвалась связь, то, если я поменяю уставку в ИПП120 пока связи нет, то я не могу таким же классным образом при возобновлении питания "высосать" данные из Прки. Прка подбирает данные из ИПП, хотя я попробовал сделать как и с питанием, то-есть перекидывать в регистр записи в ПР то, что прочитал из того же регистра чтения, но я смотря в отладку вижу, что пока я пытаюсь зациклить запись в этот регистр - у меня и не читается ничего из этого регистра, а как только таймер зацикливаниея досчитывает, у меня сразу происходит запись и сразу за ней чтение этого регистра из ПР, в итоге данные, измененные в ИПП120 прямиком уезжают в ПРку.
Продолжаю извращаться. я победил этот нюанс добавив на вход SelChgB блок selB который на время отсутствия связи перенаправляет данные считанные из регистра считывания в блок SelChgB , что приводит к нужному результату - как только связь возобновляется состояние бита из Прки записываются в панель, независимо от того, что ты там пытаешься внести. только вот при потере связи (что естественно) в панели все связи обнуляются.
поэтому я вот думаю, а можно ли каким-либо образом блокировать переход с одного экрана на другой, по состоянию переменной? поскольку при потере связи я могу принудительно с любого экрана вернуться на "главный" но вот потом мне надо запретить с главного переходить на экран, где находятся настройки, в которые сейчас лезть не стоит, поскольку я боюсь, что при большом количестве переменных пиз-за дополнительных Sel программа не влезет в ИПП120