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

Опрос устройств по событию


Author Message
Written on: 06. 11. 2016 [13:13]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"tka4ev_s" wrote:

Использовал данный код для опроса счетчика СЕ102М
Выходная программа протокола prt:
rez=tr.messIO(io.text());
rez1=rez;

Зачем тут "rez1" вообще?

"tka4ev_s" wrote:

while(true)
{
trez = tr.messIO("");
if( !trez.length ) break;
rez+=trez;
}
io.setAttr("Text",rez);
опрос идет, но стоит только отключить питание как происходит зависание
а если запустить исполнение то скада полностью зависает не запустив среду исполнения.

Не должно тут зависать в принципе и у меня нигде не зависает, разве только что-то всё время вещяет и возвращает какие-то данные. Или ждёт на самом запросе огромных таймаутов транспорта. Кроме того оно должно было прерваться по защитному таймауту!

"tka4ev_s" wrote:

...
Правильное ли это решение?

Не правильно, разбирайтесь, что у Вас по чтению ответа tr.messIO(""); всё время идёт, добавив отладочные сообщения.

Learn, learn and learn better than work, work and work.
Written on: 06. 11. 2016 [19:31]
tka4ev_s
Сергей Ткачев
registered since: 19.10.2014
Posts: 30
Спасибо !!! код приписал заново все заработало
Written on: 25. 05. 2017 [13:39]
Михаил_ьч
Михаил Королев
registered since: 08.09.2015
Posts: 6
Добрый день! Чтобы не плодить темы, спрошу здесь:
как получить статус транспорта?
Запущен. Установлено: 25-05-2017 13:15:18. Трафик входящий 0Б, исходящий 3.73КиБ.

Остановлен. Установлено: 25-05-2017 13:15:18.

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

Конструкции типа
JAVASCRIPT
SYS.messInfo(0, SYS.Transport.Serial.out_MBRTU.getStatus());
или
JAVASCRIPT
SYS.messInfo(0, SYS.Transport.Serial.out_MBRTU.getAttr("status");

Возвращают всегда ноль.

Хелп и поиск перерыл весь, зашел в тупик.
Заранее благодарен за помощь!
Written on: 25. 05. 2017 [15:50]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"Михаил_ьч" wrote:

как получить статус транспорта?
...
Конструкции типа
JAVASCRIPT
SYS.messInfo(0, SYS.Transport.Serial.out_MBRTU.getStatus());
или
JAVASCRIPT
SYS.messInfo(0, SYS.Transport.Serial.out_MBRTU.getAttr("status");

Возвращают всегда ноль.

http://oscada.org/ru/forum/posts/raznoe/rabota_s_obektami
http://oscada.org/ru/forum/posts/raznoe/vopros_xmlzaros

Learn, learn and learn better than work, work and work.
Written on: 26. 05. 2017 [12:25]
Михаил_ьч
Михаил Королев
registered since: 08.09.2015
Posts: 6
Роман, спасибо за подсказку, но сделал по образцу:
JAVASCRIPT
//статус контроллера:
SYS.DAQ.ModBus.MSA.status()
//статус транспорта:
SYS.Transport.Serial.out_MBRTU.status()

На совершенно очевидную вещь убил кучу времени...

С запросом интерфейса управления (xmlCntrReq) ничего не получилось, потому что не понял, где брать правильные наименования атрибутов и тд. Возможно, в исходниках...
В примере, по-моему, путь пропущен, слегка с толку сбивает [url=]http://wiki.oscada.org/Doc/FLibSYS?v=9in#h378-7[/url] :
JAVASCRIPT
//sub_DAQ/mod_ModBus/cntr_1/prm_1 — путь согласно структуре проекта
req = xmlNode("get").setAttr("path",);


За глупые (с Вашей точки зрения) вопросы извините, скада очень нравится своей логичностью, но не всегда хватает способностей эту логику понять.
Written on: 26. 05. 2017 [13:01]
roman
Roman Savochenko
Moderator
Contributor
Developer
registered since: 12.12.2007
Posts: 3750
"Михаил_ьч" wrote:

С запросом интерфейса управления (xmlCntrReq) ничего не получилось, потому что не понял, где брать правильные наименования атрибутов и тд. Возможно, в исходниках...

string cntrReq( XMLNodeObj req, string stat = "" ); — запрос интерфейса управления к системе посредством XML. Обычный запрос записывается в виде "<get path="/OPath/%2felem"/>". При указании станции stat осуществляется запрос к указанной внешней станции. Адреса, атрибут "path", можно узнать в конфигураторе OpenSCADA, а именно в строке статуса где этот адрес высвечивается при наведении курсора мыши на конфигурационное или информационное поле. Примеры распространённых запросов:


"Михаил_ьч" wrote:

В примере, по-моему, путь пропущен, слегка с толку сбивает [url=]http://wiki.oscada.org/Doc/FLibSYS?v=9in#h378-7[/url] :
JAVASCRIPT
//sub_DAQ/mod_ModBus/cntr_1/prm_1 — путь согласно структуре проекта
req = xmlNode("get").setAttr("path",);


Не пропущен, это подсветка синтаксиса в Wiki кривая. Убрал.

Learn, learn and learn better than work, work and work.



7497