А что от скады требуется? Задание оборотов? Включение?
Сделайте отдельными командами или используйте ВФБ "2-позиционный механизм с выбором изображения" (закладка палитры "Исполнительные механизмы")
Вид для печати
А что от скады требуется? Задание оборотов? Включение?
Сделайте отдельными командами или используйте ВФБ "2-позиционный механизм с выбором изображения" (закладка палитры "Исполнительные механизмы")
Требуется управление вкл_выкл и индикация состояния вкл_выкл, задание частоты было бы тоже неплохо. Завтра испытаю ваш совет.
Нет. Данные кнопки не переименовываются.
Где можно посмотреть перечень изменений и доработок для новой стабильной версии скады?
В новости есть ссылка на документ WhatsNew:
http://insat.ru/upload/iblock/cf3/WhatsNew.rtf
Сегодня или завтра еще выложим в блог статью с обзором главных функций
По какому условию можно переподключиться? И как вообще можно сделать Реинициализацию OPC средствами скады?
Например отследить признак качества в событии функции OPCQuality
Это как? Напишите пожалуйста поподробнее. Я ещё не очень хорошо ориентируюсь в скаде
Добавьте в объект событие, на вкладке Формула, в разделе функций работы с признаками качества будет функция OPCQualty
Описание есть в справке. Данная функция возвращает признак качества, если он не 192 (норма), значит нет связи с устройством или ОРС
Как реализовать "Переподключиться по условию"? Я туда просто кинул дискретный канал и пока по кнопке пробовал принудительно его переподключать. Так будет работать переподключение? И мне это не помогло. Признак качества мне не выдавался в событии. Всегда висит ноль. Я выдёргивал сетевой шнур контроллера и ничего не диагностировалось. Я сделал тестовый проект из пары сигналов. Пытаюсь отследить состояние канала Пила с контроллера. Когда выдёргиваю сетевой шнур при переподключении системное сообщение не выдаётся, с подключенным шнуром выдаётся
Должно работать.
Приложите ваш проект. Выполните Проект - Экспортировать.
Вложение 28250 Вот тестовый проект
По кнопке должно срабатывать - скада отпишется от сервера, и он должен будет закрыться.
Сообщение какое то появляется в этот момент?
Вы вообще с какой целью выполняете переподключение? Сервер подвисает?
По OPCQulity у вас неправильно написала формула. Напишите например вот так:
OPCQuality( status ) <> НОРМА
Конечная цель всех этих махинаций следующая. Есть контроллер с CoDeSysOPCDA и АРМ на мастер скада. При перезагрузке контроллера, при выдёргивании шнура, признак качества не меняется, не диагностируется потеря связи. всё просто замирает по последнему значению. АРМ приходится перезагружать чтобы он подхватил всё. Вот я и хочу узнать как можно сделать реинициализацию сервера не выгружая проект. При чём когда я физически выдёргиваю сетевой шнур скада вообще не вдупляет что происходит. Не переподключается и не диагностирует качество сигнала. Но как только я подключаю шнур обратно она сразу начинает сыпать сообщения о потере связи и переподключение идёт
Возможно переподключение не срабатывает и сервер не выгружается.
Тогда вариант - убивать процесс, а уже затем переподключаться.
В приложении пример скрипта убивающего процесс с обвязкой - ОРС сервер опрашивается только когда нажата кнопка на мнемосхеме. Проект можно легко переделать под вашу задачу. Имя OPC процесса ОРС сервера задается в коде скрипта.
Запускать новый ОРС сервер нужно не сразу, а секунды через 2-3, чтобы успел выгрузится старый.
Имя процесса ОРС сервера задается в коде скрипта.
Что сервер передаст, то скада и выдает. Не меняется признак - не будет и сообщений.
Видимо Я некорректно обозначил проблему.
ОРС сервер находится на удаленном ПК, при физическом разрыве линии связи сервер клиенту ничего не передаст.
Необходимо в таком случае сформировать "недостоверность" тегам данного сервера, а после возобновления связи - реинициализацию подключения к ОРС. Как это реализовать?
Определить пропадание связи с сервером можно включив "полный опрос".
А вот если реинициализация не проходит, тогда уже проблема. Значит по какой причине сервер не закрывается при отписке от него, возможно запущен как служба.
После этого качество тегов определится?
Скада не сможет опросить ОРС сервер и выдаст предупреждение. Признак качества изменится
Команды на условия полного опроса и переподключения достаточно подать импульсно? Или нужно удерживать вкл до появления связи? Я вчера пробовал сделать полный опрос, вроде как получилось но ждал несколько минут
Импульсно.
Но полный опрос можно оставить как есть - он просто с неким периодом будет опрашивать.
По умолчанию период 120 секунд, 3 цикла опроса. Можете уменьшить.
Переподключение вроде срабатывает. Но вот полный опрос не проводится, потому что не меняется качество тега. Я сделал периодический и делал по условию. Очень долго приходится ждать. Написал скрипт который постоянно принимает пилу с ОРС сервера по сети. При замирании пилы скрипт воспринимает это как потерю связи и на выходе даёт сигнал на полный опрос. Но ничего не происходит.
А зачем на полный тогда?
Раз сделали собственную диагностику связи, то и кидайте сигнал на переподключение. Зачем полный опрос то выполнять тогда?
У меня просто некоторые ФБ во время режима исполнения равняются именно на качество тега. Полный опрос мне нужен исключительно для того чтобы определить качество сигналов.
Тогда просто включите полный опрос, с периодом секунд 10, и двумя повторами и все. Без использования поля "Опрос по условию".
Как можно определить есть связь со станцией или нет?
Есть удаленный контроллер, которого по modbus TCP опрашивает opc. На одном компе с opc MasterScada.
Сейчас реализовано так: периодически опрашиваю изменения 1 тега, передаю его в ФБ "Метка времени", если изменений не было больше определенного времени, крашу значок станции в определенный цвет.
Но на одной станции значение не меняется (или очень редко меняется), поэтому данный метод не подходит.
Пробовал считывать штамп времени для тега, он тоже не меняется.
Для группы тегов чекбокс постоянного опроса неактивный. Пробовал делать по условию полный опрос, передавал туда константу с истиной, штамп времени тоже не менялся.
Больше идей нет.
Вообще если вы опрашиваете устройство через ОРС сервер, то в случае если связи нет выставляется признак качества BAD.
Поэтому не совсем понятно зачем отслеживать метку времени
Подскажите, реально ли поставить ваш Multi-ProtocolOPC Server на Windows XP? Очень надо)
К сожалению нет.
Как в задатчике изменить промежуточные значения шкалы?
Промежуточные значнения? Что вы имеете ввиду?
Ну вот у меня шкала по умолчанию от 0 до 100. На шкале отмечены кроме крайних значений ещё и промежуточные это 25, 50, 75. Как мне поменять эти значения например на 10 20 и 30 и так далее?
К сожалению у данного контрола таких настроек нет.
Спасибо. Подскажите ещё вот что. Я в Отчёте тревог поставил колонку Оператор, чтобы видит кто совершает определённые действия. Где можно настроить чтобы в журнале отображалось какой оператор подаёт команды ?
В журнале действий оператора.
Если хотите видеть в общем журанале, то надо обновиться до 3.8 - это новая функция:
http://blog.insat.ru/2016/12/masterscada-38.html
Добрый день. Скажите есть ли возможность сброса аварии у ВФБ "2-поз мех с выбором изображения и "Задвижки мнемонической", т. е. чтобы кнопки "открыть" и "закрыть" стали активными?
Нет. Пока авария активная управление механизмом запрещено
Добрый день. Параллельно изучаю MasterSCADA и C#, собственно вопросы по скриптам:
1) Для отладки обычных программ удобно использовать Console.WriteLine("..."), однако в MasterSCADA консоль не вызывается и результаты работы скрипта я просмотреть не могу. Есть какие-нибудь альтернативы?
2) Следуя иерархической логике построения программ в MasterSCADA хотелось бы описывать классы в C# скриптах принадлежащих объектам более высокого уровня, а объекты этих классов реализовывать и вызывать в C# скриптах принадлежащих вложенным объектам (объектам более низких уровней).
Например я создаю объект "Ёмкости", в нём создаю объекты "Ёмкость 1", "Ёмкость 2", "Ёмкость 3". К объекту "Ёмкости" прикрепляю скрипт, в нем описываю класс Barrel.
К объектам "Ёмкость 1", "Ёмкость 2", "Ёмкость 3" прикрепляю скрипты, в каждом соответственно создаю и использую объекты класса Barrel (Barrel BarrelN = new Barrel(); ).
Как это реализовывается?
Update: Ближайшее, что нашел - система/библиотеки/скрипты C#, создаем скрипт, экспортируем, потом его можно в других скриптах в настройках подключать, но это не то. Во первых к каждому скрипту можно подключить только один библиотечный, во вторых после подключения у меня пропадает кнопка "компилировать"