Протокол обмена

Dez_114
Сообщения: 3
Зарегистрирован: Чт сен 04, 2014 2:01 pm
Откуда: Россия

Протокол обмена

Сообщение Dez_114 » Пн окт 09, 2017 12:24 pm

Добрый день!
Возникла необходимость считывать некоторые параметры со счетчиков ЦЭ6850м без использования Admintools или CEnergo.
Использую Python 3, к удаленному модему подключаюсь, на запрос "/?!" счетчик ничего не отвечает.
Счетчик исправен и опрашивается Admintools.
Посылал запросы вида:
/?!<SOH>R1<STX>NAME()<BCC> , где <SOH> - ascii-код= 01, <STX> - ascii-код= 02, <BCC>- ascii-код= 03. (в руководстве по счетчику не нашел, что такое BCC)
/?!+chr(1)+R1+chr(2)+FWDAT()+chr(3)+chr(79) - запрос остался без ответа
/?!CRLF, как указано в протоколе обмена, но он тоже остался без ответа.

Подскажите, как правильно следовать протоколу обмена со счетчиком?
Что такое BCC?

Концерн «Энергомера»
Сообщения: 7131
Зарегистрирован: Ср сен 18, 2002 3:51 pm
Контактная информация:

Re: Протокол обмена

Сообщение Концерн «Энергомера» » Пн окт 09, 2017 6:04 pm

Здравствуйте!

1) к удаленному модему подключаюсь, на запрос "/?!" счетчик ничего не отвечает

Скорее всего дело в том, что настройки порта счетчика - битов данных 7, стоп бит 1, четность чет. А модем настроен на 8-1-нет.
Необходимо формировать бит четности программно: если количество "1" нечетное, то старший бит =1, иначе 0.
То есть вместо /?!CRLF ( 2F 3F 21 0D 0A) отправляем AF 3F 21 8D 0A. А при приеме игнорируем старший бит.

2) Что такое BCC?
BCC – контрольный символ блока (1 байт), вычисляется простым арифметическим суммированием. Конечный результат &0x7F. SOH (01h) - не включается в bcc. ETX, STX и остальные - включаются в bcc.
Как-то так:
unsigned char CalculateBCC(unsigned char * buffer, unsigned char length)
{
unsigned char res = 0;
for (unsigned char i = 0; i < length; i++)
{
if (buffer[i]==SOH)
{
res = 0;
}
else
{
res += buffer[i];
}
}
return res & 0x7F;
}

3) Подскажите, как правильно следовать протоколу обмена со счетчиком
http://www.energomera.ru/documentations/protokol.pdf

Dez_114
Сообщения: 3
Зарегистрирован: Чт сен 04, 2014 2:01 pm
Откуда: Россия

Re: Протокол обмена

Сообщение Dez_114 » Чт окт 12, 2017 3:19 pm

Благодарю!

Вернуться в «Программное обеспечение»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей