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

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

Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - midnight1979

Страницы: [1] 2
1
К сожалению в этом вопросе мы вряд ли сможем что-то изменить, т.к. для запуска приложений используется только код Windows. Видимо в сборке 17134.523 также присутствует проблема с ShellExecute (в этом случае можно рекомендовать только сменить версию или сборку ОС), либо утечка связана с чем-то другим. Если есть желание, отправьте нам на support@simple-scada.com текущую версию проекта. Мы можем проверить её на различных ПК, а также на наличие другие проблем (вдруг утечка памяти вызвана чем-то ещё?).

Вероятно дело и версии, но решил все таки данную задачу пока со Скады снять. Во-первых - память утекает, во-вторых это не совсем задача для Скады таким способом через скрипты работать с API сторонних систем :)
Если бы были методы реализующие на языке скриптов запросы GET и PUT тогда возможно и на скаде бы оставил, а так написал собственного клиента OPC и сделал удобный интерфейс сопоставления тегов сервера с переменными проекта Blynk. - теперь каждый занимается своей задачей... :)

Но возможность работы с HTTP (а еще лучше через websockets) - очень ждем в Simple Scada...

2
Версия 1803 (17134.523)

3
Функция RunApplication вызывает переполнение памяти при многократном вызове!
Если запускать приложение из скрипта изменения переменной (а это раз в 1-2 секунды) то происходит постепенный рост занимаемой процессом server.exe памяти!
Причем в процессах видно, что запущенная через RunApplication программа отработала и завершилась.
Почему происходит утечка памяти?????????

По факту после запуска сервера Simple Scada - при текущей конфигурации проекта - процесс server.exe занимает в памяти порядка 96 мб, за последующий час работы сервера он уже занимает 117 мб. и так до максимально возможного объема оперативки.

Очень жду ответа разработчиков...

4
Ваши вопросы / Вопрос по REST API
« : 09 Февраля 2019, 15:45:41 »
Поднимал небольшой вопрос в соседней ветке https://simple-scada.com/forum/index.php?topic=145.msg6750#msg6750
Собственно разработчики молодцы что реализовали web-клиент, но было бы наверное очень здорово чтобы на базе появившегося web-сервера появился бы и какой нибудь API.
Чтобы можно было взаимодействовать со скадой из вне. Это расширило бы интеграционные возможности продукта в разы!

5
Ваши вопросы / Re: HTTP get/put запросы криптами
« : 09 Февраля 2019, 15:33:56 »
Добрый день!

Возможно ли на уровне скриптов формировать GET/PUT http запросы????
Вариант с RunApplication не очень элегантный...

спасибо.

Отвечу пока сам себе - на каком решении на данный момент остановился и оно в принципе меня устраивает.
Суть вот в чем - наверняка многие знают про такую штуку как Blynk. Так вот - есть свой сервер Blynk и нужно было передавать значения переменных Simple Scada в проект Blynk'a.
Благо у последнего есть свой HTTP RESTful API. Присвоение и чтение переменных проекта Blynk осуществляется при помощи GET/POST запросов.
В итоге создал в проекте Simple Scada скрипт на изменение переменных, который отправляет значения этих переменных на сервер Blynk при помощи CURL.
Естественно чтобы запустить CURL - воспользовался методом RunApplication, но в моменты запуска (а переменные изменяются часто) появление черных (консольных) виндовых окошек, которые с завидной регулярностью появляются и пропадают - интерфейсно это ну просто НИКАК!!!

В итоге запускаю CURL, но при помощи VBS скрипта (передав в него в качестве параметров значения переменных Simple Scada) - в примере ниже - для двух таких переменных:
RunApplication(SS_SERVER_NAME, 'c:\curl\curl.vbs', FloatToStr(t1.Value, 0) + ' ' + FloatToStr(h1.Value, 0));

//-- сам скрипт --//
Set objArgs = WScript.Arguments
Set oShell = WScript.CreateObject("WScript.Shell")
oShell.Run "c:\curl\curl.exe ip-address:port/blynk_token/update/v0?value="+objArgs(0), 0, falseTRUE
oShell.Run "c:\curl\curl.exe ip-address:port/blynk_token/update/v1?value="+objArgs(1), 0, falseTRUE
//--добавлено
Set objArgs = Nothing
Set oShell = Nothing

PS. В скрипте изменены параметры shell.run c FALSE на TRUE и добавлено обнуление переменных (как заверяют мануалы - эти переменные и сами должны "убиться" по окончанию выполнения, но раз создал сам то и убей сам), иначе произойдут серьезные утечки в памяти...

Вот таким образом не появляется никаких черных окошек - всё работает в фоне.
Всем спасибо, может у кого нибудь есть и другие варианты решения этой задачи, но я пока остановился на вышеописанном.
Пример наипростейший - осуществляется опрос датчика температуры и влажности воздуха, эти данные попадают в Simple Scada с ArOPC-сервера, и скриптом уходят в мобильное приложение Blynk.

6
Ваши вопросы / HTTP get/put запросы криптами
« : 09 Февраля 2019, 12:07:57 »
Добрый день!

Возможно ли на уровне скриптов формировать GET/PUT http запросы????
Вариант с RunApplication не очень элегантный...

спасибо.

7
И еще вопрос по расписанию.  Допустим система упала по какимто причинам.
 Если перестартовали контроллеры а скада нет, то система читает с них теги а они в 0-х, работа по расписанию нарушается. но если перезапустить клиента, то при его старте сохраненное расписание актуализируется и контроллеры выводят правильные значения.
Возможно ли какимто способом в случае восстановления опроса с контроллеров(не важно по какой причине он пропал) атоматически кореллировать состояния расписаний на выходах контроллеров без перезапуска клиента?
Я похожий вопрос задавал - в случае когда проект всегда запущен на сервере, то работа логики расписания работает корректно, и контроллер пожалуйста отключай/подключай.
Последняя версия Скады в этом плане вроде отлично доработана!

8
Хотелось бы иметь возможность интегрировать проект Скады с системами IP-видеонаблюдения......
С одной стороны это интересная мысль, но если поразмыслить логически, то картинка с видео потоком будет перекрывать мнемосхему тех. процесса этого узла или сопутствующих, что не позволит адекватно реагировать в сложившейся ситуации. Более того, оператору понадобятся дополнительные манипуляции для управления в момент аварийной ситуации( допустим переместить окно с видео в другое место). По мне правильно, когда видеонаблюдение находится на отдельной машине и занимается своим делом, тем более  IP-видеонаблюдение достаточно требовательно к сетевым ресурсам, что будет негативно сказываться на общей производительности сервера.

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

9
Хотелось бы иметь возможность интегрировать проект Скады с системами IP-видеонаблюдения.
Поясню для чего: есть некий технологический процесс и есть система видеонаблюдения, в случае аварии или возникновения возможно какого-либо другого события было бы здорово чтобы по требованию оператора (кнопка) или же на уровне скриптов можно было вызвать ОКНО с видеопотоком (RTSP или ONVIF-протокол) прямо в скаде.
Запись я думаю ни к чему - для этого существуют отдельные решения, а вот просмотр живого видео с камер было бы я думаю очень актуально - ВСЁ ПОД РУКОЙ (и показатели и возможность визуального контроля ситуации).

10
Добрый день , у меня есть переменная, ее значение находиться в диапазоне -14 до -20 .
 Я задаю верхнюю границу -14 ,нижнюю -20 . Значение переменой -14.5 срабатывает предупреждение о аварийной границе, хотя значение переменной в допуске.

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

11
Здравствуйте.

Вы перезапускали сервер скады после отключения флажка "Автоматически деактивировать проект если у него не клиентов"? Вы точно сняли данный флажок в Options.exe на компьютере-сервере, а не на клиентском ПК?

Да - действительно, сервер я не перезапустил, нигде про это не написано, да и большинство настроек на лету применяется (может это с толку сбило), не догадался, что в этом дело может быть.
После перезапуска - всё отлично - спасибо!

12
Не смотря на отключенную галку "Автоматически деактивировать проект если у него не клиентов" при закрытии клиента на ПК где запущен сервер скады - проект выключается!
Как сделать так чтобы проект работал постоянно?
Это связано с настройками расписания и хотелось бы чтобы согласно настроенным расписаниям - устройства включались и выключались не зависимо от того подключены клиенты или нет - это нужно для управления например уличным освещением, которое в определенное время должно включаться и выключаться автоматически.

Надеюсь, что понятно донес свои мысли - логика проекта должна работать всегда а не только тогда когда клиент подключен.

13
Всё понятно, будем пользоваться как есть!

Еще вопрос следующего характера:
При достижении предупреждающей границы SCADA может формировать соответствующее сообщение и звуковой сигнал оператору.
Если оператор подтвердил данное сообщение то звуковой сигнал останавливается. НО допустим значение до сих пор находится выше уровня предупреждения или тревоги каким образом через определенное время (10, 15, 20 секунд) снова "заставить" скаду формировать предупреждения - до тех пор пока показания не встанут в норму??? Иначе оператор может просто нажать на кнопку и допустим забыть про то что нужно пойти и проверить оборудование...

Каким образом осуществить переход на определенную страницу проекта если произошло событие достижения границы (предупредительной или аварийной - не важно - любой из них)?????

14
Отвечу пока сам себе.
Мне в принципе нужно было чтобы при достижении определенного значения - например в 25 градусов срабатывало предупреждение, а при 30 градусах уже авария.
Выставил обе нижних границы в 0 а верхние в соответствии со своими требованиями - все сработало вроде как нужно...

Вопрос только в том для чего нижние уровни нужны в таком случае???
Т.е. если развивать этот вопрос: например при температурах от 10 до 25 мне нужно чтобы было предупреждение а всё что выше аварией - как в таком случае настроиться?

15
В проекте получаю теги от датчиков температуры.
Попытался настроить границы - ничего не получается - ощущение что поля в настройках перепутаны!
Температура с датчиков может колебаться от 0 до 110 градусов. Уровни отражают показания корректно.

В настройках переменной:
1. Выставляю режим "Только аварийные"
2. Ставлю нижнюю границу = 27
3. Ставлю верхнюю границу = 110

Итог: получаю красный уровень уже на 24 градусах и сообщение "Нижняя аварийная граница! Значение: 24!

В чем проблема?

p.s. где можно регулировать цвета предупредительных и аварийных границ?

Страницы: [1] 2