PDA

Просмотр полной версии : вопрос про элемент "выпадающий список"



Евг55
18.08.2015, 10:16
Добрый день. Мне необходимо поменять уставку. Пользуюсь выпадающим списком, куда забиваю значения ,например, от 16 до 25. Хотелось бы получить следующее: если я не мнемосхеме в режиме исполнения выбираю из списка любую цифру, то далее она должна передаться через ОРС сервер - поступает в контроллер. Но так не происходит, в ОРС передается не показания от 16 до 25,а номер строки. Получается этот элемент бесполезен?

SCADAMaster
18.08.2015, 10:37
Данный контрол возвращает номер строки, а не вводимое значение.
Вам нужно обработать его в дереве объектов. Если 0 строка это 16, то тогда можно в модуле "Расчет" просто прибавить к возвращаемому номер строки 16 и это передавать в ОРС сервере.
Можно еще использовать ВФБ "Список строк" из закладки "Работа с архивом".

Евг55
18.08.2015, 11:24
Спасибо за оперативный ответ. Подскажите, я добавил из демо версии для изменения уставки элемент с ползунком такой, я не знаю как он называется, но с ним тоже беда- он меняет уставку, работает нормально, но при каждом запуске он не подхватывает значение уставки в контроллере, т.е. не обновляет себя, показывает всегда нижнюю границу ,в окошке отображения числа -нижней придел диапазона (ползунок в крайнем левом положении). Если пошевелить , то новое значение уйдет в контроллер через ОРС, ползунок и значение в окошке подползунком останется на этом значении, но при рестарте -снова нижняя граница шкалы. Восстановление при рестарте на этом элементе стоит. может,я что-то не так делаю?

SCADAMaster
18.08.2015, 13:04
Вам нужно использовать команду с обратной связью.
Создайте команду, на закладке "Опрос выхода" у нее есть поле "Обратная связь" перетащите в него ОРС переменную или выход ФБ (лучше выход ФБ "Повторитель" или сервиса внешних связей). После этого вытащите команду на мнемосхему правой кнопкой мыши и выберите вариант "Задатчик". Такой контрол позволит вводить данные оператором, и отображать текущее значение уставки в контроллере.

Евг55
18.08.2015, 13:46
Вам нужно использовать команду с обратной связью.
Создайте команду, на закладке "Опрос выхода" у нее есть поле "Обратная связь" перетащите в него ОРС переменную или выход ФБ (лучше выход ФБ "Повторитель" или сервиса внешних связей). После этого вытащите команду на мнемосхему правой кнопкой мыши и выберите вариант "Задатчик". Такой контрол позволит вводить данные оператором, и отображать текущее значение уставки в контроллере.

Получилось. Спасибо!

capzap
14.02.2017, 18:44
команда с перечислением и обратной связью работает с моей программой в плк,а вот выпадающий список имеет один глючный момент. Задумка была, что с помощью него оператор меняет числовое значение и в нём же отображается изменение от алгоритма программы, это сделано через динамизацию на вход подали значение с ОРС. Суть глюка в том, что когда контроллер меняет значение во время переходных процессов слишком быстро, до 500мс, список с задержкой, со входа на выход записывает значение, в итоге, плк сменил двойку на единицу затем на ноль и остановился, в это время скада пишет последнее прочитанное значение и перезаписывает ноль опять единицей.

SCADAMaster
15.02.2017, 08:07
Если делать как положено через команду с обратной связью, то решением проблемы зацикливания является настройка "Блокировка обратной связи". Также можно включить флаг "Не передавать данные обратной связи" и тогда сигнал приходящий по ОС не будет идти на выход команды, на выход команды будут поступать только сигналы вводимые оператором.

capzap
15.02.2017, 09:20
выпадающий список же берется из палитры, разве там есть свойства доступные элементам из дерева объектов
да и форма представления с перечислением мне больше подходит, над подтверждением уже не требуется работать

SCADAMaster
15.02.2017, 11:49
Во первых можно сделать перечислимую шкалу, и назначить ее команде (Система - Шкалы - Перечислимые).
Если все же требуется именно контрол мнемосхемы, то делать нужно так:
1. Создаете команду типа целый.
2. Привязываете к ней обратную связь. Снимаете галочку "Не передавать данные обратной связи".
3. Привязываете команду на вход и выход динамизации (Выбранная строка и Начальная выбор).

capzap
15.02.2017, 12:58
проблема была в очень быстром программном изменении переменной и относительно медленном соединении скады с контроллером

сделав как Вы написали, работает, но через раз, возможно с вариантом на перечислениях тоже такое может быть, но сколько раз проверял не заметил, а здесь буквально через раз

в примере при нажатии на событие стоп из любого значения больше единицы плк меняет значение переменной на единицу, через 500мс на ноль, в состоянии ноль отключаются функции её изменения алгоритмом, поэтому туда можно записать новое значение только из вне, это скорее всего и происходит со стороны скады и это может быть как ноль, так и единица


15-02-2017 13:09:19.025 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 0
15-02-2017 13:13:59.705 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 0
15-02-2017 13:13:59.267 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 1
15-02-2017 13:13:58.830 xStop:Запись в SIEMENSPLC.siemensplc.xStop значение 1
15-02-2017 13:13:57.127 xStart:Запись в SIEMENSPLC.siemensplc.xStart значение 1
15-02-2017 13:13:56.470 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 4
15-02-2017 13:13:16.765 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 1
15-02-2017 13:13:16.109 xStop:Запись в SIEMENSPLC.siemensplc.xStop значение 1
15-02-2017 13:13:13.780 xStart:Запись в SIEMENSPLC.siemensplc.xStart значение 1
15-02-2017 13:13:13.343 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 4
15-02-2017 13:13:09.108 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 0
15-02-2017 13:13:08.671 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 1
15-02-2017 13:13:08.233 xStop:Запись в SIEMENSPLC.siemensplc.xStop значение 1
15-02-2017 13:13:05.467 xStart:Запись в SIEMENSPLC.siemensplc.xStart значение 1
15-02-2017 13:13:05.030 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 4
15-02-2017 13:13:01.014 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 1
15-02-2017 13:13:00.358 xStop:Запись в SIEMENSPLC.siemensplc.xStop значение 1
15-02-2017 13:12:56.123 xStop:Запись в SIEMENSPLC.siemensplc.xStop значение 1
15-02-2017 13:12:54.014 xStart:Запись в SIEMENSPLC.siemensplc.xStart значение 1
15-02-2017 13:12:51.685 iOper:Запись в SIEMENSPLC.siemensplc.iOper значение 4

SCADAMaster
15.02.2017, 13:39
Предоставьте доступ к компьютеру по TeamViewer, из вашего объяснения непонятно что у вас происходит.

capzap
15.02.2017, 15:43
ну вот не могу согласиться, что нет в выпадающем списке ошибки. Запустил скаду, но управлял контроллером с панели, проявляется тот же эффект. В ОРС сервере ведется лог, что скада осуществляет запись. Получается, в списке, обратная связь управляет сама собою, хотя в её задачу входит только отображение действий выполненных оператором. Алгоритмы работы ведь могут быть разными, есть шанс получить неконтролируемое зацикливание двух шагов

SCADAMaster
15.02.2017, 15:58
Я вам объяснил почему выпадающий список так делает - блокировка обратной связи не влияет на внешние контролы, только на контролы самой команды.

capzap
15.02.2017, 16:03
я про другое, вып.список это элемент визуализации для оператора, с помощью него оператор управляет чем то и где то и если этот элемент без участия оператора что то пишет, это не нормально

SCADAMaster
15.02.2017, 16:19
Пишет не контрол, а пишет команда, у которой включена передача обратной связи.

capzap
15.02.2017, 16:42
т.е. если я в команде уберу ОС,а на вход списка подам значение полученное другим способом, то смогу убедится что это виноват не контрол, так?

SCADAMaster
15.02.2017, 17:02
Нет, так как сигнал пришедший на начальный выбор будет передан на выход контрола.
Чем вам не подходит вариант с перечислимой шкалой?

capzap
15.02.2017, 17:08
Нет, так как сигнал пришедший на начальный выбор будет передан на выход контрола.


значит, дело все же не в команде, а в списке

SCADAMaster
16.02.2017, 08:30
Нет, когда работает команда с обратной связью передача происходит по ней.
Теоретически можно решить вашу задачу на выпадающем списке через скрипт - обрабатывать входные сигналы с контроллера и раскрывающегося списка.
Но есть более простое решение на перечислимых шкалах.

Адлан
29.03.2019, 10:58
Здравствуйте!
В проекте 40 объектов. Каждому объекту на каждую смену может быть назначен исполнитель (или ответственный). Создал на каждый объект окно управления, в нем выпадающий список - получается, что список нужно вносить для каждого окна, и в случае изменения - изменять тоже в каждом окне. Можно ли как-то "попросить" систему обращаться к единому списку исполнителей?

SCADAMaster
29.03.2019, 11:29
Можно использовать ВФБ "Список строк" - из раздела Работа с архивом палитры ФБ.
Несколько данных ВФБ можно настроить на один файл. Тогда изменения будут применять ко всем

Адлан
29.03.2019, 13:13
Благодарю за ответ! Правильно ли я понимаю, что ФБ нужно вставить в каждый объект и отразить его в соответствующем окне? Тогда куда "воткнуть" файл? Или надо создать его отдельно и где-то написать путь к нему?

SCADAMaster
29.03.2019, 13:24
Правильно ли я понимаю, что ФБ нужно вставить в каждый объект и отразить его в соответствующем окне?
Да



Тогда куда "воткнуть" файл? Или надо создать его отдельно и где-то написать путь к нему?
Куда хотите.
Можно полный путь указать на любой папке на диске. Можно относительный путь - посмотрите описание ФБ в справке

Адлан
29.03.2019, 16:05
Стыдно признаться, где-то был параметр "период мигания" - не могу найти, и справки ничего не подсказывает...

SCADAMaster
29.03.2019, 16:36
Скриншот по ссылке:
https://yadi.sk/i/qlbQhcnsmY7vVA

Адлан
29.03.2019, 17:06
ОК, спасибо

Адлан
29.03.2019, 21:30
создал файл (сначала в документах, затем и на корне диска), включил в объекты "список строк" - по одному в каждый объект, настроил их на созданный файл - не хочет работать более, чем в одном объекте. Если "список строк" включен в несколько объектов, в первом из них работает, в остальных - список открывается пустой. Что может быть?
Также на главной мнемосхеме расположены 40 кнопок объектов - созданы простым перетаскиванием объектов на мнемосхему. Затем для каждого объекта одинаково создано окно управления. Первые два открываются по щелчку левой клавишей на соответствующей кнопке, остальные - только по контекстному меню. Так должно быть, или мне только кажется, что они одинаковые?

SCADAMaster
30.03.2019, 10:08
создал файл (сначала в документах, затем и на корне диска), включил в объекты "список строк" - по одному в каждый объект, настроил их на созданный файл - не хочет работать более, чем в одном объекте. Если "список строк" включен в несколько объектов, в первом из них работает, в остальных - список открывается пустой. Что может быть?
Приложите ваш проект (Проект - Экспортировать)



Также на главной мнемосхеме расположены 40 кнопок объектов - созданы простым перетаскиванием объектов на мнемосхему. Затем для каждого объекта одинаково создано окно управления. Первые два открываются по щелчку левой клавишей на соответствующей кнопке, остальные - только по контекстному меню. Так должно быть, или мне только кажется, что они одинаковые?
Вытаскивайте объект правой кнопокой мыши и выбирайте в контекстном меню какое окно нужно открывать

Адлан
30.03.2019, 10:27
Пытаюсь вложить, но

Адлан
30.03.2019, 10:33
Сделал экспорт, завернул в rar, но вложить в сообщение не удается, говорят, не хватает прав

Адлан
30.03.2019, 10:51
https://yadi.sk/d/mYqzyAeH5JBHEQ

Загрузил на яндексдиск.
Задача стояла сделать диспетчеризацию сварочного цеха, чтобы по каждому сварочному посту можно было назначить сварщика, контролировать и учитывать время варки и простоя и (еще не пытался реализовать) создавать ежедневный отчет, в котором будут отражены имя сварщика и время варки по каждому посту.

SCADAMaster
30.03.2019, 13:19
У вас только в одном объекте лежит ВФБ "Список строк", поэтому где он у вас включен в нескольких объектах - не ясно.
И использовать файл лежащий в корне диска С (и любого диска) - плохая идея, туда может не быть прав. Сделайте папку и туда кладите файл.
Также посмотрите наши видеопримеры, особенно про механизм Шаблон - Экземпляр, он вам явно понадобится
https://insat.ru/products/?category=1524

Адлан
30.03.2019, 13:57
Да, извиняюсь. Первоначально "список строк" был в первых трех объектах - открывался только в первом. Затем я удалил их из первых двух, чтобы проверить - и в третьем заработал

SCADAMaster
30.03.2019, 18:41
Тогда верните и проверьте снова. Только файл положите в папку не в корне диска

Адлан
31.03.2019, 10:37
Здравствуйте!
Вернул. Файл положил в папку, где проекты МастерСКАДА. Картина такая же

SCADAMaster
31.03.2019, 12:50
Пришлите новую версию проекта.

Адлан
31.03.2019, 15:11
https://yadi.sk/d/mYqzyAeH5JBHEQ

Там же. Вставил список строк в пять первых объектов (постов). Список открывается только в одном. Так же по шелчку ЛКМ открывается окно управления только первых двух постов, остальные по шелчку ПКМ - "окно управления"

SCADAMaster
01.04.2019, 11:53
Посмотрите пример в приложении
https://yadi.sk/d/QoNd8Qu6VDUgow

Адлан
02.04.2019, 08:50
Здравствуйте! Посмотрел. Все то же. Если список сбрасывать при следующем выборе, вроде, работает, но мне надо, чтобы каждый из них "держал" выбор...
Видимо, я не совсем понимаю, как это должно работать. Наверно, хочу невозможного. Попробую решить задачу по-другому. Вопросы, конечно, еще будут, потому что надо еще формировать отчеты...

Адлан
10.04.2019, 14:54
https://yadi.sk/d/BUW8J9113c_7WQ

Здравствуйте!
Пока сделал только два поста, должно быть сорок. Необходимо в конце каждой смены сохранять (желательно экспортировать в отдельный файл Excell) данные (три целочисленных переменных) по каждому посту. Что для этого лучше применить: рапорт или отчет? Как это сделать, чтобы в конце каждой смены и автоматически? В руководстве написано (и показано), что отчеты создаются во встроенном Excel, но у меня открывается просто белый лист, без ячеек. Это сбой, или я что-то делаю не так?

SCADAMaster
10.04.2019, 16:09
Используйте отчет - рапорты Excel это устаревший функционал и использовать его не надо.
Вся документация, в том числе по автоматическому формированию отчетов на нашем сайте в виде видеопримеров и документации:
https://insat.ru/products/?category=1525
https://insat.ru/products/?category=1524

Адлан
12.04.2019, 10:26
Здравствуйте!
Кажется, все (понемногу) оживает. Только одно еще не понятно: границы смены (начало, конец, количество смен) изменяется раздельно, в режиме разработки и в режиме исполнения. Можно ли сделать, чтобы актуальным для выдачи импульса в конце смена были установки в режиме исполнения?

https://yadi.sk/d/aYbT2vxMT3jvWA

SCADAMaster
12.04.2019, 10:34
Можно ли сделать, чтобы актуальным для выдачи импульса в конце смена были установки в режиме исполнения?

Ничего не понятно - поясните эту фразу. Что именно вы хотите сделать?

Адлан
12.04.2019, 10:55
Я сделал автоматическое сохранение отчета в конце смены. Но если время окончания смены изменяю в режиме исполнения, время сохранения отчета не изменяется - он остается таким, какое было выставлено в режиме разработки. При этом, при следующем вхождении в режим исполнения система помнит параметры смен, установленные в прошлом сеансе.
Клиент хочет, чтобы время начала и окончания смены можно было изменять в режиме исполнения, а мне надо, чтобы сохранение отчета происходило в конце смены, установленном в режиме исполнения

SCADAMaster
12.04.2019, 11:08
Я сделал автоматическое сохранение отчета в конце смены.
Каким образом это сделано? Через расписание, через ФБ "Служебная информация"?
Приложите ваш проект.

Адлан
12.04.2019, 11:42
Выше уже приложен
https://yadi.sk/d/aYbT2vxMT3jvWA
Сделано, как в примере, через расписание выдается импульс, сохранение через "управление документом". А "границы смены" в режиме исполнения пытаюсь изменить через окно управления системой.
ФБ "Служебная информация" имеет только выходы, изменить через него что-то (кажется) невозможно

SCADAMaster
13.04.2019, 16:19
В настоящий момент изменение расписания смен не влияет на действия событий и ФБ "Служебная информация".
Мы исправим данную ошибку

Адлан
14.04.2019, 10:37
Здравствуйте!
Как-нибудь можно будет узнать об исправлении?

SCADAMaster
14.04.2019, 11:09
Мы напишем сюда