PDA

Просмотр полной версии : Операции с 32 битовым числом



Евгений_Котов
21.10.2016, 14:17
Добрый день!

Ко мне приходит по OPC 32 битное число, которое мне полностью не нужно. Подскажите пожалуйста как его обрезать до 16 младших бит.
Понимаю, что можно сделать стандартными средствами из вкладки вычисления, распаковать 32б -> упаковать 32бит. Но может можно сделать на ST как-нибудь покороче ?

SCADAMaster
21.10.2016, 14:32
Можно в расчете - с помощью маски.
Применяете к вашему числу "Побитовое И" значение 65535

Адрей
24.10.2016, 21:34
Вопрос что делаю не так, есть команыды сигналов (кнопки) для передачи и упаковки в слово word c последующей упаковкой и передачи на орс. Пока не нажму по всем кнопкам, слова команды нет, орс ничего не передает разумеется. Как с этим бороться.

smk1635
24.10.2016, 23:38
Сделайте так:
27255

SCADAMaster
25.10.2016, 05:59
Нужно у всех команд которые вы связываете со входами включить значение до опроса.
Если хоть одного значения нет, ФБ не может рассчитать результат.
Рекомендуем также ознакомится с этой темой:
http://www.owen.ru/forum/showthread.php?t=24971

Адрей
25.10.2016, 06:20
Сделайте так:
27255
Если сделать так то будет происходить передача нуля на интерфейс, а это мне ненужно оно остановит процесс.

smk1635
25.10.2016, 09:02
Если сделать так то будет происходить передача нуля на интерфейс, а это мне ненужно оно остановит процесс.

Вы хотите включать и выключать Scada не останавливая тех. процесса? И что бы при новом старте восстанавливались прежние значения?
Спорное решение конечно, но тогда добавьте у всех дискретных входов :
27257

SCADAMaster
25.10.2016, 09:17
Вы хотите включать и выключать Scada не останавливая тех. процесса? И что бы при новом старте восстанавливались прежние значения?
Спорное решение конечно, но тогда добавьте у всех дискретных входов :
27257
У входов это делать бесполезно - они получат значения от источников. Если и восстанавливать то источники - команды.

Адрей
25.10.2016, 15:36
Вы хотите включать и выключать Scada не останавливая тех. процесса? И что бы при новом старте восстанавливались прежние значения?
Спорное решение конечно, но тогда добавьте у всех дискретных входов :
27257
Мне нужно отслеживать процесс и состояния команд на объекте, но управления оставлять за оператором на месте через панель оператора, так и удолленно через скаду. Состояние кнопок в мастер скаде должно соответствовать состояние кнопок панели оператора. Но вопрос о приоритетах, у меня на панели имеется местный режим где по состоянию бита происходит блокирование команд управления на мастер скаде, но возникает вопрос после снятия блокировки либо перезагрузки ПК со скадой подстроится под текущий команды процесса. С учетом мастер скады вижу это так. Состояние команд нужно не восстанавливать при редстарте а отслеживать это состояние и уже далее принимать решение что делать, параллельно можно подумать и о расогласавании состояний по обратной связи с привязкой аларма. Что можете по рекомендовать.

Адрей
25.10.2016, 15:46
У входов это делать бесполезно - они получат значения от источников. Если и восстанавливать то источники - команды.
Тогда про упаковку можно забыть и работать с каждым отдельным битом а через макрос отслеживать состояние или есть более простой метод?

SCADAMaster
25.10.2016, 15:52
Рекомендуем также ознакомится с этой темой:
http://www.owen.ru/forum/showthread.php?t=24971

Адрей
25.10.2016, 16:04
Рекомендуем также ознакомится с этой темой:
http://www.owen.ru/forum/showthread.php?t=24971
С этой темой уже знаком да она полезна в ней и познал обратную связь.

SCADAMaster
25.10.2016, 16:45
Это конечно замечательно, что вы ее познали.
Но прочитав тему и скачав пример, вы поняли как сделать чтобы команды позволяли бы отображать битовые значения и вводить их?

Адрей
25.10.2016, 17:48
Это конечно замечательно, что вы ее познали.
Но прочитав тему и скачав пример, вы поняли как сделать чтобы команды позволяли бы отображать битовые значения и вводить их?
Да читаю слово, распаковаю, в команде прописываю путь к выходу бита обратной связи. Заработало. Но хотелось бы отслеживать разницу чтения бита и выхода команды кнопки на аларм на изменение оператором с панели.
Но работает только с кнопкой. Уже с фб насоса не катет. Придется через кнопки делать.

SCADAMaster
25.10.2016, 18:03
А как вы заводите в насос? В какие переменные подключили?
Попробуйте сигнал приходящий по обратной связи подать также на вход "Вход включить" - в автоматическом режиме данный сигнал траслируется на выход "Выход включить". В ручном на "Выход включить" выдаются команды оператора.

Адрей
25.10.2016, 19:00
А как вы заводите в насос? В какие переменные подключили?
Попробуйте сигнал приходящий по обратной связи подать также на вход "Вход включить" - в автоматическом режиме данный сигнал траслируется на выход "Выход включить". В ручном на "Выход включить" выдаются команды оператора.
В автоматическом режиме трансляция идет с бита контроля состояния работы и сразу включает бит записи. Но отключает управление. Собственно поэтому я и на насосе и отключаю входы внешних команд. На стороне ПЛК нужно было делать аналог фб насоса тогда было бы все ок. Было бы не плохо иметь фб насоса мастер скады для ПЛК овен в среде CDS для обратной связке.