117 / 80 / 43
Регистрация: 23.05.2013
Сообщений: 225
1

ПЛК Beckhoff CX9010. Реализация протокола Меркурий 230

18.03.2014, 12:21. Показов 2417. Ответов 7
Метки нет (Все метки)

Добрый день.
Реализую протокол Меркурия. Проблема в том, что прибора под рукой нет. Нашел описание. И на просторах интернета нашел лог Меркурия (кто-то снимал). Все вроде нормально, до мощностей (а именно маскирования на обратная/прямая для активной/реактивной). В соответствии с имеющимся описанием маскируются 6,7 биты 1-го байта. Но по логу выходит что маскируются 0,1 биты этого же байта. Прибора нет, поэтому не могу проверить как на самом деле. Если кто-то реализовывал, то может подскажет где истина?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.03.2014, 12:21
Ответы с готовыми решениями:

Меркурий 230 программатор как им пользоваться
Как пользоваться программатором копировать данные и обменивать их

ПЛК Beckhoff ВС9120. Контроль и мониторинг по Modbus TCP
Доброе время суток . Прошу помочь знающим людям Как управлять (считывать записывать данные ) на...

Реализация протокола MS CHAP
Есть задача. Реализовать алгоритм шифрования MS CHAP. почитал что это вообще такое подробно...

Реализация IGMP протокола
Доброе время суток! подскажите пожалуйста, требуется ли ручками реализовывать IGMP протокол при...

7
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
18.03.2014, 20:23 2
Инкотекс высылает протокол по запросу на их мыло, но да, его можно и в сети найти. Согласно описанию протокола 1-й байт всегда сетевой адрес, может все-таки про первый байт данных?

Если поле данных ответа содержит 16 байт, то отводится по четыре двоичных байта на каждый вид энергии в последовательности: активная прямая (А+), активная обратная (А-), реактивная прямая (R+), реактивная обратная (R-).

Если поле данных ответа содержит 12 байт, то отводится по четыре двоичных байта на каждую фазу энергии А+ в последовательности: активная прямая по 1 фазе, активная прямая по 2 фазе, активная прямая по 3 фазе.
Начиная с версии 1.5.2 счетчика Меркурий 230 с внутренним тарификатором считываемые значения массивов энергии по видам энергий, несвойственным данному типу счетчика, маскируются.
Приведите найденный вами лог и укажите проблемный участок.

p.s.: и еще момент, что за ПЛК?
0
117 / 80 / 43
Регистрация: 23.05.2013
Сообщений: 225
19.03.2014, 07:51  [ТС] 3
Цитата Сообщение от raxp Посмотреть сообщение
может все-таки про первый байт данных?
Да, именно первый байт данных.
Цитата Сообщение от raxp Посмотреть сообщение
и еще момент, что за ПЛК?
Beckhoff CX9010.
Цитата Сообщение от raxp Посмотреть сообщение
Приведите найденный вами лог и укажите проблемный участок.
Как только завтра доберусь до лога.

Добавлено через 10 часов 5 минут
Из имеющейся у меня документации (уже полученной официально от производителя):
Формат ответа прибора на запрос чтения коэффициентов мощности (запрос 14h и
16h): сетевой адрес (1 байт) - сумма (3 байта) - 1 фаза (3 байта) - 2 фаза (3 байта) - 3 фаза (3 байта) - CRC (2 байта).
Формат данных ответа - как для запроса 11h.
Бит направления активной мощности – старший бит
байта, бит направления реактивной мощности – 6-й бит байта при нумерации бит, начиная с
нуля. (и рисунок к нему, на котором видно, что это 6 и 7 биты).
А вот лог, который кто-то выложил:
Мощность P (Вт) по фазам
#00#08#16#00#8F#86
#00#08#16#00#8F#86#00[#03#D6#A9][#00#36#4F][#00#06#B6][#02#9A#A4]#3E#60

Мощность S (ВА)
#00#08#16#08#8E#40
#00#08#16#08#8E#40#00[#03#EE#C9]#00[#DA#55]#00[#17#C8]#02[#FD#AB]#D3#7D
Обращаю внимание на первые байты данных для каждой мощности: 3,0,0,2.
3 - 11b
2 - 10b
И вроде логично предположить, что именно эти биты и дают направление. Но ведь они 0 и 1.
П.С. На данный момент протокол реализован (пока без проверки на реальном приборе) без определения направления.
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
19.03.2014, 08:57 4
Формат ответа прибора на запрос чтения мощности и коэффициента мощности (запрос 11h):
Направление реактивной мощности:
Код
1 байта адреса
1-й байт данных
3-й байт данных
2-й байт данных
2 байта CRC
Здесь и в дальнейшем под нумерацией байт понимается уменьшение «веса» каждого байта с возрастанием его номера, т.е. 1-й байт – старший, 2-й байт –старший младшего слова, 3-й – младший младшего слова.

Бит направления активной мощности – старший бит байта, бит направления реактивной мощности – 6-й бит байта при нумерации бит, начиная с нуля.
Код
0 – прямое;
1 – обратное.
Теперь Формат ответа прибора на запрос чтения мощности (запрос 16h):
Код
адрес 1 байт
сумма три байта
фаза три байта
фаза три байта
фаза три байта
CRC (2 байта)
должно быть 15 байт.

В логе длина не совпадает.
0
117 / 80 / 43
Регистрация: 23.05.2013
Сообщений: 225
19.03.2014, 09:15  [ТС] 5
Цитата Сообщение от raxp Посмотреть сообщение
должно быть 15 байт.
В логе длина не совпадает.
Получается сам непосредственный ответ и есть 15 байт как и заявлено. До этого идет эхо.
Весь ответ с эхом
#00#08#16#08#8E#40#00[#03#EE#C9]#00[#DA#55]#00[#17#C8]#02[#FD#AB]#D3#7D
Именно ответ на запрос без эха
00[#03#EE#C9]#00[#DA#55]#00[#17#C8]#02[#FD#AB]#D3#7D
Длина 15 байт. Адрес - сумма на 3 байта - 3 фазы по 3 байта - 2 байта контрольной суммы. Как бы все совпадает с описание. Но вот маскирование не то, либо просто я где-то недогоняю.
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
19.03.2014, 15:14 6
...давайте не запутывайте ни себя, ни других. Нет никакого маскирования, есть конкретный бит в конкретных байтах, отвечающий за направление. Если как вы утверждаете там эхо, то я бы хотел увидеть оригинал лога, снятый портмонитором, а не копипаст без пояснений от "левых" товарищей. Ответ есть ответ и эха там быть не должно быть.

По последовательности - старшие биты (7-е биты) в первых байтах фаз = 0, 6- бит кстати тоже, все, аллес.
0
117 / 80 / 43
Регистрация: 23.05.2013
Сообщений: 225
19.03.2014, 16:28  [ТС] 7
Цитата Сообщение от raxp Посмотреть сообщение
По последовательности - старшие биты (7-е биты) в первых байтах фаз = 0, 6- бит кстати тоже, все, аллес.
Да. Здесь я сам себя как то перемудрил.
Цитата Сообщение от raxp Посмотреть сообщение
если как вы утверждаете там эхо
Это не я утверждаю, там оно действительно может быть. Отключается/включается оно переключателем или перемычкой, если правильно помню. И даже в ПО для снятия показаний с этого счетчика есть специальная галка на вкл\откл эха.
0
10218 / 6598 / 495
Регистрация: 28.12.2010
Сообщений: 21,161
Записей в блоге: 1
19.03.2014, 20:21 8
галка на вкл\откл эха.
Возможно и есть. Но логи в представленном виде неприемлемы для проведения адекватного анализа.

сам себя как то перемудрил.
так и есть.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.03.2014, 20:21

Реализация протокола RIP
Всем привет. Очень нужна помощь. Требуется реализовать маршрутизацию сети по протоколу RIP, но в...

Реализация протокола IPX
Здравствуйте! Возможно меня назовут старомодной, протокол мало где используется в силу своей...

Реализация IMAP протокола
Добрый день. Не знаю с чего начать. Хочу попробовать самому реализовать imap протокол на C#....

Реализация протокола МЭК61107 в МК
Добрый День! У некоторого оборудования через оптопорт можно подать команду, например SOH R1 STX...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.