Контрольная сумма CE301

stas74
Сообщения: 2
Зарегистрирован: Пн окт 29, 2012 6:10 pm

Контрольная сумма CE301

Сообщение stas74 » Вт окт 30, 2012 5:51 am

Здравствуйте. Как рассчитывается контрольная сумма для CE301?
Пример обмена AdminTools 3.3b.
Запрос
29.10.2012 16:54:25.661
2F 3F 37 37 37 37 37 37 21 0D 0A /?777777!..

Ответ
29.10.2012 16:54:25.922
2F 45 4B 54 35 43 45 33 30 31 76 37 0D 0A /EKT5CE301v7..

Запрос
29.10.2012 16:54:26.142
06 30 35 31 0D 0A .051..

Ответ
29.10.2012 16:54:26.382
01 50 30 02 28 37 37 37 37 37 37 29 03 .P0.(777777).

Запрос
29.10.2012 16:54:26.593
01 50 31 02 28 37 37 37 37 37 37 29 03 21 .P1.(777777).!

Ответ
29.10.2012 16:54:26.813
06 .

Запрос
29.10.2012 16:54:27.033
01 52 31 02 56 4F 4C 54 41 28 29 03 5F .R1.VOLTA()._

Ответ
29.10.2012 16:54:27.424
02 56 4F 4C 54 41 28 32 32 35 2E 30 32 29 0D 0A .VOLTA(225.02)..
56 4F 4C 54 41 28 32 32 36 2E 37 30 36 29 0D 0A VOLTA(226.706)..
56 4F 4C 54 41 28 32 32 33 2E 34 37 36 29 0D 0A VOLTA(223.476)..
03 41 .A

Запрос
29.10.2012 16:54:27.674
01 42 30 03 75 .B0.u

Half
Сообщения: 7
Зарегистрирован: Ср май 27, 2009 6:01 am

Сообщение Half » Ср окт 31, 2012 1:51 pm

Контрольная сумма рассчитывается как остаток от деления на 128 суммы всех символов тела сообщения.
Код на шарпе:

Код: Выделить всё

private bool CheckParity(string Respond)
{
   try
   {
      // Предполагается, что нулевой символ - 0x01, начало сообщения
      Respond = Respond.Substring(0, Respond.IndexOf('\x03') + 2);

      Byte[] ByteCode = ASCIIEncoding.ASCII.GetBytes(Respond.Substring(0, Respond.Length - 1));
      int SumCode = 0;
      for (int i = 1; i < ByteCode.Length; i++)
      {
         SumCode += ByteCode[i];
      }
      SumCode = SumCode % 128;
      return SumCode == Respond[Respond.Length - 1];
   }
   catch (Exception e)
   {
      return false;
   }
}

stas74
Сообщения: 2
Зарегистрирован: Пн окт 29, 2012 6:10 pm

Сообщение stas74 » Ср окт 31, 2012 4:17 pm

Спасибо

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

Re: Контрольная сумма CE301

Сообщение Концерн «Энергомера» » Чт ноя 01, 2012 8:31 am

stas74 писал(а):Здравствуйте. Как рассчитывается контрольная сумма для CE301?
Пример обмена AdminTools 3.3b.
Запрос
29.10.2012 16:54:25.661
2F 3F 37 37 37 37 37 37 21 0D 0A /?777777!..

Ответ
29.10.2012 16:54:25.922
2F 45 4B 54 35 43 45 33 30 31 76 37 0D 0A /EKT5CE301v7..

Запрос
29.10.2012 16:54:26.142
06 30 35 31 0D 0A .051..

Ответ
29.10.2012 16:54:26.382
01 50 30 02 28 37 37 37 37 37 37 29 03 .P0.(777777).

Запрос
29.10.2012 16:54:26.593
01 50 31 02 28 37 37 37 37 37 37 29 03 21 .P1.(777777).!

Ответ
29.10.2012 16:54:26.813
06 .

Запрос
29.10.2012 16:54:27.033
01 52 31 02 56 4F 4C 54 41 28 29 03 5F .R1.VOLTA()._

Ответ
29.10.2012 16:54:27.424
02 56 4F 4C 54 41 28 32 32 35 2E 30 32 29 0D 0A .VOLTA(225.02)..
56 4F 4C 54 41 28 32 32 36 2E 37 30 36 29 0D 0A VOLTA(226.706)..
56 4F 4C 54 41 28 32 32 33 2E 34 37 36 29 0D 0A VOLTA(223.476)..
03 41 .A

Запрос
29.10.2012 16:54:27.674
01 42 30 03 75 .B0.u


Добрый день.
Контрольная сумма (BCC) вычисляется арифметическим суммированием символов и распространяется от символа, непосредственно следующего за первым SOH- или STX- символом, и до символа ЕТХ включительно, который завершает сообщение. Вычисленный BCC (его младший байт) следует сразу за символом ЕТХ и должен быть, как и все передаваемые символы, дополнен битом четности.

danaleksnik
Сообщения: 1
Зарегистрирован: Ср ноя 28, 2012 7:50 pm

Сообщение danaleksnik » Ср ноя 28, 2012 8:10 pm

Здравствуйте.После изменения программирования на без нажатия дстп на се301 2010 гв пропало соединение и при дальнейшей авторизации выходит ошибка-Устройство\се301-Сбой обмена по интерфейсу.Ошибка контрольной суммы.Для связи использую усо-2.С аналогичными коннектится без прблем,с этим перестал.Не подскажнте в чём может быть проблема и как её решить?Заранее спасибо

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

Сообщение Концерн «Энергомера» » Пт ноя 30, 2012 3:47 pm

Добрый день.
Для формирования ответа пришлите содержимое монитора обмена (Вид->Монитор обмена-> Окно снизу (или окно справа)).

Вернуться в «Счетчики электроэнергии (темы и сообщения до 31 декабря 2012 года)»

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

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