УкраїнськаEnglishmRussian
Вход/Новый
В теме нет новых постов

HEX запросы в openscada


Автор Сообщение
Сообщение создано: 30. 09. 2013 [12:58]
Godzilla
Арсен Закоян
Contributor
Создатель темы
Зарегистрирован(а) с: 12.02.2013
Сообщения: 123
Добрый день!Вопрос в следующем,можно ли через Пользовательский протокол написать HEX запросы,то есть послать строку вида 5D 00 57 32. Знаю что есть функция strDec4Bin, но я так понимаю она переводит из ASCII в HEX.Хотелось бы напрямую посылать HEX запросы к оборудованию.Если эта тема уже обсуждалась прошу прощения.
Сообщение создано: 30. 09. 2013 [15:35]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Godzilla" wrote:

Вопрос в следующем,можно ли через Пользовательский протокол написать HEX запросы,то есть послать строку вида 5D 00 57 32. Знаю что есть функция strDec4Bin, но я так понимаю она переводит из ASCII в HEX.

Да, из строки HEX в ASCII в соответствующую бинарную строку.
Ещё есть SYS.strFromCharCode()
Что быстрее, вопрос не такой очевидный, поскольку во втором случае вместо преобразования отдельная загрузка аргументов в регистры.

P.S. Примеры в коллекции реализаций пользовательских протоколов под различные счётчики.

Learn, learn and learn better than work, work and work.
Сообщение создано: 02. 10. 2013 [10:25]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зарегистрирован(а) с: 12.12.2007
Сообщения: 3750
"Godzilla" wrote:

Можно ли избавится от символа возврата каретки? Например посылаю команду к счетчику:
req =SYS.XMLNode().setAttr("ProtIt","xz").setAttr("addr",SYS.strFromCharCode(0x5D,0x00,0x39,0x20));
SYS.Transport["Serial"]["out_tnt43"].messIO(req,"UserProtocol");
Смотрю COM сниффером посылает 5D 00 39 20 0D .Последний символ я так понимаю и есть возврат каретки. Тогда как специальный софт для снятия показаний посылает то что нужно 5D 00 39 20.

Ну так и не отправляйте его, транспорт отправляет только то, что Вы ему записали!
Вы его или добавляете в коде объекта пользовательского протокола "xz" или включили программное управление потоком в самом транспорте.
Проверяйте, что идёт если прямо из транспорта отправить запрос: http://wiki.oscada.org/Doc/OpisanieProgrammy/part4/files?get=subsys_tr_mod_tr_otr_req.png

Learn, learn and learn better than work, work and work.
Сообщение создано: 02. 10. 2013 [10:56]
Godzilla
Арсен Закоян
Contributor
Создатель темы
Зарегистрирован(а) с: 12.02.2013
Сообщения: 123
Мой косяк,отправлял не через тот протокол,успел уже удалить свое сообщение.



7110