EnglishУкраїнськаmRussian
Login/New
Topic with no new replies

Автоматизированный останов/запуск модуля из командной строки


Author Message
Written on: 17. 02. 2020 [12:23]
samsond
Dmitry Samsonov
Topic creator
registered since: 11.02.2020
Posts: 14
Занимаюсь разработкой модуля для подсистемы DAQ.
После каждой сборки приходится выполнять следующие операции:

1. Останов модуля мышкой через GUI
2. Копирование файла модуля в каталог, где openSCADA ищет модули.
3. Запуск новой версии модуля мышкой через GUI

Я хотел бы автоматизировать сборку, настроив, например, цель для make install.
Для этого нужно, чтобы все три пункта выполнялись из командной строки. Пункт 2, допустим. можно избежать, указав при запуске openSCADA соответствующее значение параметра --modDir.

Но как быть с пп. 1 и 3?
Written on: 17. 02. 2020 [17:43]
samsond
Dmitry Samsonov
Topic creator
registered since: 11.02.2020
Posts: 14
В качестве возможного решения (и даже, возможно, хорошего!) можно рассмотреть останов/запуск модуля средствами среды исполнения openSCADA. Например, в качестве реакции на специальный TCP запрос.
Но обзор API пока не дал ответа, есть ли в нем штатные средства для реализации такой задачи.
Written on: 18. 02. 2020 [08:32]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 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.



12297