Добрый день.
Использую ПР103 (Master) и датчик расхода (Slave). Из даташита на датчик расхода - "Для изменения значения "Глубина фильтра" в датчике требуется сначала записать число (НЕХ 0хAA55) или (Int16 -21931) или Udin 43605 в OWEN LOGIC в так называемый регистр защиты от записи (WRITE PROTECT), после чего произвести запись в регистр "Глубина фильтра" нового значения.
"Функция WRITE PROTECT отключает регистр с защитой от записи и дает возможность изменять значение соответствующего регистра.
Например, для изменения коэффициента преобразования пользователю необходимо отправить значение 0xAA55 в регистр 0x0016, и только после этого включается функция
записи (функция защиты от записи соответственно отключается). После выполнения записи ПО автоматически активирует функцию защиты от записи".
Создал макросmacro1.PNG
Но попытки изменения значения в регистре проходят случайным образом.
do.PNG
online.png
На 5-10 попыток записи бывает проходит одна-две. Как я понимаю команды на запись идут не последовательно как я взвожу флаги.
Но как это поправить ума не приложу.
Настройки регистров в мастере такие
master1.PNG
master2.PNG
как правильно пользоваться этим.
master3.PNG
Разве они не противоречат друг другу? Как можно периодически писать по таймеру, по изменению и флагу(вернее можно, но как это работает в действительности). Как ставится запись в очередь по флагу? Соблюдается ли порядок добавления в очередь записи по флагу (допустим в этом цикле поступил запрос на запись 1 регистра, а следующем 2-го регистра, как они встанут в очередь записи?) ?
P.S. >Если делать вручную из OPC сервера OWEN ( сняли защиту от записи (43605), записали новое значение в регистр "фильтра", после чего автоматом активировалась защита от записи) каждая попытка записи заканчивается успешно. Т.е. датчик расхода работает как и написано в даташите.
С уважением Юрий.