Сообщение создано: 07. 04. 2014 [16:24]
|
monia
Олег Намятов
Создатель темы
Зарегистрирован(а) с: 21.05.2012
Сообщения: 173
|
После обновления, появились непонятные ошибки после выполнения XML запросов
Скрипт создания или изменения узла транспортного протокола
в зависимости от начальных настроек выполняется создание или изменения узла
//Имя
XML_Req = SYS.XMLNode("set").setAttr("path","/sub_Protocol/mod_ModBus/n_" + NameNode + "/%2fnd%2fcfg%2fNAME").setText(NN);
SYS.cntrReq(XML_Req);
//Включать
XML_Req = SYS.XMLNode("set").setAttr("path","/sub_Protocol/mod_ModBus/n_" + NameNode + "/%2fnd%2fcfg%2fEN").setText(p0);
SYS.cntrReq(XML_Req);
//Адрес
if(!fCrtHisPrm)
MBAdr = 1;
else
MBAdr = 2;
XML_Req = SYS.XMLNode("set").setAttr("path","/sub_Protocol/mod_ModBus/n_" + NameNode + "/%2fnd%2fcfg%2fADDR").setText(MBAdr);
SYS.cntrReq(XML_Req);
//Входящий транспорт
XML_Req = SYS.XMLNode("set").setAttr("path","/sub_Protocol/mod_ModBus/n_" + NameNode + "/%2fnd%2fcfg%2fInTR").setText("Sockets." + IdKot + "_TT");
SYS.cntrReq(XML_Req);
//Протокол
XML_Req = SYS.XMLNode("set").setAttr("path","/sub_Protocol/mod_ModBus/n_" + NameNode + "/%2fnd%2fcfg%2fPRT").setText("TCP/IP");
SYS.cntrReq(XML_Req);
//Режим
XML_Req = SYS.XMLNode("set").setAttr("path","/sub_Protocol/mod_ModBus/n_" + NameNode + "/%2fnd%2fcfg%2fMODE").setText("Данные");
SYS.cntrReq(XML_Req);
//Период обсчета данных (с)
XML_Req = SYS.XMLNode("set").setAttr("path","/sub_Protocol/mod_ModBus/n_" + NameNode + "/%2fnd%2fcfg%2fDT_PER").setText(p1);
SYS.cntrReq(XML_Req);
+ скрипт на заполнения таблицы параметров и кода их обработки
По выполнению скрипта должен появляется работоспособный узел транспортного протокола (данным скриптом создал 94 * 2 узла которые нормально функционировали)
После обновления, когда я захотел пересоздать узел транспортного протокола, узел пересоздался и даже запустился без всяких ошибок. Только вот данные на него перестали идти. Вот и не пойму почему?
Смотрел следующие параметры в течении 10мин (параметры приходят как минимум раз в мин)
[b]
Статус: Включен. Затрачено времени: 226мкс. Запросов 0. Прочитано 0 регистров, 0 битов. Записано 0 регистров, 0 битов.
[/b]
Попробовал изменить узел руками, все заработал и данные пошли (просто изменил необходимый параметр в самом узле), так же сработало и с SQL запросом (весь проект хранится в SQLite)
[b]
Статус: Включен. Затрачено времени: 226мкс. Запросов 27. Прочитано 0 регистров, 0 битов. Записано 652 регистров, 0 битов.
[/b]
Сравнил созданные узлы скриптом раньше (до обновления) и текущие, ни чем не отличаются (да и сами скрипт создания узла не менял).
Вопрос, почему так происходит?
|
Сообщение создано: 07. 04. 2014 [18:19]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
|
"monia" wrote:
Вопрос, почему так происходит?
Ничего существенного не менял в Protocol.ModBus более трёх месяцев.
У меня проблем нет.
Learn, learn and learn better than work, work and work.
|
Сообщение создано: 08. 04. 2014 [07:17]
|
monia
Олег Намятов
Создатель темы
Зарегистрирован(а) с: 21.05.2012
Сообщения: 173
|
Нашел ошибку у себя в скрипте
на тот момент когда я его писал, "Протокол" был "TCP/IP", а сейчас он "TCP"
Изменил
//Протокол
XML_Req = SYS.XMLNode("set").setAttr("path","/sub_Protocol/mod_ModBus/n_" + NameNode + "/%2fnd%2fcfg%2fPRT").setText("TCP/IP");
SYS.cntrReq(XML_Req);
на
//Протокол
XML_Req = SYS.XMLNode("set").setAttr("path","/sub_Protocol/mod_ModBus/n_" + NameNode + "/%2fnd%2fcfg%2fPRT").setText("TCP");
SYS.cntrReq(XML_Req);
и все заработало как нужно
|