На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Дублирование сообщений приравнивается к спаму. Рекламу мы не размещаем ни на каких условиях.

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

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

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

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

Сообщение DelphiFirst » 11 июл 2018, 08:25

Никогда раньше этим не занимался.
Всю жизнь ковырял базы данных через 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
почётный участник форума
почётный участник форума
Сообщения: 1527
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Благодарил (а): 6 раз
Поблагодарили: 85 раз

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

Сообщение hell_boy » 11 июл 2018, 15:19

Подробней надо бы:
- по какому физичеческому интерфейсу счетчика реализован обмен?
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 » 12 июл 2018, 08:01

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
почётный участник форума
почётный участник форума
Сообщения: 1527
Зарегистрирован: 18 янв 2009, 12:25
Имя: Дмитрий
Благодарил (а): 6 раз
Поблагодарили: 85 раз

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

Сообщение hell_boy » 12 июл 2018, 11:22

Странно, что данные из последовательного порта Вы пытаетесь расшифровать данные с помощью стандарта для оптопорта. Посмотрите лучше 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 » 12 июл 2018, 12:21

ОГРОМЕННЕЙШЕЕ СПАСИБО!!!!!!!!! :ext_beer2: :big_band: :ges_up: :thankyou:

Аватара пользователя

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

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

Сообщение hell_boy » 12 июл 2018, 17:00

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
"Умные люди обсуждают идеи, средние - события, а глупые - людей" Л.Н. Толстой

Ответить

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