Система "Бенукс". Компьютерное управление и контроль.

решение вопросов по система "Бенукс"
Текущее время: 16-04, 23:45

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
СообщениеДобавлено: 20-10, 21:15 
Не в сети

Зарегистрирован: 22-10, 18:01
Сообщения: 118
Предлагаю обсудить нужность и полезность сопряжения Бенукс с CAN шиной электросчетчиков.
Что это дает?
Согласно документации счетчик позволяет считывать не только данные по накопленной энергии, но также такие параметры как мгновенные значения мощности, тока, напряжения по каждой фазе, частота сети, коэффициент мощности и другие.
Для чего это нужно?
Ну это каждый решает самостоятельно. У меня возникла необходимость после заявления слуг народа о вводе соц. норм с одновременным повышением тарифа для конечных потребителей.
Что хотелось бы обсудить?
Во первых нужность.
Во вторых готовность участвовать в разработке модуля сопряжения.
Ну и может у кого уже есть наработки в этом вопросе.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28-10, 17:46 
Не в сети

Зарегистрирован: 08-10, 10:22
Сообщения: 105
Markko
у меня есть некоторые наработки.

в данный момент приобрел меркурий 200,02, но по мне так лучше взять трехфазный - 230 ART-01 PQCSIN (у него больше наворотов по анализу сети)
вот полное описание его протокола:
http://ilja10.narod.ru/files/merc230_v217.DOC

Чтобы не тянуть провода к счетчику, купил преобразователь LAN-RS485
http://www.aliexpress.com/item/F03913-RS232-RS485-serial-to-TCP-IP-ethernet-server-module-converter-Free-shipping/662500690.html

подключил, счетчик через него - все работает.
Далее мне помогли сделать php скрипт, который обращается к счетчику, запрашивает данные и пишет в лог.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28-10, 17:46 
Не в сети

Зарегистрирован: 08-10, 10:22
Сообщения: 105
вот как выглядит скрипт для меркурия 200.02

<?php
$service_port = 10010;
$address = "192.168.1.160"; //адрес преобразователя интерфейсов
$server = "192.168.1.20"; //адрес сервера MajorDoMo
$cmd = array (0x00, 0x01, 0x0B, 0xF0, 0x63, 0x50, 0x17); /*команда счетчику на запрос текущих данных, первые 4 байта - адрес счетчика (у меня 068592, это последние 6 цифр серийного номера), 2 последних байта - контрольная сумма*/
$hex = "";
for ($i=0; $i<count($cmd); $i++){$hex .= chr($cmd[$i]);} //Формируем запрос для счетчика
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //Создаём TCP/IP сокет
$result = socket_connect($socket, $address, $service_port); //Пытаемся соединиться с '$address' на порту '$service_port'
$result = socket_set_option($socket,SOL_SOCKET, SO_RCVTIMEO, array("sec"=>5, "usec"=>0)); //Устанавливаем таймаут на сокете не более 5 секунд
socket_write($socket, $hex, strlen($hex)); //Отправляем запрос
$result = socket_read($socket, 14); //Читаем ответ
// Результат получаем в шестнадцатиричном виде, но его написание соответствует десятичному значению.
// Например 0x22 0x87 = 228,7 вольт. Переводим результат в человеческий вид.
$Uv = round(((ord($result[5])>>4)*100)+((ord($result[5])&0x0f)*10)+(ord($result[6])>>4)+((ord($result[6])&0x0f)/10),1);
$Ia = round(((ord($result[7])>>4)*10)+(ord($result[7])&0x0f)+((ord($result[8])>>4)/10)+((ord($result[8])&0x0f)/100),2);
$Pv = round(((ord($result[9])&0x0f)*10)+(ord($result[10])>>4)+((ord($result[10])&0x0f)/10)+((ord($result[11])>>4)/100)+((ord($result[11])&0x0f)/1000),3);
socket_close($socket);//Закрываем сокет

//Значения Uv, Ia, Pv теперь можно передать в базу
$result=file_get_contents("http://".$server."/objects/?object=sensorAmper&op=m&m=EleChanged&t=".$Ia);
$result=file_get_contents("http://".$server."/objects/?object=sensorVatt&op=m&m=EleChanged&t=".$Pv);
$result=file_get_contents("http://".$server."/objects/?object=sensorVolt&op=m&m=EleChanged&t=".$Uv);

//и сохранить значения в лог-файл в формате: 23.07.2013 21:43:59 1 21.38
$FilePath='C:\LogFolder\'; //имя папки где лежит лог-файл
$FileName='logfile.log'; //имя файла
$str1=date('d.m.Y H:i:s').' 1 '.$Ia."\r\n"; //формат записи значения силы тока
$str2=date('d.m.Y H:i:s').' 2 '.$Pv."\r\n"; //формат записи значения мощности
$str3=date('d.m.Y H:i:s').' 3 '.$Uv."\r\n"; //формат записи значения напряжения
$F=file_get_contents($FilePath.$FileName); // Читаем файл
if ($F==false) mkdir($FilePath); //Если его не существует или путь не верен, то создаем
file_put_contents($FilePath.$FileName,$str1); //Добавляем данные в файл
file_put_contents($FilePath.$FileName,$str2);
file_put_contents($FilePath.$FileName,$str3);
?>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28-10, 17:48 
Не в сети

Зарегистрирован: 08-10, 10:22
Сообщения: 105
Тут на форуме есть некоторые наработки по этому направлению
[url]http:\\ab-log.ru/smart-house/mercury-230[/url]


Вообще идея хорошая! было бы здорово, добавить в бенукс Протокол RS-485.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09-12, 13:15 
Не в сети

Зарегистрирован: 22-10, 18:01
Сообщения: 118
Реализовал подключение к электросчетчику через импульсный выход электросчетчика.
На большинстве электро-ков есть импульсный выход имеющий опторазвязку и выходы А+ и А-.
Для того чтоб Бенукс смог читать показания я воспользовался DS2423, А+ это сигнальный, А- общий.
Создаем новый логгер с настройками периода сканирования не менее 5000 мл/с, количество дачиков два (можно как больше так и меньше зависит от решаемой задачи). Один датчик будет показывать мгновенное потребление эл-ва, второй считать киловатт часы.
У счетчиков есть коэффициент А - количество импульсов на один киловатт час, обычно это 1600, но есть счетчики с А=1000 и до А=160 000.
В настройках датчика отвечающего за мгновенные показания делаем установки, "показывать скорость", коэффициент рассчитываем по формуле 1000/(А/3600*60), где А - количество импульсов на 1000 Ватт, указанное в паспорте к электросчётчику. Размер буфера 20, остальные настройки на своё усмотрение.
В настройках датчика считающего киловатт часы в коэффициенте указываем число рассчитанное по формуле 1/А.
Все
Запускаем и радуемся полученным данным о мгновенном потреблении и общем числе киловатт.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09-12, 15:26 
Не в сети

Зарегистрирован: 13-01, 22:26
Сообщения: 9
Markko писал(а):
Реализовал подключение к электросчетчику через импульсный выход электросчетчика
Я в ближайшем будущем собираюсь прикупить новый счётчик, так что мне это очень даже пригодится. Если что не получится - буду доставать вопросами.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09-12, 16:02 
Не в сети

Зарегистрирован: 08-10, 10:22
Сообщения: 105
Markko
Мысль была по такой схеме реализовать....
это вообще самый простой вариант снимать показатели потребляемой мощности (тока).
У Вас уже работает это? если можно, выложите графики.
как дела с погрешностью? Если я скажем, выставлю то к в 1 ампер. на графике у меня буде прямая линия?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09-12, 17:19 
Не в сети

Зарегистрирован: 22-10, 18:01
Сообщения: 118
Да система уже функционирует.
Так при работе на "столе" нагрузка в виде лампочек в 20 ватт и 75 ватт была зарегистрирована ПО как 18 и 78 ватт соответственно.
График можно получить и плавный и "пилу" - это зависит от настройки буфера, надо помнить что чем больше паспортный коэффициент А тем точнее будут показания наиболее оптимальное число А - 16 000.
график приложу чуть позже.

Вот график - http://clip2net.com/s/6lH66v


Последний раз редактировалось Markko 09-12, 21:20, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 09-12, 19:26 
Не в сети

Зарегистрирован: 16-09, 14:37
Сообщения: 9
Ого как народ работает!!!
Я бы ни в жизнь не догадался потребляемую мощность измерять через счётчик DS2423. А то, что в программе для счётчика есть режим скорости первый раз слышу.....
В общем, век живи- век учись.
Спасибо, Марко.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 10-12, 19:15 
Не в сети
Site Admin

Зарегистрирован: 14-10, 15:58
Сообщения: 497
BATONS писал(а):
было бы здорово, добавить в бенукс Протокол RS-485.
Вобще-то RS-485 - это физический уровень, который использует целое множество прикладных протоколов со своими форматами обмена.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 12-12, 20:14 
Не в сети

Зарегистрирован: 07-09, 23:49
Сообщения: 38
Откуда: Питер
Вам и карты в руки - разработать поддержку СТАНДАРТА и физ. уровня.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13-12, 13:56 
Не в сети

Зарегистрирован: 22-10, 18:01
Сообщения: 118
BATONS писал(а):
Markko
Если я скажем, выставлю то к в 1 ампер. на графике у меня буде прямая линия?

Увы прямой линии не получится, все дело в том что напряжение в сети нестабильно и имеет отклонения в разные стороны в 10%,что в свою очередь будет влиять на показания потребляемой мощности, которая как известно вычисляется по формуле W=U*I. И если I будет константа то U на практике таковой не является.
Так при нагрузке в 1А и U=220 Вольт мощность будет равна 220 Ватт, а при колебании в 10% напряжения в сети колебания показаний мощности будут колебаться от 200 до 240 Ватт.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 16-12, 12:33 
Не в сети

Зарегистрирован: 08-10, 10:22
Сообщения: 105
Геннадий

Вообще-то RS-485 - это физический уровень, который использует целое множество прикладных протоколов со своими форматами обмена.

я тут имел ввиду не весь охват RS-485. а создать поддержку определенного "клиента RS-485" и оформлять все это отдельными плагинами к Бенукс.... тем, кому нужно это, смогут купить этот плагин и установить в свою систему. Аналогично и для I2C


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04-01, 17:06 
Не в сети
Site Admin

Зарегистрирован: 14-10, 15:58
Сообщения: 497
Поддержка электросчётчика Меркурий-230 реализована, начиная с версии 6.59 в составе опции "использовать RS485".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05-07, 08:31 
Не в сети

Зарегистрирован: 30-12, 13:48
Сообщения: 5
Генадий добрый день!
Подскажите возможно ли использовать вот такой счётчик (меркурий 230 art-02 cn)?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05-07, 09:34 
Не в сети
Site Admin

Зарегистрирован: 14-10, 15:58
Сообщения: 497
Евген писал(а):
Подскажите возможно ли использовать вот такой счётчик (меркурий 230 art-02 cn)?
Согласно описанию обозначения http://www.incotexcom.ru/m230art.htm в этом счётчике нет интерфейса RS485, поэтому с Бенуксом использовать его проблематично.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05-07, 12:12 
Не в сети

Зарегистрирован: 30-12, 13:48
Сообщения: 5
Спасибо!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 17 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by Forumenko © 2006–2014
Русская поддержка phpBB