PDA

Просмотр полной версии : ПЛК и счетчики Энергомера



Kostic77
01.04.2013, 12:09
Добрый день.
Можно ли где-нибудь глянуть пример организации связи между ПЛК100 и электросчетчиком СЕ303.
Надо чтобы ПЛК считывал значение нагрузки со счетчика и ограничивал потребление по заданному суточному графику.

Евгений_Томск
01.04.2013, 21:46
С использованием ПЛК показания с Энергомеры не считывали.Но пользовались их бесплатной прогой под Винду для опроса по RS485 нескольких счётчиков.Работает хорошо! Думаю ПЛК может легко их опросить.Надо только найти описание их регистров...

ASo
01.04.2013, 22:16
У этого счетчика другой протокол обмена ГОСТ Р МЭК 61107-2001.
Описание приведено в частности в руководстве по программированию счетчика.
Впрочем, реализовать одну команду через СОМ-порт - не сложно.

vnkorol
27.04.2015, 15:04
Апнем тему?

ASo
27.04.2015, 15:07
А смысл? Ссылку дали. Бесплатно делать врядли кто будет, и даже за деньги - только тот, у кого уже есть счетчик.

vnkorol
27.04.2015, 15:16
А вдруг топикстартер сделал и решит поделиться? :)

vnkorol
29.04.2015, 13:56
Давайте продолжим?
Подключил библиотеку CAA SerialCom, описал параметры порта (счетчик подключен по RS485, второй порт СПК207, параметры порта счетчика Baud Rate: 9600 Data Bits: 7 Parity Check: even Stop Bits: 1).

VAR
aCom3Params : ARRAY [1..7] OF com.PARAMETER := [ // параметры компорта 2, где висит счетчик
(udiParameterId:=COM.CAA_Parameter_Constants.udiPo rt, udiValue:=3), // номер порта, на СПК207 подписанный ком2 в программе - 3
(udiParameterId:=COM.CAA_Parameter_Constants.udiBa udrate, udiValue:=9600), // битрейт
(udiParameterId:=COM.CAA_Parameter_Constants.udiPa rity, udiValue:= com.COM_Parity.SYS_EVENPARITY), //четность
(udiParameterId:=COM.CAA_Parameter_Constants.udiSt opBits, udiValue:=com.COM_StopBits.SYS_ONESTOPBIT ), // стоп бит
(udiParameterId:=COM.CAA_Parameter_Constants.udiTi meout, udiValue:=0),
(udiParameterId:=COM.CAA_Parameter_Constants.udiBy teSize, udiValue:=7),
(udiParameterId:=COM.CAA_Parameter_Constants.udiBi nary, udiValue:=0)
];
END_VAR

Как дальше быть? Подскажите, как в этот порт отправить запрос и получить ответ?

d-view
04.05.2015, 14:21
Из инструкции к счетчику (п.5.2.2):
Быстрое выборочное считывание параметров (вне сеанса) осуществляется с помощью команд:
/?! SOH R1 STX NAME() ETX BCC − безадресная
/?адрес! SOH R1 STX NAME() ETX BCC − адресная
где NAME− имя параметра,
адрес–идентификатор счетчика в сети, значение параметра IDPAS.

http://energomera.by.atservers.net/documentations/po/ce301_ce303_instruction_on_prog_v11.pdf

Если я правильно понимаю, то нужно с помощью ф-ции записи отправить в порт /?адрес! SOH R1 STX NAME() ETX BCC и с помощью ф-ции чтения получить ответ от счетчика.

Можно порт запустить и через ComConn (SysCom) и отправить в порт вышеуказанную последовательность (тоже пытаюсь раскурить инструкцию к счетчику и МЭК 61107-2011).


Давайте продолжим?
Подключил библиотеку CAA SerialCom, описал параметры порта (счетчик подключен по RS485, второй порт СПК207, параметры порта счетчика Baud Rate: 9600 Data Bits: 7 Parity Check: even Stop Bits: 1).

VAR
aCom3Params : ARRAY [1..7] OF com.PARAMETER := [ // параметры компорта 2, где висит счетчик
(udiParameterId:=COM.CAA_Parameter_Constants.udiPo rt, udiValue:=3), // номер порта, на СПК207 подписанный ком2 в программе - 3
(udiParameterId:=COM.CAA_Parameter_Constants.udiBa udrate, udiValue:=9600), // битрейт
(udiParameterId:=COM.CAA_Parameter_Constants.udiPa rity, udiValue:= com.COM_Parity.SYS_EVENPARITY), //четность
(udiParameterId:=COM.CAA_Parameter_Constants.udiSt opBits, udiValue:=com.COM_StopBits.SYS_ONESTOPBIT ), // стоп бит
(udiParameterId:=COM.CAA_Parameter_Constants.udiTi meout, udiValue:=0),
(udiParameterId:=COM.CAA_Parameter_Constants.udiBy teSize, udiValue:=7),
(udiParameterId:=COM.CAA_Parameter_Constants.udiBi nary, udiValue:=0)
];
END_VAR

Как дальше быть? Подскажите, как в этот порт отправить запрос и получить ответ?

murdemon
04.05.2015, 16:22
Могу помочь в написании программы для обработки протокола Энергомера. Если интересно напиши на dmitriy.murashov@automation-engineering.ru

p_dima90
17.01.2022, 10:38
Добрый день!
Кто-нибудь уже опрашивал Энергомеру СЕ318 по SMP (Smart Metering Protocol) протоколу?
Интересует расположение данных в ответе, вот например запрос на серийный номер 58749, как расшифровать, какой байт за что отвечает ?
Описание протокола приложил, но легче как-то не стало.

melky
17.01.2022, 11:01
p_dima90 если предположить, что 06 97 32 C6 это адрес счетчика а 04 это команда, то адрес и близко не напоминает 80097943
По ходу тут вмешивается lbf по описанию протокола... В общем изучать, изучать и изучать :)

А нафига вы такой выбрали то?

p_dima90
17.01.2022, 11:39
p_dima90 если предположить, что 06 97 32 C6 это адрес счетчика а 04 это команда, то адрес и близко не напоминает 80097943
По ходу тут вмешивается lbf по описанию протокола... В общем изучать, изучать и изучать :)

А нафига вы такой выбрали то?

Так а кто у нас спрашивает ?
В проекте такой, ген. подрядчик все купил и установил согласно проекту, а нам теперь нужно с этого всего данные на SCADу забрать

p_dima90
17.01.2022, 11:46
p_dima90 если предположить, что 06 97 32 C6 это адрес счетчика а 04 это команда, то адрес и близко не напоминает 80097943
По ходу тут вмешивается lbf по описанию протокола... В общем изучать, изучать и изучать :)

А нафига вы такой выбрали то?

Ну адрес длинный, я так понял, что lbf разделяет байты, вопрос в том, нужно ли ими жонглировать, что бы собрать нужное число...

melky
17.01.2022, 11:57
Судя по описанию нужно, если правильно понял, то надо определить порядок байт и проверять старший бит, сколько байт на одно число уходит.