PDA

Просмотр полной версии : ПР200 побитовая работа с сетевыми переменными и экраном



acidzone
03.06.2020, 21:29
Всем доброго времени суток. Имеется сетевая переменная Config, целочисленная. В ней должны храниться настройки прибора в виде битовых значений, например бит 0, состояние 0 - выключено, состояние 1 - включено. Также есть необходимость локально изменять бит 0 из экрана настроек. Как можно привязать этот бит к булевской переменной, чтоб при изменении переменной менялся бит, а при изменении бита в сетевой переменной по сети - менялась переменная?

melky
03.06.2020, 22:00
PUTBIT и EXTRACT это два основных FB для решения задачи.
Еще из менеджера библиотек SelChnI для смены переменной по сети и из программы

Сергей0308
03.06.2020, 22:01
Всем доброго времени суток. Имеется сетевая переменная Config, целочисленная. В ней должны храниться настройки прибора в виде битовых значений, например бит 0, состояние 0 - выключено, состояние 1 - включено. Также есть необходимость локально изменять бит 0 из экрана настроек. Как можно привязать этот бит к булевской переменной, чтоб при изменении переменной менялся бит, а при изменении бита в сетевой переменной по сети - менялась переменная?

Посмотрите вот этот проект, может чем поможет:

49448

acidzone
03.06.2020, 23:20
PUTBIT и EXTRACT это два основных FB для решения задачи.
Еще из менеджера библиотек SelChnI для смены переменной по сети и из программы

Сломал голову как можно использовать путбит и екстракт в контексте данной задачи. Верхний блок переписывает сетевую переменную при ее изменении по сети, т.к. булевская не изменяется при изменении сетевой. Нижний наоборот, все время переписывает булевскую с сетевой, не давая ей измениться с дисплея. Вот если б можно было выполнять эти операции по событию изменения переменной, но я так понимаю, что в OL это невозможно. SelChnI - не нашел такого макроса менеджере(

melky
04.06.2020, 00:12
SelChgI - поройтесь внимательнее, я по памяти название пишу.
Простите, вы тут нагородили, PUTBIT и EXTRACT для работы с битами чисел, к сетевым переменным они как собаке пятая нога.

А вот уже числа вы и гоняйте по сети и обратно.

Ревака Юрий
04.06.2020, 09:09
Сломал голову как можно использовать путбит и екстракт в контексте данной задачи. Верхний блок переписывает сетевую переменную при ее изменении по сети, т.к. булевская не изменяется при изменении сетевой. Нижний наоборот, все время переписывает булевскую с сетевой, не давая ей измениться с дисплея. Вот если б можно было выполнять эти операции по событию изменения переменной, но я так понимаю, что в OL это невозможно. SelChnI - не нашел такого макроса менеджере(

Вам нужно искать примеры управления из нескольких мест, существуют разные варианты и примеры:
ИПП120+ПР200 https://www.youtube.com/watch?v=YibiaUavC20
СП3xx+ПР200 https://www.youtube.com/watch?v=JWdyPn8010E
Управление из 3 мест https://www.youtube.com/watch?v=alT2Oi_fFho
Примеры проектов есть в описании, думаю по ним можно понять как работать с битами.

petera
04.06.2020, 10:49
Всем доброго времени суток. Имеется сетевая переменная Config, целочисленная. В ней должны храниться настройки прибора в виде битовых значений, например бит 0, состояние 0 - выключено, состояние 1 - включено. Также есть необходимость локально изменять бит 0 из экрана настроек. Как можно привязать этот бит к булевской переменной, чтоб при изменении переменной менялся бит, а при изменении бита в сетевой переменной по сети - менялась переменная?

Ваш вариант в пункте 3 этого сообщения https://owen.ru/forum/showthread.php?t=32194&p=318916&viewfull=1#post318916

49453

acidzone
04.06.2020, 11:20
спасибо всем за информацию, буду пробовать) подскажите еще пожалуйста, в старых инструкциях на пр200 (там пр200 в черном корпусе нарисован) пишут, что сетевая слейв переменная является retain, в новой инструкции на сайте про это ни слова. Как дела обстоят на самом деле в новых моделях с белыми корпусами?

Ревака Юрий
04.06.2020, 11:38
спасибо всем за информацию, буду пробовать) подскажите еще пожалуйста, в старых инструкциях на пр200 (там пр200 в черном корпусе нарисован) пишут, что сетевая слейв переменная является retain, в новой инструкции на сайте про это ни слова. Как дела обстоят на самом деле в новых моделях с белыми корпусами?

В белых корпусах аналогично, цвет корпуса на функционал не повлиял.