Повідомлення створено: 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.
|