'Inteligenty' dom ze sterownikiem PLC

Główna => Programowanie => Wątek zaczęty przez: Arctikman w Czerwca 05, 2013, 12:07:00 am

Tytuł: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Arctikman w Czerwca 05, 2013, 12:07:00 am
Nawiązując do tematu poruszonego na temat bibliotek OSCAT przedstawiam Wam moją wersje bloku reagującego na zdarzenia szczególne przesyłane z systemu alarmowego Satel (w zamian bloku BLIND_SECURITY).
Moduł ten należy włączyć jako ostatni w szereg tuż przed blokiem wykonawczym sterującym roletą BLIND_CONTROL_ lub BLIND_CONTROL_S. Oto opis wejść:
1. sygnał FIRE jego stan TRUE powoduje natychmiastowe podniesienie rolety i posiada najwyższy priorytet,
 2. sygnał ALARM stan TRUE powoduje podniesienie lub opuszczenie rolety w zależności od stałej Alarm_UP w wypadku pojawienia się sygnału z Satel'a np. sygnał Włamanie,
3. sygnał ARMED podawany stan TRUE powoduje opuszczenie lub podniesienie rolety w zależności od stałej Armed_UP, stała czasowa T_UD jest czasem potrzebnym do całkowitego podniesienia rolety.

Sygnał ARMED odczytywany jest z systemu alarmowego i jest tak długo ustawiony jak długo jest zazbrojony system. Po zazbrojeniu systemu alarmowego sterowanie rolet ręcznie jest wyłączone !!
Jeżeli pojawią się problemy ze sposobem czytania informacji z systemu alarmowego RS232-Satel chętnie przytoczę stosowne przykłady :) .
Oto "ciało" bloku:

FUNCTION_BLOCK BLIND_ARMED_S
VAR_INPUT
   UP, DN : BOOL;
   S_IN : BYTE;
   PI, AI : BYTE;
   FIRE : BOOL;
   ARMED : BOOL;
   ALARM : BOOL;

END_VAR
VAR_INPUT CONSTANT
   Alarm_UP : BOOL := TRUE;
   Armed_UP :BOOL := FALSE;
   T_UD: TIME:= T#30s; (* run time up *)
END_VAR
VAR_OUTPUT
   QU, QD : BOOL;
   STATUS : BYTE;
   PO, AO : BYTE;
END_VAR
VAR
   last_armed: BOOL;
   tx, last: TIME;

END_VAR
(******************************)
oraz kod funkcji:
(******************************)

tx := DWORD_TO_TIME(T_PLC_MS());

IF Fire THEN
   QU := TRUE;
   QD := FALSE;
   status := 111;
ELSIF Alarm THEN
   QU := Alarm_up;
   QD := NOT Alarm_up;
   status := 113;
ELSIF Armed  THEN
   QU := Armed_up;
   QD := NOT Armed_up;
   status := 116;
   last_armed:=TRUE;
   last := tx;
ELSIF  NOT Armed AND  last_armed THEN
   QU := NOT Armed_up;
   QD := Armed_up;
   status := 117;
   IF tx - last >= T_UD THEN last_armed:=FALSE; END_IF;
ELSE
   QU := UP;
   QD := DN;
   status := S_IN;
   po := pi;
   ao := ai;
END_IF;

W projekcie umieszczamy go jako osobny blok funkcyjny (FB).
Smacznego kodowania ;).

Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Kwietnia 27, 2016, 06:59:01 pm
podepne sie pod temat...
obeznie walcze z obsluga rolet z uzyciem bibliotek OSCAT.
program pisze w jezyku LD.

chcialbym na poczatek zrealizowac prosta obsluge rolet tak aby mozna bylo je calkowicie zamknac/otworzyc jednym kliknieciem, aby mozna bylow razie potrzeby zatrzymac ruch rolet kliknieciem, i aby system zawsze wiedzial w jakiej pozycji otwarcia jest roleta...

po lekturze:
http://www.tecomat.com/wpimages/other/sw/Mosaic/OSCAT/oscat_building100_en.pdf

doszedlem do wnioslu ze moje proste zalozenia zrealizuje bloczek BLIND_CONTROL_S....

jednak nie moge sobie z nim poradzic...
po deklaracji ww bloczka tak jak w zalaczniku roleta nie dziala jak powinna:

-po nacisnieciu klawisza UP (i77) roleta caly czas idzie do gory (o58 zalaczone bezprzerwy, az do klikniecia klawisza DN (i78)...
-po nacisnieciu klawisza DW (i78) roleta idzie w dol i zatrzymuje sie 1 sekunde (czas T_EXT) po puszczeniu przycisku DW (i78)...
-wskaznik POS (b1) zmienia sie tylko gdy przycisk i77 lub i78 jest wcisniety, gdy puszcze ww przyciski POS przestaje sie zmieniac mimo ze roleta jakis czas sie jeszcze porusza...

moze ktos wskazac mi jaki blad popelniam?? opis bibliotek jest raczej skromny i nie wiem jak rozwiazac moj problem...
z gory dzieki...
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: admin w Kwietnia 27, 2016, 08:56:49 pm
Cześć,

nie klikałem nic w LD i nie wiem, jak wygląda Twój kod.  Tak wygląda mój w ST:

w definicjach:

Input_B_2PL         :BLIND_INPUT:=(PI:=150, MAX_RUNTIME:=T#50s, MANUAL_TIMEOUT:=t#60m, MASTER_MODE:=TRUE);
Shade_B_2PL         :BLIND_SHADE_S:=(HORZ1:=100, HORZ2:=215, SHADE_POS:=150, SHADE_DELAY:=T#5m);
Control_B_2PL         :BLIND_CONTROL_S:=(T_UP:=T#45s, T_DN:=T#45s);

w programie:

Input_B_2PL(S1:=IN77 OR VIS_B_2PL_UP,  S2:=IN78 OR VIS_B_2PL_DOWN, IN:=VIS_B_2PL_SHADE), POS:=Control_B_2PL.POS);
Shade_B_2PL(UP:=Input_B_2PL.QU, DN:=Input_B_2PL.QD, S_IN:=Input_B_2PL.STATUS, pi:=Input_B_2PL.PO, ENABLE:=ShadeFlag, SUN:=SunSignal_South,CX:=ReadClock.Calendar);
Control_B_2PL(UP:=Shade_B_2PL.QU, DN:=Shade_B_2PL.QD, S_IN:=Shade_B_2PL.STATUS, pi:=Shade_B_2PL.PO);
OUT107:=Control_B_2PL.MU;
OUT108:=Control_B_2PL.MD;
VIS_B_2PL_UP := VIS_B_2PL_DOWN := FALSE;

zmienne VIS... są do sterowania z wizualizacji.   ShadeFlag steruje autozacienianiem.  SunSignal to sygnał z czujnika światła... reszta powinna być jasna.

Z tego, co pamiętam, żeby całość działała, używa się właśnie kilka bloków ułożonych w kanapkę a nie pojedynczych BLIND_CONTROL_S... Potrzebujesz BLIND_INSPUT_S do obsługi klawiszy.

Pozdrawiam,
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: admin w Kwietnia 27, 2016, 09:01:10 pm
...a tak w ogóle:

http://www.edom-plc.pl/index.php/pl/wiecej-o-plc/funkcje/88-blindsoscat

:)
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Kwietnia 28, 2016, 10:18:30 am
dzieki za odp...

ja natomiast nic nie klikalem w ST...

link ktory podales znam doskonale... ;)
kod Twojego programu usilowalem przekompilowac  na LD, jednak zawsze brakuje definicji jakis zmiennych (nie mam bibliotek WAGO)...

mam prosbe...

mozesz przekompilowac swoj kod na jezyk LD i wkleic screen'a po kompilacji??
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: admin w Kwietnia 28, 2016, 07:57:52 pm
Dear Lord... kto wymyślił LD? ;)
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Kwietnia 29, 2016, 12:00:30 am
Dear Lord... kto wymyślił LD? ;)

hehe... jakis dobry czlowiek...;-)

bardzo dziekuje za podeslane screen... nie wiedzialem ze mozna nie definiowac wszytskich in/out bloczku... dlatego moze cos szlo nie tak - definiowalem zmienne ktorych nie uzywam (i nie do konca wiem co niektore in/out robia)...

jutro z rana posataram sie wpisac bloczek na wzor Twojego zalacznika...
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Kwietnia 29, 2016, 12:57:10 am
w trybie symulacji NIE dziala... wyglada na to ze trzeba zdeklarowac wiecej (albo wszystkie) in/out bloczkow...

przejde chyba na jezyk FBD - graficzny, lepszy do obslugi bloczkow... jezyki tekstowe nie dla mnie... ;-)
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: admin w Kwietnia 29, 2016, 11:20:41 am
Dodefiniuj jeszcze pozostałe parametry:

Input_B_2PL         :BLIND_INPUT:=(PI:=150, MAX_RUNTIME:=T#50s, MANUAL_TIMEOUT:=t#60m, MASTER_MODE:=TRUE);
Control_B_2PL      :BLIND_CONTROL_S:=(T_UP:=T#45s, T_DN:=T#45s);

...no i spróbuj live...

Pozdrawiam,
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Kwietnia 30, 2016, 10:27:34 am
wstepnie udalo sie ogarnac rolety -DZIEKI WIELKIE...

teraz w wolnej chwili musze powalczyc troche z funkcjami czasowymi, reakcja na wystapienie alarmu i reakcja na otwarcie/zamkniecie zamkow w drzwiach... juz zaczynam rozumiec jak dzialaja bloczki OSCAT, wiec bedzie chyba coraz latwiej...

jeszcze raz wielkie dzieki...
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Maja 01, 2016, 09:29:43 pm
Przy okazji oscatów i rolet.
Nie wiecie może jak ustawić wirtualną krańcówkę ? żona planuje poustawiac kwiaty na parapecie w kuchni i niechciłbym, żeby roleta np urwała się z zawiasów, że nie wspomnę o kwiatkach .... :)

póki co zrobiłęm to "na chama" wciskając przycisk UP jezeli roleta za nisko zjedzie. ale może jest coś lepszego ??
RU i R_POS_BOT zadziałają tylko w trybach automatycznych, czyli z przycisku nadal jest możliwość sprasowania kwiatków.

RolKuchniaInput(
   POS:=RolKuchniaCTRL.POS ,
   S1:= RoletaKuchniabtnUp.xShort OR xDI27 OR AllBlinsUp OR R_OccupacyDzien.Q  OR (RolKuchniaCTRL.POS <= 90 AND RolKuchniaCTRL.MD=TRUE),
   S2:= RoletaKuchniabtnDn.xShort OR  xDI28 OR AllBlinsDn OR R_Noc.Q OR R_AlarmNoc.Q OR F_OccupacyNOC.Q,
   IN:=RoletaKuchniabtnUp.xLong ,
   PI:=130,MAX_RUNTIME:=T#32s, MANUAL_TIMEOUT:=t#60m, MASTER_MODE:=TRUE
);

Jacek
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Maja 01, 2016, 09:59:26 pm
Nie mogłem juz edytować więc odpowiadam sam sobie.

Innym (lepszym) obejsciem problemu jest dodanie ANDa w bloczku CTRL:


RolKuchniaCTRL(
   UP:= RolKuchniaSHADE_S.QU,
   DN:=RolKuchniaSHADE_S.QD AND RolKuchniaCTRL.POS > 90,
   S_IN:= RolKuchniaSHADE_S.STATUS,
   PI:= RolKuchniaSHADE_S.PO,
   R_POS_BOT:=90 ,
   RU:= TRUE,
   T_UP:=T#24s, T_DN:=T#22s
    );
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: maksiu w Maja 02, 2016, 07:47:47 am
Widzę, że RolKuchniaCTRL.POS ustalasz na podstawie czasu pracy.
Jak jest z dokładnością tego rozwiązania? Czy bloczek kontrolujący wychwyci krótkie "kliknięcia" przyciskiem i podnoszenie rolety po kilka cm?

Czasy podnoszenia i opuszczania ustalałeś doświadczalnie?
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Maja 02, 2016, 11:21:22 pm
Czasy doswiadczalnie - stoper w rękę i wio :) 5-6 pomiarów i juz masz przybliżony czas "podróży" rolety w górę i w dół.
bloczek ma "samoklabirację"- -czyli restuje się w pozycji 0 i 255 (bardziej zero i bardziej 255 juz się nie da :) ) - dzięki temu pozycja 90 jest prawie zawsze taka sama.
to nie jest dozownik nitrogliceryny - więc nie potrzebuję precyzji. to co daje przybliżenie czasowe jest w 10000% wystarczające do moich potrzeb.
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Maja 03, 2016, 01:35:13 am
Ten pomysl niestety okazal sie do du*y z zalozenia

Nie mogłem juz edytować więc odpowiadam sam sobie.

Innym (lepszym) obejsciem problemu jest dodanie ANDa w bloczku CTRL:


RolKuchniaCTRL(
   UP:= RolKuchniaSHADE_S.QU,
   DN:=RolKuchniaSHADE_S.QD AND RolKuchniaCTRL.POS > 90,
   S_IN:= RolKuchniaSHADE_S.STATUS,
   PI:= RolKuchniaSHADE_S.PO,
   R_POS_BOT:=90 ,
   RU:= TRUE,
   T_UP:=T#24s, T_DN:=T#22s
    );

Mianowicie na UP i DN wystawiane sa 1ki w trybie auto. tak więc moj AND powodowal otwarcie rolety po przejsciu na tryb automatyczny...
skonczylo sie zmianą funkcji OSCATowej. zmienilem definicje rmp.in:=L_POS_BOT (Limit_Position_Bottom - zmienna byte) w częsci Manual Dn, oraz w status 122 dodalem warunek  zatrzymania opuszczania po osiagnieciu L_POS_BOT

(* status definition
121 = manual up manual up operation UP = true and DN = false
122 = manual down manual down operation DN = true and UP = false
123 = auto positioning automatic mode DN = UP = TRUE
124 = revert revert from top or bottom
125 = nothing default input for S_IN
127 = Lockout time lockout between directional change
128 = calibrate calibrate after power up
129 = extend extend runtime at top or bottom for continuous calibration
*)

(* read system time *)
tx := DWORD_TO_TIME(T_PLC_MS());

(* check inputs and start state machine *)
IF UP  AND NOT DN THEN
(*  manual UP *)
rmp.IN := 255;
STATUS := 121;
ELSIF DN AND NOT UP THEN
(* manual DN *)
rmp.IN :=L_POS_BOT;
STATUS := 122;
ELSIF NOT (UP OR DN) THEN
(* manual standby mode *)
rmp.IN := PI;
STATUS := S_IN;
END_IF;

(* simulate pos output *)
rmp(E := UP OR DN, TR := T_UP, TF := T_DN, TL := T_LOCKOUT, OUT := POS);

(* state machine *)
CASE STATUS OF
0: (* power up init *)
last := tx;
PI_last := PI XOR BYTE#255;
STATUS := 128; (* calibrate *)

121: (* manual up *)
MU := TRUE;
MD := FALSE;
IF POS >= (BYTE#255 - EXT_TRIG) THEN
(* extend cycle if top is reached *)
POS := 255;
last := tx;
STATUS := 129; (* extend *)
END_IF;

122: (* manual down *)
MD := TRUE;
MU := FALSE;
IF POS <=L_POS_BOT THEN
STATUS := S_IN;
END_IF;
IF POS <= EXT_TRIG THEN
(* extend cycle if bottom is reached *)
POS := 0 ;
last := tx;
STATUS := 129; (* extend *)
END_IF;

123: (* auto positioning *)
MD := rmp.DN;
MU := rmp.UP;
IF NOT (rmp.DN OR rmp.UP) THEN
(* automatic position is reached *)
IF POS <= EXT_TRIG THEN
(* extend at bottom *)
MD := TRUE;
last := tx;
STATUS := 129; (* extend *)
ELSIF POS >= (BYTE#255 - EXT_TRIG)  THEN
(* extend at top *)
MU := TRUE;
last := tx;
STATUS := 129; (* extend *)
ELSE
STATUS := S_IN;
END_IF;
END_IF;

124: (* revert from top or bottom *)
MD := rmp.DN;
MU := rmp.UP;
IF NOT(rmp.DN OR rmp.UP) THEN
(* IF POS = rmp.IN THEN  *)
PI_last := PI;
STATUS := S_IN;
END_IF;

127: (* lockout time *)
IF (tx - last) >= T_LOCKOUT THEN
STATUS := S_IN;
END_IF;

128: (* calibration *)
MU := TRUE;
MD := FALSE;
rmp.IN := 255;
IF (tx - last) >= (T_UP +  T_EXT) THEN
MU := FALSE;
last := tx;
STATUS := 127; (* lockout *)
END_IF;

129: (* extend mode *)
IF (tx - last) >= T_EXT THEN
MU := FALSE;
MD := FALSE;
last := tx;
STATUS := 127; (* lockout *)
END_IF;

ELSE
MU := FALSE;
MD := FALSE;
IF PI <> PI_last THEN
PI_last := PI;
rmp.IN := PI;
STATUS := 123; (* auto positioning *)
ELSIF POS = 0 AND RU THEN
rmp.IN := R_POS_BOT;
STATUS := 124; (* revert *)
ELSIF pos = 255 AND RD THEN
rmp.IN := R_POS_TOP;
STATUS := 124; (* revert *)
ELSE
STATUS := S_IN;
END_IF;
END_CASE;



(* revision history

hm 9. mar. 2009 rev 1.0
original release

hf 27. jul 2009 rev 1.1
major code changes and updates

hf 23. Jan 2010 rev 1.2
fixed a bug during calibration
added T_UP and T_DN

*)
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: admin w Maja 03, 2016, 10:09:51 am
Cześć

może poniewczasie, ale jak sprawdziłoby się u Ciebie przepięcie sygnałów opuszczania z S2 bloku INPUT na IN bloku INPUT i dodanie bloku SHADE, by zasymulować komendę 'zrób cień' a pozycję cień ustalić na 90?

RolKuchniaInput(
   POS:=RolKuchniaCTRL.POS ,
   S1:= RoletaKuchniabtnUp.xShort OR xDI27 OR AllBlinsUp OR R_OccupacyDzien.Q  OR (RolKuchniaCTRL.POS <= 90 AND RolKuchniaCTRL.MD=
   IN:=RoletaKuchniabtnDn.xShort OR  xDI28 OR AllBlinsDn OR R_Noc.Q OR R_AlarmNoc.Q OR F_OccupacyNOC.Q OR RoletaKuchniabtnUp.xLong,
   PI:=130,MAX_RUNTIME:=T#32s, MANUAL_TIMEOUT:=t#60m, MASTER_MODE:=TRUE
);
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Maja 03, 2016, 11:39:52 am
Shade uzywam normalnie do robienia cienia,
IN tez uzywam do zamknięcia do połowy.
wczoraj jeszcze troche zmodyfikowalem FB oscata i jezeli wejscie L_POS_BOT jest rozne od zera to ustawiam tryb 123 (ustawienie zadanej pozycji) zamiast 122 (zjazd do samego dolu)

chodzi mi o 100% pewnosc, ze kwiatki nie ucierpią :)
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Maja 06, 2016, 04:35:17 pm
Hej - dalej w tym temacie:
uzywal ktos z Was Blind_Security ?
denerwuje mnie, że jakiekolwiek zdarzenie wykonuje akcję na rolecie nieprzerwanie.
np. mam ustawiony bloczek security dla zdarzenia WIND.
tak dlugo, jak jest WIND=True wysterowany jest silnik rolety ("stoi" na krańcówce, ale przekaźniki podają napięcie)

Czy jest ku temu jakiś powód ? jak nie, to przerabiam zaraz Blind_Security i dodaje MAX_RUNTIME.

Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Maja 17, 2016, 06:44:39 pm
Napodkalem kolejny problem zwiazany ze sterowaniem rolet...

zamysl jest taki aby jednym przyciskiem (wcisnietym np. 3s) zamykac/otwierac rolety w calym domu...
 
w zalaczniku fragment mojego projektu... jeden z przyciskow zamykania/otwierania rolet uruchamia 3 sekundowy timet UP lub DOWN, ktory z kolei wystawia impuls na y10 UP) i y11 (DW)...

te y10 i y11 ustawilem jako S1 i S2 do kazdego bloczku BLIND_INPUT...

calosc niby dziala, ale nie do konca...
niby wszystkie rolety zamykaja/otwieraja sie po wcisnieciu ktoregokolwiek przycisku sterujacego roletami na dluzej niz 3s, jednak roleta od ktorej akurat przycisk jest wcisniety nie zamyka sie - pozostaje w pozycji do jakiej zjechala przez czas wcisniecia przycisku...

jak rozwiazac ta niedogodnosc i utrzymac pelna funkcjonalnosc bloczku BLIND_INPUT??
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Maja 17, 2016, 07:41:05 pm
zrób to Fb_ShortLong
minus taki, ze pozbedziesz sie funkcjonalnosci zjazdu rolety "tak dlugo jak trzymasz przycisk"

wyjscia short dajesz na wejsc Blind_Input S2 (w dół), tylko tej rolety ktorej przycisk dotyczy, a do wszystkich rolet dajesz wyjscie xLong (mozesz przepuscic przez ORa, zeby miec jednego bool'a do wszystkich S2)

Jacek
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Maja 18, 2016, 03:08:44 am
dzieki za podpowiedz... jednak nie chcialem tracic funkcjionalnosci bloczku...

wymyslilem cos takiego jak w zalaczniku...

narazie jeszcze nie wgrywalem na sterownik (jestem w pracy), ale powinno to dzialac - jak wroce do domu to sie okaze...




teraz chetnie sie dowiem jak wykonac funkcje czasowe (otwieranie lub zamykanie rolet o okreslonej godzinie, lub w zaleznosci od zachodu slonca)...
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Maja 18, 2016, 07:20:59 am
po testach na "żywym organizmie" programik wyglada tak jak w zalaczniku... z grubsza jest tak jak chcialem...
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Maja 25, 2016, 06:27:38 pm
Witam Wszystkich,

Posiłkując się kodem autora forum, zauważyłem dziwne zachowanie biblioteki OSCAT, a mianowicie jeżeli roleta już dojechała do końca (góra lub dół) to ponowne naciśnięcie klawisza w stronę gdzie się aktualnie znajduje roleta (doł, góra), uruchamia ponownie przekaźnik, tak jakby roleta chciała dalej jechać w daną stronę a już nie nie może. Wygląda tak jakby pomimo znania swojej granicznej pozycji bloczek BLIND_INPUT pozwalał uruchamiać napęd dalej i trwa to tak długa jak czas ustawiony w T_UP, T_DW? - Czy ktoś może zauważył coś podobnego? Nad mieniem tylko, że korzystam z wersji CodeSys 3 i dedykowanej biblioteki OSCAT po niego
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Maja 26, 2016, 02:44:36 am
tak dziala ta biblioteka... pozwala jechac rolecie (rolety rozlacza krancowka w samych roletach) jednak nie jest naliczana pozycja rolety...

mozesz sobie dodac warunek ze po osiagnieciu pozycji 00 lub ff nie jest mozliwe zalaczenie przekaznika do odpowiedniego ruchu...
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Maja 26, 2016, 06:51:12 pm
Dzięki, tak też to zrobiłem, ale męczy mnie jeszcze jeden problem, że za każdym razem po restarcie lub zaniku zasilania roleta wykonuje autokalibrację. Niby z opisu wynika, że można to wyłączyć ale jakoś u mnie nie chce to zadziałać :(
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Maja 26, 2016, 10:48:27 pm
wrzuc blind_ctrl do VAR RETAIN PERSISTENT
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Maja 27, 2016, 02:37:28 pm
Dzięki, teraz jest ok:-), Przy okazji doczytałem jeszcze parametrze SINGLE_SWITCH, jak go ustawimy na TRUE to wystarczy jeden przycisk do sterowania roletami i nawet fajnie to działa - (klik ruch, klik stop, klik ruch w przeciwną stronę) oraz jeżeli przytrzymany dłużej klawisz to roleta pojedzie tak długa w daną stroną jak długa klawisz będzie wciśnięty
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Maja 30, 2016, 03:26:44 pm
Znalazłem, jeszcze jeden problem z sterowaniem rolet z biblioteki OSCAT, a mianowicie zmienna T_LOCKOUT z BLIND_CONTROL_S nie jest respektowana przy manualnym sterowaniu roletą. Wygląda to tak, uruchamiam roletę w dół lub w górę a następnie przytrzymuję przeciwny klawisz co powoduje uruchomienie (tryb manualny) kierunku w przeciwną stronę ale nie uwzględniając T_LOCKOUT. Czy ktoś ma na to jakąś radę.
Przy okazji - można jakoś samemu edytować tą bibliotekę?
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Maja 30, 2016, 03:50:49 pm
biblioteki mozna otworzyc w CodeSysie tak jak zwyczajny projekt (trzeba zazznaczyc typ pliku *.lib) i wtedy m ozna edytowac a ppotem zapisac biblioteki...
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Maja 30, 2016, 05:22:08 pm
Dzięki za podpowiedź, a możesz coś doradzić z tym T_LOCKOUT'em?. Trochę mnie martwi nagła zmiana kierunku silnika :(
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Umcyk w Maja 30, 2016, 06:09:13 pm
moze zastosowac TON na wyjsciu gora/dol rolet??
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Maja 31, 2016, 09:55:09 am
już tego próbowałem, ale wtedy mam sytuacje że "pos" z BLIND_CONTROL_S biegnie sobie a przekaźnik czeka na funkcję TON i potem zaczyna się to trochę rozjeżdżać:-(. Przeglądam kod ten funkcji z OSCAT'a i się zastanawiam czy jej nie przepisać od nowa wraz z dodaniem tego zabezpieczenie wewnątrz funkcji
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Maja 31, 2016, 01:09:23 pm
Ja do zabezpieczenia przed jednoczesnym podaniem napięcia na oba uzwojenia silnika używam szeregowego połączenia przekaźników:
1 przekażnik na styk COM ma podane 230V
2 przekaźnik na COM ma wprowadzone NO z przekaźnika 1szego, natomiast NO przekaźnika 2 zasila jedno uzwojenie silnika, a NC drugie.

to zabepiecza mi mechanicznie podanie napięcia na oba uzwojenia.
programowo natomiast obsługuję to FB:


FUNCTION_BLOCK WysterowanieRolet
VAR_INPUT
xUp: BOOL;
xDn: BOOL;
END_VAR
VAR_OUTPUT
xOutUpDN: BOOL;
xOutPower: BOOL;
END_VAR
VAR
TON1: TON;
END_VAR

TON1(IN:=(xup OR xdn) , PT:=t#100ms , Q=> , ET=> );

IF xup=TRUE AND xdn=FALSE THEN

xOutUpDn:=TRUE;
xOutPower:= ton1.Q;

ELSIF xUp=FALSE AND xDn=TRUE THEN

xOutUpDn:=FALSE;
xOutPower:=ton1.Q;

ELSIF (xUp=TRUE AND xDn = TRUE) OR (xUp=FALSE AND xdn=FALSE) THEN

xOutUpDn:=FALSE;
xOutPower:=FALSE;

END_IF;
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Czerwca 01, 2016, 07:26:57 pm
Cześć mordorr,

Masz rację, w kwestii fizycznej/mechanicznej też tak mam zrobione, w kwestii programowej jak najbardziej Twój przykład jest dobry. Jak już pisałem fajnie by było gdyby biblioteka to obsługiwała w ramach swoich function block, bo tak mamy sytuację, że blind_control_s liczy sobie pozycję i tak a my czekamy na włączenie przekaźnika poza nią. Wydaje mi się jednak że zmianę będę musiał wprowadzić w blind_input a nie w blind_control_s, być może poprzez interlock'a z OSCAT'a lub właśnie przez Twój kawałek kodu. Co ciekawe w OSCAT w bloczku ACTUCTATOR_UD, wykorzystują blok interlocka z OSCAT BASIC na bazie chyba dwóch TON lub TOF (muszę się upewnić:-))
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Czerwca 01, 2016, 11:10:58 pm
Ja po prostu zaczynałem bez OSCATa do kontrolowania rolet. uzywalem podstawowej biblioteki wago building. dlatego musialem zrobic jakis interfejs, ktory połączył mi bloczek wago z przekaźnikami w logice OnOff zasilania i zmiana kierunku.
potem dodałem oscata, a bloczek został. skoro coś działa, to po co to zmieniać :P:P zgodnie z zasadą, że lepsze jest wrogiem dobrego.

100ms opóźnienia między podaniem sygnału z bloczka oscat, a faktycznym startem silnika nic nie zmienia. i tak roleta "kalibruje się" przy pełnym otwarciu/zamknięciu.
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Czerwca 06, 2016, 07:45:01 am
Cześć mordorr,

Zgadzam się z Tobą w 100% :). Mam do Ciebie prośbę, czy mógłbyś mi podać kody (sterownik plus moduły I/O), które masz w swojej szafie oraz jakich przekaźników użyłeś? A i jeszcze jedno pytanie co to za przekaźniki/moduły z lewej strony szafy (obok normalnych przekaźników?)

pozdr,
Marcys
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Czerwca 06, 2016, 02:08:43 pm
 2016-06-06, 14:04:54 - Read node configuration...
 2016-06-06, 14:04:55 -   Pos. 00: 750-889 [Version: SW 01.01.19(07) / HW 01 / FWL 03]
 2016-06-06, 14:04:55 -   Pos. 01: 750-4xx
 2016-06-06, 14:04:55 -   Pos. 02: 750-4xx
 2016-06-06, 14:04:55 -   Pos. 03: 750-4xx
 2016-06-06, 14:04:55 -   Pos. 04: 750-4xx
 2016-06-06, 14:04:55 -   Pos. 05: 750-4xx
 2016-06-06, 14:04:55 -   Pos. 06: 750-4xx
 2016-06-06, 14:04:55 -   Pos. 07: 750-4xx
 2016-06-06, 14:04:55 -   Pos. 08: 750-4xx
 2016-06-06, 14:04:55 -   Pos. 09: 750-5xx
 2016-06-06, 14:04:55 -   Pos. 10: 750-5xx
 2016-06-06, 14:04:55 -   Pos. 11: 750-5xx
 2016-06-06, 14:04:55 -   Pos. 12: 750-5xx
 2016-06-06, 14:04:55 -   Pos. 13: 750-5xx
 2016-06-06, 14:04:55 -   Pos. 14: 750-5xx
 2016-06-06, 14:04:55 -   Pos. 15: 750-5xx
 2016-06-06, 14:04:55 -   Pos. 16: 750-5xx
 2016-06-06, 14:04:55 -   Pos. 17: 750-5xx
 2016-06-06, 14:04:55 -   Pos. 18: 750-652 [Version: SW 01.01.10(04) / HW 01]
 2016-06-06, 14:04:56 -   Pos. 19: 750-653/003-000 [Version: SW 41 / HW 10]
 2016-06-06, 14:04:56 -   Pos. 20: 753-646 [Version: SW 05 / HW 01]
 2016-06-06, 14:04:56 -   Pos. 21: 750-600
 2016-06-06, 14:04:56 - Node configuration read (1420 ms)


Przekaźniki mam w większości 788-354, te miniaturowe, o które pytasz to z serii 789 i nie polecam poza zastoswaniami do czysto rezystancyjnych odbiorników (czyli nei polecam:) )
kleją mi się praktycznie z każdym zasilaczem impulsowym.
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Czerwca 07, 2016, 12:23:20 pm
A jakie przekaźniki zastosować do załączania ledów (230v)? 
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Czerwca 07, 2016, 02:42:25 pm
Mordorr, a czemu akurat wybrałeś sterownik 750-889 (KNX)? - Masz jakieś urządzenia w standardzie KNX? A co myślisz o 750-8202 (PFC200)
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: marcys w Czerwca 07, 2016, 02:56:41 pm
A możesz mi jeszcze podać konkretne oznaczenia modułów 750-4xx i 750-5xx. A na czym postawiłeś wizualizację automatyki?
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Horhe w Listopada 10, 2016, 01:21:53 pm
Ja do zabezpieczenia przed jednoczesnym podaniem napięcia na oba uzwojenia silnika używam szeregowego połączenia przekaźników:
1 przekażnik na styk COM ma podane 230V
2 przekaźnik na COM ma wprowadzone NO z przekaźnika 1szego, natomiast NO przekaźnika 2 zasila jedno uzwojenie silnika, a NC drugie.

to zabepiecza mi mechanicznie podanie napięcia na oba uzwojenia.
programowo natomiast obsługuję to FB:


FUNCTION_BLOCK WysterowanieRolet
VAR_INPUT
xUp: BOOL;
xDn: BOOL;
END_VAR
VAR_OUTPUT
xOutUpDN: BOOL;
xOutPower: BOOL;
END_VAR
VAR
TON1: TON;
END_VAR

TON1(IN:=(xup OR xdn) , PT:=t#100ms , Q=> , ET=> );

IF xup=TRUE AND xdn=FALSE THEN

xOutUpDn:=TRUE;
xOutPower:= ton1.Q;

ELSIF xUp=FALSE AND xDn=TRUE THEN

xOutUpDn:=FALSE;
xOutPower:=ton1.Q;

ELSIF (xUp=TRUE AND xDn = TRUE) OR (xUp=FALSE AND xdn=FALSE) THEN

xOutUpDn:=FALSE;
xOutPower:=FALSE;

END_IF;


Jest lepszy sposób podłączenia przekaźników rolet, ale warunkiem jest posiadanie przekaźników dwutorowych. Zamieszczam schemat podłączenia. W takim przypadku sterowanie jest normalne (czyli jeden przekaźnik do podnoszenia a drugi do opuszczania) przy zachowaniu bezpieczeństwa.
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: mordorr w Listopada 10, 2016, 02:13:39 pm
A czy przekaźnik dwutorowy nie może skleic styków ? rozumiem, że jeżeli skeli jeden styk, to nie opadnie też drugi, ale....

no i sprawa zasadnicza - dla mnie nadal nie jest lepszy, bo wymaga zastosowania dwoch przekaźników i to dwutorowych :)
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: grzeniu666 w Listopada 10, 2016, 11:05:24 pm
Jak sklei to oba tory w przekaźniku (tak zakładam), ale również wtedy silnik nie dostanie fazy na oba kierunki, ja tak to zrozumiałem (>załącznik).

PS. Ja wszystkie przekaźniki kupiłem 2P, z takich zawsze mogę zrobić 1P (i pewnie zrobię w większości, mostkując), w drugą stronę nie da rady.

pzdr,
Grzesiek
Tytuł: Odp: opuszczenie rolet po zazbrojeniu systemu alarmowego
Wiadomość wysłana przez: Horhe w Listopada 22, 2016, 07:40:44 am
A czy przekaźnik dwutorowy nie może skleic styków ? rozumiem, że jeżeli skeli jeden styk, to nie opadnie też drugi, ale....

no i sprawa zasadnicza - dla mnie nadal nie jest lepszy, bo wymaga zastosowania dwoch przekaźników i to dwutorowych :)

Tak czy inaczej musisz mieć dwa przekaźniki - na podnoszenie i na opuszczanie.
Jeśli chodzi o przekaźniki dwutorowe, to ja mam tylko takie więc nie było problemu.

Co do przekaźników 1x16A, to w instrukcji jest napisane (Relpol), że przy prądach powyżej 8 A trzeba mostkować wejścia i wyjścia na obudowie przekaźnika. Przy przekaźnikach 2x8A przy prądach powyżej 8A też trzeba mostkować  więc wybrałem te drugie bo ta sama robota a większe możliwości.