PDA

Просмотр полной версии : Распаковка WORD-а в 16-ть BOOL-ов и подтверждение принятия переменной контроллером.



Shpilli Willi
12.07.2017, 07:17
Суть проблемы: есть переменная, назовем её INP, типа WORD, которая приходя с контроллера через ОПС в скаду распаковывается в 16 дискретных значений. На эту переменную завязана индикация и обратная связь с переменной, типа WORD, назовем её OUT.

В Контроллере переменная IPN отвечает за принятие/непринятие переменной Out. Для пояснения: оператор при нажатии кнопки записывает переменную Out, при этом на неё завязаны значения ручного/автоматического регулирования, и выбор режима. Но при выборе режима необходимо установить значения ручного/автоматического регулирования в автоматическое. Соответственно Контроллер присваивает переменной INP значение отличное от переменной OUT.
А теперь самое интересное, когда эти переменные разные (то есть INP и OUT имеют разные адреса), то данные обратной связи (уже без галочки "блокировка обратной связи") не принимаются на кнопке с фиксацией (Кнопка привязана через Команду) и кнопка остается нажатой (Хотя INP присвоил значение данному биту FALSE), а если сделать INP и OUT одной переменной (По совету оф. поддержки MasterSCADA, то проблема начнется с контроллером: он присваивает два значения в одну переменную (т.е. получается что INP равно OUT через небольшую задержу, а т.к. в команде привязанной к кнопке обратная связь, которая вызывает неудержимое вращение колеса сансары в следующем виде: в контроллер отправляется значение (OUT) равное 1, в это время значение обратной связи (INP) равно 0, приоритетом как я понял является обратная связь, и переменной OUT присваивается значение 0. В это время с контроллера приходит (INP) и по обратной связи присвает значение 1).

А без обратной связи OUT иногда не передается, что приводит к ошибке логики (Оператора).

Контроллер ПЛК 110, OPC Лектус и MasterSCADA 3.8

SCADAMaster
12.07.2017, 08:44
Посмотрите вот эту тему:
http://www.owen.ru/forum/showthread.php?t=24971

Shpilli Willi
12.07.2017, 09:19
Все прочитал (ещё до этого), все так делал, но "колесо сансары" крутится. Есть ещё одна интересная тонкость, если в контроллере нажать стоп (т.е. прекратить выполнение), потом через секунду пуск, то все становится отлично. И из приведенной ветки форума Вы так и не ответили на вопрос о флажках (как мне думается по природе возникновения эти ошибки имеют одни корни).

SCADAMaster
12.07.2017, 11:19
Все равно не понятно в чем проблема. Приложите ваш проект (Проект - Экспортировать) и несколько скриншотов описывающих проблему.

Shpilli Willi
13.07.2017, 09:06
Все равно не понятно в чем проблема. Приложите ваш проект (Проект - Экспортировать) и несколько скриншотов описывающих проблему.

Скриншоты не покажут проблему, нужно видео. Суть проблемы в том что значение некоторых дискретных переменных с некоторой вероятностью (не каждый раз) будут "мигать" т.е. 0>1>0>1 и т.д. с периодом примерно секунду. С кнопками проблему решил перетаскиванием распаковки выше, а упаковки и условия для упаковки ниже. Теперь проблема со списками (там, где галочки ставить) в окнах управления некоторых объектов. Проблема все та же, связана с миганием.

Shpilli Willi
13.07.2017, 09:22
Может ли быть такое, что по протоколу TCP они не могут связаться нормально (т.к. в один "цикл обмена" записали два значения в одну переменную), из-за чего происходит коллизия и все вышеописанное?

SCADAMaster
13.07.2017, 10:13
Почему у вас так все разрабросано по проекту? Сделайте как в примере - в одном объекте должна быть распаковка, команды, событие записи, упаковки и выходного повторителя. Сделайте в том же порядке как в примере.

Shpilli Willi
13.07.2017, 11:00
Почему у вас так все разрабросано по проекту?

Это называется удобство восприятия. Если это не поможет, есть ещё какие-либо варианты? Может ли быть такое, что по протоколу TCP они не могут связаться нормально (т.к. в один "цикл обмена" записали два значения в одну переменную), из-за чего происходит коллизия и все вышеописанное?

SCADAMaster
13.07.2017, 12:11
Может ли быть такое, что по протоколу TCP они не могут связаться нормально (т.к. в один "цикл обмена" записали два значения в одну переменную), из-за чего происходит коллизия и все вышеописанное?
Не может.....

Трофимов Артем
13.07.2017, 12:31
нажмите в программе ПКМ - порядок выполнения - согласно потоку данных. а то у Вас распаковка 256ого происходит после упаковки в регистр. т.е. старое значение упаковывается в регистр ответа, приёмный регистр обновляет данные , происходит обмен. отсюда могут появляться такие "попрыгушки" значени данных.

upd. также не видно когда присвоение данных в x_obr

Shpilli Willi
14.07.2017, 03:27
Значения X_Obr присваиваются в соответствующем алгоблоке (чтобы при выполнении выбранного режима перевести регуляторы в автомат). НА всякий случай программа+OPC конфиг.

Повторюсь: могут ли быть ещё какие-либо варианты, почему скада с контроллером некорректно "дружит" помимо "неправильного" расположения?

Shpilli Willi
14.07.2017, 05:27
И сразу вопрос: нужно ли делать ту же процедуру (Вход>Команда>Условие для записи>Повторитель по условию) для всех значений связанных так или иначе с обратной связью/управлением? То есть для всего, что не индикация.

Shpilli Willi
14.07.2017, 09:42
Добрый день! Переделал все так, чтобы распаковки, команды и упаковки не были "разбросано по проекту". В результате стабильно ловлю "колесо сансары"/мигание в списках с галочками.
Для поимки вышеописанного нужно просто за одну секунду выбрать 0 и 1 строку несколько раз, поочередно (0>1>0>1). Может не с первого раза, но успех поимки колеса гарантирован.

Возможно переделывая все дискретные переменные на четвертый раз я где-то сделал что-то не так, поэтому экстрагированный проект прикладываю.

SCADAMaster
17.07.2017, 14:43
В результате стабильно ловлю "колесо сансары"/мигание в списках с галочками.

Какими еще "галочками"? Где у вас расположены контролы?
Хотим сразу отметить, что контроль обратной связи (Блокировка обратной связи) работает только со стандартными контролами команд (то есть вытаскивание команды на мнемосхему как кнопку). Если вы привязали команду через входы и выходы динамизации - контроль работать не будет.

Shpilli Willi
18.07.2017, 03:24
Спасибо за ответ! Но как тогда использовать корректно этот функционал (поля выбора и набор переключателей)?

Shpilli Willi
18.07.2017, 07:20
Добрый день!

Возникла проблема. Все та же. Все на скриншотах. Проект приложен. Пароль 354620.

З.Ы. В ксловиях записи стоит ИСТИНА, т.к. от незнания начал экспериментировать.

SCADAMaster
18.07.2017, 09:48
Спасибо за ответ! Но как тогда использовать корректно этот функционал (поля выбора и набор переключателей)?
На данный момент не получится - возможны зацикливания.



Возникла проблема. Все та же. Все на скриншотах. Проект приложен. Пароль 354620.

Опишите в чем именно проблема - по скриншотам не понятно.