Страница 24 из 33

Re: Модуль Энергомера

Добавлено: Пт окт 05, 2018 12:42 pm
directman66
Не знаю как энергомера, но у других счетчиков не ИК порт, а оптический. И для сопряжения необходим кабель оптического сопряжения. Я купил для экспериментов такой, лежит без дела. Под виндой штатное ПО счетчиков через него работает, а вот корректно настроить при подключении к роутеру не полуилось. Вопрос в итоге решел переходником USB-RS485.

Re: Модуль Энергомера

Добавлено: Пт окт 05, 2018 3:27 pm
dioxin
Оптическое сопряжение - это не красный светодиодик мигает с частотой, чем больше нагрузка тем быстрее ? Кто-то умудряется считывать фотоэлементом эти мигания и конвертить в киловатты потребления. Если бы у меня не было на счетчике RS485, тоже бы пошел по этому пути.

Re: Модуль Энергомера

Добавлено: Пт окт 05, 2018 3:34 pm
directman66
Нет, порт оптического сопряжения не мигает в видимом диаппазоне.

Re: Модуль Энергомера

Добавлено: Чт окт 11, 2018 1:28 pm
denis
Может кто подскажет, что я делаю не так.
Исходные данные:
- МДМ на win7
- счетчик меркурий 233
- китайский переходник usb-rs485, в системе виден как порт COM3.
В родной программе от счетчика все данные считываются, все работает. В сниффере последовательного порта обмен идет при закрытии проги порт закрывается.
В МДМ в модуле 'Энергомера' ставлю настройки serial - COM3. Жму кнопку 'обновить' на странице модуля, но в сниффере вижу, что порт не открывается, никаких запросов к счетчику не идет. Соответственно в МДМ нет данных по счетчику. Цикл 'energomera' запускал, но он сразу же останавливается, но в логе пусто, просто останавливается и все. Может что-то в файлах нужно поправить под м
'Меркурий'? Но странно, что COM-порт даже не пытается открыться ...

Re: [Модуль] Энергомера (energomera)

Добавлено: Чт ноя 08, 2018 4:17 pm
Akorolev
Кому интересно вот видео с настройкой энергомера СЕ 301:
https://www.youtube.com/watch?v=j1cXd8Aio9Q

Re: Модуль Энергомера

Добавлено: Чт ноя 08, 2018 5:17 pm
dioxin
denis писал(а):
Чт окт 11, 2018 1:28 pm
Может кто подскажет, что я делаю не так.
Исходные данные:
- МДМ на win7
- счетчик меркурий 233
- китайский переходник usb-rs485, в системе виден как порт COM3.
В родной программе от счетчика все данные считываются, все работает. В сниффере последовательного порта обмен идет при закрытии проги порт закрывается.
В МДМ в модуле 'Энергомера' ставлю настройки serial - COM3. Жму кнопку 'обновить' на странице модуля, но в сниффере вижу, что порт не открывается, никаких запросов к счетчику не идет. Соответственно в МДМ нет данных по счетчику. Цикл 'energomera' запускал, но он сразу же останавливается, но в логе пусто, просто останавливается и все. Может что-то в файлах нужно поправить под м
'Меркурий'? Но странно, что COM-порт даже не пытается открыться ...
А разве этот модуль поддерживает меркурии? Я писал сам. Видосик на моем канале.

Re: Модуль Энергомера

Добавлено: Чт ноя 08, 2018 11:03 pm
Ivan
denis писал(а):Может кто подскажет, что я делаю не так.
Исходные данные:
- МДМ на win7
- счетчик меркурий 233
- китайский переходник usb-rs485, в системе виден как порт COM3.
В родной программе от счетчика все данные считываются, все работает. В сниффере последовательного порта обмен идет при закрытии проги порт закрывается.
В МДМ в модуле 'Энергомера' ставлю настройки serial - COM3. Жму кнопку 'обновить' на странице модуля, но в сниффере вижу, что порт не открывается, никаких запросов к счетчику не идет. Соответственно в МДМ нет данных по счетчику. Цикл 'energomera' запускал, но он сразу же останавливается, но в логе пусто, просто останавливается и все. Может что-то в файлах нужно поправить под м
'Меркурий'? Но странно, что COM-порт даже не пытается открыться ...
Сначало добавте переменные которые хотите читать. И перепустите цикл. Модуль видит что читать нечего и даже не соединяется

Отправлено с моего SM-J730FM через Tapatalk


Re: [Модуль] Энергомера (energomera)

Добавлено: Пт ноя 09, 2018 12:36 pm
stellhawk
ребят, а кто-то пытался этим модулем работать с меркурием?
сюда по всему он даже в теории не может с ними работать.
потому что несмотря на класс mercury230.class.php для работы он никак не используется.
в классе есть явный косяк который не позволит работать с меркурием.
в функции crc16_modbus байты контрольной суммы перепутаны местами.(точнее должны слаться в обратном порядке)

mercury230.class.php:

Код: Выделить всё

        function test(){
        $data="000101010101010101";
        $data.=crc16_modbus($data);
        echo "Send ".$data."\n";
        $result = $this->Serial->sendMessage(hex2bin($data),$this->WaitBeforeRead);
        $this->Receive();
        $data="000800";
        $data.=crc16_modbus($data);
        echo "Send ".$data."\n";
        $result = $this->Serial->sendMessage(hex2bin($data),$this->WaitBeforeRead);
        $this->Receive();
        }

function crc16_modbus($msg)
{
    $data = pack('H*',$msg);
    $crc = 0xFFFF;
    for ($i = 0; $i < strlen($data); $i++)
    {
        $crc ^=ord($data[$i]);

        for ($j = 8; $j !=0; $j--)
        {
            if (($crc & 0x0001) !=0)
            {
                $crc >>= 1;
                $crc ^= 0xA001;
            }
            else $crc >>= 1;
        }
    }
    $crc=sprintf('%04X', $crc);
    return substr($crc,2,2).substr($crc,0,2);
}
        
        
test_mercury230.php:

Код: Выделить всё

<?php

include_once("mercury230.class.php");
function ShowVal($dev, $val, $timeout = 3500)
{
  $arr = $dev->getValue($val, $timeout);
    echo "<pre>$val = ".htmlspecialchars(print_r($arr,true))."</pre><br>\n";
    }

$dev = new mercury230("/dev/ttyUSB0");
$dev->debug = true;

$ret = $dev->connect();
if ($ret === false)
{
  echo "ops1";
  die;
}

$ret = $dev->test();
if ($ret === false)
{
  echo "ops1";
  die;
}
$dev->disconnect();

?>

я пока не силен в majordomo(точнее я вообще пока в нём не шарю :-)) чтобы переписать какой-либо модуль, но я быстро учусь

Re: [Модуль] Энергомера (energomera)

Добавлено: Пт ноя 09, 2018 6:27 pm
Ivan
stellhawk писал(а):
Пт ноя 09, 2018 12:36 pm
ребят, а кто-то пытался этим модулем работать с меркурием?
сюда по всему он даже в теории не может с ними работать.
потому что несмотря на класс mercury230.class.php для работы он никак не используется.
в классе есть явный косяк который не позволит работать с меркурием.
в функции crc16_modbus байты контрольной суммы перепутаны местами.(точнее должны слаться в обратном порядке)
Да. Это была проба
Вроде для Меркурия есть модуль

Re: [Модуль] Энергомера (energomera)

Добавлено: Сб ноя 10, 2018 4:46 am
stellhawk
[*]
Ivan писал(а):
Пт ноя 09, 2018 6:27 pm
stellhawk писал(а):
Пт ноя 09, 2018 12:36 pm
ребят, а кто-то пытался этим модулем работать с меркурием?
сюда по всему он даже в теории не может с ними работать.
потому что несмотря на класс mercury230.class.php для работы он никак не используется.
в классе есть явный косяк который не позволит работать с меркурием.
в функции crc16_modbus байты контрольной суммы перепутаны местами.(точнее должны слаться в обратном порядке)
Да. Это была проба
Вроде для Меркурия есть модуль
а есть желание\возможность дописать модуль?
если да, то просьба сделать выбор типа счетчика в настройках, а я допинаю класс mercury230.class.php чтобы оттуда данные вернулись. по крайней мере с 230 счетчиком работать будет.