ФОРУМ КУПИТЬ

Последние статьи

ВСЕ СТАТЬИ

Учет электроэнергии, считывание информации со счетчика Меркурий 230, протокол счетчика

04/04/2009 11:46:52

Когда я подключал свой дом к 3-х фазной линии электроснабжения я решил, что неплохо было бы поставить электрический счетчик с возможностью считывания показаний накопленной энергии. Подобные счетчики на тот момент выпускали такие предприятия как Концерн "Энергомера" и Фирма "Инкотекс". Я выбрал счетчик Меркурий-230ART фирмы "Инкотекс" с интерфейсом CAN. Согласно документации счетчик позволял считывать не только данные по накопленной энергии, но также такие параметры как мгновенные значения мощности, тока, напряжения по каждой фазе, частота сети, коэффициент мощности и другие.

Таким образом, своими силами (а это допускалось) был подготовлен вводной щиток с установленным счетчиком и УЗО.

     

Была тревога за то, что при опломбировании счетчика электрик потребует удалить кабель, идущий к интерфейсным контактам счетчика, но электрик просто не заметил его.

После того, как был запущен сервер домашней автоматизации и были реализованы некоторые функции системы, я вновь вернулся к вопросу автоматизированного учета и мониторинга потребляемой электроэнергии. С этой целью за 2100 руб (а стоимость счетчика на июнь 2008 составляла 4500 руб) был куплен так называемый преобразователь интерфейсов "Меркурий-221". Это устройство представляет собой преобразователь интерфейсов USB в CAN/RS485/RS232. (Примечание: со счетчиками Меркурий вполне успешно работают любые простейшие преобразователи RS485/USB стоимостью от 300 руб.) В комплекте с родным преобразователем также шел диск с драйвером и ПО для различных счетчиков, в том числе для Меркурий-230. При подключени к компьютеру на базе Windows (да, пришлось установить Microsoft Windows) драйвер создал виртуальный COM-порт. Далее меня ждало разочарование в виде ужасного и, не побоюсь этого слова, глючного ПО, которое называлось "КОНФИГУРАТОР". Правда, говорят, что сейчас ПО стало получше.

Параметры связи: 9600, четность: нет, стоп-бит: 1
Прежде чем использовать программу, необходимо ввести пароль (111111 или 222222 по умолчанию) и нажать кнопку "Открыть". Очевидно, не правда ли?..

Но самое печальное - это то, что программа не умеет экспортировать данные. Какие-то зачатки такого эскпорта в программе есть, в коде зашиты жесткие пути к каким-то базам, формат которых неизвестен. Фактически эта функция отсутствовала. Оставалось только поставить на этот компьютер Remote Desctop и лицезреть все значения и параметры, которые передавал счетчик вручную. Конечно, такое положение вещей меня не устраивало. У меня работала база данных (MySQL) на сервере с ОС Linux и мне нужно было иметь все значения там. Это позволило бы вести полноценный учет, строить любые произвольные графики и диаграммы.

Сначала я обратил внимание на технологию OPC, с помощью которой в принципе решаются вопросы интеграции различных интерфейсов в единое целое и визуализации работы автоматизированной системы. Часто эта технология применяется для создания крупных систем управления отоплением, водоснабжением и т.д. Также технология применима и в качестве программного решения для Умного Дома. Однако тяжеловесность доступных OPC решений, ориентированность на Windows и глючность заставило меня искать иной выход.

В качестве выхода я видел только одно - выяснить протокол, с помощью которого родное ПО общается со счетчиком. Фирма "Инкотекс" говорит, что протокол не является военной тайной, однако чтобы его получить необходимо написать официальное письмо на имя директора предприятия, где указать причины, по которым понадобилось описание протокола. В случае, если руководство сочтет, что причины достаточно весомые, описание протокола будет предоставлено. Но есть и более простой способ выяснить необходимое - COM Port Sniffer/Monitor.

Потребовалось всего несколько часов, чтобы выяснить основные принципы работы протокола Меркурий 230.
Все общение по COM-порту происходит шеснадцатиричными кодами.

 

Инициализация соединения и передача пароля
команда
#00#01#01#01#01#01#01#01#01#77#81
где 111111 - пароль
ответ
#00#01#01#01#01#01#01#01#01#77#81#00#00#01#B0

Опрос накопленной энергии от начала сброса
команда
#00#05#00#00#10#25
ответ
#00#05#00#00#10#25#00#75#00#8F#A3#FF#FF#FF#FF#15#00#A6#9F#FF#FF#FF#FF#C5#92
где байты #75#00#8F#A3 отражают показание накопленной энергии.

Читать значения необходимо так: #00#75#A3#8F, то есть позиции 8,7,10,9.
Если мы шеснадцатиричное число 0075A38F преобразуем в десятичное, то получим число 7709583. Три последних знака - числа после запятой, а итоговое значение накопленной энергии 7709,583. Остальные значения, которые отдает счетчик в данном ответе касаются реактивной энергии.

Аналогично другие значения:

За предыдущие сутки
#00#05#50#00#2C#25
#00#05#50#00#2C#25#00[#00#00#A2#79]#FF#FF#FF#FF#00#00#80#14#FF#FF#FF#FF#4B#B9
Скобками показано интересующее нас значение.

За текущие сутки
#00#05#40#00#21#E5
#00#05#40#00#21#E5#00[#00#00#10#B5]#FF#FF#FF#FF#00#00#44#21#FF#FF#FF#FF#75#46

Сила тока (А) по фазам
#00#08#16#21#4F#9E
#00#08#16#21#4F#9E#00#00[#25#04]#00[#4E#09]#00[#B8#1F]#AF#BA
где,
#25#04 = h0425 = 1,061 (Фаза 1)
#4E#09 = h094E = 2,382 (Фаза 2)
#B8#1F = h1FB8 = 8,120 (Фаза 3)

Коэффициент мощности (С) по фазам
#00#08#16#30#8F#92
#00#08#16#30#8F#92#00#00[#C6#03]#00[#9A#03]#00[#8D#03]#00[#DD#03]#9E#76
первое значение - сумма

Частота Гц
#00#08#16#40#8E#76
#00#08#16#40#8E#76#00#00[#8A#13]#26#89

Угол между фазами
#00#08#16#51#4E#7A
#00#08#16#51#4E#7A#00#00[#AC#5D]#00[#2A#2F]#00[#1D#5E]#6F#55

Мощность 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

Напряжение U (В)
#00#08#16#11#4F#8A
#00#08#16#11#4F#8A#00#00[#BB#50]#00[#EF#53]#00[#3A#54]#BD#09

Завершение сеанса
#00#02#80#71
#00#02#80#71#00#00#01#B0

Осталось только написать программу. Так как я планировал подключить преобразователь интерфейсов к Linux'у, то необходимо было написать такую программу, которая бы работала как в среде Windows, так и в Linux'е. Самым очевидным было использовать Perl или PHP. И выбран был PHP.

<?

// BUS Type: RS485 or CAN
define('BUS', 'CAN');

###### WIN32 WORKAROUND

// Helper function
function getmicrotime(){
    list($usec, $sec) = explode(' ',microtime());
    return ((float)$usec + (float)$sec);
}

// usleep alias function for windows
function msleep($micro_seconds=0) {
    $stop  = getmicrotime() + ($micro_seconds / 1000);
    while (getmicrotime() <= $stop) {
        // loop
    }
    return true;
}

/*
function usleep_win($msec) {
   $usec = $msec * 1000;
   socket_select($read = NULL, $write = NULL, $sock = array(socket_create (AF_INET, SOCK_RAW, 0)), 0, $usec);
}
*/

function usleep_win($msec) {
   usleep($msec * 1000);
}

#exec('mode com3: baud=9600 data=8 stop=1 parity=n xon=off');

$fd = dio_open('/dev/ttyUSB0', O_RDWR);

###### WIN32 WORKAROUND


##### FOR LINUX BOX

//dio_fcntl($fd, F_SETFL, O_SYNC);


dio_tcsetattr($fd, array(
  'baud' => 9600,
  'bits' => 8,
  'stop'  => 1,
  'parity' => 0
)); 


##############

function merc_gd($cmd, $factor = 1, $total = 0)
{
	global $fd;
	global $sleep_time;

	usleep_win(50);
	flush();
	dio_write($fd, $cmd, 6);
	usleep_win($sleep_time);
	$result = dio_read($fd, 64);

	$ret = array();
	
	if ( BUS == "CAN" )
	$start_byte = 7;
	else
	$start_byte = 1;
	
	if ( $total != 1 )
	{
		for ( $i = 0; $i < 4; $i++ )
		{
			if ( dechex(ord($result[$start_byte + $i * 3])) >= 40 )
			$result[$start_byte + $i * 3] = chr(dechex(ord($result[$start_byte + $i * 3])) - 40);
			if ( strlen($result) > $start_byte + 2 + $i * 3 )
			$ret[$i] = hexdec(dd($result[$start_byte + $i * 3]).dd($result[$start_byte + $i * 3 + 2]).dd($result[$start_byte + $i * 3 + 1]))*$factor;
		}
	}
	else
	$ret[0] = hexdec(dd($result[$start_byte+1]).dd($result[$start_byte]).dd($result[$start_byte+3]).dd($result[$start_byte+2]))*$factor;


	return $ret;
}

$sleep_time = 200;

function dd($data = "")
{
	$result = "";
	$data2 = "";
	for ( $j = 0; $j < count($data); $j++ )
	{
		$data2 = dechex(ord($data[0]));
		if ( strlen($data2) == 1  )
		$result = "0".$data2;
		else
		$result .= $data2;

	}
	return $result;
}

# Инициализация соединения, передача пароля
dio_write($fd, "x00x01x01x01x01x01x01x01x01x77x81", 11);
usleep_win($sleep_time);
$result = dio_read($fd, 15);

$n = 0;
$total_cnt = 90;
$total_cnt1 = 1080;
while ( $n == 0 )
{

	# Сила тока по фазам
	# =====================================================
	$Ia = merc_gd("x00x08x16x21x4Fx9E", 0.001);
	echo "Ia: $Ia[0] - $Ia[1] - $Ia[2]";
	$It = $Ia[0] + $Ia[1] + $Ia[2];
	# Мощность по фазам
	# =====================================================
	$Pv = merc_gd("x00x08x16x00x8Fx86", 0.01);
	if ( round($Pv[0], 2) != round($Pv[1] + $Pv[2] + $Pv[3], 2) )
	$error = "error"; else $error = "";
	echo "Pv: $Pv[0] - $Pv[1] - $Pv[2] - $Pv[3] $error";
	# Cosf по фазам
	# =====================================================
	$Cos = merc_gd("x00x08x16x30x8Fx92", 0.001);
	echo "Cos: $Cos[0] - $Cos[1] - $Cos[2] - $Cos[3]";

	# Напряжение по фазам
	# =====================================================
	$Uv = merc_gd("x00x08x16x11x4Fx8A", 0.01);
	echo "Uv: $Uv[0] - $Uv[1] - $Uv[2]";

	$total_cnt++;
	if ( $total_cnt >= 90 )
	{
		// Общее потребление
		$Tot = merc_gd("x00x05x00x00x10x25", 0.001, 1);
		echo "Total: $Tot[0]";

		$Tot = merc_gd("x00x05x00x01xD1xE5", 0.001, 1);
		echo "Total T1: $Tot[0]";

		$Tot = merc_gd("x00x05x00x02x91xE4", 0.001, 1);
		echo "Total T2: $Tot[0]";

		// За текущие сутки
		$Tot = merc_gd("x00x05x40x00x21xE5", 0.001, 1);
		echo "Total cur: $Tot[0]";

		// За текущие сутки (Тариф 1)
		$Tot = merc_gd("x00x05x40x01xE0x25", 0.001, 1);
		echo "Total cur T1: $Tot[0]";

		// За текущие сутки (Тариф 2)
		$Tot = merc_gd("x00x05x40x02xA0x24", 0.001, 1);
		echo "Total cur T2: $Tot[0]";

		$total_cnt = 0;
	}

	$total_cnt1++;
	if ( $total_cnt1 >= 1080 )
	{
		// За предыдущие сутки
		$Tot = merc_gd("x00x05x50x00x2Cx25", 0.001, 1);
		echo "Total prev: $Tot[0]";

		// За предыдущие сутки (Тариф 1)
		$Tot = merc_gd("x00x05x50x01xEDxE5", 0.001, 1);
		echo "Total prev T1: $Tot[0]";

		// За предыдущие сутки (Тариф 2)
		$Tot = merc_gd("x00x05x50x02xADxE4", 0.001, 1);
		echo "Total prev T2: $Tot[0]";

		$total_cnt1 = 0;
	}

	sleep(10);
}

# Завершение соединения
dio_write($fd, "x00x02x80x71", 4);
usleep_win($sleep_time);
$result = dio_read($fd, 8);
dio_close($fd);

?>

Данный пример отличается от моего рабочего только тем, что в моей программе присутствует также функция записи полученных значений в БД. Формат базы данных у каждого может быть свой, поэтому я не стал включать этот код в данный пример.

Рабочий скрипт, в том числе CMS и построение графиков, включен в комплект демо-интерфейса.

Ну а далее оставалось только вывести полученные значения на сайт моего Умного Дома...

Сбор данных происходит каждые 10 секунд, поэтому после выгрузки данных из БД в массив для более плавного отображения графиков пришлось немного усреднить значения. Вот, собственно, и все. Жаль только, что мой газовый счетчик не имеет CAN-интерфейса...

И последнее. Для работы моего исходника требуется функции Direct IO (dio). Здесь есть небольшая сложность. Дело в том, что в версиях PHP выше 5.0.5 эти функции не поддерживаются и модули расширения в дистрибутивные пакеты не входят. Но выход есть.

Для Windows можно скачать модуль php_dio.dll и прописать в php.ini
extension=php_dio.dll

Для Linux (в т.ч. Debian) dio доступен через pear. Сначала устанавливаем PEAR и php5-dev
apt-get install php-pear php5-dev
Затем устанавлиаем сам модуль
pear install channel://pecl.php.net/dio-0.0.7
Ну и прописываем в нужный php.ini
extension=dio.so

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

Есть наработки и по поводу счетчика Меркурий 200.02.
Постоянный пользователь сайта ТНК выложил на форуме ссылку на небольшой скрипт аналогичного характера, который работает со счетчиками Меркурий 200.02

Стоит заметить, что в протоколах счетчиков Меркурий два последних байта используются для контрольной суммы CRC.
Алгоритм CRC - Modbus CRC.
Полином: 0xA001
На форуме размещены алгоритмы расчета CRC на C и PHP.


Ошибка E-01, замена батарейки

Спустя 8 лет эксплуатации счетчика Меркурий-230, встроенные часы начали отставать, а еще через пару месяцев счетчик выдал ошибку E-01, которая свидетельствовала о падении напряжения внутреннего источника питания ниже критического значения. Всего 8 лет... Мне казалось, что батарейки в счетчиках должны держаться минимум лет 10, а то и больше.

Вскрытие счетчика показало, что в Меркурии-230 используется литиевый элемент питания CR14250BL компании EEMB.

Элемент питания CR14250BL для счетчиков Меркурий
Элемент питания для счетчика Меркурий 230. На корпусе не вмятина, это такая наклейка

Вопреки ожиданиям, элемент питания нельзя просто заменить на новый. Батарейка приварена к контактам, которые в свою очередь припаяны к плате счетчика. В ближайшем магазине я не нашел батарейки с выводами, как та, что была в счетчике. Продавались CR14250BL без выводов за 150 руб, но как такую смонтировать? Паять ее нельзя, а колхозить контакты - как-то ненадежно. Поэтому пришлось сделать ход конем и приобрести элемент CR14505BL-AX. Этакий тюнинг!

CR14505BL-AX
CR14505BL. Этой батарейки хватит надолго... (фото из Интернета)

Цена вопроса - 300 руб. Новая батарейка длиннее, чем родная, зато емкость вдвое выше, что должно существенно увеличить срок службы. Места в счетчике много, батарейка с другими габаритами разместилась прекрасно. Вся операция прошла без особенностей, и после включения счетчик забыл про ошибку E-01.
Хочу только заметить, что мой Меркурий-230 в текущий момент дублирует другой, опломбированный счетчик, который висит на уличном столбе. Меркурий мне нужен только для того, чтобы я мог отслеживать моментальное потребление, строить графики и аналитику, а также знать потребление и платить за электроэнергию не утруждая себя ежемесячными походами с блокнотом к уличному столбу. Поэтому к Меркурию у меня есть полный доступ. Но если ваш счетчик опломбирован, то заменить батарейку вы сможете только в официальном, авторизованном сервисе.

 

Фотографии внутренностей 3-х фазного счетчика Энергомера CE300

Автор: Andrey_B
Любое использование материалов сайта возможно только с разрешения автора и с обязательным указанием источника.



Добавить комментарий:

(необязательно, не отображается на сайте)


Сортировка комментариев: Последние сверху | Первые сверху

2023-01-26 12:56:00 | Денис
Приветствую! К счетчику Меркурий 230 подключен gprs-модем со статическим ip и настроенным tcp-портом. Подскажите пожалуйста как послать команду проверки связи 00 00 01 B0 через telnet ip port?


2021-02-09 17:45:07 | Andrey_B
Евгений, ваш вопрос находится за рамками обсуждаемой темы. Его лучше адресовать производителю счетчика.


2021-02-09 14:20:31 | Евгений
Андрей, подскажите пожалуйста, возможно ли редактирование журнала учета событий задним числом? Возможно ли обнаружить следы данного вмешательства и определить период вмешательства? Вопрос не с целью "украсть ведро тока", а с целью аргументировать свою позицию в судебном разбирательстве.


2019-03-10 10:45:41 | Andrey_B
Павел Игоревич, счетчик мониторить можно с любой "железки", которая работает под управлением полноценной ОС и имеет USB-порт для подключения адаптера. Причем мой код, сделанный как результат реверс-инжиниринга на коленке и для себя, возможно, на текущий момент нельзя считать оптимальным решением. Кажется, уже есть более качественные реализации ПО для опроса подобных счетчиков в свободном доступе.
Что касается флэш-карт, то с одной стороны есть качественные изделия типа Samsung EVO, с другой стороны, к RPi приделывают SSD через USB-адаптеры.


2019-03-10 01:12:02 | Павел Игоревич Прудников
Андрей, подскажите пожалуйста с Малинки получится мониторить этот счетчик? я пока только собираюсь делать умный дом, и в общем хочу как раз купить такой же бу счетчик как у вас и реализовать подобное. сервер умного дома пока планирую сделать на малинке. хотя конечно пугает тема памяти которая довольно быстро придет в негодность.


2017-12-09 17:28:44 | Игорь
Тому кто хочет мониторить счетчик с ПК
Хорошая программа съема данных для этого прибора: ССД АстраА


2016-10-27 10:25:01 | Andrey_B
Владимир, dio - библиотека для низкоуровневой работы с IO (в том числе чтение и запись в serial port). Насчет telnet'а не знаю. В общем случае telnet - это программа для реализации текстового интерфейса к сетевым протоколам.


2016-10-27 09:08:01 | Владимир
Andrey_B, подскажите, я же правильно понимаю, что библиотека dio это просто чтение и запись данных в порт? тоесть можно данные считать тем же телнетом?


2016-10-24 11:31:39 | Andrey_B
Serge3leo, цель проекта - создание универсального устройства, которое можно было бы применить для решения широкого спектра задач. Как любой другой инструмент его возможности с одной стороны ограничены конструктивными параметрами и исполнением, а с другой стороны умением владельца им пользоваться.
Идеология устройства и его возможности подробно расписаны на сайте.
Специальной поддержки UART в MegaD-2561 в данный момент нет, так как не возникало задач, для которых это могло действительно понадобится. I2C, разумеется, не равно UART.
"Action" доступен только для Входов (IN), АЦП (ADC) и датчиков DS18B20 (DSen/1W)
Период опроса может быть любым.
Значения, записываемые в Action, сохраняются в EEPROM. Если их сохранять с частотой 5-10 раз в секунду, то ресурса EEPROM хватит ненадолго.


2016-10-24 08:40:50 | Serge3leo
"Serge3leo, при наличии дополнительной платы согласования UART-RS485, использовать МК для считывания данных со счетчика можно. Другой вопрос, нужно ли это проекту MegaD-2561? Счетчиков в природе много. Протоколы разные..."

За проект MegaD-2561, это ж я не знаю, но если предоставление возможности управления отоплением входит в задачи проекта, то энергопотребление дома, как вносит свой вклад в температуру, на равне с погодой, так и является одним из ограничений, особенно в случае отопления электричеством.

А если MegaD-2561 включает отопители, то он должен их и выключать, даже если серверу сейчас не до того, т.к. время реакции сравнительно ограничено. Примерно из тех же соображений, что на концевые выключатели, по-хорошему, должен реагировать тот же контролер, который подаёт команду на двигатель. Дело сервера - генерация скриптов для отопления в зависимости от разных факторов, а так же учёт и статистика.

Разнообразие протоколов не так уж велико и снижается, для новых счётчиков - международный стандарт ГОСТ IEC 61107-2011 (ГОСТ МЭК 61107-2001, IEC 61107), в общем, внедрён , да и старого доброго импульсного протокола ещё механических счётчиков никто не отменял (типа 1000 имп/кВт-ч и т.п.). Хотя остались ещё пережитки Modbus RTU и т.п.

Собственно, не суть, вопросы о существующих возможностях MegaD-2561:

1. Документация о использовании UART в MegaD-2561 более, чем лапидарна. Я правильно понимаю, что их настройка аналогична настройке I2C: можно стартовую последовательность байт, последовательность байт запроса и смещение байта(ов) значения датчика. Таким образом, можно использовать электрический счётчик, как один из датчиков и назначать "Action" на изменение показаний?

2. Период опроса может быть в районе 0.3...3 с?

3. Для импульсного протокола счётчика. Если я правильно понимаю, MegaD-2561 не поддерживает датчики которые дают частоту или скважность, таким образом сервер должен постоянно модифицировать правила. Может ли сервер изменять "Action" с частотой примерно 5-10 раз в секунду?




2016-10-24 00:17:05 | Andrey_B
Алексей, я использую скрипт с 2008 года и ни разу не наблюдал ошибочные значения. Может быть, проблема где-то в плохом контакте или в записи данных в БД. Трудно сказать. Кстати, я свой счетчик опрашиваю каждые 10 секунд (то есть часто).


2016-10-23 20:42:45 | Алексей
Андрей, подскажите, пожалуйста, часто ли получаете ошибочные значения по запросам ? Я опрашиваю счетчик раз в 30 секунд, и на графиках возникают либо провалы либо пробои вверх.


2016-10-21 18:15:13 | Andrey_B
Serge3leo, при наличии дополнительной платы согласования UART-RS485, использовать МК для считывания данных со счетчика можно. Другой вопрос, нужно ли это проекту MegaD-2561? Счетчиков в природе много. Протоколы разные. Алгоритмы контроля (напряжения/потребляемой мощности) могут быть разнообразными. Если бы мы делали специализированное устройство только для этого, тогда да, но MegaD - устройство универсальное. Гораздо проще подключить счетчик к мини-ПК и контролировать все эти параметры на нем. А на MegaD только отправлять команды на управление нагрузками.
Как альтернативное решение - использование аналоговых датчиков на базе ACS712 (по 100-120 руб за шт) с ограничением выходного напряжение до 3,3В. Дешево, будет работать встроенный в MegaD алгоритм работы с АЦП-портами, но насколько точны эти датчики я не знаю.


2016-10-21 16:45:04 | Serge3leo
Андрей, а с порта UART MegaD-2561 аналогичное считывание возможно? Интересует реализация ограничения тока или мощности.


2016-10-21 09:48:53 | Алексей
Отвечаю на свой же вопрос про оперативные значения. Вырезал условие из скрипта ( if can = bus). Точнее присвоил значение start_byte =1 и все зарулилось...


2016-10-21 09:47:28 | Andrey_B
Алексей, затрудняюсь сказать. Если вы получаете данные хотя бы по одной фазе, значит остальные данные тоже есть. Счетчик отдает результат сразу по всем фазам. Возможно, есть какие-то особенности в интерпретации ответа счетчика.


2016-10-21 09:37:35 | Алексей
Андрей, не могу понять, почему, используя ваш скрипт, не могу получить значение оперативных параметров ( напряжения, силы тока и тд) на 2 и 3 фазе. Все данные ( тотал) получаю без проблем. Натолкните на мысль, пожалуйста.


2016-10-01 12:22:11 | andrey_z
Спасибо автору. Всё получилось со счетчиком Меркурий-236PQRS. 01.10.2016 купил за 4600руб. На DIN рейку и компактный. Имеет внутренне питание RS485, поэтому достаточно 2х-контактного (без питания и земли) простейшего китайского USB адаптера. Куплен на али за 65руб на чипе CH340/341:
https:/ru.aliexpress.com/item/HOT-SALE-2pcs-lot-USB-to-RS485-485-Converter-Adapter-Support-Win7-XP-Vista-Linux-Mac/1699271296.html

В линуксе виден как :
[ 4977.104345] USB Serial support registered for ch341-uart
[ 4977.115042] ch341 7-1:1.0: ch341-uart converter detected
[ 4977.148528] usb 7-1: ch341-uart converter now attached to ttyUSB0
( линукс armbian 3.4.112-sun8i, dio подключил по инструкции автора статьи )

В виндовсе:
USB-SERIAL CH340 (COMXX) - XX номер порта
Драйвер с сайта wch.cn (легко найти погуглив)

Внимание! Для настройки и тестирования дома от 220В счетчику необходимо запитать 3ю фазу (5й контакт). 2 дня потратил на сей факт. Но изучил приятный снифер Advansed Serial Port Monitor, и терминал Hterm.

Огромное спасибо поддержке со стороны Инкотекс , а именно Владу Русанову, связаться можно через /incotex-counter.blogspot.ru/


2016-09-02 18:11:27 | alexgig
Уважаемый автор, а не подскажите есть ли возможность очистки журнала событий ? Или удаления отдельных строк ?


2016-05-25 18:05:11 | Andrey_B
Максим, адрес счетчика - первый байт. Необходимо дополнительно расчитывать контрольную сумму.


2016-05-25 15:24:06 | Максим
Если счетчиков несколько(rs485), какой бит за адресацию отвечает?


2016-05-24 21:05:32 | Сергей
Аналогичного решения просят счётчики воды с проводочками по бокам. Не всегда удобно снимать показания в свете поголовного использования сайтов госуслуг.


2016-04-04 12:29:25 | Andrey_B
Алексей, нужно разрешить short_open_tag.


2016-04-03 22:56:06 | Алексей
Возможно я что то не догоняю, но при $php mercury-test.php получаю листинг файла скрипта без исполнения. (extension прописал)


2016-02-07 10:52:51 | Сергей
перед
pear install channel:/pecl.php.net/dio-0.0.7
надо
apt-get install php5-dev


2016-01-16 15:33:09 | Евгений
Михаил, для счетчика "14990347" строчка будет выглядеть так dio_write($fd, "x2Fx01x01x01x01x01x01x01x01xAFxB0", 11);


2015-12-12 20:59:43 | Andrey_B
Михаил, я не уверен, что это адрес счетчика. Строчку подсказать не могу. Для адреса счетчика, отличного от 00 необходим расчет контрольной суммы.


2015-12-11 13:10:38 | Михаил
Андрей, у меня в программе TaskGroup для Меркурия в поле сетевой адрес написано "14990347". Я не догоняю как у меня должна выглядеть строчка dio_write($fd, "x00x01x01x01x01x01x01x01x01x77x81", 11);
Помогите пожалуйста. Спасибо.


2015-11-13 12:40:08 | Andrey_B
Владимир, вы про какой разъем?


2015-11-13 11:27:18 | Владимир
Андрей, то самое чувству когда нужно тащить системник к счетчику )))) Ну у меня вроде как тоже так получится, упру сервер в пристройку, а туда воткну счетчик однотарифный, мне всеравное его менять на двухтарифный, вот и получится. как буду делать, отпишу что получилось, спасибо за ответы. Кстати, а где это разъем найти? как он выглядет? мне придется на текущем его вертеть


2015-11-13 10:30:10 | Andrey_B
Владимир, шина CAN, которая используется для обмена данными со счетчиком предполагает некоторые расстояния. Но конкретно в моем случае счетчик находится в паре метров от компьютера.


2015-11-13 04:10:54 | Владимир
Андрей, а как решили вопрос с расстоянием? компьютер же не возле счетчика стоит


2015-11-11 17:10:37 | Andrey_B
Владимир, с завода счетчики идут, скорее всего с адресом 00. В магазине его вряд ли меняют. Намудрили производители за это время или нет - гарантировать не берусь.


2015-11-11 10:25:39 | Владимир
Андрей, счетчики вроде как не програмируются у нас, их покупаем в магазине и все, но не факт что там их не меняют.
По поводу скрипта, если не сложно
1. В демо я так понял есть все включая авторизационные данные(которые поменять на свои) к бд, так и таблицы кда идет запись?
2. как то узнать адрес можно? который будет отличен от 00 ?
Про счетчик и интерфейс понял, меня брали наверное больше сомнения по тому - вездели версии одинаковые и не намудрили ли чегото нового что не заработает с данным скриптом?


2015-11-11 10:24:22 | Andrey_B
Владимир, возможность подключение счетчика к компьютеры определяется моделью счетчика. Вот на той странице, ссылку на которую вы дали, эта информация представлена. Счетчик нужен в данном случае с поддержкой CAN или RS485 (в зависимости от того, какой будет адаптер). Адаптер можно обычно заказать в том же месте, в котором продаются электросчетчики или по Интернету. Также на сайте и форуме много говорилось, что подходят нефирменные адаптеры, которые стоят значительно дешевле.
Код, который размещен на сайте под видом "Демо-интерфейса" содержит в себе как скрипт, считывающий данные со счетчика, так и саму БД.
Скрипт запускается один раз при старте системы (не по расписанию!) и висит в памяти компьютера постоянно, опрашиваю счетчик раз в 10 секунд.
Нужно только иметь ввиду, что скрипт этот настроен на работу со счетчиком с дефолтовым адресом 00. Если ваш счетчик будет программироваться органами учета, то они могут поменять адрес и тогда скрипт перестанет работать.


2015-11-11 09:11:23 | Владимир
Здарвствуйте. Андрей, пользуюсь вашей продукцей, доволен. Собственно сейчас хочу менять электросхему подключения дома, а так же счетчик.
Счетчик планируется ставить двух тарифный, что то типо
/www.incotexcom.ru/m230art.htm
В нем есть тот интерфейс по которому возможно подключение к компьютеру?
Так же хотелось получить инструкцию по работе php скрипта, он исполняем и прописывается в шедулер для работы и записи в бд? я в php слаб, а писать на другом языке долговато и напряжно, как то адаптировать под мои реали можно, тоесть прям вплоть взять дамп таблиц бд в которые рисуются ваши цифры и полный рабочий скрипт, дабы уменьшить вопросы и не мучатся с настройками, дальше я уже смогу сам править и изменять. Так же интересует как найти кабель USB в CAN/RS485/RS232, не думаю что у нас знают что это вообще такое. Можно связь поддержать по email/icq/skype, email я указал. Надеюсь на помощ


2015-10-28 16:03:27 | Andrey_B
Михаил, прописывается не серийник, а адрес счетчика. Это первый байт. В коде это адрес 00. Для использования других адресов нужно дополнить код расчетом контрольной суммы.


2015-10-21 23:54:59 | Михаил
Андрей, подскажите пожалуйста, где в коде php прописывается серийник счетчика? Я так понимаю, что без серийных снятие показание не получится. Ваш код из демо архива mercury-test.php выдает мне Total: 0 Pv: - - Direct IO у меня установлен. При запуске программы из консоли (/usr/bin/php /var/www/mercury-test.php) ни чего не происходит.


2015-05-19 11:05:09 | Роман
Доброго времени! А как на счёт перепрограммирования счётчика, в связи с переводом на зимнее время? Сам? Если сам, то необходим документ от юр. лица с соответствующей лицензией...


2015-05-17 18:54:20 | Юра
вот здесь https:/github.com/Shden/Shden есть mercury236.c В нем реализован расчет CRC, остальное, правда, забито гвоздями - 0 номер счетчика например, пароль, ...
Вполне себе простор для расширения и поиска идеала.
Собрал под MIPS архитектуру, буду прикручивать для работы роутера с переходником на оптопорт.


2015-02-07 22:32:48 | Волков Юрий
добрый день, dio работает под php 5.4.36


2015-02-04 11:27:49 | Andrey_B
Александр, ссылка на документацию для Меркурий-230 есть прямо в статье...


2015-02-04 00:02:22 | Александр
Спасибо Андрей за очень полезную информацию. Меня заворожила фраза про документацию. "Это позже она появилась в открытом доступе.". Если можно, укажите - где взять. Интересует на Меркурий 200 и Меркурий 230. Моё мыло ss_vr@mail.ru . Заранее благодарен за любую помощь.


2015-01-22 12:21:48 | Andrey_B
иван, во-первых,в тот момент, когда я это делал, у меня не было документации. Это позже она появилась в открытом доступе. Поэтому утруждать себя чтением документации я не мог при всем вашем и моем желании. Во-вторых, этот сайт не о промышленных системах учета, а о том, как сделать свой дом немножко более умным. Большинство потребителей имеют дело с одним счетчиком. Я не беру денег за свой код, а все представленные примеры - это знаете ли "примеры", которые вы можете использовать как идею по собственному усмотрению. И все, что вы сказали, уже было сказано в комментариях. Когда мне совсем нечего будет делать, я, может быть, дополню код, который, впрочем, и так работает. А лучше сделайте это вы. А я с удовольствием размещу ваш правильный и красивый во всех смыслах код на сайте.


2015-01-22 10:48:47 | иван
Автору конечно спс за работу, но пример годится только для одного счетчика. Как и описано, автор не стал париться чтением документации и написать полнофункциональный класс для работы со счетчиком/ми, а просто передрал команды из снифера в одном конкретном примере для одного счетчика с доступом по сетевому адресу "00". Если у вас больше одного счетчика, то пример не годится и вообще все нужно переписывать. Расчет контрольной суммы точно вставлять на два последних байта.


2015-01-21 16:23:49 | Andrey_B
Иван, посмотрите комментарии. Ответ на ваш вопрос был.


2015-01-21 11:21:04 | иван
Разобрался: запустил dio на 5.6 php. А где в примере задется адрес сетевой счетчика?


2015-01-21 10:40:11 | Andrey_B
В Debian 7 PHP 5.4 - работает.
Вместо dio можно использовать стандартные функции fopen(), fwrite(), fread(), а параметры порта задавать внешней программой.


2015-01-20 16:40:15 | иван
dio не работает под последним php. Есть более современный пример?


2014-07-30 17:16:49 | Сергей
а как заставить скрипт снимать данные через ИК c меркурия 231 ?


2014-06-25 17:50:10 | Andrey_B
МихаилСол, к сожалению не знаю - соответствуют ли протоколы или нет.


2014-06-23 21:24:49 | МихаилСол
Андрей, здравствуйте! Мне известно, что протоколы для Меркурий-230 и -200 различны. Известно ли Вам, одинаковы ли протоколы Меркурий-203 и -206? Соответствуют ли протоколы -203 и -206-го Меркурия названным -230 или 200? Спасибо всем кто поможет с ответом!


2014-03-23 11:49:34 | Сергей Панфилов
Большое Спасибо за информацию и мотивацию реализовать удалённое чтение показаний счётчика Меркурий 206 через последовательный порт. В моём случае это оптопорт с юсб кабелем УСО-2 и две юникс-ОС: OSX и raspbian. Проект доступен на гитхаб https:/github.com/sergray/energy-meter-mercury206


2013-12-07 14:01:13 | Игорь
Андрей, подскажите, здесь для связи счётчика с компом Вы используете адаптер USB-CAN. А скажите в чём его отличия от такой связки USB-RS232+RS232-ECOCAN( или EBUS). Взаимозаменяемы ли они? Хочу подключить котёл, а опыта монтажа адаптеров нет. Есть желание использоватьготовый.


2013-11-28 13:05:10 | Andrey_B
Davill, это шина нулевая в корпусе ИЭК (Артикул YND10-4-11-125)
УЗО не помню, посмотрю.


2013-11-28 12:00:54 | Davill
Андрей, а скажите пожалуйста что за приборчик у вас на фотографиисправа от УЗО спрозрачной крышечкой, и какой модели УЗО, на фото не видно. Спасибо.


2013-09-26 16:44:28 | Andrey_B
Георгий, я думаю вам надо начать с сайте фирмы "Инкотекс" - производителя счетчиков Меркурий. Там есть вся необходимая информация.


2013-09-26 15:19:13 | ГЕОРГИЙ
ПОДСКАЖИТЕ ГДЕ ВЗЯТЬ ПРОГРАММУ И ПРОВОД К НОУТБУКУ ДЛЯ СЧИТЫВАНИЯ ПОКАЗАНИЙ С МЕРКУРИЙ 230 АРТ ЧЕРЕЗ ИНФРАКРАСНЫЙ ПОРТ


2013-09-24 23:26:04 | Andrey_B
людмила, наш сайт про то, как сделать, а не про то, как сломать.
Хак, отмотка, скрутка и прочая "халява" - не наш профиль!


2013-09-24 22:05:13 | людмила
можно ли сломать систему у меркурия2032т


2013-09-21 20:04:59 | Сергей
Если я правильно понимаю логику, то в функции dd():
$data2 = dechex(ord($data[0]));
а надо:
$data2 = dechex(ord($data[$j]));
И работает правильно функция dd() только потому, что у неё на вход подаётся всегда 1 байт.
ПыСы: Спасибо за намёк и пример как надо делать :) У нас на заводе за 40+шт. счётчиков хотели почти 200тыс. срубить за примерно подобную программку, да ещё с куцым функционалом. А тут, всё что хотим напишем :)


2013-06-28 11:00:32 | Andrey_B
sim31, по поводу 2000 руб. Во-первых, в статье сказано следующее "со счетчиками Меркурий вполне успешно работают любые простейшие преобразователи RS485/USB стоимостью от 300 руб". Во-вторых, AMD485 в розничном магазине в России вы не купите за 10 руб, В-третьих, кроме ADM485 нужен микроконтроллер, плата, корпус, прошивка и время. Моя позиция такова. "Колхозить" следует только в том случае если а) аналогичного устройства нет на рынке б) аналогичное устройство слишком дорого или доступно с ограничениями (например, 2-х месячная доставка из Китая). Поэтому если есть девайс, который можно купить за 300 руб в любом ларьке - я не задумываясь куплю его, чем делать аналог самостоятельно.
Меркурий-221 куплен в 2008 году, когда в Интернете не было ни описания протокола, ни какого-либо другого опыта работы со счетчиками Меркурий, поэтому для реверс-инжениринга мне необходим был родной адаптер, чтобы исключить какие-либо несовместимости.
По поводу счетчика импульсов. Этот вариант вообще не подходит. Вся прелесть видеть полную картину по фазам, по напряжениям, в любой момент считывать точные значения общей накопленной потребленной мощности.
По поводу Ethernet. не следует вырывать из контекста. Имелось ввиду, что нет никакого смысла заводить функцию связи со счетчиком в Ethernet, когда дальность работы RS485/CAN никак не меньше. А если уж заниматься буквоедством, так давайте до конца
Ethernet
FOIRL - дальность до 1 км без повторителей
10BASE-F / 10BASE-FL - дальность до 2 км без повторителей
100BASE-FX - до 2 км без повторителей
100BASE-SX - до 10 км без повторителей
100BASE-FX WDM - свыше 10 км без повторителей
С повторителями что по оптике, что по меди, бесконечно. Только какое все это имеет значение в рамках обсуждаемой темы?


2013-06-28 01:37:24 | sim31
>>CAN/RS485 работает на расстояниях сравнимых с Ethernet
нет, эзернет 100-120 метров, RS485 на 9600 бит/с может идти на километры, с повторителями бесконечно ))


2013-06-28 01:31:56 | sim31
Чтобы не тратить 2000 рублей на преобразователь интерфейсов, можно было купить за 10 рублей микросхему ADM485 и подключить к UART микроконтроллера ))
Еще проще есть вариант, у счетчиков есть импульсный выход, при потреблении 1/8000 киловатта он выдает импульс, который можно ловить микроконтроллером. Чаще импульсы - выше потребление. У некоторых счетчиков есть только импульсный выход и больше ничего. Тоже самое у счетчиков воды и газа, их показания можно снимать и строить красивые графики потребления :)


2013-03-26 22:44:48 | Ермыч
Долго и безуспешно ищу информацию как подключить этот счётчик для реализации его функции ограничения нагрузки и тока. Через какие приборы и каким образом включить его в трёхфазную сеть, чтобы он отключал её при превышении значений мощности и напряжений, а потом включал её? Может быть есть где то схемы или описания?


2013-03-02 05:15:06 | Shamrok82
Спасибо за статью, очень пригодится :)


2013-02-27 10:50:57 | Andrey_B
Антон, в статье размещена ссылка на архив с полным описанием протокола. Там все это подробно расписано.


2013-02-26 16:04:19 | Антон
Спасибо за быстрый ответ! У меня еще вопрос - какой код для запроса реактивной мощности Q?


2013-02-25 11:02:57 | Andrey_B
Антон, да, первый байт - это сетевой адрес.


2013-02-21 15:25:32 | Антон
Уважаемый Андрей, скажите, пожалуйста, как обращаться к счетчику не по нулевому сетевому адресу? Я правильно понимаю - первый байт это сетевой адрес, если просто заменить в Вашем коде первый x00 на соответствующий номер (например, х05), этого будет достаточно?


2013-01-30 11:01:21 | Andrey_B
Max, посмотрите нашу переписку с dmitrydmitry в ноябре 2009 года. Это ответ на ваш вопрос. Что касается CRC, то в конце статьи есть информация по этому поводу.


2013-01-29 11:07:20 | Max
Здравствуйте! Объясните, пожалуйста, по коду

принцип перевода шестнадцатиричного значения в результат ($result): зачем перепреобразование и число 40 - функция merc_gd, начиная с if ( $total != 1 ) )

и расчет контрольной суммы. Спасибо!


2013-01-25 18:12:46 | Andrey_B
Виктор, во-первых, CAN/RS485 работает на расстояниях сравнимых с Ethernet. Во-вторых, нет никакого интереса просто смотреть эти данные, интересно их хранить и обрабатывать: строить графики, делать аналитические отчеты, учитывать текущий показания в системах безопасности и т.д.. Для этого мало крохотного микроконтроллера.
И что под привязкой к операционке вы имеете ввиду? Этот скрипт у меня работал как в Windows, так и в Linux.


2013-01-25 17:27:56 | Виктор
Отличная статья! но Вы недумали внедрить данный софт в ваш модуль atmega + enc28j60 . помоему будет удобней и интересней. не будет привязки к растоянию и операционке. если что то нароботали в эту сторону - tlt83@mail.ru


2013-01-25 06:37:20 | Александр
Здравствуйте!!! нужна помощь по адаптеру меркурий 221!!! Ситуация такая :работники КАТЭК электросетей от 5 счетчиков меркурий 230 вывели одно гнездо для снятия показаний, я купил себе адаптер, но какой провод + , а какой - не знаю( Вопрос: что будет с адаптером если перепутать провода "+" и "-" по которым считывается информация???


2013-01-21 11:49:38 | Andrey_B
Баян, нет. Во всяком случае мне такой способ неизвестен.


2013-01-20 18:56:47 | Баян
Уважаемы Андрей с конфигуратором можно ли отмотать счетчик назад ?


2012-12-08 00:51:27 | shex
Все так. На счетчике 40 домножили на 30 =1200, в 3-х помещениях стоят дублеры, в сумме по дублерам нагорело 300. Почему такая разница вроде должны быть одинаковые показатели.


2012-12-07 10:45:14 | Олег
Shex, в счётчике есть параметр коэф-т трансформации по току. Если в памяти счётчика он записан равным 1, то показания нужно домножать на реальное значение Ктт (напр., 150/5=30).


2012-12-04 23:35:44 | Shex
Нет наоборот в 4 раза больше мне эти 40 квт надо на 30 умножать и эту сумму оплачивать. Электрик который устанавливал счетчик не снял трансформаторы, которые устанавливали на старый счетчик чтоб он быстро не накручивал квт. Такие показания могут быть из-за трансформаторов? (я в элек-ве не бум бум как смог объяснил)


2012-12-04 10:54:17 | Andrey_B
Shex, я не понял ваш вопрос. У вас Меркурий-230 показывает меньше потребленной энергии в 4 раза? Такого не может быть. Вы точно смотрите общую потребленную мощность по всем тарифам? У меня параллельно сейчас считают энергию Меркурий-230 и счетчик от Концерна Энергомера. Показания отличаются буквально на десятые доли киловатта.


2012-12-04 00:49:05 | Shex
Здравствуйте установил меркурий 230, за месяц показало 40 при 30 трансформаторах стоявших ещё на старом счетчике, при этом на дублёрах вышло 300 квт. Почему такая разница в 4 раза? Спасибо.


2012-12-02 11:22:20 | usergey
Andrey_B, в том то и дело, что на вводе обычно стоят автоматы с характеристикой C и это дает возможность использовать компьютер для приоритезации нагрузки.
Насчет превышения номинала в 5-8 раз - это, пожалуй, перебор, но минута-другая-третья обычно в запасе всегда есть.

Меркурий, как я понимаю, позволяет мгновенную мощность считывать?


2012-11-30 22:38:01 | Andrey_B
usergey, сразу автомат не выбьет. У наиболее дешевых автоматов группы C, порог срабатывания в 5-8 раз превышает номинал. То есть при превышении потребляемой мощности в 1,5-2 раза, автомат достаточно долго (минуты, часы) будет держать ток.


2012-11-30 14:58:32 | usergey
По идее, с помощью компьютера можно контролировать нагрузку по фазам и если она превышает какой-то порог (учитываем ограничение по мощности на вводе), через MegaD и контактор можно отключать неприоритетную нагрузку (теплые полы, электрокотел и пр.).

То есть получаем управляемое компьютером реле приоритета.

Единственно, если комп выключен или частота опроса низкая, то выбьет вводный автомат. :)


2012-11-12 11:01:47 | Дмитрий
Andrey_B, отличная статья, спасибо.


2012-09-29 16:46:39 | zova
очень здорово! спасибо!!!


2012-07-26 16:19:37 | DVit
Доброго времени суток. Неожиданно обзавелся счётчиком Меркурий 201.2 На сайте сказано, что имеет телеметрический импульсный выход. Можно ли с него считать какие либо данные или этот выход просто дублирует светодиод, который мигает при работе счётчика?


2012-07-16 23:49:54 | Alex
Здравствуйте!Киньте пожалуйста протокол связи для меркурий 230 на lexik100@yandex.ru .Заранее огромное спасибо!!


2012-05-04 13:49:49 | Vlad
Меркурий-221 покупать не обязательно. Сейчас есть дешевые USB-RS485/CAN и USB-IRDA адаптеры


2012-03-05 15:40:56 | Сергей
Если выскакивает ошибки при установке dio-0.0.2,ставьте 0.0.5.


2012-03-05 15:30:34 | Сергей
А,как привинтил мерк221 к линуксу?


2012-02-22 14:05:12 | Vlad
С электросчетчиками Меркурий-230, 231, 202 можно соединяться бесконтактным путем через новый вид адаптера USB-IRDA.


2012-02-15 00:33:17 | Andrey_B
Петр, не работает только эта команда или все остальные тоже?


2012-02-14 07:17:35 | Пётр
Andrey_B, не работает запрос 000550002C25, ошибка 01 (Недопустимая команда или параметр). Вы не в курсе в чём может быть причина? (Меркурий 230)


2012-01-11 17:16:11 | Роман
Спасибо, но в описании протокола для 230 не указано описание параметра "энергия на начало суток". Этот параметр используется в счетчиках ART (t- тарификатор), вероятно необходима обновленная версия.


2012-01-11 15:09:26 | YR_Spb
Добрый день!
Andrey_B подскажите а расчет за потребленную электроэнергию по 1 или 2 счетчику производится? И еще на фотографии эл.щитка интересно разведены провода 0(N) шины и земли. Можете схемку скинуть на мэйл. В феврале произвожу замену однофазного ввода на трехфазный с соответствующей переборкой щитка. Хочу поставить Энергомера CE301, т.к. он похож размерами на однофазный СОЛО (сейчас смонтирован). В связи с тем, что в статье есть ссылка на их внутренности, возможно есть какой-либо опыт использования.


2012-01-10 23:18:43 | Andrey_B
Роман, ссылка на протокол есть в конце статьи.


2012-01-10 17:47:42 | Роман
Добрый день. Со счетчика Меркурий м230ART не считывается параметр- энергия на начало суток. просьба выслать протокол на Rmemail@mail.ru


2011-12-13 11:47:28 | Andrey_B
Совсем на входе (на столбе) стоит автомат (там же счетчик для энергосбыта).
В доме вводное УЗО и счетчик уже для меня. Конечно, перед УЗО нужно всегда иметь автомат.


2011-12-13 11:31:40 | DMG
Andrey_B, у вас на входе УЗО или диф-автомат?


2011-11-15 21:03:27 | Cghfdtlkbdjcnm
Zyx, если есть интерес "пощупать" СЭБ-1ТМ через интернет то напишите мне на filiam@mail.ru, я вышлю Вам инструкцию как это можно сделать. Для этого Вам понадобится установить "Конфигуратор СЭТ" с сайта завода.


2011-11-15 10:23:21 | Zyx
Cghfdtlkbdjcnm, да по цене получается в три раза дороже, но не имеют тех недостатков, как Меркурии и Энергомеры. Так как покупка долгосрочная наверно остановлюсь на них.


2011-11-14 21:38:21 | Cghfdtlkbdjcnm
Zyx, СЭБы серии ТМ - это урезанные версии СЭТов. Эта серия счетчиков является самой передовой из современных отечественных. Версии со встроенными релюшками могут быть сконфигурироанны для защиты от перенапряжений. Имеют профиль мощности, тока, напряжения и даже (не знаю зачем, наверное для подтверждения метрологических характеристик) температуры счетчика. Протокол - аналогичен СЭТ (ну и Меркурию-230 соответственно). По сранению с остальными отечественными счетчиками супердорогие.
СЭБ-1ТМ.02Д www.nzif.ru/modules/myReviews/detailfile.php?lid=204
Есть версия СЭБов с PLC-модемом.


2011-11-13 23:22:26 | Zyx
Олег, спасибо. Хотя здесь incotex-counter.blogspot.com/2011/08/blog-post.html?showComment=1320993847892c5863979370745021026 мне ответили немного по другому.
А вообще большая высота Меркурия-206 (не помещается в стандартный шкаф) и необходимость в дополнительном питании интерфейса как-то останавливают покупку. Вот присматриваюсь к СЭБ-1TM.02Д. Кто-нить может сказать что-нить про них?


2011-11-12 21:52:04 | Andrey_B
Cghfdtlkbdjcnm, во-первых, в моей модели счетчика нет профиля мощности, поэтому опрашивать целесообразно, во-вторых, мне нужны данные в динамике абсолютно по всем показателям, а не только по потребляемой электроэнергии, в третьих, мы тут говорим об Умном Доме, системы которого должны своевременно получать информацию о проблеме с электропитанием, а не задним числом. В моей системе есть только одно место, которое накапливает и обрабатывает информацию - это сервер/контроллер/кластер, которые делают это (хранение и обработку) в том виде, в котором нужно мне, а не в каком-то там Access, а все остальные устройства только поставщики данных, но никак не больше.


2011-11-12 16:24:24 | Cghfdtlkbdjcnm
Получив же описание протокола станет понятно, насколько нецелесообразно опрашивать счетчик каждые 10 секунд. Счетчик серии ТМ ведет профиль мощности, которые может быть настроен от 1 минуты до 60 минут. Кроме того Конфигуратор этих счетчиков распространяется бесплатно, а данные опроса формируются в виде базы данных Access, которая может быть открыта и обработана из любой программы.


2011-11-12 16:16:24 | Cghfdtlkbdjcnm
Стоило бы здесь отметить, что Меркурий-230 суть СЭТ-4ТМ Нижегородского завода имени Фрунзе. Некоторые товарищи ведут нечистоплотный бизнес, но этим наказывают сами себя. Как и Меркурий-200 (в девичестве СЭБ-2А старой версии) Меркурий-230 был скопирован с "детскими болезнями", да еще, видимо, его не раз приложили головой (в плане метрологии) пока донесли до производства. В связи с этим данный счетчик настолько проблемный что все крупные организации (кроме совсем уж аффилированных) от этих счетчиков отказались.
На данный момент фирмой Инкотекс выпускаются новые типы счетчиков, отличающихся от старых как небо от земли. Тем не менее это не дает им превосходства над разработками Фрунзенцев.
Новые счетчики Нижегородского завода имени Фрунзе обладают расширенным функционалом (следует признать что зачастую избыточным), а ответы на технические вопросы по ним, как и описание протокола можно невозбранно получить просто обратившись на форум


2011-11-12 03:02:30 | Олег
Забыл! В счетчик отправляется "13 20:43:16 Mercury.exe IRP_MJ_WRITE VCP0 Length 7: 00 87 0D 62 28 B4 09".
"00 87 0D 62" - серийный номер, "28" - запрос версии ПО, "B4 09" - контрольная сумма (ответ разработчиков программного обеспечения для счетчиков Меркурий). Это если кому интересно.


2011-11-12 02:56:38 | Олег
Zyx, Меркурий 206 RN не имеет внутреннего питания (если в наименовании модели нет "S"), и соответственно используется питание 221-го (/www.incotexcom.ru/img/M221noBp.png - схема подключения). Питание на 7 и 10 клеймах. В ТП сообщили, что кабель можно использовать практически любой. Так же ТП сообщила, что в 206-х нет привычного для 3-фазных эл.счетчиков отсутствуют понятия о пользователях - имеется только серийный номер (он же сетевой адрес по-умолчания с завода). Доблестные програмеры из электросбыта (куда я отдавал на перепрограммирование в связи с отменой перехода на зимнее время) сменили на счетчике сетевой адрес. Без сетевого адреса получить доступ к счетчику невозможно (со слов ТП). Пришлось писать заявление на имя директора электросбыта, накой черт мне нужен сетевой адрес (пока ответа нет). Думаю устроят качели - зачем, а оно нужно?. Посмотрим. В любом случае - изменения параметров счетчика через интерфейс/оптопорт, заносится во внутренний журнал счетчика (60 записей), после чего можно отследить - кто верблюд!
Останется разобраться с подключением и получением сведений в Ubuntu и отправкой на сот.телефон.
В общем потренируюсь "на кошечках"
Andrey_B, я единственное не поймы, почему я получал ответ от счетчика используя старый сетевой адрес. На следующий день заменил кабель 6-й категории - ответ "Чтение версии ПО: тайм-аут ответа". Замена на прежний и другие кабели - ответ тот же.


2011-11-10 17:36:17 | Zyx
Олег, вопрос вам: ваша модификация Меркурий 206 RN имеет внутреннее питание для интерфейса или используется от 221-го?


2011-11-10 12:42:28 | Zyx
Вот здесь /incotex-counter.blogspot.com есть некоторая информация по Меркуриям.


2011-11-08 12:29:10 | Andrey_B
Олег, к сожалению ничего по делу ответить не могу. При программировании счетчика пароли меняют - это факт, а вот серийный номер вряд ли.


2011-11-06 11:43:27 | Олег
Андрей, благодарю за ответ. У меня еще один вопрос. Установил виртуальный порт.
Подключил Меркурий-221 к Меркурий-206RN по RS-485 интерфейсу витой парой FTP (20м), под управлением Windows (под Ubuntu пока не стал заводить, завелась бы на Windows) в программе Универсальный конфигуратор (с сайта Инкотекс), выбирал "Меркурий-206", RS-485/CAN, установленный порт, ввел серийный номер (8 цифр), остальные параметры вирт.порта оставил по умолчанию (чекбокс с Echo снят, на устройстве перемычка X4 снята). Так вот при выборе модели моего счетчика, деактивируются поля пользователя, пароля и HEX. При соединении (жму на кнопку) выдает "Чтение версии ПО: не совпала сумма CRC". В порт пишется
0 20:43:15 Mercury.exe IRP_MJ_CREATE VCP0 Options: Open
0 20:43:15 SUCCESS
1 20:43:15 Mercury.exe IOCTL_SERIAL_SET_TIMEOUTS VCP0 RI:25 RM:4 RC:200 WM:1 WC:100
1 20:43:15 SUCCESS
2 20:43:15 Mercury.exe IOCTL_SERIAL_GET_BAUD_RATE VCP0
2 20:43:15 SUCCESS
3 20:43:15 Mercury.exe IOCTL_SERIAL_GET_LINE_CONTROL VCP0
3 20:43:15 SUCCESS
4 20:43:15 Mercury.exe IOCTL_SERIAL_GET_S VCP0
4 20:43:15 SUCCESS
5 20:43:15 Mercury.exe IOCTL_SERIAL_GET_HANDFLOW VCP0
5 20:43:15 SUCCESS
6 20:43:15 Mercury.exe IOCTL_SERIAL_SET_BAUD_RATE VCP0 Rate: 9600
6 20:43:15 SUCCESS
7 20:43:15 Mercury.exe IOCTL_SERIAL_SET_RTS VCP0
7 20:43:15 SUCCESS
8 20:43:15 Mercury.exe IOCTL_SERIAL_SET_DTR VCP0
8 20:43:15 SUCCESS
9 20:43:15 Mercury.exe IOCTL_SERIAL_SET_LINE_CONTROL VCP0 StopBits: 1 Parity: NONE WordLength: 8
9 20:43:15 SUCCESS
10 20:43:15 Mercury.exe IOCTL_SERIAL_SET_ VCP0 EOF:0 ERR:0 BRK:0 EVT:0 XON:0 XOFF:0
10 20:43:15 SUCCESS
11 20:43:15 Mercury.exe IOCTL_SERIAL_SET_HANDFLOW VCP0 Shake:1 Replace:40 XonLimit:0 XoffLimit:0
11 20:43:15 SUCCESS
12 20:43:15 Mercury.exe IOCTL_SERIAL_PURGE VCP0 Purge: TXABORT RXABORT TXCLEAR RXCLEAR
12 20:43:15 SUCCESS
13 20:43:16 Mercury.exe IRP_MJ_WRITE VCP0 Length 7: 00 87 0D 62 28 B4 09
13 20:43:16 SUCCESS
14 20:43:16 Mercury.exe IRP_MJ_READ VCP0 Length 100
14 20:43:16 SUCCESS Length 100: 00 00 2A FF 01 00 00 32 01 00 00 FC 03 00 14 42 00 F0 00 00 40
15 20:43:16 Mercury.exe IOCTL_SERIAL_PURGE VCP0 Purge: TXABORT RXABORT TXCLEAR RXCLEAR
15 20:43:16 SUCCESS
16 20:43:16 Mercury.exe IRP_MJ_WRITE VCP0 Length 7: 00 87 0D 62 28 B4 09
16 20:43:16 SUCCESS
17 20:43:16 Mercury.exe IRP_MJ_READ VCP0 Length 100
17 20:43:16 SUCCESS Length 100: 00 00 E0 00 00 00 01 00 A8 01 00 F5 00 00 2A FF 00 00 40 01 00
18 20:43:17 Mercury.exe IOCTL_SERIAL_PURGE VCP0 Purge: TXABORT RXABORT TXCLEAR RXCLEAR
18 20:43:17 SUCCESS
19 20:43:17 Mercury.exe IRP_MJ_WRITE VCP0 Length 7: 00 87 0D 62 28 B4 09
19 20:43:17 SUCCESS
20 20:43:17 Mercury.exe IRP_MJ_READ VCP0 Length 100
20 20:43:17 SUCCESS Length 100: C0 00 00 04 37 00 00 F8 02 00 50 00 00 C0 0F 00 B1 00 00 B7 01
21 20:43:17 Mercury.exe IOCTL_SERIAL_PURGE VCP0 Purge: TXABORT RXABORT TXCLEAR RXCLEAR
21 20:43:17 SUCCESS
22 20:44:10 Mercury.exe IRP_MJ_CLEANUP VCP0
22 20:44:10 SUCCESS
23 20:44:10 Mercury.exe IRP_MJ_CLOSE VCP0
23 20:44:10 SUCCESS
Отправляет в порт "00 87 0D 62" - серийный номер, "28 B4 09" - хз?
Из порта читаются разные значения. Возможен-ли вариант - пароли/серийный номер были сменены в ремонтном участке КЭС (тогда мозг выносить ремонтникам КЭС, пользователь Admin для инженерной настройки счетчика, тарифы и т.п., а User для потребителя, только чтение значений счетчика), куда отдавал на перепрограммирование в связи с отменой перехода на зимнее время? Либо это глюк конфигуратора? Еще раз спасибо.


2011-11-05 22:15:57 | Andrey_B
Олег, думаю на коротких расстояниях (до 100 метров) подойдет точно. Что касается более длинных сегментов, нужно, наверное, отправить запрос производителю.


2011-11-05 15:51:00 | Олег
Подскажите, подойдет ли витая пара (FTP/UTP, экранированный/не экранированный) для соединения/связи Меркурий-221 и Меркурий-206RN по RS-485 интерфейсу. КИПЭ 2х06 покупать дорого. Заранее благодарен.


2011-10-09 13:43:53 | LA
А есть ли счетчики, которые удаленно смогут передать информацию об энергопотреблении? (через wifi или какой-нить другой радиоканал?)


2011-08-10 20:17:02 | bdxprns
С проблемой разобрался. Установка проходит успешно при замене dio-0.0.2 на dio-0.0.4RC4.tgz

то есть пишем pear install channel:/pecl.php.net/dio-0.0.4RC4.tgz

( + /pecl.php.net/package/dio )


2011-08-10 18:20:21 | bdxprns
при попытке выполнить команду sudo pear install channel:/pecl.php.net/dio-0.0.2

выходит ошибка
читал много в гугле и яндексе - ответа не нашел. -(


downloading dio-0.0.2.tgz ...
Starting to download dio-0.0.2.tgz (5,709 bytes)
.....done: 5,709 bytes
3 source files, building
running: phpize
Cannot find config.m4.
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module

ERROR: `phpize' failed


2011-07-11 13:10:26 | Алексей
Господа, а кто-нибудь пробовал "подцепиться" к меркурию 230 через gsm модем например MC52i-485GI ?


2011-05-19 15:24:08 | THK
В скором времени планирую выложить здесь (пока есть некоторые непонятки по инициализации соединения со счетчиком). Если очень срочно и Вы готовы воспользоваться непроверенной информацией пишите: bogovic ЗВЕРЮГА bk.ru


2011-05-19 13:35:08 | VD
Есть ли у кого протокол обмена со счетчиком Меркурий-200.02.(R)? Скиньте, пожалуйста: vvvv680@yandex.ru


2011-05-10 10:21:53 | Andrey_B
Spawn, как подключите, черкните пару строчек. Под счетчики Энергомера есть открытые протоколы для UNIX? Если ваш домашний сервер выполняет какие-нибудь интересные задачи, то было бы тоже интересно почитать.


2011-05-10 07:49:01 | Spawn
Взял себе Энергомера С-102 для этих же функций, руки не доходят прикрутить к домашнему FreeBSD серверу :)


2011-04-07 10:48:38 | Али
Сергей, я тоже смотрел этот вариант, но как понимаю там вы только сможете прочиатть только количество импульсов, то есть потребленную энергию... А как узнать напряжение на каждой фазе например?


2011-04-06 23:25:06 | Сергей
А никто не пробовал взять счетчики ABB DELTAmax с IP'шным адаптером, который читает данные из ИК-порта и дает к ним доступ по IP? Там в нем даже web-сервер есть.


2011-03-28 09:45:05 | vlad
Господа на большинство ваших вопросов давно уже есть ответы на блоге разработчиков ПО для Меркуриев.


2011-03-11 15:09:13 | Andrey_B
Dmitry, этот скрипт отлично работает у меня на Linux Debian. Только вы, видимо, не дочитали статью до конца. Набор функций DIO по умолчанию не доступен в новых версиях PHP. Необходимо установить его через PEAR. Прочитайте внимательно статью, там указано как это сделать.
Есть и другой вариант. Можно заменить DIO на стандартные fopen(), fread(), fwrite(), fclose(). Сделать это несложно и займет 2 минуты, но эти функции не позволяют производить установку параметров COM-порта. Поэтому перед вызовом скрипта необходимо будет любым способом (а в Linux их несколько, например, setserial) произвести установку скорости порта. Ничего сложного.


2011-03-11 12:59:15 | Dmitriy
Доброго Вам времени суток уважаемые. Прошу ответить, использовал ли кто-нибудь данный скрипт на машине с Debian Squeeze c PHP 5.2. - пока у меня скрипт благополучно останавливается на пункте $result = dio_read($fd, 15);
Если есть возможность выложите точный скрипт под linux.


2011-03-01 12:19:11 | Andrey_B
Роман, конечно, достаточно. Никакого дополнительного драйвера не нужно.


2011-03-01 11:43:38 | Роман
Вы не подскажете в linux при подключении Меркурий 221 появляется устройство /dev/ttyUSB0 этого достаточно или еще нужен специальный драйвер?


2011-02-26 14:04:03 | Сергей
Для одной точки учёта можно использовать OPC-сервер счетчика Меркурий 230.
Прога бесплатно работает с одним счетчиком.


2010-11-17 23:09:00 | Andrey_B
Виталий, нет, я не собираюсь переводить систему Умный дом на ОС Windows. Я считаю, что архитектура UNIX-систем более удобна для конструирования систем автоматизации такого рода, бесплатна, открыта, легче управляется удаленными средствами, предоставляет больше возможностей.
Те кусочки кода, о которых вы упомянули, говорят только о том, что изначально программа писалась для Windows, так как родное ПО (например для счетчика или котла) разрабатывалось для Win32 и было легче анализировать протокол и делать аналог на одном компьютере. После портирования программ на Linux, Windows стал не нужен.


2010-11-17 14:38:10 | Виталий
Большая благодарность за столь интересные и позновательные статьи, много чего для себя узнал нового! В Ваших статьях я заметил что некоторых скриптах в коментариях написано для Windows, вы пытаетесь перевести всой "умный дом" на Windows?


2010-09-08 15:27:37 | Maxx
А где можно найти протоколы обмена других счетчиков Меркурий? Например 203,205?


2010-08-24 21:15:05 | lvorobjeff
Не плохо бы дать примерчик данной статьи на Delphi 2009/2010 на компоненте AsyncPro.
Заранее благодарю!


2010-08-23 13:37:15 | Maxim
Контрольная сумма считается, также как в протоколе ModBus. Для неё используется стандартный полином. Вот тут есть пример
upload.caxapa.ru/standards/Modbus_over_serial_line_V1.pdf


2010-08-12 13:24:38 | Maxx
Я так понял что 2 последних байта это контрольная сумма, но как она считается не могу понять, в описании протокола об этом тож ни слова, Может кто подскажет....


2010-07-26 17:29:01 | Владимир
Не могу понять, что за ахенея этот Меркурий 230. Пробовал поменять тарифы (по работе надо). Вводил 111111, 222222-хрен с маслом. Пишет неправильный код. Задолбал. КТО ЗНАЕТ В ЧЕМ ПРИЧИНА


2010-07-20 14:18:57 | j2
Для тех кто интересуется темами "Умный дом" и как считать данные со своего электронного счетчика типа Меркурий, появился новый универсальный конфигуратор с поддержкой нескольких типов интерфейсов связи (RS485, CAN, IRDA, оптопорт, USB-RF, GSM-модем, GSM-шлюз, TCP/IP), позволяет считывать и конфигурировать счетчики электрической энергии (Меркурий-200, 201, 203, 230, 231, 233).

dl.dropbox.com/u/3467322/RSS/Konfigurator/konfigurator.zip


2010-05-26 13:52:34 | harus
Vadim, Огромная просьба выслать на ttomak@mail.ru описание протокола Меркурий. Заранее спасибо!


2010-05-24 13:01:44 | Andrey_B
Руслан, простейший исходный код для работы со счетчиками Меркурий приведет в данной статье. Достаточно лишь немного поработать головой, чтобы код можно было представить в дипломной работе. Это ведь, насколько я понимаю, не домашнее задание, а дипломная работа. Без минимальных телодвижений такие вещи не делаются.


2010-05-20 22:29:36 | Руслан
делаю дипломную работу на тему разработка автоматизированной системы учета электроэнергии,нужен исходный код программы который будет отображать данные с счетчиков на монитор, с описанием,на чем пишется программа не имеет значение,есть какие нибудь предложения? связь ross31@mail.ru,89503289397,как можно с тобой связаться?


2010-04-20 10:41:53 | Алексей Ч.
в инкотексе мне заявили следующее:
интерфейс CAN является ни чем иным, как RS485 с перепутанной полярностью. у меня лежит меркурий ART-1 без сложного кода модификации (видимо старая версия) 2004г. он спокойно опрашивается черех МОХ-у по 485 интерфейсу, просто с перепутанной полярностью. но вот с другими меркуриями этот фокус почему-то не проходит. = да и вообще где бы нарыть документашки именно на эти старые муркурии. везде только инфа для меркуриев со сложным модификационным кодом. имеется так же меркурий ART и меркурий ART-02 PQCSIN (оба не пашут через моху)

Что касается расшифровки трехбайтных значений мощности, то собственно числовое значение содержится только во втором и третьем байтах из трех, а весь первый байт содержит бит=1, указывающий положительное для напряжения (0бит), тока (1бит), активной(2 бит), реактивной(3бит) и полной(4й бит) мощности, коэффициента мощности(5й бит), частоты(6й бит) и угла между фазными напряжениями(7й бит).


2010-04-14 09:26:40 | velikan
люди! почти полностью разобрался с 230-м. помогите если кто знает про старший и младший байты адреса пожалуйста. velikan080@mail.ru


2010-03-21 00:00:00 | Andrey_B
Сергей, что вы понимаете под "перекосом фаз"?


2010-03-20 16:47:13 | сергей
Почему у вас такой перекос фаз на трендах?


2010-03-10 15:39:12 | илья
добрый день.попрошу вас о небольшои услуге)))немогли бы вы прислать мне формулы расчета технических потерь из первичнои стороны во вторичную в программе конфигуратор меркурий 230.а так же формулы расчета мощьности потерь в самом счетчике меркурий 230.kolhozzznik@inbox.ru


2010-02-18 12:30:50 | Андрей
Доброго времени суток. Вышлите пожалуйста мне протокол обмена с Меркурием 230 АР-03 на an_keks@mail.ru. Заранее спасибо.


2010-02-03 21:16:29 | Alex122
Добрый вечер. Вышлите пожалуйста мне протокол обмена с Меркурием 230 ART02(03), если не сложно подскажите как правильно обращаться к конкретному счетчику,если на проводе их с десяток. Заранее благодарен.


2009-12-11 06:43:26 | Александр
Добрый день. Вышлите пожалуйста мне протокол обмена с Меркурием 230, если не сложно. Заранее благодарен. ppprem@mail.ru


2009-12-10 21:28:10 | DMG
Родной адаптер CAN <-> RS232 построен на MAX233ACWP(/www.chip-dip.ru/product0/148716696.aspx) и PCA82C250T(/www.chip-dip.ru/product0/513330198.aspx) плюс пара резистров(120ом и 27кОм) и пара конденсаторов(0.1мкф). При желании все можно собрать в корпусе разъема DB9.


2009-12-07 21:32:35 | Иван
подскажите пожалуйста пароль доступа в программе конфигуратор для конфигурации и инициализации счетчиков меркурий 230! если кто знает подскажите!!! moto-48rus@mail.ru


2009-12-04 12:03:55 | Александр
Добрый день. Вышлите пожалуйста мне протокол обмена с Меркурием 230, если не сложно. Заранее благодарен. topchieff@yandexl.ru


2009-11-28 21:52:56 | Vladimir
Подключал Меркурий-230 через преобразователь MOXA - A53 (RS-485 - RS232). Работает.


2009-11-24 12:49:11 | Mike
Вот что есть для работы с серийным портом в РНР:
/blogs.vinuthomas.com/2007/04/09/php-and-serial-ports/
Direct IO не нужно


2009-11-22 11:51:45 | Владимир
Не могу подключиться к Меркурий230 через родной адаптер. Интерфейс CAN. В чем может быть тонкость?


2009-11-20 12:13:39 | dmitrydmitry
Угу, похоже, что это именно оно и есть. Только сделав минус $40 задушится только второй байт. Хотя я не уверен, что первый когда-либо появляется. :-) Это из серии про монашку и огурец :-)

Кстати, я не помню точно где я нашел описание, может Вам его выложить сюда? Оно вроде как не имеет грифа "для служебного пользования". Если чего, что в этом сообщении есть мой емаил, напишите под него. Приаатачу.


2009-11-20 00:11:45 | Andrey_B
А я с этим сталкивался. Правда описания протокола у меня на тот момент не было никакого. Поэтому я не знал почему это происходит. Но посмотрите в код программы. Вот, например, кусок.
if ( dechex(ord($result[7])) >= 40 )
$result[7] = chr(dechex(ord($result[7])) - 40);
Это, если я правильно вас понимаю, оно и есть. Теперь понятно. А я ломал голову зачем это надо ;)


2009-11-19 18:31:19 | dmitrydmitry
Я занудо! Но с моментальной мощностью не все так просто. Я сейчас долбаю тестовый вариант. Меркурий 230, одна фаза подключена, примотана одна розетка, куда воткнут комп, ну и чайник иногда :-) 37 - код моего счетчика
Ответы на запрос моментальной мощности (нагрузка ~48 вт и ~750 вт). Вот:
37 08 16 00 81 F2 37 [40 6B 14] 40 6B 14 00 00 00 00 00 00 F1 5F
37 08 16 00 81 F2 37 [41 4F 28] 41 4F 28 00 00 00 00 00 00 80 D4

Если 40 14 6B или 41 28 4F перевести из 16-тиричной системы, то получаем шнягу. Внимательное разглядывание протокола указало, что 2 первый бита при чтении мощности указывают на направление реактивной и активной нагрузки. Правда, к запросу 16h вроде как они не должны относиться, но тут либо писателю не писалось, либо читатель читает не все :-) Короче "and 3F" над первым байтом творят чудеса :-) Вам оно тоже не помешает, вдруг и в Вашей розетке реактивная мощность в другую сторону побежит.


2009-11-19 11:36:11 | dmitrydmitry
Ааааа... :-) Скобка опять не там стоит. Общая моментальная мощность P тоже в 3-х байтах приходит, а не в 4-х :-) Пардон, если задолбал :-)


2009-11-18 19:40:17 | Andrey_B
Дмитрий, Вы совершенно правы. Спасибо за указанные ошибки в описании протокола. В опубликованном же исходнике все правильно - берутся в расчет все 3 байта. ;)


2009-11-18 19:33:19 | dmitrydmitry
Андрей, чтоб довести описание до идеального блеска, надо отметить, что первым байтом идет номер счетчика, который равен 2-м последним цифрам его серийного номера (если его не поменяли). Либо в стандартной софтине (параметры счетчика -> параметры и установка). Он там будет виден и пропишется вверху.

В Вашей ситуации, когда один счетчик, то 00 пойдет, но если их будет больше одного, то грабли возникнут хорошие. Я по ним погулял душевно, даже если счетчик один на проводе висит, то записать в него чего-либо с адресом 00 не получается. Читать - да ради бога. Если же счетчиков будет много, то на запрос с адресом 00 ответит каждый из них.

Я предполагаю, что Вы это знаете и без меня, но вдруг :-)


2009-11-18 16:46:41 | dmitrydmitry
В предыдущем комментарии отъехали решетки, поэтому немного смазалось. Речь шла о "Мощность P (Вт) по фазам"


2009-11-18 16:41:56 | dmitrydmitry
Огромное спасибо за описание на человеческом языке. Делаю мониторинг, чтобы видеть ситуацию по 4-м счетчикам сразу же. Косит напругу сильно. Хотелось бы, чтобы Вы устранили небольшие неточности. Ищем "8,7,9,10." Надо исправить на ""8,7,10,9"

Вот тут:"000816008F8600[03D6A9]00[364F]00[06B6]02[9AA4]3E60" Квадратные скобки надо ставить вокруг 3-х байт во всех случаях. Так говорит протокол и здравый смысл. 4F36+B606+A49A это не 03A9D6, а вот 4F36+B606+02A49A тоже не совсем то, но уже около того :-)

P.s. Еще раз огромное спасибо.


2009-11-09 12:57:57 | Андрей
Есть Меркурий 230 с CAN-интерфейсом и ADAMовский преобразователь 232-485. Помогите подключиться ?


2009-11-05 10:11:44 | Антон
Вышлите пожалуйста протокол обмена, очень нужен :( shortton85@mail.ru
Буду безмерно благодарен :)


2009-11-05 08:09:02 | Александр
Vadim, вышлите пожалуйста протокол обмена со счетчиком Меркурий 230 на konalex@mail.ru Спасибо.


2009-10-29 05:34:53 | gdr
Vadim, вышлите пожалуйста протокол обмена со счетчиком Меркурий 230 на goga46_gav_mail.ru Спасибо.


2009-10-27 14:28:44 | vadim
www.homea.ru/blog/alid/index_b-3.html
Вот новенькое по опросу счетчиков Mercury-230


2009-10-21 16:52:34 | Анатолий
Vadim, вышлите пожалуйста протокол обмена со счетчиком Меркурий 230 на disystem@bk.ru Заранее спасибо!


2009-10-20 15:14:43 | Антон
Vadim, Огромная просьба выслать на Lex-Mark@mail.ru описание протокола Меркурий. Заранее спасибо!


2009-10-07 10:21:49 | Анатолий
Vadim.помогите сбросить забытый пароль Меркурий 230.Спасибо.milcin@bk.ru


2009-10-04 03:52:28 | Bit
Vadim, вышлите пожалуйста протокол обмена со счетчиком Меркурий 230 на va@mail.ru Буду бесконечно благодарен!


2009-09-29 01:33:33 | Александр Минаев
Добрый день. Вышлите пожалуйста мне протокол обмена с Меркурием 230, если не сложно. Заранее благодарен. am-ts230@mail.ru


2009-09-28 14:09:54 | ROman
Vadim, вышлите пожалуйста протокол обмена со счетчиком Меркурий 230 на rermakov@mail.ru Спасибо!


2009-09-14 13:24:33 | Vadim
Если нужен протокол обмена с Меркурием могу скинуть.


2009-08-24 23:47:03 | kir
Подскажите как поменять тарифное время если не трудно опишите зарание спасибо hodyachiy88@mail.ru


2009-08-11 14:48:09 | Merk230
Уважаемый Sergei! Не могли бы Вы выслать мне описание протокола для Меркурия 230. Мне нужно. На мыло 1965@list.ru


2009-07-14 22:07:28 | Sergei
AC-4 ОВЕН работает как раз со счетчиком Меркурий 230 с CAN-интерфейсом. Подключал еще преобразователь RS232->RS485 он также работает.
CAN это тот же RS485, но только с жесткой перемычкой c Tx на Rx ( именно поэтому идет эхо - которое Вы видели, когда снифферили ) и немного другой выходной логикой.
По стандарту CAN 9 вольтовый, но 5 вольтовый AC-4 с ним работает без проблем.
Вообще, когда говорят про CAN в большинстве случаев имеют в виду именно протокол, а не физический уровень. Сам протокол довольно сложный, многие микроконтроллеры имеют аппаратную поддержку протокола.
Инкотекс же поставил лишь драйвер CAN который подключил к UART микроконтроллера, протокол сделал свой.


2009-07-14 16:24:31 | Andrey_B
Сергей, очень важное замечание насчет того, что необязательно покупать родной адаптер. Но, насколько я понимаю, преобразователь АС-4 от ОВЕН будет работать только с теми счетчиками которые имеют интерфейс RS-485. С интерфейсом CAN этот преобразователь, по всей видимости, работать не будет. Так ли это?


2009-07-14 10:01:04 | Sergei
Кстати для счетчиков Меркурий можно использовать практически любой преобразователь RS485->USB/RS232. Использую преобразователь AC-4 от ОВЕН. Прекрасно работает.


2009-07-14 09:46:31 | Sergei
Тоже ковыряюсь сейчас с Меркурием. Статья помогла, т.к. не мог понять что за формат данных - толи урезанный флоат, то ли еще что-то. А они просто жестко привязали запятую.
Если кому нужно, то имею на руках краткое описание протокола для Меркурия 230.


2009-06-17 22:24:44 | Andrey_B
В нашем колхозе о многотарифном учете и не слыхивали... ;)
Перепрограммирование теоретически возможно родной программой "КОНФИГУРАТОР". Только нужно обязательно делать это на втором уровне доступа с паролем по умолчанию "222222". (Пароль по умолчанию для первого уровня соответственно "111111")


2009-06-17 19:44:10 | razer
Спасибо. Думаю, мне не опломбируют с подключенным кабелем. Ведь что мешает потом перепрограммировать время смены тарифов, получив приличную экономию ))


2009-06-15 12:42:10 | Andrey_B
Счетчики Меркурий бывают с разными интерфейсами (обозначается латинской буквой в названии модели): C (CAN), R (RS485), I (Infrared), L (PLC-modem), G (GSM). Преобразователь Меркурий-221 можно использовать как для счетчиков с CAN-интерфесом, так и для счетчиков с RS-485 интерфейсом (у него две клеммные группы). А если речь идет о преобразователе RS485-RS232 от стороннего производителя (не от фирмы Инкотекс), то, думаю, со счетчиками, оснащенными CAN-интерфейсом использовать его нельзя точно. Да и со счетчиками для RS485 скорее всего тоже. Некоторые источники, например, утверждают, что CAN там ненастоящий, а сильно урезанный, возможно, не совсем стандартный.


2009-06-13 20:49:57 | razer
А RS485-to-RS232 конвертор можно использовать? Вообще не могу найти схем адапторов для работы с CAN через com порт. Готовые решения слишком небюджетны.