Просмотр полной версии : ПЛК 110.Освещение в доме.
Подскажите примерно, как проще на языке SFC (т.к раньше с программирование дел не имел )написать программу для Овен-ПЛК110 и МУ-110 . Имеются кнопочные выключатели, если просто нажать на выключатель- включится свет. Если нажать и удерживать клавишу- меняются сцены освещения. При отпускании клавиши остаются гореть те лампочки, которые были выбраны. При следующем коротком нажатии свет - гаснет. При следующем коротком нажатии включаются лампочки из последней выбранной сцены. Около выхода и у кровати стоит выключатель который вырубает свет во всём доме. Заранее благодарен.
хочу поинтересоваться почему выбран SFC? тем более что дело не имели, а с чем имели?
Немного пробежался по урокам показался наиболее простым и наглядным, могу ошибаться .С программирование дел не имел. Думаю задача не очень трудная хочу попробовать и разобраться сам, т.к мне это интересно, монтаж и подключение выполнял лично.
можно с такого примера начать, не утверждаю что будет работать, т.к. неизвестна модель плк, не понятно зачем МУ если выхода есть и на плк
Мой вариант:
VAR
btnFTrig: F_TRIG;
btnTimer: TON := (PT := T#500ms);
cancelSwitch: BOOL;
END_VAR
VAR CONSTANT
scenes: ARRAY[0..3] OF WORD := 2#10101, 2#11001, 2#01010, 2#11011;
END_VAR
VAR RETAIN
sceneIndex: BYTE := 0;
END_VAR
btnTimer(IN := btn AND NOT btnTimer.Q);
sceneIndex := (sceneIndex + BOOL_TO_BYTE(btnTimer.Q)) MOD 4;
IF btnTimer.Q THEN
lights := scenes[sceneIndex];
cancelSwitch := TRUE;
END_IF
btnFTrig(clk := btn);
IF btnFTrig.Q THEN
IF NOT cancelSwitch THEN
lights := lights XOR scenes[sceneIndex];
END_IF
cancelSwitch := FALSE;
END_IF
В визуализации vis побаловаться можно. Вроде правильно работает.
Как это писать на SFC я даже думать не хочу))
Большое спасибо, в ближайшее время буду пробовать. МУ-110 используется для добавления выходов.
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot