здравствуйте!
пожалуйста подскажите.
не могу понять(найти в документации) как перезагрузить прибор по сети?
язык программирования Vb.net
Вид для печати
здравствуйте!
пожалуйста подскажите.
не могу понять(найти в документации) как перезагрузить прибор по сети?
язык программирования Vb.net
Что значит перезагрузить контроллер???????????????????????:eek: :eek: :eek: :eek: :eek: :eek:
это начит.
цитата из документации:
внимание!
1. «базовый адрес» следующего прибора в сети задается как <«базовый адрес» трм212 + 2>.
2. новые значения параметров обмена вступают в силу только после перезапуска прибора (после выключения и последующего включения питания) или перезапуска по Rs-485.
По поводу перезагрузки, не правильно выразился нужно было написать перезапустить.
по сети выключить, а затем включить прибор нельзя...
а кто сказал что его нужно по сети выключить а потом включить?????????
Вот еще из документации по прибору Программируемые параметры ТРМ212.
http://www.owen.ru/forum/attachment....1&d=1272728259
Обратите внимание "Команда перезагрузки прибора. Эквиваленит выкл/вкл питания" Для чего это написано?????
Теперь я понятно объяснил проблему?
Уважаемые специалисты "Овен".
Перезапуск по сети Rs485 возможен или нет?
Если да, подскажите пожалуйста какой функцией это делается.
Если не трудно покажите как записывается эта функция.
Спасибо.
перезапуск по сети - команда Init.
если поможет - теоритически это делается как обычная запись параметра (с именем INIT), только в поле данных будет пусто.
какой командой и как это делается практически не подскажу (не программист)
Спасибо, про команду Init я прочитал в документации, просто не понятно как ее записать в прибор. Сегодня вечером буду эксперементировать.
блин ну до смешного доходит. похоже это тайна, о которой специалистам "овен" разрешено упомянуть (мол, есть такая возможность) но рассказать как ее применить запрещено. перерыл весь форум, всю доступную документацию просмотрел примеры, результатов 0. ну, в чем дело? или это так банально, что и писать неохота. может программисты «овен» все-таки просветят как это делается?
для того, что бы послать команду 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 - каретка
Читаем здесь
http://www.owen.ru/forum/showthread.php?t=7691
Думаю на VB.net примерно так же импортируются функции
Для записи init используем OwenIOdll.OwenIO
c нулевым размером параметров.
Олег как импортируются функции я знаю. У меня практически законченое работающие приложение, прибор выполняет функцию регулятора перепада давления.
Я не знаю название этой функции(WriteFloat24, WriteByte и т. д.) какой??? если это возможно спомощью owen_io.dll.
Пример предложенный Martin(спасибо), насколько я понимаю здесь необходимо работать с портом на прямую(если не ошибаюсь) в данной ситуации не подходит.
Как это ни странно но в библиотеке OwenIO есть функция OwenIO
Да не чего странного я ее пробовал не получилось, точнее не понятно что ей передавать в последних двух параметрах params и param_sz. Первый я так понимаю должен быть пустым а вот второй???
param_sz обратите внимание - он ссылочный - в ссылке при вызове размер передаваемых данных, а при возврате возвращаемых.
Т.е. param_sz:=0;А в params можно передать какой нибудь не нужный массив
спасибо вечером попробую.
Олег спасибо огромное! все работает. правда функция фозвращает код ошибки Err_timeout (-102) но я думаю что это логично, прибор реально выключается и вкючается снова(по крайней мере визуально).
Да забыл. Если кому интересно получилось так:
В модуле обявляем функцию
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)