Контроллеры Wago в "Умном доме"

Обсуждение статей, технологий домашней автоматизации, программных и аппаратных решений
THK
Модератор
Сообщения: 588
Зарегистрирован: 18 мар 2011, 19:00
Откуда: Серпухов, МО

Re: Контроллеры Wago в "Умном доме"

Сообщение THK » 26 апр 2017, 16:40

nkh писал(а):под мегу есть не стандартная прошивка с поддержкой modbus?
Все таки я нашел это сообщение! Вот ссылка viewtopic.php?p=9166#p9166
Только я заметил одну неточность в комментариях кода, "//это ID нашего сервера - любое число от 0 до 255, я выбрал 111" - диапазон адресов modbus от 1 до 247, соответственно любое число от 1 до 247...

nau
Сообщения: 4
Зарегистрирован: 05 фев 2014, 23:16

Re: Контроллеры Wago в "Умном доме"

Сообщение nau » 29 дек 2018, 13:50

Спасибо за информацию. Хочу немного дополнить тем, что почерпнул с одного польского сайта https://www.edom-plc.pl/index.php/en/mo ... /functions.
У WAGO есть библиотеки для решения бытовых вещей - лампочки, задержки, длинные нажатия и тп. С их использованием, программа управления светом и вытяжкой, будет очень короткой и понятной человеку, не сильно знакомому с программированием.

Пример использования бибилиотеки Building_common.lib для управления 2 группами света и одной вытяжкой, мастер включателем по двойному нажатию на вторую кнопку, мастер выключателем по долгому нажатию первую кнопку и автоматическим выключением вытяжки через 30 секунд:

объявляем переменные и входа\выхода, если они не объявлены в конфигурации ПЛК

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

PROGRAM PLC_PRG
VAR
	LIGHT1, LIGHT2, FAN1  : Fb_LatchingRelay;
	FAN_DELAY: Fb_Delay;
	SWITCH_BT1 : Fb_ShortLong;
	SWITCH_BT2 : Fb_Click;
	MASTEROFF:BOOL;
	MASTERON: BOOL;
END_VAR

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

MASTEROFF:=SWITCH_BT1.xLong; 				(*присваиваем новое значение переменной по длинному нажатию*)
MASTERON:=SWITCH_BT2.xDouble;				(*присваиваем новое значение переменной по двойному нажатию*)
LIGHT1(xSwitch:=BT1, xCentOFF:=MASTEROFF, xCentOn:=MASTERON); OU1:=LIGHT1.xActuator; (*xSwitch - кнопка, xCentOFF - триггер выключения, xCentOn - включения, xSwitch - коммутируемый вход*)
LIGHT2(xSwitch:=BT2, xCentOFF:=MASTEROFF, xCentOn:=MASTERON); OU2:=LIGHT2.xActuator;
FAN1(xSwitch:=BT3, xCentOFF:=MASTEROFF, xCentOn:=MASTERON); OU3:=FAN1.xActuator;
SWITCH_BT1(xSwitch:=BT1, uiTS_10tel_s:=1, uiTS_10tel_s:=1, uiT_10tel_s :=15); SWITCH_BT1.xLong; (*ловим длинное нажатие на кнопке*)
SWITCH_BT2(xSwitch:=BT2, uiT_10tel_s:=10); SWITCH_BT2.xDouble; (* ловим двойное нажатие*)

FAN1_DELAY(xInput:=OU3, dwTon_10tel_s:=300, dwToff_10tel_s:=1); (*задаем задержку выключения вентилятора на 30 секунд*)
FAN1(xSwitch:=BT3, xCentOFF:=FAN1_DELAY.xOutput);				(*присваиваем триггер выключения*)
Есть еще более новая библиотека, с похожими функциями WagoBuilding_01.lib

Ответить