Citat:
Ursprungligen postat av
zla-an
Hej!
Jag är rätt så ny när det gäller programmering och skulle behöva hjälp med lite programmering. Programmet är gx developer och funktionen är den att; jag får in ett startsvar av en kompressor, de startsvaret får inte komma in med en intervall kortare än ~12min. Om de gör det så ska en larmlampa tändas och larmlapan måste kvitteras med en knapp.
kan någon hjälpa mig tro? Tack på förhand.
Det var säkert 10 år sedan jag höll på med GX Developer, sitter uteslutande i CoDeSys nu förtiden, och då uteslutande ST istället för ladder. Men följande ladder borde vara det du söker.
Understruket är inverterad signal.
PLF = Fallning Edge Pulse (Pil nedåt)
PLS = Rising Edge Pulse (Pil upp)
D0 = Dataregister som räknar ned när kompressorn inte är igång
X0 = Igång, signal från kompressor att den är igång
M8013 = Puls från PLC varje sekund, denna går att byta ut mot en timer om den inte finns, kolla manualen.
M0 = minnesflagga som aktiverar larmlampan
Y0 = Utgång, larmlampa
X1 = Återställningsknapp
Kod:
-|PLF(X0)|---------------------[MOV K730 D0]-
-[> D0 K0]-|X0|-|M8013|-------------[DEC D0]-
-[> D0 K0]-|PLS(X0)|----------------[SET M0]-
-|M0|-----------------------------------(Y0)-
-|X1|-------------------------------[RST M0]-
D0 räknar nedåt varje sekund när kompressorn inte är igång, tills den kommer ner till noll. Om kompressorn skulle starta under tiden D0 är mer än noll så kommer M0 att sättas, vilket i sin tur sätter Y0. Trycks X1 in så nollställs M0 och lampan slocknar.
När kompressorn stängs av så sätts D0 återigen till 720 och räknar nedåt igen. (720 / 60 = 12 minuter).