Programmeeritavad kontrollerid
Euroopa struktuurfondide logo
Siemens LOGO! viide Automatiseerimise viide Mehhatroonikaseadmete viide Pneumoautomaatika viide
Joonis

Ülesanne: Jooksvad tuled (automaatne)

Ülesande püstitus

Kõrvuti on 8 LED indikaatorit. Vajutades surunuppu S1 peab neist esimene süttima. Iga 0.2s tagant peab eelnev LED automaatselt kustuma ja süttima järgmine. Kui rivi viimane LED on süttinud, siis peab sama protsess jätkuma äraspidiselt kuni jõutakse tagasi rivi esimese LED-ini. Jõudes tagasi algusesse hakkab kõik korduma.
Tulesid peab olema võimalik peatada vajutades nuppu S2 ning nupuga S1 taaskäivitada.
Nupu all hoidmise aeg ei tohi tulemust mõjutada.

Programm

Sümbolite nimekiri

Nimi Andmetüüp Aadress Kommentaar
S1 BOOL %I0.0 Startnupp
S2 BOOL %I0.1 Stoppnupp
frontmemory1 BOOL %M0.0 Tõusva frondi tuvastuse mälubitt
frontmemory2 BOOL %M0.1 Tõusva frondi tuvastuse mälubitt
direction BOOL %M0.2 Liikumissuuna mälubitt
run BOOL %M0.3 sisselülituse mälubitt
count USInt %MB1 koha lugemise mälu
OutByte BYTE %QB0 Väljundbait (8 LED)

Programm: Main [OB1]

SCL
IF "S1" AND NOT "frontmemory1" THEN
  "run":=true;
END_IF;

IF "s2" AND NOT "frontmemory2" THEN
  "run":=false;
END_IF;

IF "IEC_Timer_0_DB".Q THEN
  "OutByte":= SHL(IN:=B#2#1, N:="count");
  IF "direction" THEN
    "count":="count"-1;
  ELSE
    "count":="count"+1;
  END_IF;
END_IF;

IF "count" = 0 THEN "direction":=false;
ELSIF "count"= 7 THEN "direction":=true;
END_IF;

"frontmemory1":="S1";
"frontmemory2":="s2";
"IEC_Timer_0_DB".TON(IN:="run" AND NOT "IEC_Timer_0_DB".Q ,PT:=t#0.2s);
Creative Commons Licence
"Programmeeritavad kontrollerid" is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License .