НПО Тепловизор. Теплосчетчики и расходомеры К вершинам эволюции теплосчетчика
Продукция Поддержка Форум Контакты
     
Пользователь    Пароль  
Регистрация | Пароль?  
Главное меню
НовостиПродукцияФайлы/ДокументыСтатьиФорумОпросыФотогалереяО компанииРекламодателям
Потребители о нас
"Наличие у ЗАО «НПО «Тепловизор» высококвалифицированных специалистов позволило выполнить работы в срок и на высоком техническом уровне. Годичная эксплуатация телпосчетчика на теплопроводе смычки подтвердила высокое качество монтажа и наладки прибора учета."

В.В.Сулименко, Главный инженер 11-го района теплосети «МОСЭНЕРГО»
Наши партнёры
Свернуть/Развернуть ТЕПЛОСЧЕТЧИКИ • ВОДОСЧЕТЧИКИ • РАСХОДОМЕРЫ • ВИС.Т Свернуть/Развернуть
/  Список форумов
   /  Оборудование производства НПО "Тепловизор"
/  Modbus
 1  2  » 
«  Предыдущая тема    Следующая тема  »
Тема:  Modbus    

Konstantin Re: протокол гидра

Новенький


Большое спасибо за поддержку, теперь все понятно.
» 5.7.06 19:25 Профайл Посетить веб-сайт

CH Re: протокол гидра

Администратор


Цитата:

Konstantin пишет:
В руководстве сказано:
…при использовании команды без параметра прибор отвечает посылкой, содержащей значения всех доступных параметров…

"Доступных" в данном контексте означает тех, которые доступны прибору (не сказано же просто "всех"). Если у прибора нет датчика температуры T3, так он её и не передаст, сократив структуру на соотвеоствующие 3 байта.

Цитата:

Открываю приложение “С” руководства и смотрю на полную информационную часть ответного пакета команды “mon c”, считаю байты, получаю 66 байт информации. Даю команду “mon c” без параметров и собираюсь разобрать пакет, а у меня величина всей ответной посылки для команды “mon c” равна 45 байт. И как же мне теперь его разбирать, что тут есть, а чего нет?

В пакете передаётся маска параметров(4 байта). Первый бит 1 - есть подающий расход (и его точка), второй бит 1 - есть обратный расход (и его точка) итд по структуре:
typedef struct { long v1;
unsigned char v1point;
long v2;
unsigned char v2point;
long v3;
unsigned char v3point;
long g1;
unsigned char g1point;
long g2;
unsigned char g2point;
long g3;
unsigned char g3point;
short t1;
unsigned char t1point;
short t2;
unsigned char t2point;
short t3;
unsigned char t3point;
short t4;
unsigned char t4point;
unsigned char p1;
unsigned char p1point;
unsigned char p2;
unsigned char p2point;
unsigned char p3;
unsigned char p3point;
long q;
unsigned char qpoint;
unsigned long err32;
unsigned char err32point;
} HCMONITORCURRENT;

Вот пример в досовской манере (надеюсь не напутал):

void swapper(unsigned char* dest, unsigned char* src, int num)
{
unsigned char* temp = new unsigned char[num];

memcpy(temp, src, num);

while(num--)
{
*(dest++) = *(temp+num);
}

delete temp;
}

void UnpackCPacket(unsigned char* dest, unsigned char* src, unsigned long mask)
{
const int
HcMonCurrSize[] = { sizeof(long) + 1, /* V1 */
sizeof(long) + 1, /* V2 */
sizeof(long) + 1, /* V3 */
sizeof(long) + 1, /* G1 */
sizeof(long) + 1, /* G2 */
sizeof(long) + 1, /* G3 */
sizeof(short) + 1, /* T1 */
sizeof(short) + 1, /* T2 */
sizeof(short) + 1, /* T3 */
sizeof(short) + 1, /* T4 */
sizeof(char) + 1, /* P1 */
sizeof(char) + 1, /* P2 */
sizeof(char) + 1, /* P3 */
sizeof(long) + 1, /* Q */
sizeof(unsigned long) + 1 /* e32*/
};

for(int i = 0; i < (sizeof(HcMonCurrSize)/sizeof(HcMonCurrSize[0])); i++)
{
if( mask & 0x00000001 )
{
// Распаковываем сразу с переворотом
swapper(dest, src, HcMonCurrSize[i]-1);
dest[HcMonCurrSize[i]-1] = src[HcMonCurrSize[i]-1];
src += HcMonCurrSize[i];
}
else memset(dest, 0, HcMonCurrSize[i]);

mask >>= 1;

/* Сдвинуть указатель неупакованной записи */
dest += HcMonCurrSize[i];
}
}

//Теперь, dann - инф. часть пакета данных команды /MON C
unsigned long mask = *((unsigned long*)((unsigned char*)dann + 1));

swapper((unsigned char*)&mask, (unsigned char*)&mask, sizeof(mask));

HCMONITORCURRENT m;

// Распаковать параметры из пакета в структуру
UnpackCPacket((unsigned char*)(&m), dann + 5, mask);

// Что было, распаковано в ПОЛНУЮ структуру m.

Цитата:

Действительно, в руководстве ничего не сказано о том, что разным устройствам соответствует свои пакеты данных, и уж тем более не сказано о том какому прибору соответствует какой пакет данных.

Надеюсь, прочтя предыдущий абзац вы поняли, что все необходимые для интерпретации пакета данные присутствуют в самом пакете. Это не SA94, в котором одному богу известно, как интерпретировать его массивы данных.

Цитата:

Возможно у Вас все-таки есть руководство, применимое к устройству ВИС.Т? Или примеры работы с разбором данных?


см. выше.

--
Виктор В. Жданов
NegaSoft Co. FAE
НПО "Тепловизор", Главный инженер-программист
» 5.7.06 18:40 Профайл Посетить веб-сайт

Konstantin Re: протокол гидра

Новенький


Пишу программу под DOS, так что скоре всего dll не подойдет. Если только нет исходных алгоритмов разбора данных (если есть, то был бы очень благодарен)
В руководстве сказано:
…при использовании команды без параметра прибор отвечает посылкой,
содержащей значения всех доступных параметров…
Открываю приложение “С” руководства и смотрю на полную информационную часть ответного пакета команды “mon c”, считаю байты, получаю 66 байт информации. Даю команду “mon c” без параметров и собираюсь разобрать пакет, а у меня величина всей ответной посылки для команды “mon c” равна 45 байт. И как же мне теперь его разбирать, что тут есть, а чего нет? Действительно, в руководстве ничего не сказано о том, что разным устройствам соответствует свои пакеты данных, и уж тем более не сказано о том какому прибору соответствует какой пакет данных. Возможно у Вас все-таки есть руководство, применимое к устройству ВИС.Т? Или примеры работы с разбором данных?
» 5.7.06 15:59 Профайл Посетить веб-сайт

CH Re: протокол гидра

Администратор


Ни то, ни другое, ни третье. Про 58 байт не сказано ни слова ни на одной странице руководства. Цитирую: "Упакованная структура данных ... Параметр <маска> определяет наличие или отсутствие в пакете отдельных элементов структуры."
Вероятно вы не обратили внимание на слова об упакованности. Структура прореживается за счёт несуществующих в приборе параметров и потому размер её может существенно различаться для разных приборов.
Кстати, под какую платформу и на чём вы пишете? Если необходимо иметь только текущие данные / наработку, может имеет смысл попробовать нашу dll-библиотеку, приложенную к OPC-серверу?

--
Виктор В. Жданов
NegaSoft Co. FAE
НПО "Тепловизор", Главный инженер-программист
» 5.7.06 14:54 Профайл Посетить веб-сайт

Konstantin протокол гидра

Новенький


Добрый день.
Какой командой запрашиваются текущие параметры прибора?
На команду /mon c ВИС.Т отвечает пакетом в 45 байт, когда в описании протокола сказано что только информационная часть ответного пакета содержит 58 байт? Может версия у меня старая или протокола или ПО ВИС.Та?
» 5.7.06 14:16 Профайл Посетить веб-сайт

2kon Re: Modbus

Администратор


Цитата:

Konstantin пишет:
Когда реально можно опробовать протокол Modbus? Можно ли перепрошить уже имеющийся ВИС.Т для работы с протоколом?


Ориентировочно через пару недель, как только будет закончена документация. Да, можно, но для смены ПО необходимо связаться со службой сервиса, см. раздел - Контакты.

--
Константин Константинов
НПО "Тепловизор", инженер-программист
» 4.7.06 14:03 Профайл

Konstantin Modbus

Новенький


Здравствуйте!
Когда реально можно опробовать протокол Modbus? Можно ли перепрошить уже имеющийся ВИС.Т для работы с протоколом?
» 4.7.06 12:59 Профайл Посетить веб-сайт

CH Re: Modbus

Администратор


Поясняю, как устроены порты RS-232/485 в приборе.
У приборного процессора один единственный последовательный порт, который в зависимосоти от настройки в меню прибора подключен или к разъёму RS-232 или RS-485. Так что _одновременно_ передавать/принимать что-либо через два разных порта невозможно физически.

Теперь о протоколах удалённого доступа.
Modbus _заменяет_ стандартный для ВИС.Т'ов протокол hLink. Соответственно работа через все интерфейсы RS-232/485 возможна только по Modbus. Прибор не включает функциональность одновременно двух протоколов удалённого доступа - только одного из двух, в соответствии с версией загруженного ПО.

Важно, чтобы вы правильно понимали возможности прибора, чтобы не получить неприятный сюрприз в последний момент. Напоследок о дополнительном софте: все программы на сайте предназначены для ВИСТ'ов и свободно скачиваются, работу с Modbus-приборами ни одна из них не поддерживает.

[ Редактировано Sot в 30.6.06 18:37 ]

--
Виктор В. Жданов
NegaSoft Co. FAE
НПО "Тепловизор", Главный инженер-программист
» 29.6.06 11:32 Профайл Посетить веб-сайт

Norilsk Re: Modbus

Новенький


Имеется ввиду одновременный доступ и по стандартному RS-232 (с компьютером) и по RS-485 (Modbus) с контроллером.
Соответственно вопрос про ПО для связи по RS-232. Идет ли какое-нибудь в комплекте с теплосчетчиком или надо отдельно заказывать?
» 29.6.06 05:45 Профайл

CH Re: Modbus

Администратор


1. Какое именно ПО вас интересует? Для Modbus-версии дополнительное ПО не предусматривалось, поскольку если уж клиенту нужен "стандартный" протокол, вероятно он хочет использовать его для работы с собственным софтом.
2. Запрос на дорабтку формы заказа направлен маркетологам. У них свой маркетологический взгляд на форму заказа, поэтому она и напоминает фиговый листок. На производстве применяется совершенно другая форма заказа.
3. Самостоятельная смена ПО прибора не предусмотрена, хотя с появлением Modbus-версии возможно идея обретёт воплощение.
4. RS-232 есть всегда. В приборах с TCP/IP также всегда есть и RS-485.

--
Виктор В. Жданов
NegaSoft Co. FAE
НПО "Тепловизор", Главный инженер-программист
» 28.6.06 15:17 Профайл Посетить веб-сайт
Распечатать топик 
 1  2  » 
«  Предыдущая тема    Следующая тема  »


Поиск

Ключевые слова:    
[ Расширенный поиск ]

Права

Вы не можете начинать темы.
Вы не можете редактировать свои сообщения.
Вы не можете создавать опросы.
Вы не можете вкладывать файлы в сообщения.
Вы не можете отвечать на сообщения.
Вы не можете удалять свои сообщения.
Вы не можете голосовать.