Меркурий 230. Обмен данными. Написание ПО.
Меркурий 230. Обмен данными. Написание ПО.
Здравствуйте.
Есть задача "Написание ПО для стенда поверки оборудования". В системе присутствует Меркурий 230.
Подскажите есть ли у кого опыт написания ПО по обмену с данными счетчиками.
Есть ли реализованные библиотеке протокола связи с этим счетчиком. Есть ли ОРС сервер для него?
Описание протокола? Регистровая структура?
Буду благодарен за любую информацию.
Есть задача "Написание ПО для стенда поверки оборудования". В системе присутствует Меркурий 230.
Подскажите есть ли у кого опыт написания ПО по обмену с данными счетчиками.
Есть ли реализованные библиотеке протокола связи с этим счетчиком. Есть ли ОРС сервер для него?
Описание протокола? Регистровая структура?
Буду благодарен за любую информацию.
Re: Меркурий 230. Обмен данными. Написание ПО.
У меня тоже проблема с написанием приложения. Я пишу на делфи, есть компонента которая позволяет работать с com-портом, и в принципе все работает нормально в плане связи, считывается время со счетчика Меркурий 230 и т.д., но вот есть проблема со считыванием энергии от сброса. Я подаю запрос, получаю ответ (которые по идее совершенно корректны, если сверятся со сканером портов при использовании программы Конфигуратор), но мне непонятно как считается эта энергия от сброса. Энергия от сброса равна 5.717 судя по Конфигуратору. Более конкретно:
Запрос:12.01.2016 8:39:47.88464 (+0.0000 seconds)
18 05 00 00 16 85
Ответ:12.01.2016 8:39:47.24364 (+0.3594 seconds)
18 05 00 00 16 85 18 00 00 55 16 FF FF FF FF 00
00 87 06 FF FF FF FF 1B 92
как я понимаю 00 00 55 16 это и есть это число 5.717. Мне непонятно как из 55 16 получаем 5.717
Запрос:12.01.2016 8:39:47.88464 (+0.0000 seconds)
18 05 00 00 16 85
Ответ:12.01.2016 8:39:47.24364 (+0.3594 seconds)
18 05 00 00 16 85 18 00 00 55 16 FF FF FF FF 00
00 87 06 FF FF FF FF 1B 92
как я понимаю 00 00 55 16 это и есть это число 5.717. Мне непонятно как из 55 16 получаем 5.717
- ElectricOleg
- Сообщения: 63
- Зарегистрирован: 09 июн 2014, 16:21
Re: Меркурий 230. Обмен данными. Написание ПО.
Вы правильно понимаете, что 00 55 16 это и есть 5,717. Вся тонкость в том, что передача данных идет 16-ти разрядными словами младшим байтом вперед. Таким образом, надо переводить их HEX в DEC не 55 16, а 16 55. Получите 5717 Втч, которые нужно разделить на 1000, чтобы получить 5,717 кВтч. Приведу пример с ненулевым значением всех четырех байтов: 05 01 37 12. Преобразовать нужно число 01 05 12 37. Получим 26546,703 кВтч.
Re: Меркурий 230. Обмен данными. Написание ПО.
Да, спасибо, я разобрался уже)
Re: Меркурий 230. Обмен данными. Написание ПО.
Я хотел бы задать еще вопрос: у меня есть документация "Описание Меркурий 230 версия 226", там я беру информацию о протоколе передачи данных. Но я не могу найти там правила передачи профиля мощности. Подскажите пожалуйста
- ElectricOleg
- Сообщения: 63
- Зарегистрирован: 09 июн 2014, 16:21
Re: Меркурий 230. Обмен данными. Написание ПО.
Сам я такую программу не писал, но профиль мощности можно считать только путем прямого обращения к памяти. Код этих команд 06. Возможно, в Протоколе версии 226 это не описано, но в более поздних версиях это уже есть. Возможно, Вам поможет моя Excell таблица чтения профиля мощности для Меркурий-233, но это только эксперименты в ручном режиме через NetMonitor. Не отключайте макросы - в них преобразование HEX-DEC. Ссылку дам в Личном сообщении.
Re: Меркурий 230. Обмен данными. Написание ПО.
Помогите пожалуйста со следующей проблемой: получилось успешно наладить связь со счётчиком 230 используя протокол обмена данных, если счётчик подключен непосредственно к компьютеру. Далее я хотел бы прозвонить удалённый счётчик через модем, используя AT-команды. С самим модемом у меня получается общаться, и звонить тоже. Но не совсем понятно как сделать именно сам обмен данными с удаленным счётчиком. Я подсмотрел команды, которые использует InStar, через сканер портов, и пытаюсь сделать по аналогии. Конкретная проблема в том, что у меня получается дозвониться до счётчика, мне приходит CONNECT 9600, далее я посылаю в COM-порт команду "тест канала связи" (также как я делал в случае с подключенным к компьютеру счётчиком), но ничего не происходит. Модем зависает в состоянии связи, и даже ATH не проходит.
Re: Меркурий 230. Обмен данными. Написание ПО.
Ответы на нашем блоге в комментариях: http://incotex-support.blogspot.com/201 ... 6638216138Saha2233 писал(а):Помогите пожалуйста со следующей проблемой: получилось успешно наладить связь со счётчиком 230 используя протокол обмена данных, если счётчик подключен непосредственно к компьютеру. Далее я хотел бы прозвонить удалённый счётчик через модем, используя AT-команды. С самим модемом у меня получается общаться, и звонить тоже. Но не совсем понятно как сделать именно сам обмен данными с удаленным счётчиком. Я подсмотрел команды, которые использует InStar, через сканер портов, и пытаюсь сделать по аналогии. Конкретная проблема в том, что у меня получается дозвониться до счётчика, мне приходит CONNECT 9600, далее я посылаю в COM-порт команду "тест канала связи" (также как я делал в случае с подключенным к компьютеру счётчиком), но ничего не происходит. Модем зависает в состоянии связи, и даже ATH не проходит.