PDA

Просмотр полной версии : Как правильно считать и записать битовые сигналы?



a_gricaj
12.08.2016, 23:08
25795
Суть проблемы:
Битовые сигналы настроек я в скаде пакую в слово и отправляю в ОРС-сервер, а далее в контроллер (так просто удобней - в контроллере завел один сигнал который потом сам разложился как надо в FB). Далее в скаде я читаю это слово и распаковую считанное и раскладываю по нужным сигналам(битам) для того чтобы видеть актуальные сигналы с контроллера при загрузке скады. Как видно из скрина сигнал который должен записаться в ОРС имеет плохое качество хотя этот сигнал с кнопки в одном из окон скады - и тут немогу ничего сделать. Если паковать один сигнал то нормально работает, а если два и больше то сигнал уже на выходе из блока упаковки некачественный и не пишется в опс (тогда нужно передернуть каждый битовый сигнал который пакуется и тогда качество появляется). Если ставляю значение до опроса "0" тогда при загрузке скады она пихает в контроллер "0" и данные обнуляются.
Снятие галки:25796 не помогло.

Подскажите пожалуйста как быть в моей ситуации....СПС

SCADAMaster
13.08.2016, 08:01
Пример в приложении.

a_gricaj
13.08.2016, 23:58
Пример в приложении.

Что то не работает,я наверное какую то мелочь пропустил...
25800

a_gricaj
14.08.2016, 01:04
А все нашел - надо было завести обратные связи с команды, спс, вроде работает...

Правда не понял зачем используется "записать" и "повторитель", нельзя ли просто привязать обратную связь и все, объясните пожалуйста.

SCADAMaster
14.08.2016, 09:03
Это сделано для того чтобы избежать посылки в контроллер стартовых значений (а также в случае, если значение какого-то бита изменится в самом сервере).

a_gricaj
14.08.2016, 11:58
Это сделано для того чтобы избежать посылки в контроллер стартовых значений (а также в случае, если значение какого-то бита изменится в самом сервере).

То есть скада при запуске сначала пишет, а потом читает данные???

SCADAMaster
14.08.2016, 16:03
В начальный момент данные из ОРС сервера могут придти некорректные данные - например нули

a_gricaj
01.09.2016, 19:15
Здравствуйте еще раз,
уже потратил кучу времени но сам не смог разобраться. У меня началась "свестопляска" - переменная тупо меняет свое значение с "1" на "0" после нажатия кнопки см. скрин.

26124

Игры с опросами не дали результата, в контроллере переменная не где не "сетится", помогите пожалуйста разобраться в чем проблема.

SCADAMaster
01.09.2016, 20:05
Обратная связь используется?
Поставьте галочку "Не передавать данные обратной связи" или задайте поле "Блокировка обратной связи" секунд 5

a_gricaj
01.09.2016, 20:13
Обратная связь используется, если устанавливаю "галку" - переменная тупо в нуле, 5 сек тоже не помогают.... "пляшет дальше"...

SCADAMaster
01.09.2016, 20:51
Приложите ваш проект.

a_gricaj
01.09.2016, 20:56
Приложите ваш проект.

Можно Вам на почту?

SCADAMaster
01.09.2016, 21:28
Можно.....

a_gricaj
01.09.2016, 21:46
Можно.....

Отправил....

SCADAMaster
02.09.2016, 09:38
Почему все блоки не по порядку?
Нужно расположить их сверху по мере поступления данных - прием данных, распаковка, команды, упаковка, условие, повторитель.
И почему цикл 5 мс, когда в ОРС сервере 1000?
Вставьте пример что мы вам дали в свой проект, размножьте команды и используйте.

a_gricaj
02.09.2016, 09:41
Почему все блоки не по порядку?
Нужно расположить их сверху по мере поступления данных - прием данных, распаковка, команды, упаковка, условие, повторитель.
И почему цикл 5 мс, когда в ОРС сервере 1000?
Вставьте пример что мы вам дали в свой проект, размножьте команды и используйте.

Не знал, что размещение блока имеет значение - размещал для удобства привязки к ОРС, а 5 мс это эксперимент...

SCADAMaster
02.09.2016, 10:08
Выполнение идет сверху вниз, что нужно учитывать.

a_gricaj
02.09.2016, 11:20
Переделал, с циклом в 1000 мс, приходится долго ждать (держать нажатой кнопку) а потом может быть такая ситуация:
26132
пока еще раз не "тикнешь кнопку", это все при цикле в 1000мс, может его уменьшить надо???
Менял позицию условия(в вашем примере условие имеет другую позицию) как вы говорили выше, та же история....

SCADAMaster
02.09.2016, 12:27
Вы неправильно кнопку сделали.
Вытащите команду на мнемосхему - она станет кнопкой.

a_gricaj
02.09.2016, 12:37
Вы неправильно кнопку сделали.
Вытащите команду на мнемосхему - она станет кнопкой.

кнопка же с Палитры, тоже есть нюансы???
Это мой третий проект, правда первый на контроллере (первые два работают отлично), и тут выясняется кнопки неправильно делал, ппц...

a_gricaj
02.09.2016, 12:50
Вы неправильно кнопку сделали.
Вытащите команду на мнемосхему - она станет кнопкой.

Да так работает, только кнопка "залипает" на пару секунд, это можно как то решить?? - заказчик вопросы будет ненужные задавать

SCADAMaster
02.09.2016, 13:14
Нет, пока что это поведение не отключаемое.

a_gricaj
02.09.2016, 13:27
Нет, пока что это поведение не отключаемое.

А если обратную связь делать через контроллер, или это бред??

Еще вопрос по кнопке(фиксированной):
например включение двигателя, в скаде нажал кнопку она пихнула "1" в контроллер через ОРС, далее если все ок она остается включенной. А если авария (например выбило автомат защиты двигателя) я заводил другой сигнал в "Динамизации входных сигналов" "Кнопка нажата", который соответствовал состоянию двигателя, при аварии кнопка "отжималась" и сигнал включения двигателя с кнопки переходил в "0", как теперь делать, в этой ситуации правильно??????

И с галочками как делать???????

SCADAMaster
02.09.2016, 14:46
А если обратную связь делать через контроллер, или это бред??

Не ясен ваш вопрос - а как еще, если не через контроллер?




Еще вопрос по кнопке(фиксированной):
например включение двигателя, в скаде нажал кнопку она пихнула "1" в контроллер через ОРС, далее если все ок она остается включенной. А если авария (например выбило автомат защиты двигателя) я заводил другой сигнал в "Динамизации входных сигналов" "Кнопка нажата", который соответствовал состоянию двигателя, при аварии кнопка "отжималась" и сигнал включения двигателя с кнопки переходил в "0", как теперь делать, в этой ситуации правильно??????

И с галочками как делать???????
Ну если контроллер отожмет этот сигнал, то и кнопка отожмется в скаде.

a_gricaj
02.09.2016, 15:05
Не ясен ваш вопрос - а как еще, если не через контроллер?



Ну если контроллер отожмет этот сигнал, то и кнопка отожмется в скаде.

По обратной связи, контроллеру и выложенному вашему примеру:
26143
и без условия и повторителя или это тоже самое будет?

SCADAMaster
02.09.2016, 16:21
Я не понял вашего вопроса.
Что значит "переприсвоить слово в слово"?

a_gricaj
02.09.2016, 16:54
Я не понял вашего вопроса.
Что значит "переприсвоить слово в слово"?

Вот так, только не работает
26145

Другого варианта (ваш пример) обработки битов в слове нет ??? Все программисты так и делают? Задержка смены изображения кнопки меня смущает, и как галочки себя будут вести, а уже пол проекта сделал........

SCADAMaster
02.09.2016, 17:19
Вот так, только не работает

Ну это вы сделали двумя ОРС переменными, одна на чтение, другая на запись. Но вообще должно бы и по одной работать, но можно оставить так.



Другого варианта (ваш пример) обработки битов в слове нет ??? Все программисты так и делают? Задержка смены изображения кнопки меня смущает, и как галочки себя будут вести, а уже пол проекта сделал........
Какие галочки?

a_gricaj
02.09.2016, 17:38
Галочки - Поля выбора
И еще проблема - как я говорил ранее использую битовую переменную для отжимания кнопки.
Так вот иногда бывает такая ситуация, что переменная изменилась с 1 на ноль но кнопка в окне объекта (окно открыто заранее) не изменила свое состояние - далее окно закрываю, потом открываю кнопка "отжалась" - вообщем проблема в Скаде с адекватной отрисовкой состояний кнопок (кнопки с палитры), или я я уже хз, посоветуйте, что тут делать пожалуйста....

SCADAMaster
02.09.2016, 17:52
Если у вас команда с обратной связь, с включенной передачей обратной связи, то все будет работать.
Привязываете и вход и выход динамизации поля выбора к одной и той же команде.

a_gricaj
02.09.2016, 18:13
Если у вас команда с обратной связь, с включенной передачей обратной связи, то все будет работать.
Привязываете и вход и выход динамизации поля выбора к одной и той же команде.

Правильно ли я Вас понял:
например есть команда StartMotor и RunMotor
C помощью перетаскивания команды StartMotor в окно я делаю кнопку StartMotor, а команду RunMotor привязываю ко входу и выходу динамизации "КНОПКА НАЖАТА" (кнопки StartMotor).
Далее если в контроллер от кнопки ушло StartMotor=1 и из контролера пришло согласно логики RunMotor=1(кнопка будет нажата), а если RunMotor=0(кнопка отожмется). Так???

a_gricaj
02.09.2016, 18:22
Правильно ли я Вас понял:
например есть команда StartMotor и RunMotor
C помощью перетаскивания команды StartMotor в окно я делаю кнопку StartMotor, а команду RunMotor привязываю ко входу и выходу динамизации "КНОПКА НАЖАТА" (кнопки StartMotor).
Далее если в контроллер от кнопки ушло StartMotor=1 и из контролера пришло согласно логики RunMotor=1(кнопка будет нажата), а если RunMotor=0(кнопка отожмется). Так???

Так не получается, так как при перетаскивании команды у созданной кнопки в входах динамизации нет поля "КНОПКА НАЖАТА"

a_gricaj
02.09.2016, 19:20
Скиньте пример с фиксированной кнопкой пожалуйста, а то я уже запутался...
Отжать кнопку которая создана перетаскиванием получается невозможно???????????????

SCADAMaster
03.09.2016, 09:25
Правильно ли я Вас понял:
например есть команда StartMotor и RunMotor
C помощью перетаскивания команды StartMotor в окно я делаю кнопку StartMotor, а команду RunMotor привязываю ко входу и выходу динамизации "КНОПКА НАЖАТА" (кнопки StartMotor).
Далее если в контроллер от кнопки ушло StartMotor=1 и из контролера пришло согласно логики RunMotor=1(кнопка будет нажата), а если RunMotor=0(кнопка отожмется). Так???
Если вы делаете кнопку, то никаких входов динамизации использовать не надо.
Берете команду, тащите на мнемосхему - она становится кнопкой.
Если нужна фиксация, открываете окно свойств и ставите галочку "Кнопка с фиксацией".

a_gricaj
03.09.2016, 11:31
Проблема в том как "отжать" кнопку которая создана перетаскиванием, а не с палитры.....

Может кому интересно, будет:
Решил оставить все кнопки (фиксированные) созданные с палитры - и привязанные (упаковка-распаковка) по вашему примеру (работает даже без соблюдения очередности блоков в скаде), а на кнопки без фиксации приходится выделять тег-bit, тогда кнопка адекватно меняет свое изображение...благо их не много у меня....

Еще проблема была когда при нажатии кнопки с фиксацией приходил сигнал в скаду от контролера на ее "отжим". Кнопка зависала в положении "вкл", при чем при "переоткрытия" окна с кнопкой она уже была в состоянии "откл", решил эту проблему удержанием сигнала отжима в "1" на 500 мс дольше в коде контролера.

А как "отжать" кнопку созданную перетаскиванием я так и не понял, буду использовать в проекте кнопки из палитры...., если еще не нарвусь на какой нибудь подводный камень.....

SCADAMaster
03.09.2016, 12:57
Проблема в том как "отжать" кнопку которая создана перетаскиванием, а не с палитры.....
Когда обратная связь с команды станет "ложь" кнопка сама отожмется.
То есть отожмет контроллер - отожмется и кнопка.
Если нужно сделать это от другой переменной, то это делается с помощью действия (одноименная вкладка у событий и команд) - присваиваете 0, кнопка отжимается.

a_gricaj
03.09.2016, 16:13
Когда обратная связь с команды станет "ложь" кнопка сама отожмется.
То есть отожмет контроллер - отожмется и кнопка.
Если нужно сделать это от другой переменной, то это делается с помощью действия (одноименная вкладка у событий и команд) - присваиваете 0, кнопка отжимается.

СПС большое

a_gricaj
04.09.2016, 00:17
Когда обратная связь с команды станет "ложь" кнопка сама отожмется.
То есть отожмет контроллер - отожмется и кнопка.
Если нужно сделать это от другой переменной, то это делается с помощью действия (одноименная вкладка у событий и команд) - присваиваете 0, кнопка отжимается.

А можно по подробней по вкладке "действие" , как переменной присвоить ноль? Или может есть документация с примером, а я не нашел, или можно на примере:

есть "команда1", перетаскиванием "команды1" создана "кнопка1" (с фиксированием)и есть "значение1" если оно равно "0" кнопка остается нажатой, а если "1" отжимается.
Как теперь с помощью вкладки действие это реализовать????

SCADAMaster
04.09.2016, 08:51
Вкладку "действия" нашли?
Добавляете действие, выбираете действие "Присвоить", в поле "Объект" тащите переменной которой хотите значение присвоить, в поле "Параметр" прописываете 0.

a_gricaj
04.09.2016, 08:55
Вкладку "действия" нашли?
Добавляете действие, выбираете действие "Присвоить", в поле "Объект" тащите переменной которой хотите значение присвоить, в поле "Параметр" прописываете 0.

есть "команда1", перетаскиванием "команды1" создана "кнопка1" (с фиксированием)и есть "значение1" если оно равно "0" кнопка остается нажатой, а если "1" отжимается, что должно быть в таком случае в поле "объект" и в поле "параметр"????

SCADAMaster
04.09.2016, 10:56
Пример в приложении.

a_gricaj
04.09.2016, 11:28
спасибо за пример

a_gricaj
12.09.2016, 22:10
Подскажите пожалуйста как решить еще аналогичную проблему но с "ПОЛЕМ ВЫБОРА":
26357

Или все поля переделывать в кнопки???
Заранее СПС

SCADAMaster
13.09.2016, 08:55
Используете команду с обратной связью, с включенной передачей обратной связи.
Вход и выход динамизации каждого поля привязываете к команде.

a_gricaj
13.09.2016, 09:04
Используете команду с обратной связью, с включенной передачей обратной связи.
Вход и выход динамизации каждого поля привязываете к команде.

Вроде все включено:
26365
26366
Вот здесь забыл:
26367
Это может быть причиной???

SCADAMaster
13.09.2016, 09:26
Да, может.
Вообще если у вас прямое соотвествие значений (истина-истина, ложь-ложь), то настраивать динамизацию свойства не обязательно - просто перетащите переменные на входы и выходы динамизации.

a_gricaj
13.09.2016, 09:30
НУ в общем вход и выход динамизации привязан к одной команде, соответствие значений настроил, а проблема не решилась...Куда еще копать??
Заметил эта проблема получается когда все галочки быстро одну за одной поставить - получается обратная связь не успевает, что ли??
А если сделать так:
26369
то проблема вообще в обновлении окон.....

SCADAMaster
13.09.2016, 10:41
У нас все корректно, видео и проект в приложении.

a_gricaj
13.09.2016, 10:50
У нас все корректно, видео и проект в приложении.

попробуйте пожалуйста не две галочки, а хотя бы с 10 и поставить-снять их быстро , да и почему тогда при "перезакрытии" окна та такая "фигня" см. мой пост выше,
А пример у вас в какой версии СКАДЫ???

a_gricaj
13.09.2016, 11:00
Почему все блоки не по порядку?
Нужно расположить их сверху по мере поступления данных - прием данных, распаковка, команды, упаковка, условие, повторитель.
И почему цикл 5 мс, когда в ОРС сервере 1000?
Вставьте пример что мы вам дали в свой проект, размножьте команды и используйте.

На видео у вас другая последовательность - как же правильно? как на видео? или как в посте?
У меня сейчас как в посте условие после упаковки....

SCADAMaster
13.09.2016, 12:48
А пример у вас в какой версии СКАДЫ???
Beta версия 3.7


На видео у вас другая последовательность - как же правильно? как на видео? или как в посте?
У меня сейчас как в посте условие после упаковки....
В принципе без разницы, но лучше после упаковки.

a_gricaj
13.09.2016, 13:00
Beta версия 3.7


В принципе без разницы, но лучше после упаковки.
Ну, а штук десять полей выбора быстро установить, а потом также быстро снять пробовали?? Когда все делать медленно как на видео, так и у меня все нормально....