1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

помогите разобраться с протоколами A1800

RS-485, ProfiBUS, 4-20 mA, Wi-Fi, GSM и так далее
Ответить

Автор темы
DelphiFirst
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 11 июл 2018, 08:23
Имя: Виктор Генадьевич

помогите разобраться с протоколами A1800

Сообщение DelphiFirst »

Никогда раньше этим не занимался.
Всю жизнь ковырял базы данных через SQL.
И вот теперь мне задали разобраться в протоколах A1800 - а я вообще не в курсе, что да как.

Раздобыл ANSI C12.18 и ANSI C12.19 (ANSI C12.21 - не нашёл).

И разобрался в формате пакета... а дальше - полный затык! :affliction:
Вообще не понятно как разобраться в данных.

Например, в первом пакете ee 00 00 00 00 01 20 13 10
я нашёл, что 20h - это данные
Но, как их расшифровать - вообще не понятно.
В ни C12.18 ни ANSI C12.19 - вообще нет 20h и как его искать и расшифровывать непонятно.
Такая же фигня с пакетом 06 ee 0f 00 00 00 11 00 02 03 02 02 01 00 08 cf
- тоже не понятно по какому принципу расшифровывать 00 02 03 02 02 01 00
Аватара пользователя

hell_boy
почётный участник форума
почётный участник форума
Сообщения: 1746
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Страна: Россия
город/регион: Москва
Благодарил (а): 6 раз
Поблагодарили: 132 раза

помогите разобраться с протоколами A1800

Сообщение hell_boy »

Подробней надо бы:
- по какому физичеческому интерфейсу счетчика реализован обмен?
ANSI C12.18 описывает оптический интерфейс счетчика. В новых А1880 на оптическом интерфейсе - документированный протокол DNP 3.0
http://romvchvlcomm.pbworks.com/w/file/ ... cation.pdf
ANSI C12.21 - описание модемного интерфейса, там же RS-232/RS-485, где может быть все, что угодно - Modbus, DL/T 645, DLMS и т.д.
ANSI C12.19 - таблицы и структуры данных счетчика без привязки к интерфейсам.

- ответ от счетчика предполагает запрос. Какой параметр с помощью какого ПО Вы запрашивали?

Подсказка: то что мы называем протокол А1800 во всем остальном мире называют DL/T 645. Вот пример реализации https://github.com/ruglcc/dlt645_2007
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой

Автор темы
DelphiFirst
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 11 июл 2018, 08:23
Имя: Виктор Генадьевич

помогите разобраться с протоколами A1800

Сообщение DelphiFirst »

hell_boy писал(а): 11 июл 2018, 15:19 - по какому физичеческому интерфейсу счетчика реализован обмен?
Через компорт.
hell_boy писал(а): 11 июл 2018, 15:19 Какой параметр с помощью какого ПО Вы запрашивали?
Обратился к счётчику через Metercat, и перехватил обмен через Serial Port Monitor.
И мне поставли задачу полностью расшифровать обмен сообщениями между счётчиком и Metercat.
На странице 23 в разделе "4.7.2. Packet" описания протокола ANSI C12.18 нашёл формат пакета.
И он вроде совпадает с перехватом
Written data (COM3)
ee 00 00 00 00 01 20 13 10
Read data (COM3)
06 ee 0f 00 00 00 11 00 02 03 02 02 01 00 08 df
21 96 58 53 33 34 d7 00 03 a3
Written data (COM3)
06 ee 00 20 00 00 04 60 04 00 ff a6 d3
Read data (COM3)
06 ee 0f 20 00 00 05 00 04 00 ff 00 d3 38
Written data (COM3)
06 ee 00 00 00 00 0d 50 00 02 41 64 6d 69 6e 69
73 74 72 61 f9 04
Read data (COM3)
06 ee 0f 00 00 00 01 00 98 0c
А на странице 35 в разделе "ANNEX B - Packet Transmission Example" описания протокола ANSI C12.18 опять же видны совпадения
1) => EE 00 00 00 0001 20 13 10
2) <= 06
3) => EE 00 00 00 0005 00 00 02 00 00 C6 B5
4) <= 06
5) => EE 00 20 00 0005 61 0040 04 08 8A 5F
Но на попытке расшифровать данные отправляемые на счётчик и получаемые от него - у меня произошёл затык. :ges_help:
Аватара пользователя

hell_boy
почётный участник форума
почётный участник форума
Сообщения: 1746
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Страна: Россия
город/регион: Москва
Благодарил (а): 6 раз
Поблагодарили: 132 раза

помогите разобраться с протоколами A1800

Сообщение hell_boy »

Странно, что данные из последовательного порта Вы пытаетесь расшифровать данные с помощью стандарта для оптопорта. Посмотрите лучше ANSI C12.22 https://www.scribd.com/document/112624009/ANSI-C12-22 Он поновее и поуниверсальней. Далее ссылки на главы из этого стандарта.

Written data (COM3)
ee 00 00 00 00 01 20 13 10
20h - <ident> 5.3.2.4.1 Identification Service
13h 10h - CRC, ANNEX I - CRC Examples
Read data (COM3)
06 ee 0f 00 00 00 11 00 02 03 02 02 01 00 08 df
00h - <ok>
02h - <std> ANSI C12.21
03h - <ver> 3
02h - <rev> 2
02h - <feature> see C12.19 Device Identification
дальше идет перечисление фьюч C12.19 у меня нет расшифровать, не могу
21 96 58 53 33 34 d7 00 03 a3 - продолжение пред.пакета

Written data (COM3)
06 ee 00 20 00 00 04 60 04 00 ff a6 d3
60h - <acse-pdu> 5.3.4Association Control - Association Control Service Element (ACSE)
04h - <elements-length> длина элементов, закодирована в соответствии с ISO/IEC 8825-1:2002 [BER]
00h ffh - ??
Read data (COM3)
06 ee 0f 20 00 00 05 00 04 00 ff 00 d3 38
00h - <ok>
05h - <iar> Inappropriate Action Requested. a Write Service request to a read-only Table or an invalid Table identifier
04 00 ff - что было в запросе

Written data (COM3)
06 ee 00 00 00 00 0d 50 00 02 41 64 6d 69 6e 69
50h - <acse-pdu> 5.3.4 Association Control - Association Control Service Element (ACSE)
00h 02h - <user-id>
41 64 6d 69 6e 69 - <user> 10 байт имя пользователя, возможно 8 байт + CRC
73 74 72 61 - продолжение имени
должно быть 2 байта <resp-session-idle-timeout>, но в соединении точка-точка логично опустить
f9 04 - CRC
Read data (COM3)
06 ee 0f 00 00 00 01 00 98 0
00h - <ok>
98 0c - CRC

Дальше сами. Вот еще исходники на Питоне https://github.com/inguardians/optiguard
И разберитесь с ASN.1/BER, стандарты ISO/IEC 8824-Х и ISO/IEC 8825-1
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой

Автор темы
DelphiFirst
здесь недавно
здесь недавно
Сообщения: 3
Зарегистрирован: 11 июл 2018, 08:23
Имя: Виктор Генадьевич

помогите разобраться с протоколами A1800

Сообщение DelphiFirst »

ОГРОМЕННЕЙШЕЕ СПАСИБО!!!!!!!!! :ext_beer2: :big_band: :ges_up: :thankyou:
Аватара пользователя

hell_boy
почётный участник форума
почётный участник форума
Сообщения: 1746
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Страна: Россия
город/регион: Москва
Благодарил (а): 6 раз
Поблагодарили: 132 раза

помогите разобраться с протоколами A1800

Сообщение hell_boy »

hell_boy писал(а): 12 июл 2018, 11:22 50h - <acse-pdu> 5.3.4 Association Control - Association Control Service Element (ACSE)
ошибка copy-paste
Правильно
50h - <logon> 6.3.2.4.4. Logon Service
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой

Abzal
здесь недавно
здесь недавно
Сообщения: 6
Зарегистрирован: 20 ноя 2019, 11:27
Имя: Абзал
Страна: Казахстан
город/регион: Нур-Султан

помогите разобраться с протоколами A1800

Сообщение Abzal »

hell_boy писал(а): 11 июл 2018, 15:19 Подсказка: то что мы называем протокол А1800 во всем остальном мире называют DL/T 645. Вот пример реализации https://github.com/ruglcc/dlt645_2007
Добрый день!

Ссылка не рабочая

Отправлено спустя 1 минуту 32 секунды:
DelphiFirst писал(а): 12 июл 2018, 12:21 ОГРОМЕННЕЙШЕЕ СПАСИБО!!!!!!!!! :ext_beer2: :big_band: :ges_up: :thankyou:
Подскажите, удалось ли разобраться с протоколам А1800?
Ответить

Вернуться в «Интерфейсы, протоколы, связь»