Сообщение создано: 17. 02. 2020 [12:23]
|
samsond
Dmitry Samsonov
Создатель темы
Зарегистрирован(а) с: 11.02.2020
Сообщения: 14
|
Занимаюсь разработкой модуля для подсистемы DAQ.
После каждой сборки приходится выполнять следующие операции:
1. Останов модуля мышкой через GUI
2. Копирование файла модуля в каталог, где openSCADA ищет модули.
3. Запуск новой версии модуля мышкой через GUI
Я хотел бы автоматизировать сборку, настроив, например, цель для make install.
Для этого нужно, чтобы все три пункта выполнялись из командной строки. Пункт 2, допустим. можно избежать, указав при запуске openSCADA соответствующее значение параметра --modDir.
Но как быть с пп. 1 и 3?
|
Сообщение создано: 17. 02. 2020 [17:43]
|
samsond
Dmitry Samsonov
Создатель темы
Зарегистрирован(а) с: 11.02.2020
Сообщения: 14
|
В качестве возможного решения (и даже, возможно, хорошего!) можно рассмотреть останов/запуск модуля средствами среды исполнения openSCADA. Например, в качестве реакции на специальный TCP запрос.
Но обзор API пока не дал ответа, есть ли в нем штатные средства для реализации такой задачи.
|
Сообщение создано: 18. 02. 2020 [08:32]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
Из внутренних процедур OpenSCADA можно сделать всё, что из конфигуратора и больше (сервисными запросами), с помощью функции SYS.cntrReq():
string cntrReq( XMLNodeObj req, string stat = "" ); — отправляет запрос интерфейса управления к программе-системе посредством XML. Обычный запрос записывается в виде <get path="/OPath/%2felem"/>. При указании станции в stat осуществляется запрос к указанной внешней станции. Адрес, атрибут "path", можно узнать в конфигураторе OpenSCADA, а именно в строке статуса, где этот адрес появляется при наведении курсора мыши на конфигурационное или информационное поле.
Как и вызвать команды консоли, функцией SYS.system().
Learn, learn and learn better than work, work and work.
|