Просмотр полной версии : перезагрузка трм 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 возможен или нет?
Если да, подскажите пожалуйста какой функцией это делается.
Если не трудно покажите как записывается эта функция.
Спасибо.
перезапуск по сети - команда Init.
если поможет - теоритически это делается как обычная запись параметра (с именем INIT), только в поле данных будет пусто.
какой командой и как это делается практически не подскажу (не программист)
resident
04.05.2010, 13:45
Спасибо, про команду Init я прочитал в документации, просто не понятно как ее записать в прибор. Сегодня вечером буду эксперементировать.
resident
04.05.2010, 19:29
блин ну до смешного доходит. похоже это тайна, о которой специалистам "овен" разрешено упомянуть (мол, есть такая возможность) но рассказать как ее применить запрещено. перерыл весь форум, всю доступную документацию просмотрел примеры, результатов 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 - каретка
Малышев Олег
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)
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot