Раньше работал с Ареной, там ОРС встроен и незаметен глазу.
Тут начались вопросы дивные.
Имеем: Контроллер (МВ Slave), Lectus (MBMaster - OPC), SimpleScada.
В целях экономии биты пакуются в один регистр.
Суть задачи: есть RW регистры, в которые надо отлавливать изменения и писать в них то что изменилось с обоих сторон.
Контроллер свои регистры перечитывает регулярно, но реагирует (перезаписывет) если только регистры изменились или он сам внес изменения. Скада делает нечто темное и непонятное с лектусом, парсит биты из "ОРС переменной" по факту изменения значения и пишет в "ОРС переменную" по факту внесения изменений.
Проблема в том, что при таком порядке действий, не всегда с первого раза получается записать данные. Причем с обеих сторон. Точнее, если я правильно понимаю происходящее, лектус успевает переписывать данные в обе стороны еще до того как поймет что они изненились.
Как, вообще, правильно в таком случае работать?