Вопросы и предложения по Simple-Scada 2

Автор Simple-Scada, 11 мая 2015, 20:34:39

Teodor

Есть вопрос этического характера по демо версии (64 тега).

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

Насколько реально создание "коммерческой" версии с возможностями как у демо(64) по какой-то доступной цене, но с софтовыми ключами для коммерческого использования? Да, это бзик, но, все-же клиенту я продам не свой проект на демо движке, а полноценный продукт, который он уже при желании будет апгрейдить и допиливать.

Simple-Scada

Teodor, если Вам достаточно 64 тегов, то Вы можете использовать демо-версию с ограничением на 64 тега в коммерческих целях, мы это никак не запрещаем.

Teodor

Спасибо, но все-же, я бы вам предложил тогда, хотя-бы, "для учета" их бесплатную регистрацию ввести при скачивании. А для таких упертых как я, то и немного платную. Просто за то что надпись "Демо" пропадет у конечного пользователя :)

Пока, оставлю ему демо, а там посмотрим. Тем более что СТАНДАРТ для него уже на другой (в т.ч. географически) объект куплена.

GEW

#633
Здравствуйте.
Хотелось бы узнать как реализовано управление кнопкой.
1. Алгоритм когда кнопка в режиме без фиксации сама генерирует 1->0 это мягко говоря неправильно. Она должна посылать команду в контроллер 1, а контроллер сам должен сбрасывать команду "0" по исполнению. Могу представить ситуацию когда несколько клиентов в одно время посылают 1->0. Мягко говоря бардак.
2. Похоже что событие Onklick по кнопке руководствуется исключительно её координатами на курсоре. Мне нужно чтобы в разных режимах (авто и ручной для оборудования) кнопка либо работала, либо нет. Просто деактивировать кнопку - это логично, но нужно чтобы ещё оператор знал что кнопка неактивна. А визуально это никак не отображается, кроме отсутствия анимации клика. Пробую реализовать изменение её цвета, но как это  сделать? Скриптом я этого не могу: цвет зависит от режима - в данном случае "без фиксации". Скрыть кнопку "хайдом" почему-то скриптом мне также не удалось.
3. Решаю проблему по-другому - накладываю поверх кнопки поле которое закрывает кнопки, но при клике в том месте где они находились - скрипты срабатывают! Поверх этой кнопки вторую пустую - тоже самое.😱
4. Пожелание: инструмент "заменить" в редакторе скриптов.
5. При редактировании тэгов иногда проще их удалить и заново импортировать из ОПЦ. Так например в моём случае ОПЦ забирает определённым образом структурированные тэги. Иногда эту структуру приходится менять в процессе разработки ПО нижнего уровня. Структура генерится самой ОПЦшкой. По расчётам будет более 500 тэгов. Если я удалю их, а проще удалить и заново забрать из ОПЦшки - то все подвязки тэгов на экранках удаляются... вбивать заново. А это тысячи подвязок! Нужно предоставить пользователю право выбора - удалять подвязки или нет.

Simple-Scada

#634
Здравствуйте.

Цитировать1. Алгоритм когда кнопка в режиме без фиксации сама генерирует 1->0 это мягко говоря неправильно. Она должна посылать команду в контроллер 1, а контроллер сам должен сбрасывать команду "0" по исполнению.
Да, кнопка сама пишет в переменную 1 и 0. Способ который Вы описали можно было бы реализовать, но только по нашей статистике он не подойдет 80% пользователей, т.к. они не используют сброс на 0 на контроллере. Для Вашей задачи должна подойти кнопка с фиксацией и одним состоянием с значением = 1.

ЦитироватьМогу представить ситуацию когда несколько клиентов в одно время посылают 1->0. Мягко говоря бардак.
Не совсем понятно что именно беспокоит Вас в присваивании 1 -> 0. Команды поступят на OPC-сервер по-порядку и также по-порядку выполнятся.

ЦитироватьМне нужно чтобы в разных режимах (авто и ручной для оборудования) кнопка либо работала, либо нет. Просто деактивировать кнопку - это логично, но нужно чтобы ещё оператор знал что кнопка неактивна.
Допустим у Вас есть переменные: vrMode ("ручной/авто") и vrValue (переменная значение которой меняет кнопка). Тогда нужно связать основную переменную кнопки с переменной vrValue, а доп. переменную кнопки с vrMode. Теперь на событие OnDataChangeEx можно поставить универсальный скрипт (такой скрипт подойдёт и другим подобным кнопкам):

Код: pascal
begin
  if Sender is TM_Button then    // проверяем, что Sender это кнопка
    with Sender as TM_Button do  // далее работаем с Sender'ом, как с кнопкой (тип "TM_Button")
      case VariableEx.AsInt of   // если значение доп. переменной кнопки равно
        0 : States[0].Color := clGray;  // изменить цвет на серый
        1 : States[0].Color := clGreen; // изменить цвет на зеленый 
        2 : States[0].Color := clRed;   // изменить цвет на красный    
      end;
end.

Данный пример подробнее описан в руководстве по этой ссылке.

ЦитироватьСкриптом я этого не могу: цвет зависит от режима - в данном случае "без фиксации".
Вы можете изменить цвет кнопки как показано в примере выше. Кнопка состоит из множества состояний, в каждом состоянии она может принимать разный цвет. При изменении цвета кнопки через скрипты нужно менять цвет в каждом состоянии.

Цитировать4. Пожелание: инструмент "заменить" в редакторе скриптов.
Замена будет добавлена в будущих обновлениях.

ЦитироватьНужно предоставить пользователю право выбора - удалять подвязки или нет.
Эта задача есть в планах. Но быстро добавить такую возможность не получится, потребуется время. Сейчас есть возможность массового обновления свойств переменных только из CSV-файла определенной структуры. Импорт из CSV описан здесь.

GEW

#635
6. Забавная ситуация: на оншоу окна подвязал скрипт изменения координат объекта.
Изначально окно стоит "по-центру". Оно вызывается кнопкой и немного уходит ниже экрана. Если его вытянуть - то все размещённые объекты смещаются вниз от окна. Помню было обещание отдельной настройки для координат окна (чтобы оно всегда вызывалось от координат вызывающего объекта и при дальнейшем перетаскивании не запоминало новые координаты - открыл-потаскал-закрыл-открыл снова - положение вновь от вызвавшего объекта). Когда планируете реализовать? В данной ситуации это критично чтобы не писать скрипт на оншоу.
Про цвет кнопки по States[0] - спасибо. Это я недосмотрел). Искал через ctrl+Пробел что-то подобное, в мануал лишний раз поленился глянуть)

tgeka86

#636
Доброго времени суток. Столкнулся с такой ситуацией: руками запускаю OPC-сервер, затем СКАДУ, значения принимаются скадой и передаются через OPC  в контроллер.
Если сразу запустить СКАДУ (Клиент), она сама запускает OPC-сервер, чтение данных из него происходит, а вот записать из СКАДЫ в контроллер и OPC не получается.
СКАДА v2.2.2.0. OPC-сервер от производителя контроллера (Regul OPC DA Server v1.0.0.22). В их техподдержке сказали что от клиента нет запроса на запись переменной, при запуске сервера клиентом. Соединение между контроллером и OPC-сервером осуществлено по Ethernet.
С помощью arOPC возможно подключение только по modbus? Какое устройство необходимо выбрать при добавлении?

Simple-Scada

#637
Цитата: GEW от 12 июля 2017, 12:32:27Когда планируете реализовать? В данной ситуации это критично чтобы не писать скрипт на оншоу.
В ближайшем обновлении уже будет доступно. Постараемся опубликовать как можно скорее.

Цитата: tgeka86 от 12 июля 2017, 14:05:59Столкнулся с такой ситуацией: руками запускаю OPC-сервер, затем СКАДУ, значения принимаются скадой и передаются через OPC  в контроллер.
Если сразу запустить СКАДУ (Клиент), она сама запускает OPC-сервер, чтение данных из него происходит, а вот записать из СКАДЫ в контроллер и OPC не получается.
СКАДА v2.2.2.0. OPC-сервер от производителя контроллера (Regul OPC DA Server v1.0.0.22). В их техподдержке сказали что от клиента нет запроса на запись переменной, при запуске сервера клиентом.
Здравствуйте. Скада не делает никаких различий между OPC-сервером запущенным пользователем и OPC-сервером, который запустила сама. Как Вы производите запись из скады? Вводите значение через поле, или нажимаете какую-то кнопку? Вы уверены, что у скады достаточно прав на взаимодействие с OPC-сервером и что она не блокируется файрволлом/антивирусом или другим ПО? Если запускать сервер скады от имени администратора, то ничего не меняется?

ЦитироватьС помощью arOPC возможно подключение только по modbus? Какое устройство необходимо выбрать при добавлении?
Полный список протоколов можно посмотреть здесь. Также можно задать вопрос разработчикам arOPC на этом форуме в разделе arOPC.

tgeka86

ЦитироватьКак Вы производите запись из скады? Вводите значение через поле, или нажимаете какую-то кнопку?
Ввожу значение в поле, пробовал тип BOOL и REAL, при этом тонкая рамка вокруг поля мерцает, а запись не происходит. Данные из контроллера продолжают отображаться.

ЦитироватьВы уверены, что у скады достаточно прав на взаимодействие с OPC-сервером и что она не блокируется файрволлом/антивирусом или другим ПО?
Да, так как при запуске в последовательности: ручной запуск OPC-сервера  ->  Сервер СКАДЫ от админа  ->  Клиент от админа   - все работает нормально.
Если запустить Клиент от админа  -> он запускает сервер СКАДЫ  -> он запускает OPC-сервер, то запись не происходит (рамка вокруг поля мерцает).

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

serg

#639
Здравствуйте участники форума ! Я недавно начал учиться работе с мастер-скадой и codesys . Программирую ОВЕН ПЛК100.
 Программу написал , связь со скадой через ОРСсервер , который с программой codesys , визуализация через мастерскаду . Всё проверил на моём ноубуке - работает ( через Ethernet ).
Вопрос в том , как теперь установить визуализацию на комп. оператора . Нужно-ли устанавливать все программы ?
В интернете много видеороликов , но не понятно , как сделать готовый к работе проект . Чтобы оператор открыл файл на рабочем столе и работал .
На компе оператора уже есть программа визуализации завода ( какая-то из германии ) , нужно добавить узел , не связанный с основным .
Так-же знакомлюсь с Simple-Scada . Может она проще ?

Simple-Scada

tgeka86, сервер скады гарантированно отправляет значение на OPC-сервер, когда Вы вводите его в поле. Мигающая рамка говорит о том, что значение на присвоение было отправлено на OPC-сервер и ожидает ответа. По каким-то причинам OPC-сервер не получает запрос на присвоение. Значит он как-то блокируется. То, что при ручном запуске всё работает наводит на мысль о том, что дело в ограниченных правах, т.к. ОС больше доверяет таким приложениям. Уточните, в какое расположение установлена скада?

Цитата: serg от 12 июля 2017, 17:09:18Вопрос в том , как теперь установить визуализацию на комп. оператора . Нужно-ли устанавливать все программы?
В интернете много видеороликов , но не понятно , как сделать готовый к работе проект . Чтобы оператор открыл файл на рабочем столе и работал.
Здравствуйте. Для работы с Simple-Scada 2 достаточно установить саму скаду, OPC-сервер и СУБД MySQL (если нужны функции архивации трендов и сообщений) и можно приступать к разработке проекта в скаде. Кратко процесс разработки скада-проекта обычно проходит так: конфигурируется OPC-сервер и настраивается связь с конечными устройствами; создаётся новый проект в редакторе скады (Editor.exe); с OPC-сервера в проект импортируются теги (или добавляются вручную); строится интерфейс проекта; запускается сервер скады (Server.exe); клиент скады (Client.exe) подключается к серверу. Полное руководство на русском языке доступно по этой ссылке.

tgeka86

#641
ЦитироватьУточните, в какое расположение установлена скада?
Исходя из руководства, скада установки не требует. Папка со скадой находится на рабочем столе (так же пробовал C:\Simple-Scada\). Запускать просто или от имени администратора разницы нет (по крайней мере не было замечено). Имя проекта не содержит кириллицу.
Параллельно общаюсь с разработчиками OPC-сервера, выслал им логи работы сервера. Чтоб им дополнить картину, можно где-то взять логи OPC-клиента? Чтоб подробнее понять в какой момент происходит сбой.

GEW

Добрый день. Посоветуйте что делать с FlashColor:
Нарисовал Image трёхходовой клапан (три треугольника) на основе цветов стандартного клапана. В зависимости от состояния двух DI тэгов меняю кадры (всего 4). В кадрах меняется цвет внутренней заливки на ~clLime с ~clLightGray. В состоянии когда оба DI = true все три треугольника залиты clLime. При этом нужно сигнализировать оператору жёлтым блинком что что-то не так (данный трёхходовой конструктивно без смешения компонентов). Но желтый на clLime вообще никак не бликует. Другие цвета - да, хоть и не совсем так как хотелось бы (видимо что-то с распознаванием оттенков серого). Я докрутил вместо 4 кадра два 4 и 5 с заливкой жёлтый/зелёный и скажем с помощью тэга чередую 4-5, но может есть рекомендации при редактировании картинки которые позволят избежать лишних кадров и махинаций? Какие графические примитивы стоят в очереди на разработку?

Simple-Scada

Цитата: GEW от 14 июля 2017, 12:15:27Но желтый на clLime вообще никак не бликует. Другие цвета - да, хоть и не совсем так как хотелось бы (видимо что-то с распознаванием оттенков серого).
Здравствуйте. Дело в том, что цвет накладывается поверх текстуры и происходит смешивание цветов. Если нужно добиться полной смены цвета, то текстура должна быть белой. Поэтому для создания такого клапана нужно либо использовать множество кадров с поочередной сменой для мигания, либо составлять клапан из трёх отдельных текстур белых треугольников с перекрашиванием каждого треугольник отдельно (тогда можно и стандартное мигание использовать). Но лучше всего, конечно, встроить дополнительный трехходовой клапан в скаду, такая идея есть, но пока до конца не ясно как выработать решение, которое подойдёт всем пользователям.

GEW

В итоге после экспериментов вышел из положения по-другому. Зелёный блинк на желтом клапане - работает как нужно  :)