PDA

Просмотр полной версии : перезагрузка трм 212 по Rs485



resident
01.05.2010, 11:56
здравствуйте!

пожалуйста подскажите.
не могу понять(найти в документации) как перезагрузить прибор по сети?
язык программирования Vb.net

Николаев Андрей
01.05.2010, 15:33
Что значит перезагрузить контроллер???????????????????????:eek: :eek: :eek: :eek: :eek: :eek:

resident
01.05.2010, 18:17
это начит.
цитата из документации:
внимание!
1. «базовый адрес» следующего прибора в сети задается как <«базовый адрес» трм212 + 2>.
2. новые значения параметров обмена вступают в силу только после перезапуска прибора (после выключения и последующего включения питания) или перезапуска по Rs-485.

По поводу перезагрузки, не правильно выразился нужно было написать перезапустить.

Николаев Андрей
01.05.2010, 19:19
по сети выключить, а затем включить прибор нельзя...

resident
01.05.2010, 19:44
а кто сказал что его нужно по сети выключить а потом включить?????????

Вот еще из документации по прибору Программируемые параметры ТРМ212.
http://www.owen.ru/forum/attachment.php?attachmentid=2316&stc=1&d=1272728259

Обратите внимание "Команда перезагрузки прибора. Эквиваленит выкл/вкл питания" Для чего это написано?????
Теперь я понятно объяснил проблему?

resident
04.05.2010, 11:02
Уважаемые специалисты "Овен".
Перезапуск по сети Rs485 возможен или нет?
Если да, подскажите пожалуйста какой функцией это делается.
Если не трудно покажите как записывается эта функция.
Спасибо.

rish
04.05.2010, 11:22
перезапуск по сети - команда Init.
если поможет - теоритически это делается как обычная запись параметра (с именем INIT), только в поле данных будет пусто.
какой командой и как это делается практически не подскажу (не программист)

resident
04.05.2010, 13:45
Спасибо, про команду Init я прочитал в документации, просто не понятно как ее записать в прибор. Сегодня вечером буду эксперементировать.

resident
04.05.2010, 19:29
блин ну до смешного доходит. похоже это тайна, о которой специалистам "овен" разрешено упомянуть (мол, есть такая возможность) но рассказать как ее применить запрещено. перерыл весь форум, всю доступную документацию просмотрел примеры, результатов 0. ну, в чем дело? или это так банально, что и писать неохота. может программисты «овен» все-таки просветят как это делается?

Martin
05.05.2010, 11:29
для того, что бы послать команду Init в прибор, необходимо было прочитать протокол овен и посмотреть в таблице параметров, что у данного параметра нет типа данных.

а в кратце, необходимо записать в прибор пакет без поля данных. смотри пример ниже

прибор трм212
адрес: 0

из протокола овен следует
старшая часть адреса (1 байт) + младшая часть адреса (3 бита) + бит запроса (1 бит) + размер блока данных (4 бита - указывается количество байт) + Hash (2 байта) + поле данных (от 0 до 15 байт) + Crc (2 байта)

теперь пример посылки: # 00 00 00 E9 04 1b 0d

# начало посылки
00 - старшая часть адреса
00 - (000 0 0000 - 0 младшая часть адреса; 0 - бит запроса на запись; 0000 - поле данных равно 0 байт)
00 E9 - Hash параметра INIT
04 1b - CRC
0d - каретка

Малышев Олег
05.05.2010, 11:50
Читаем здесь
http://www.owen.ru/forum/showthread.php?t=7691
Думаю на VB.net примерно так же импортируются функции

Для записи init используем OwenIOdll.OwenIO
c нулевым размером параметров.

resident
05.05.2010, 12:13
Читаем здесь
http://www.owen.ru/forum/showthread.php?t=7691
Думаю на VB.net примерно так же импортируются функции

Для записи init используем OwenIOdll.OwenIO
c нулевым размером параметров.

Олег как импортируются функции я знаю. У меня практически законченое работающие приложение, прибор выполняет функцию регулятора перепада давления.

Я не знаю название этой функции(WriteFloat24, WriteByte и т. д.) какой??? если это возможно спомощью owen_io.dll.

Пример предложенный Martin(спасибо), насколько я понимаю здесь необходимо работать с портом на прямую(если не ошибаюсь) в данной ситуации не подходит.

Малышев Олег
05.05.2010, 14:25
Как это ни странно но в библиотеке OwenIO есть функция OwenIO

resident
05.05.2010, 14:59
Да не чего странного я ее пробовал не получилось, точнее не понятно что ей передавать в последних двух параметрах params и param_sz. Первый я так понимаю должен быть пустым а вот второй???

Малышев Олег
05.05.2010, 15:03
param_sz обратите внимание - он ссылочный - в ссылке при вызове размер передаваемых данных, а при возврате возвращаемых.
Т.е. param_sz:=0;А в params можно передать какой нибудь не нужный массив

resident
05.05.2010, 15:15
спасибо вечером попробую.

resident
05.05.2010, 21:33
Олег спасибо огромное! все работает. правда функция фозвращает код ошибки Err_timeout (-102) но я думаю что это логично, прибор реально выключается и вкючается снова(по крайней мере визуально).

resident
05.05.2010, 21:43
Да забыл. Если кому интересно получилось так:

В модуле обявляем функцию
Public Declare Function OwenIOUniversal Lib "owen_io" Alias "OwenIO" _
(ByVal adr As Integer, _
ByVal adr_type As Integer, _
ByVal is_read As Integer, _
ByVal command As String, _
ByVal params As String, _
ByRef param_sz As Integer) As Integer

Вызываем
Dim arr(0) As Byte
Dim res As Integer = OwenIOUniversal(mvarDevAdr, 0, 0, "INIT", arr(0), 0)