Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: опрос электросчетчика
Диалог специалистов АВОК > ОБЩИЙ ФОРУМ > Автоматизация систем
SolarFire
Здравсвуйте! Пытаюсь разобраться с опросм электросчетчиков СЕ 301. Очень интересно и на столько же для меня глухо. Опросил его через AdminTools для начала.

Послушал при этом порт.



Ну и попытался я значит сделать тоже самое через Terminal, руками так сказать.

Вообщем проблема в том что ответа мне не приходит.

Протокол :
http://shopunivestar.ru/upload/gost_r_mek_61107-2001.pdf
Где-то читал что у человека была похожая проблема, решил он ее установкой задержки перед опросом порта, а как это сделать я не понял. Примеров он не показал и тема 2014.

Помогите пожалуйста разобраться
wild
Осциллограф есть?
SolarFire
Цитата(wild @ 17.2.2018, 7:22) *
Осциллограф есть?

неа
wild
Вроде по описанию нет Modbus у него.
SolarFire
Цитата(wild @ 17.2.2018, 8:35) *
Вроде по описанию нет Modbus у него.

ну у него свой протокол, я ссылку привел в описании
проблема в том, что /?777777!.. должна открывать сеанс связи
как это делает AdminTools( официальная программа Энергомеры)
но на мой запрос счетчик не отвечает
shavr
попробуйте первой телеграммой отправить /?777777! (без последних двух точек). Судя по тому что летает по порту, сеанс связи открывается именно так.
checker
У Вас же есть описание протокола, в нем все четко описано, можно не гадать.

Начало сеанса передачи:

/?AAA!<CR><LF>
/ - символ начала (код 0x2F)
? - команда запроса на передачу (код 0x3F)
AAA - адрес устройства: цифры, буквы и пробел, до 32 символов
! - символ конца (код 0x21)
<CR> - символ возврата каретки (код 0x0D)
<LF> - символ перевода строки (код 0x0A)

В Вашем в конце посылки должны быть не точки, а коды CR и LF. Иначе счетчик считает запрос битым и не отвечает. В терминале следует включить галку CR+LF и должно заработать.
SolarFire
Цитата(shavr @ 17.2.2018, 14:13) *
попробуйте первой телеграммой отправить /?777777! (без последних двух точек). Судя по тому что летает по порту, сеанс связи открывается именно так.



Цитата(checker @ 19.2.2018, 8:55) *
У Вас же есть описание протокола, в нем все четко описано, можно не гадать.

Начало сеанса передачи:

/?AAA!<CR><LF>
/ - символ начала (код 0x2F)
? - команда запроса на передачу (код 0x3F)
AAA - адрес устройства: цифры, буквы и пробел, до 32 символов
! - символ конца (код 0x21)
<CR> - символ возврата каретки (код 0x0D)
<LF> - символ перевода строки (код 0x0A)

В Вашем в конце посылки должны быть не точки, а коды CR и LF. Иначе счетчик считает запрос битым и не отвечает. В терминале следует включить галку CR+LF и должно заработать.


вроде так все сделал
checker
Цитата(SolarFire @ 19.2.2018, 15:04) *

1. У счетчика протокол ГОСТ IEC 61107–2011, режим C. Со всякими Modbus сканерами и утилитами можно не соваться - не получится.
2. Дамп AdminTools с первого поста - это с Вашего счетчика? Если нет, то: адрес Вашего счетчика 777777?
3. По картинке не понятно, что передано счетчику: в поле ввода какая-то строка .051, а должна быть /?777777!CRLF), в строке состояния передано 20 байт, а должно быть 11.
4. Начальная скорость в настройках Вашего счетчика 9600? Параметры порта 7N1 (по умолчанию вроде 7E1) ?
5. Покажите HEX дамп посылки, которую отправляет терминал. Одна должна полностью повторить первую строку дампа AdminTools.
kosmos440o
Можно попробовать инсатовским ModbusOPC сервером. Он работает со скриптами опроса. Можно напиать любой запрос и его обработку. Посмотрите пример DCONEXAMPLE опрос МВА-110. Там кнопочка с меню тега "Вызов редактора скрипта". Если в Луе разберётесь.
SolarFire
Цитата(checker @ 19.2.2018, 15:23) *
1. У счетчика протокол ГОСТ IEC 61107–2011, режим C. Со всякими Modbus сканерами и утилитами можно не соваться - не получится.
2. Дамп AdminTools с первого поста - это с Вашего счетчика? Если нет, то: адрес Вашего счетчика 777777?
3. По картинке не понятно, что передано счетчику: в поле ввода какая-то строка .051, а должна быть /?777777!CRLF), в строке состояния передано 20 байт, а должно быть 11.
4. Начальная скорость в настройках Вашего счетчика 9600? Параметры порта 7N1 (по умолчанию вроде 7E1) ?
5. Покажите HEX дамп посылки, которую отправляет терминал. Одна должна полностью повторить первую строку дампа AdminTools.

Да, дамп из первого поста с моего счетчика.

Вот дамп запроса AdminTools:


вот мой запрос:

вот еще мой:

разницу вижу
CRLF не так вписываются?
SolarFire




Цитата(kosmos440o @ 19.2.2018, 18:10) *
Можно попробовать инсатовским ModbusOPC сервером. Он работает со скриптами опроса. Можно напиать любой запрос и его обработку. Посмотрите пример DCONEXAMPLE опрос МВА-110. Там кнопочка с меню тега "Вызов редактора скрипта". Если в Луе разберётесь.

Спасибо, буду пробовать если не выйдет с терминальными программами

Цитата(checker @ 19.2.2018, 15:23) *
1. У счетчика протокол ГОСТ IEC 61107–2011, режим C. Со всякими Modbus сканерами и утилитами можно не соваться - не получится.
2. Дамп AdminTools с первого поста - это с Вашего счетчика? Если нет, то: адрес Вашего счетчика 777777?
3. По картинке не понятно, что передано счетчику: в поле ввода какая-то строка .051, а должна быть /?777777!CRLF), в строке состояния передано 20 байт, а должно быть 11.
4. Начальная скорость в настройках Вашего счетчика 9600? Параметры порта 7N1 (по умолчанию вроде 7E1) ?
5. Покажите HEX дамп посылки, которую отправляет терминал. Одна должна полностью повторить первую строку дампа AdminTools.

/?777777!\r\n если я правильно понял
checker
Цитата(SolarFire @ 19.2.2018, 18:16) *
/?777777!\r\n если я правильно понял

В принципе правильно. CR - Carriage Return, символ перевода каретки, код 0x0D, LF - Line Feed, символ перевода строки, код 0x0A. Это непечатные управляющие символы из таблицы ASCII с кодами до 32, поэтому их заменяют на названия. Также, как и другие служебные символы ACK, SOH, STX, ETX они используются в протоколе счетчика. Подробнее почитайте в ГОСТ IEC 61107–2011 п.5.3. А еще лучше сначала посмотрите на картинку из п.5.4.3 - по ней поймете последовательность команд к счетчику.

Отправить символы CR и LF в конце посылки можно и терминалом. Например, в последней версии v1.9b - 20141030Я у него появился флажок +CR слева от кнопки Send. Или еще в терминале есть кнопочка Scripting, появится окошко, в котором можно функцией comsendchr() отправить вообще любой символ. Картинку, к сожалению, дать не могу.

SolarFire
Цитата(checker @ 20.2.2018, 8:19) *
В принципе правильно. CR - Carriage Return, символ перевода каретки, код 0x0D, LF - Line Feed, символ перевода строки, код 0x0A. Это непечатные управляющие символы из таблицы ASCII с кодами до 32, поэтому их заменяют на названия. Также, как и другие служебные символы ACK, SOH, STX, ETX они используются в протоколе счетчика. Подробнее почитайте в ГОСТ IEC 61107–2011 п.5.3. А еще лучше сначала посмотрите на картинку из п.5.4.3 - по ней поймете последовательность команд к счетчику.

Отправить символы CR и LF в конце посылки можно и терминалом. Например, в последней версии v1.9b - 20141030Я у него появился флажок +CR слева от кнопки Send. Или еще в терминале есть кнопочка Scripting, появится окошко, в котором можно функцией comsendchr() отправить вообще любой символ. Картинку, к сожалению, дать не могу.

да, это вроде я понял. Но я правильно понял, что после отправки запроса открытия сеанса нужно дождаться ответа?
SolarFire
Цитата(checker @ 20.2.2018, 8:19) *
В принципе правильно. CR - Carriage Return, символ перевода каретки, код 0x0D, LF - Line Feed, символ перевода строки, код 0x0A. Это непечатные управляющие символы из таблицы ASCII с кодами до 32, поэтому их заменяют на названия. Также, как и другие служебные символы ACK, SOH, STX, ETX они используются в протоколе счетчика. Подробнее почитайте в ГОСТ IEC 61107–2011 п.5.3. А еще лучше сначала посмотрите на картинку из п.5.4.3 - по ней поймете последовательность команд к счетчику.

Отправить символы CR и LF в конце посылки можно и терминалом. Например, в последней версии v1.9b - 20141030Я у него появился флажок +CR слева от кнопки Send. Или еще в терминале есть кнопочка Scripting, появится окошко, в котором можно функцией comsendchr() отправить вообще любой символ. Картинку, к сожалению, дать не могу.

в этот раз вроде уже все правильно

checker
Цитата(SolarFire @ 21.2.2018, 17:40) *
да, это вроде я понял. Но я правильно понял, что после отправки запроса открытия сеанса нужно дождаться ответа?

Да, на все команды, за исключением команды конца сеанса передачи, нужно дождаться ответа счетчика.

Счетчик не ответит, если:

* Неправильные параметры порта: скорость, четность, биты данных, стоповый бит (для RS-485 по умолчанию 9600/7E1).
* Неправильный формат команды или контрольная сумма (BCC, при наличии, см. ниже)
* Не было команды начала сеанса передачи

В общем случае порядок команд такой:

1. Начало сеанса передачи: /?AAA!<CR><LF>. Ответ: /XXXZID<CR><LF>
2. Переход в режим программирования: <ACK>0Z1<CR><LF>. Ответ: <SOH>P0<STX>(XXX)<ETX><BCC>
3. Пароль: <SOH>P1<STX>(XXX)<ETX><BCC>. Ответ: <ACK> или <NAK>
4. Чтение данных: <SOH>R1<STX>ID(XXX)<ETX><BCC>. Ответ: <STX>ID(XXX)<ETX><BCC> или массив.
5. Конец сеанса передачи: <SOH>B0<ETX><BCC>. Ответ: нет ответа.

Все команды указаны в условном формате. Управляющие символы указаны в угловых скобках <>. Разъяснение форматов команд см. п.5.3 в ГОСТ IEC 61107-2011.

Вместо режима программирования можно использовать чтение без пароля. Но это не всегда удобно, мы у себя не используем.

checker
Цитата(SolarFire @ 21.2.2018, 18:29) *
в этот раз вроде уже все правильно

У Вас четность No Parity. На счетчике точно также? Потому как по умолчанию у него для RS-232 и RS-485 четность Even.
SolarFire
Цитата(checker @ 22.2.2018, 12:07) *
У Вас четность No Parity. На счетчике точно также? Потому как по умолчанию у него для RS-232 и RS-485 четность Even.

О, с Even заработало) спасибо большое! буду дальше пробовать. А вы мне и раньше писали про это. А я как-то мимо пропустил, спасибо.
SolarFire
Цитата(checker @ 22.2.2018, 12:07) *
У Вас четность No Parity. На счетчике точно также? Потому как по умолчанию у него для RS-232 и RS-485 четность Even.

буду через мк пробовать опросить теперь
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.