Тестирование Simple-Scada 2 (beta)

Автор Simple-Scada, 27 января 2016, 20:10:39

Simple-Scada

Все таки нужно признать, что TeNQ тоже прав, SCADA должна быть максимально простой, к чему мы и стремимся. Но некоторые моменты все же сложно сделать простыми, не добавляя лишних элементов.

garry

#61
Так вы уже сделали это в первой версии. Вторая версия это уже другая ступень. Всё, не мог удержаться. Отдыхайте уже.

deldemo

Ребята продолжайте двигаться в том же направлении и никого не слушайте. Пусть каждый занимается своим делом, кто-то реле паяют, а кто-то программы пишет, все равно все объять невозможно (Если конечно нет огромного желания познать до сели неизвестное).

Извините если вдруг кого_то обидел.

Simple_Scada

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

Andrey1883

Цитата: Simple_ScadaКомментарий от Simple-Scada:
Вы написали событие OnHourTimer для создания скрипта. Это ошибка. Ведь это событие-таймер и оно выполняется скадой каждый час, а значит и Ваш скрипт будет выполняться скадой каждый час! Немного позже мы выложим подробный правильный пример.
Спасибо!!я просто полез делать скрипт из Проект->скрипты , поэтому и не смог разобраться как добавить свой новый вот и пришлось записывать там где можно было ))а надо было лезть через События ->OnDataChange ...после просмотра видео на свои места все встало...
Цитата: Simple_Scada от 29 января 2016, 15:27:37Инструкция обязательно будет.

Andrey1883, способ конечно рабочий, но лучше так не делать. В этой теме небольшой пример как рекомендуется делать.
Раньше дела не имел со скриптами, будем учиться!! Спасибо вам огромное за ваш труд!!!!!!!

int2246

Спасибо за  Simple-Scada2. Скрипты по моему очень ускоряют написание проектов в СКАДЕ.
А для тех кому сложно со скриптами работать, я бы предложил разработчиком просто добавить в СКАДУ набор универсальных скриптов по умолчанию.
И еще хотелось бы предложить разработчикам чтобы элемент "поле" можно было блокировать от ввода когда это не надо. Например когда используется просто для отображение информации и не требует ввод данных. Я представляю это как галочку ввод данных. Или это можно с помощью скриптов организовать? если да то как?

Simple_Scada

#66
ЦитироватьИ еще хотелось бы предложить разработчикам чтобы элемент "поле" можно было блокировать от ввода когда это не надо

Для этого есть свойство "Доступен". Если его изменить на 0 (False), то ввод заблокируется. Это свойство также доступно для изменения из скриптов и называется Enabled.

deldemo

Уважаемые! Подскажите дураку как системное время вывести что-то у меня ни чего не получается.

Simple-Scada

#68
Это сделать просто. Поставим поле и назовём его к примеру "fldSystemTime". Затем перейдём в раздел скрипты и напишем в OnSecondTimer такой код:

Код: pascal
begin
  fldSystemTime.Text := DateTimeToStr(Now);
end.

Готово!

Пояснения: функция "DateTimeToStr" переводит дату/время в строку. А функция Now возвращает текущие дату и время. Если вам дата не нужна, а нужно только время то вместо "DateTimeToStr" используйте "TimeToStr". Если нужна только дата, то используйте "DateToStr". Эти и другие функции для работы с датой и временем описаны в справке.

deldemo

ОГромное спасибо. а то я все что можно уже перепробовал. Все понятно а вот вроде бы элементарная вещь поставила в ступр

Simple-Scada

Позже мы планируем сделать большое количество скриптов с решением подобных задач. Так что будет много примеров и работать со скриптами станет проще. Сейчас на это просто не хватает времени.

Константин

Тоже попробовал не очень получилось  :), времени нет подключаю себе домой 3 фазы но читаю форум вроде бы понятно все, но руки не доходят пописать скрипты хотя полный профан в этом одно радует что будут образцы и люди добрые выкладывайте свои скрипты в соответствующей теме заранее спасибо. Как только тестирование закончится планирую купить лицензию для своего дома  :)

TeNQ

#72
Почему я не могу присвоить двум объектам один и тот же слой. Это ошибка или особенность? В 1 версии, можно было. А здесь я как ни пытался, меняю слой у объекта А на слой которому принадлежит объект Б, и у объекта Б автоматически меняется слой.
И еще, я  понимаю это бред, но... Я попытался создать кучу объектов с целью выяснить сколько слоев я смогу использовать создавая объекты через ctrl+V. Где-то на 400+ я остановился. Созданные объекты "уехали" далеко за экран. И теперь я физически их не могу удалить. Я их вижу используя скроллинг на мышке, но выделить не могу, так как автофокус уводит к рабочей области. Ситуация смешная, но тем не менее.

Simple_Scada

#73
На самом деле так было и в первой версии - слои сами менялись в соответствии с расположением объектов, а цифра слоя оставалась неизменной. А сейчас наоборот мы видим реальное положение вещей. Все дело в том, что объекты не могут занимать один и тот же слой в один и тот же момент времени. Это связано с особенностями отрисовки графики.

ЦитироватьИ еще, я  понимаю это бред, но... Я попытался создать кучу объектов с целью
Используйте комбинацию клавиш Ctrl + A, чтобы выделить все объекты страницы (даже за пределами зоны редактирования)

Цитироватьс целью выяснить сколько слоев я смогу использовать создавая объекты через ctrl+V
Это количество не может превышать число 2147483647.

TeNQ

#74
У меня задача нарисовать прямоугольник с прозрачной заливкой и черной рамкой. В 1 версии я рисовал прямоугольник. Делал цвет заливки - без заливки, прозрачность - 0, цвет рамки - черный, прозрачность рамки - 255.
Во 2й у меня не получается этого сделать. Я убираю цвет заливки, делаю прозрачность 0. Цвет рамки - черный, прозрачность - 255. И рамки нет, так как добавилась новая переменная - толщина границы. Делаю ее 1 и весь прямоугольник заливается цветом границы, независимо от толщины. Почему? И вообще взаимодействие цвета границы и заливки работают как то некорректно. Уменьшаешь прозрачность заливки и цвет заливки переходит в цвет границы. Получается вы рисуете прямоугольник с цветом границы и на него накладываете прямоугольник с цветом заливки со сторонами минус толщина границы.

И еще одна проблема. Я использую MasterSCADA OPC. Сейчас в конфигурации 84 тега. Перехожу на вкладку редактора переменных. Значок импорт с OPC. Сервер OPC находится. Я  вижу теги. Но... в списке 83 переменных. Последнего тега нет. Я нажимаю на папке правой кнопкой мыши и на иконке написано "Импортировать(84)" И переменная таки импортируется. С правильным адресом. В списке редактора переменных она есть. Я могу присвоить ей шкалу, формат вывода и тд. Но... Я не могу ее нигде применить. Например, хочу привязать к полю. А ее в списке выбора нет. Ограничение бета-версии 100 тегов, так что это вроде не должно никак сказываться. В чем может быть проблема?

Запускаю клиент, и он не показывает, что связи с контроллером нет. Хотя сервер OPC был остановлен. Я попробовал поменять переменную в клиенте при остановленном OPC серве и окне OPC сервера стали всплывать окна об ошибке Access Violation in adress 00706C40 in module `modbusopcserver.exe` Read of adress 00000639C. Окно закрыть невозможно, оно спамится снова. Придется убрать сервер через процессы. Запустил сервер OPC снова, обмен пошел, а скада не почуяла восстановление связи. Выскочила ошибка Interface not supported. Перезапустил клиент скады и он в статусе подключаюсь к серверу SimpleScada висит уже минут пять, чего раньше не было ни разу. Только через принудительный перезапуск (через удаление из процессов) сервера скады удалось снова подключится клиенту скады.
Выяснил опытным путем, что если клиент скады был запущен и сервер OPC был запущен на обмен, то остановив сервер OPC и при этом попытавшись поменять переменную в клиенте, которая участвовала в обмене, то просходит какое нарушение работы сервера скады. По крайней мере если вы закроете клиент и попытаетесь его запустить заново, то у вас это не получится. Он просто не соединяется с сервером. Только принудительно его перезапустив удастся подключится.