|
|
опрос электросчетчика |
|
|
|
16.2.2018, 19:49
|
Группа: New
Сообщений: 12
Регистрация: 21.10.2016
Пользователь №: 307692
|
Здравсвуйте! Пытаюсь разобраться с опросм электросчетчиков СЕ 301. Очень интересно и на столько же для меня глухо. Опросил его через AdminTools для начала. Послушал при этом порт. Ну и попытался я значит сделать тоже самое через Terminal, руками так сказать. Вообщем проблема в том что ответа мне не приходит. Протокол : http://shopunivestar.ru/upload/gost_r_mek_61107-2001.pdfГде-то читал что у человека была похожая проблема, решил он ее установкой задержки перед опросом порта, а как это сделать я не понял. Примеров он не показал и тема 2014. Помогите пожалуйста разобраться
|
|
|
|
Гость_wild_*
|
17.2.2018, 7:22
|
Guest Forum
|
Осциллограф есть?
|
|
|
|
|
17.2.2018, 8:24
|
Группа: New
Сообщений: 12
Регистрация: 21.10.2016
Пользователь №: 307692
|
Цитата(wild @ 17.2.2018, 7:22) Осциллограф есть? неа
|
|
|
|
Гость_wild_*
|
17.2.2018, 8:35
|
Guest Forum
|
Вроде по описанию нет Modbus у него.
|
|
|
|
|
17.2.2018, 10:55
|
Группа: New
Сообщений: 12
Регистрация: 21.10.2016
Пользователь №: 307692
|
Цитата(wild @ 17.2.2018, 8:35) Вроде по описанию нет Modbus у него. ну у него свой протокол, я ссылку привел в описании проблема в том, что /?777777!.. должна открывать сеанс связи как это делает AdminTools( официальная программа Энергомеры) но на мой запрос счетчик не отвечает
|
|
|
|
|
17.2.2018, 14:13
|
Группа: Участники форума
Сообщений: 133
Регистрация: 23.8.2011
Пользователь №: 119305
|
попробуйте первой телеграммой отправить /?777777! (без последних двух точек). Судя по тому что летает по порту, сеанс связи открывается именно так.
|
|
|
|
|
19.2.2018, 8:55
|
Группа: New
Сообщений: 5
Регистрация: 20.9.2014
Пользователь №: 245300
|
У Вас же есть описание протокола, в нем все четко описано, можно не гадать.
Начало сеанса передачи:
/?AAA!<CR><LF> / - символ начала (код 0x2F) ? - команда запроса на передачу (код 0x3F) AAA - адрес устройства: цифры, буквы и пробел, до 32 символов ! - символ конца (код 0x21) <CR> - символ возврата каретки (код 0x0D) <LF> - символ перевода строки (код 0x0A)
В Вашем в конце посылки должны быть не точки, а коды CR и LF. Иначе счетчик считает запрос битым и не отвечает. В терминале следует включить галку CR+LF и должно заработать.
|
|
|
|
|
19.2.2018, 15:04
|
Группа: New
Сообщений: 12
Регистрация: 21.10.2016
Пользователь №: 307692
|
Цитата(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 и должно заработать. вроде так все сделал
Сообщение отредактировал SolarFire - 19.2.2018, 15:04
|
|
|
|
|
19.2.2018, 15:23
|
Группа: New
Сообщений: 5
Регистрация: 20.9.2014
Пользователь №: 245300
|
Цитата(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.
|
|
|
|
|
19.2.2018, 18:10
|
Группа: Участники форума
Сообщений: 2896
Регистрация: 30.9.2010
Из: Иркутск
Пользователь №: 74376
|
Можно попробовать инсатовским ModbusOPC сервером. Он работает со скриптами опроса. Можно напиать любой запрос и его обработку. Посмотрите пример DCONEXAMPLE опрос МВА-110. Там кнопочка с меню тега "Вызов редактора скрипта". Если в Луе разберётесь.
Сообщение отредактировал kosmos440o - 19.2.2018, 18:11
|
|
|
|
|
19.2.2018, 18:16
|
Группа: New
Сообщений: 12
Регистрация: 21.10.2016
Пользователь №: 307692
|
Цитата(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 не так вписываются?
|
|
|
|
|
19.2.2018, 20:52
|
Группа: New
Сообщений: 12
Регистрация: 21.10.2016
Пользователь №: 307692
|
Цитата(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 если я правильно понял
Сообщение отредактировал SolarFire - 19.2.2018, 20:50
|
|
|
|
|
20.2.2018, 8:19
|
Группа: New
Сообщений: 5
Регистрация: 20.9.2014
Пользователь №: 245300
|
Цитата(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() отправить вообще любой символ. Картинку, к сожалению, дать не могу.
|
|
|
|
|
21.2.2018, 17:40
|
Группа: New
Сообщений: 12
Регистрация: 21.10.2016
Пользователь №: 307692
|
Цитата(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() отправить вообще любой символ. Картинку, к сожалению, дать не могу. да, это вроде я понял. Но я правильно понял, что после отправки запроса открытия сеанса нужно дождаться ответа?
|
|
|
|
|
21.2.2018, 18:29
|
Группа: New
Сообщений: 12
Регистрация: 21.10.2016
Пользователь №: 307692
|
Цитата(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() отправить вообще любой символ. Картинку, к сожалению, дать не могу. в этот раз вроде уже все правильно
|
|
|
|
|
22.2.2018, 8:45
|
Группа: New
Сообщений: 5
Регистрация: 20.9.2014
Пользователь №: 245300
|
Цитата(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. Вместо режима программирования можно использовать чтение без пароля. Но это не всегда удобно, мы у себя не используем.
|
|
|
|
|
22.2.2018, 12:07
|
Группа: New
Сообщений: 5
Регистрация: 20.9.2014
Пользователь №: 245300
|
Цитата(SolarFire @ 21.2.2018, 18:29) в этот раз вроде уже все правильно У Вас четность No Parity. На счетчике точно также? Потому как по умолчанию у него для RS-232 и RS-485 четность Even.
|
|
|
|
|
22.2.2018, 12:47
|
Группа: New
Сообщений: 12
Регистрация: 21.10.2016
Пользователь №: 307692
|
Цитата(checker @ 22.2.2018, 12:07) У Вас четность No Parity. На счетчике точно также? Потому как по умолчанию у него для RS-232 и RS-485 четность Even. О, с Even заработало) спасибо большое! буду дальше пробовать. А вы мне и раньше писали про это. А я как-то мимо пропустил, спасибо.
Сообщение отредактировал SolarFire - 22.2.2018, 12:48
|
|
|
|
|
22.2.2018, 13:52
|
Группа: New
Сообщений: 12
Регистрация: 21.10.2016
Пользователь №: 307692
|
Цитата(checker @ 22.2.2018, 12:07) У Вас четность No Parity. На счетчике точно также? Потому как по умолчанию у него для RS-232 и RS-485 четность Even. буду через мк пробовать опросить теперь
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
Реклама
ООО «Арктика групп» ИНН: 7713634274
ООО «УНИСПЛИТ» ИНН: 6453155081 erid:2VtzqvE2vr3
Последние сообщения Форума
|