Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Универсальные скрипты  (Прочитано 8485 раз)

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Универсальные скрипты
« : 18 Января 2017, 17:39:51 »
Задача: Есть 60 переменных Т1 и 60 Т2, надо высчитать 60 дельт.

Скрипт я вызову, сендером выступит одна из температур по ченджу, а дальше?
Как объяснить какие именно температуры Т1, Т2 или дТ высчитывать?

Не, я конечно могу пройтись кейсом по тегу сендера и перебрать там все 60 комбинаций.
Могу не перебирая по ченджу Т1 или Т2 пересчитать все строка за строкой...

Но как-то это неправильно. Может есть более экономные по тексту и ресурсам варианты?
« Изменён: 02 Февраля 2017, 12:03:19 от Simple-Scada »

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: универсальные скрипты
« Ответ #1 : 18 Января 2017, 20:30:12 »
Цитировать
Скрипт я вызову, сендером выступит одна из температур по ченджу, а дальше?
Как объяснить какие именно температуры Т1, Т2 или дТ высчитывать?
Скорее всего никак, т.к. нужно будет как-то узнать что с чем вычитать, а этой информации нет. Может быть есть какая-то линейная зависимость, например считать T1 c T2, T2 c T3, T3 c T4 и т.д.? Если есть, то можно сделать. (и Вы снова переносите функции контроллера на скаду)
« Изменён: 18 Января 2017, 20:31:10 от Simple-Scada »

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Re: универсальные скрипты
« Ответ #2 : 20 Января 2017, 13:31:37 »
Тут готов с вами поспорить. Если мне эта дельта нужна для работы и потом я ее верну на контроллер, то да, переношу, но в данном случае это надо только для отображения данных на экране оператора. А все что касается отображения, так или иначе, проблема скады. Судя из вашей логики, то ваши минимумы, максимумы и границы - тоже перенос вами-же работы контроллера на скаду. Или универсальный скрипт по покраске поля в зависимости от параметра(-ов)... Я могу состояние (цвет) передавать и с контроллера, а не грузить скаду...
Но у каждого свое понятие о прекрасном, не говоря уже о 60 дополнительных регистров, которые стоят денег(если не впишусь в лицензию) и дополнительно нагрузят сеть, контроллер, лектус и т.д.

Касаемо зависимостей DT_1=Т1_1-Т2_1, DT_2=Т1_2-Т2_2, DT_3=Т1_3-Т2_3... или как-то так.

Simple-Scada

  • Администратор
  • *****
  • Сообщений: 3214
    • Просмотр профиля
    • Simple-Scada
Re: универсальные скрипты
« Ответ #3 : 22 Января 2017, 10:49:17 »
Цитировать
Тут готов с вами поспорить. Если мне эта дельта нужна для работы и потом я ее верну на контроллер, то да, переношу, но в данном случае это надо только для отображения данных на экране оператора.
Согласны, если это информация только на отображение, то вопросов нет. Для данной задачи нужно по изменению любой из двух переменных пересчитывать дельту, т.е. нужен OnDataChange на основе двух переменных (сейчас возможен только по одной). В будущих обновлениях скады такие функции появятся. К тому же планируется внедрение расчетных переменных, что сильно упростит решение подобных задач. А пока остается только создавать универсальный скрипт, работа которого строится полностью на именах переменных. Посмотрите пример проекта прикрепленный к сообщению.

Teodor

  • Старожил
  • ****
  • Сообщений: 256
    • Просмотр профиля
Re: универсальные скрипты
« Ответ #4 : 23 Января 2017, 16:49:58 »
Вот спасибо.  GetVariableByName полностью решает все вопросы, которые я ранее задавал. Просто даже мысли дурной не было что можно использовать вариаблу в к-ве имени вариаблы :) Это существенно упрощает жизнь на данном этапе.

Vladimir

  • Новичок
  • *
  • Сообщений: 15
    • Просмотр профиля
Re: универсальные скрипты
« Ответ #5 : 01 Февраля 2017, 07:58:50 »
Какъв точно е въпроса?) по ардуино или скадата? по анимацията би трябва да има инфо в мануала(ако имаш проблеми с руския, готов съм да помогна  ;)) Какво става в OPC-сервера като пускаш 5В на ардуиното? Ако в OPC значението се променя, остава само малко код в OndataChange)) На бърз поглед не видях старт/стоп анимация, обаче има property AnimSpeed за скорост на анимацията (нулата сигурно ще свърши работа)). Нямам никаква анимация в проекта, затова не мога засега да помогна повече( може би някой друг ще каже или разработчиците)