Страница 1 из 1

Чтение регистра, масштабирование, отображение, модификация, запись.

Добавлено: 18.02.2018{, 11:13}
gmz_001
В двух словах - в регистре хранится значение уставки регулятора в виде signed int, количество знаков после запятой настраивается в приборе и на содержимое регистра никак не влияет. Как отобразить понятно - читаем регистр содержащий уставку, читаем регистр хранящий положение десятичной точки. Делим одно на другое, отображаем в СКАДА. Но как быть если мы должны поменять эту уставу из скада ? Понятно что берем введенное значение, умножаем с учетом положения десятичной точки и передаем в переменную привязанную к регистру прибора. Но если я правильно понимаю слаться значение будет при каждом цикле обмена modbus. Мне бы чтоб отсылалось только при изменении значения из скада. А то я не уверен что измененная уставка в приборе не пишется тут же в еепром. Эдак можно прибор прикончить.

Чтение регистра, масштабирование, отображение, модификация, запись.

Добавлено: 18.02.2018{, 11:22}
Sancho
Если речь об овене - не переживай.
Ты в любом случае шлёшь в регистр модбаса, который прибор считывает себе в программу - а ему без разницы дальше, из модбаса, из блока лицевой панели, от... переменные ретайн он переваривает как его учили - по изменению.

Чтение регистра, масштабирование, отображение, модификация, запись.

Добавлено: 18.02.2018{, 14:24}
gmz_001
Да. Тренируюсь на регуляторе от Овена. Вопрос с постоянно отсылаемыми данными еще волнует из соображений создания лишнего трафика.
Еще возник вопрос о выделении бита. В проекте для ардуино есть блок для работы с битами. В скада - нет. Блоки И, ИЛИ, НЕ не работают побитово. Как выделить бит. Доступна только функция чтения holding register.

Чтение регистра, масштабирование, отображение, модификация, запись.

Добавлено: 18.02.2018{, 14:41}
Sancho
Трафик дело случая.
Ждём от Автора математической функции modulo - остаток от деления.
На устройстве собираем биты в регистр, потом разбираем, как душе угодно. Писал и примеры выкладывал не раз.
Побитово, по кусочкам бит,...

Чтение регистра, масштабирование, отображение, модификация, запись.

Добавлено: 19.02.2018{, 04:59}
gmz_001
Sancho писал(а):
18.02.2018{, 14:41}
потом разбираем, как душе угодно. Писал и примеры выкладывал не раз.
Побитово, по кусочкам бит,...
Единственный вопрос КАК?
Без битовых операций и взятия по модулю основания? Деление с остатком можно реализовать вычитанием в цикле, но цикла как такового в скаде то же не наблюдаю. Это нужно отслеживать изменение переменной, копировать во временную, выставлять флаг запуска цикла, вычитать пока временная переменная не станет меньше делителя, выставлять флаг нахождения результата. Что то давно на ассемблере с одним сложением ничего не считал, то есть никогда.

Или есть еще варианты решения ? И вообще цикл в flprog scada возможно реализовать?