TIA Portal instrukcije

Bitne logične operacije
Kontakti, tuljave in detekcija robov

Srce programiranja PLC. Bitne logične instrukcije upravljajo vsako boolovo operacijo — od preprostih kontaktov in tuljav do flip-flopov in detekcije robov. Obvladajte te in zgradili boste lahko katero koli avtomatizacijsko logiko.

Kaj so bitne logične operacije?

Bitne logične operacije so najosnovnejše instrukcije pri programiranju PLC. Delajo z boolovimi signali (TRUE/FALSE, 1/0) — berejo stanja vhodov, združujejo pogoje z logiko AND/OR in krmilijo izhode. V jeziku LAD se pojavljajo kot kontakti in tuljave na vejah. V FBD se pojavljajo kot AND/OR/NOT logična vrata.

Vsak program PLC intenzivno uporablja bitne logične instrukcije. Krog za zagon/ustavitev motorja, alarmni pogoj, blokada ventila — vsi se začnejo s kontakti, ki berejo stanja senzorjev, in končajo s tuljavami, ki poganjajo aktuatorje.

Kontakti — Branje stanja vhodov

Kontakti berejo boolovo stanje oznake (tag) in ga prenašajo po logični verigi

Delovni kontakt (Normally Open)

—| |—
F9

Kaj počne

Bere boolovo oznako (BOOL). Če je oznaka TRUE (1), se kontakt sklene in prenese signal (RLO = TRUE) na naslednji element. Če je oznaka FALSE (0), je kontakt odprt in blokira pretok signala. To je najbolj uporabljena instrukcija v LAD programiranju.

Kdaj uporabiti

Vsakič, ko morate preveriti, ali je pogoj TRUE: ali je gumb pritisnjen? Ali je senzor aktiven? Ali je zastavica nastavljena? Postavite delovni kontakt in mu dodelite svojo oznako.

Strokovni nasveti

Ime 'Normally Open' izhaja iz relejne logike — kontakt je v svojem normalnem/mirujočem stanju odprt (ne prevaja toka). Skleni se, ko je vzbujen.

Več NO kontaktov zaporedno ustvari logiko AND. Več NO kontaktov v vzporednih vejah ustvari logiko OR.

V FBD je ustreznik preprosto povezava spremenljivke BOOL na vhod AND/OR vrat — poseben simbol kontakta ni potreben.

Mirni kontakt (Normally Closed)

—|/|—
F10

Kaj počne

Nasprotje delovnega kontakta. Če je oznaka FALSE (0), je kontakt sklenjen in prevaja signal. Če je oznaka TRUE (1), se kontakt odpre in blokira signal. Deluje kot operacija NOT na vrednosti oznake.

Kdaj uporabiti

Ko morate preveriti, da pogoj NI resničen: gumb za izklop v sili ni pritisnjen, ni aktivne napake, končno stikalo ni doseženo. Zelo pogosto za varnostne blokade in alarmne pogoje.

Strokovni nasveti

Uporabite NC kontakte za izklop v sili in varnostne krogotoke — so varni v primeru okvare (fail-safe). Če se žica pretrga, se NC kontakt odpre in ustavi stroj.

V FBD je ustreznik negiran vhod (majhen krog na vhodnem pinu vrat AND/OR).

Ne zamenjujte instrukcije NC kontakta s fizično zaprtim tipkalom. Gre za neodvisna koncepta.

Invertiraj RLO (NOT)

—|NOT|—

Kaj počne

Invertira (negira) trenutni rezultat logične operacije (RLO). Če se logična veriga do te točke ovrednoti kot TRUE, jo NOT spremeni v FALSE in obratno. Deluje na akumuliran logični rezultat, ne na specifično oznako.

Kdaj uporabiti

Ko morate invertirati kompleksen logični izraz namesto ene same oznake. Namesto ponovnega pisanja celotnega pogoja z invertiranimi kontakti, postavite NOT na konec, da obrnete rezultat.

Strokovni nasveti

NOT invertira celoten RLO na tej točki verige — razlikuje se od NC kontakta, ki invertira le eno oznako.

V FBD uporabite blok NOT ali negirajte izhod logičnih vrat.

Uporabljajte zmerno — pretirana uporaba NOT oteži branje logike. Pogosto je prestrukturiranje logike jasnejše.

Tuljave — Krmiljenje izhodov

Tuljave zapisujejo rezultat logične verige v izhodno oznako

Prireditev (Assignment)

—( )—
Shift + F7

Kaj počne

Zapiše trenutni RLO (Rezultat logične operacije) v boolovo oznako. Če je logična veriga TRUE, postane oznaka TRUE. Če je FALSE, postane oznaka FALSE. To je standardna izhodna tuljava — neposredno odraža vhodno logiko v vsakem ciklu.

Kdaj uporabiti

Za kateri koli izhod, ki mora neposredno slediti svojim vhodnim pogojem. Signalna lučka, ki sveti, ko motor deluje; ventil, ki se odpre, ko so izpolnjeni pogoji. Izhod sledi vhodu — ko pogoji postanejo FALSE, postane tudi izhod FALSE.

Strokovni nasveti

Tuljava za prireditev je 'nepomnilna' — piše v vsakem ciklu. Če logika postane FALSE, izhod takoj postane FALSE.

Oznaka naj bo prirejena le v ENI mreži. Večkratne prireditve isti oznaki povzročijo, da zadnja prevlada, kar vodi do nepredvidljivega obnašanja.

V FBD je prireditev preprosto povezava izhoda logičnih vrat na oznako BOOL.

Negirana prireditev

—(/)—

Kaj počne

Zapiše invertiran RLO v boolovo oznako. Če je logična veriga TRUE, postane oznaka FALSE. Če je logična veriga FALSE, postane oznaka TRUE. Združuje prireditev in NOT v eni instrukciji.

Kdaj uporabiti

Ko mora biti izhod aktiven v nasprotnem stanju. Na primer, lučka 'sistem OK', ki se ugasne, ko je zaznana napaka. Namesto invertiranja celotne logične verige uporabite negirano tuljavo.

Strokovni nasveti

Ustrezno postavitvi NOT pred običajno tuljavo za prireditev, vendar bolj kompaktno.

Uporabljajte previdno — negirane tuljave so lahko zavajajoče za branje. Včasih je jasneje prestrukturirati logiko.

V FBD je to negirana izhodna povezava.

Ponastavi izhod (Reset)

—(R)—

Kaj počne

Ko je RLO TRUE, se oznaka nastavi na FALSE (0). Ko je RLO FALSE, oznaka ostane nespremenjena (obdrži trenutno vrednost). To je enosmerna operacija — stvari lahko le izklopi, nikoli vklopi.

Kdaj uporabiti

V Set/Reset krogotokih: ena mreža nastavi izhod (vklopi), druga ga ponastavi (izklopi). Uporabite Reset za pogoje ustavitve, čiščenje napak in potrditev alarmov. Reset ima običajno prednost v varnostni logiki.

Strokovni nasveti

Reset deluje le, ko je njegov RLO TRUE. Ko je RLO FALSE, izhod ostane nespremenjen — NE nastavi ga na TRUE.

V paru S/R ima prednost instrukcija, ki se v programu pojavi ZADNJA (če sta oba pogoja hkrati TRUE).

Reset je pomnilen — po ponastavitvi izhod ostane FALSE, dokler ni eksplicitno ponovno nastavljen (Set).

Nastavi izhod (Set)

—(S)—

Kaj počne

Ko je RLO TRUE, se oznaka nastavi na TRUE (1). Ko je RLO FALSE, oznaka ostane nespremenjena (obdrži trenutno vrednost). To je enosmerna operacija — stvari lahko le vklopi, nikoli izklopi.

Kdaj uporabiti

V Set/Reset krogotokih: uporabite Set za pogoje zagona, samozaporne signale in zastavice prvega zagona. Ko je nastavljena, oznaka ostane TRUE, dokler ni eksplicitno ponastavljena (Reset) — kar omogoča 'samozaporo' brez potrebe po samozapornem kontaktu.

Strokovni nasveti

Set deluje le, ko je njegov RLO TRUE. Ko je RLO FALSE, izhod ostane nespremenjen — NE ponastavi ga.

Klasično krmiljenje motorja: Mreža 1 = gumb Start → Set Motor. Mreža 2 = gumb Stop ALI napaka → Reset Motor.

Bodite previdni s pomnilnimi oznakami v varnostnih krogotokih — po izpadu napajanja lahko izhodi Set obdržijo svoje zadnje stanje, odvisno od nastavitev DB.

Operacije na bitnih poljih

Nastavite ali ponastavite obseg bitov v eni operaciji

SET_BF — Nastavi bitno polje

Kaj počne

Nastavi zaporedno skupino bitov na TRUE, začenši z določenega naslova. Določite začetni bit in število bitov, ki jih želite nastaviti. Ko je RLO TRUE, se vsi določeni biti nastavijo na 1.

Kdaj uporabiti

Ko morate hkrati aktivirati več povezanih izhodov — na primer nastaviti vse bite statusne besede, inicializirati skupino zastavic ali hkrati aktivirati banko izhodov.

Strokovni nasveti

Uporabno za paketne operacije namesto pisanja posameznih instrukcij Set za vsak bit.

Parameter števila bitov določa, koliko zaporednih bitov bo spremenjenih.

Tako kot Set tudi to deluje le, ko je RLO TRUE — biti ostanejo nespremenjeni, ko je RLO FALSE.

RESET_BF — Ponastavi bitno polje

Kaj počne

Ponastavi zaporedno skupino bitov na FALSE, začenši z določenega naslova. Določite začetni bit in število bitov, ki jih želite ponastaviti. Ko je RLO TRUE, se vsi določeni biti pobrišejo na 0.

Kdaj uporabiti

Ko morate hkrati pobrisati več zastavic ali izhodov — na primer pobrisati vse alarmne bite v statusni besedi, ponastaviti skupino izhodov med izklopom ali inicializirati podatkovno področje.

Strokovni nasveti

Ustreznik SET_BF — uporabljajte ju skupaj za operacije Set/Reset na nivoju skupin.

Posebej uporabno za brisanje alarmnih besed ali statusnih registrov v eni operaciji.

Tako kot Reset tudi to deluje le, ko je RLO TRUE — biti ostanejo nespremenjeni, ko je RLO FALSE.

Flip-Flopi — Pomnilni krogotoki

Bistabilni elementi, ki si zapomnijo svoje stanje do eksplicitne spremembe

SR — Set/Reset Flip-Flop

Kaj počne

Bistabilni flip-flop s prednostjo nastavitve (Set). Ima dva vhoda: S (Set) in R (Reset) ter en izhod Q. Ko je S=TRUE, Q postane TRUE. Ko je R=TRUE, Q postane FALSE. Ko sta hkrati TRUE oba vhoda S in R, je Q TRUE (prevlada Set).

Kdaj uporabiti

Za pomnilne krogotoke, kjer naj ima pogoj nastavitve prednost. V SR flip-flopu izhod ostane vklopljen, če sta hkrati pritisnjena start in stop. Uporabite to, ko je 'prednost zagona' sprejemljiva.

Strokovni nasveti

SR = prednost Set. Če je S=1 in R=1 → Q=1. Uporabite, ko je zagon pomembnejši od ustavitve.

V varnostno kritičnih aplikacijah raje uporabite RS (prednost ponastavitve) — je varneje, če se oba pogoja sprožita hkrati.

Flip-flop je enoten blok v LAD in FBD z vhodoma S, R in izhodom Q.

RS — Reset/Set Flip-Flop

Kaj počne

Bistabilni flip-flop s prednostjo ponastavitve (Reset). Ima dva vhoda: R (Reset) in S (Set) ter en izhod Q. Ko je S=TRUE, Q postane TRUE. Ko je R=TRUE, Q postane FALSE. Ko sta hkrati TRUE oba vhoda R in S, je Q FALSE (prevlada Reset).

Kdaj uporabiti

Za pomnilne krogotoke, kjer je varnost na prvem mestu. Pogoj ponastavitve (stop) ima prednost — če sta aktivna tako start kot stop, je izhod izklopljen (OFF). To je standardna izbira za krmiljenje motorjev in varnostne blokade.

Strokovni nasveti

RS = prednost Reset. Če je S=1 in R=1 → Q=0. Varnejša izbira za večino industrijskih aplikacij.

Klasičen vzorec krmiljenja motorja: S = gumb_Start AND NOT napaka, R = gumb_Stop OR izklop_v_sili OR napaka.

Izhod Q je pomnilen znotraj cikla — svojo vrednost obdrži, dokler flip-flop ni ponovno ovrednoten.

Detekcija robov — Zaznavanje sprememb signala

Zaznavanje prehoda signala iz FALSE→TRUE ali TRUE→FALSE

Skeniraj operand za pozitivni rob

—|P|—

Kaj počne

Zazna naraščajoči rob (prehod FALSE→TRUE) na določenem operandu. Instrukcija primerja trenutno vrednost z vrednostjo iz prejšnjega cikla. Če se je vrednost spremenila iz 0 na 1, je RLO TRUE za točno en cikel. Zahteva pomnilni bit roba (M-bit) za shranjevanje prejšnjega stanja.

Kdaj uporabiti

Ko potrebujete enkraten impulz iz trajnega signala: štetje pritiskov gumbov, sprožitev ene same akcije ob spremembi nivoja, povečanje števca ob vsaki aktivaciji. Brez detekcije robov bi držanje gumba sprožilo akcijo v vsakem ciklu.

Strokovni nasveti

Dodeliti MORATE unikaten pomnilni bit roba (M-bit) — NE uporabljajte istega M-bita za več detekcij robov, sicer se bodo motile.

Izhod je TRUE točno en cikel PLC (običajno 1-50 ms). Če potrebujete daljši impulz, uporabite časovnik (timer).

V LAD se to pojavi kot kontakt z oznako 'P'. Oznaka M-bita je prikazana nad/pod kontaktom.

Skeniraj operand za negativni rob

—|N|—

Kaj počne

Zazna padajoči rob (prehod TRUE→FALSE) na določenem operandu. Instrukcija primerja trenutno vrednost z vrednostjo iz prejšnjega cikla. Če se je vrednost spremenila iz 1 na 0, je RLO TRUE za točno en cikel. Zahteva pomnilni bit roba.

Kdaj uporabiti

Ko se morate odzvati na izklop signala: zaznavanje sprostitve gumba, sprožitev ob deaktivaciji senzorja ali zajem trenutka, ko se korak procesa konča.

Strokovni nasveti

Ista pravila kot za pozitivni rob — vsaka detekcija negativnega roba potrebuje svoj unikaten M-bit.

Uporabno za akcije 'ob sprostitvi gumba': zaženite časovnik, ko se gumb sprosti, ne ko se pritisne.

V zaporedju izklopa uporabite negativne robove za zaznavanje, kdaj se vsak korak konča (izhod gre iz ON v OFF).

Nastavi operand ob pozitivnem robu

—(P)—

Kaj počne

Nastavi (zapiše TRUE) določen operand za en cikel, ko je na RLO zaznan pozitivni rob (FALSE→TRUE). Združuje detekcijo roba in prireditev izhoda v eni instrukciji.

Kdaj uporabiti

Ko želite nastaviti zastavico ali izhod za točno en cikel ob naraščajočem robu, ne da bi potrebovali ločen kontakt za detekcijo roba, ki mu sledi tuljava.

Strokovni nasveti

To je instrukcija tipa tuljava — gre na konec veje, ne v sredino.

Zahteva pomnilni bit roba, tako kot kontaktna različica.

Operand je TRUE le en cikel, nato se samodejno vrne na FALSE.

Nastavi operand ob negativnem robu

—(N)—

Kaj počne

Nastavi (zapiše TRUE) določen operand za en cikel, ko je na RLO zaznan negativni rob (TRUE→FALSE). Združuje detekcijo padajočega roba in prireditev izhoda v eni instrukciji.

Kdaj uporabiti

Ko želite nastaviti zastavico ali izhod za točno en cikel ob padajočem robu. Uporabno za sprožitev akcij po deaktivaciji.

Strokovni nasveti

Instrukcija tipa tuljava — postavite na konec veje.

Zahteva svoj unikaten pomnilni bit roba.

Pogosto se uporablja za 'čistilne' akcije, ki se morajo zgoditi enkrat ob ustavljanju procesa.

P_TRIG — Skeniraj RLO za pozitivni rob

Kaj počne

Zazna naraščajoči rob na RLO (Rezultat logične operacije) namesto na določenem operandu. Ko prehod kombiniranega logičnega rezultata iz FALSE v TRUE, je izhod TRUE za en cikel. Pomnilnik roba je shranjen znotraj instance instrukcije.

Kdaj uporabiti

Ko želite zaznati naraščajoči rob na kompleksni logični kombinaciji, ne le na eni sami oznaki. Na primer: zaznaj, kdaj (Senzor1 AND Senzor2 AND NOT napaka) prvič postane TRUE.

Strokovni nasveti

P_TRIG deluje na akumuliranem RLO — zazna rob celotne logične verige pred njim.

Pomnilnik roba je vgrajen v instrukcijo — ločen M-bit ni potreben.

V FBD je P_TRIG blok z vhodom CLK in izhodom Q.

N_TRIG — Skeniraj RLO za negativni rob

Kaj počne

Zazna padajoči rob na RLO. Ko prehod kombiniranega logičnega rezultata iz TRUE v FALSE, je izhod TRUE za en cikel. Pomnilnik roba je shranjen znotraj instance instrukcije.

Kdaj uporabiti

Ko želite zaznati, kdaj kompleksen pogoj preneha biti resničen. Na primer: zaznaj trenutek, ko (Auto_Mode AND All_Clear) gre iz TRUE v FALSE.

Strokovni nasveti

N_TRIG je padajoči ustreznik P_TRIG.

Ločen M-bit ni potreben — pomnilnik roba je kripnjen znotraj.

Uporabno za zaznavanje konca kombiniranega pogoja namesto enega samega signala.

R_TRIG — Zaznavanje pozitivnega roba signala

Kaj počne

Funkcijski blok (FB) za detekcijo naraščajočega roba, skladen z IEC 61131-3. Ima vhod CLK in izhod Q. Ko CLK preide iz FALSE v TRUE, je Q TRUE za en cikel. Pomnilnik roba je shranjen v instančnih podatkih FB-ja.

Kdaj uporabiti

Ko želite detekcijo robov po standardu IEC s svojimi instančnimi podatki. R_TRIG je funkcijski blok — vsaka instanca samodejno vzdržuje svoj pomnilnik roba. Priporočljivo v strukturirani kodi za večkratno uporabo.

Strokovni nasveti

R_TRIG je FB — potrebuje instančne podatke (bodisi svoj DB bodisi kot multi-instanca v nadrejenem FB). To ga naredi samostojnega in primernega za večkratno uporabo.

Na voljo od različice V1.0 na S7-1200/1500. To je standardni način detekcije robov po IEC 61131-3.

V SCL: myRTRIG(CLK := mySignal); IF myRTRIG.Q THEN ... END_IF;

F_TRIG — Zaznavanje negativnega roba signala

Kaj počne

Funkcijski blok (FB) za detekcijo padajočega roba, skladen z IEC 61131-3. Ima vhod CLK in izhod Q. Ko CLK preide iz TRUE v FALSE, je Q TRUE za en cikel. Pomnilnik roba je shranjen v instančnih podatkih FB-ja.

Kdaj uporabiti

Ko želite detekcijo padajočih robov po standardu IEC s svojimi instančnimi podatki. F_TRIG je padajoči ustreznik R_TRIG.

Strokovni nasveti

F_TRIG je FB z lastno instanco — tako kot R_TRIG je samostojen in skladen z IEC 61131-3.

V SCL: myFTRIG(CLK := mySignal); IF myFTRIG.Q THEN ... END_IF;

Pri pisanju knjižnic za večkratno uporabo dajte prednost R_TRIG/F_TRIG pred kontakti |P|/|N|, saj ne zahtevajo zunanjih M-bitov.

Hitri pregled — Vseh 20 bitnih logičnih instrukcij

#InstrukcijaLAD simbolBližnjicaOpis
1Delovni kontakt (Normally Open)—| |—F9Prepušča signal, ko je oznaka TRUE
2Mirni kontakt (Normally Closed)—|/|—F10Prepušča signal, ko je oznaka FALSE
3Invertiraj RLO (NOT)—|NOT|—Invertira rezultat logične operacije
4Prireditev (Assignment)—( )—Shift + F7Zapiše RLO v izhodno oznako
5Negirana prireditev—(/)—Zapiše invertiran RLO v izhodno oznako
6Ponastavi izhod (Reset)—(R)—Nastavi oznako na FALSE, ko je RLO TRUE
7Nastavi izhod (Set)—(S)—Nastavi oznako na TRUE, ko je RLO TRUE
8SET_BF — Nastavi bitno poljeNastavi obseg bitov na TRUE
9RESET_BF — Ponastavi bitno poljePonastavi obseg bitov na FALSE
10SR — Set/Reset Flip-FlopFlip-flop s prednostjo nastavitve (S=1,R=1 → Q=1)
11RS — Reset/Set Flip-FlopFlip-flop s prednostjo ponastavitve (S=1,R=1 → Q=0)
12Skeniraj operand za pozitivni rob—|P|—Zazna naraščajoči rob na operandu
13Skeniraj operand za negativni rob—|N|—Zazna padajoči rob na operandu
14Nastavi operand ob pozitivnem robu—(P)—Nastavi operand za 1 cikel ob naraščajočem robu
15Nastavi operand ob negativnem robu—(N)—Nastavi operand za 1 cikel ob padajočem robu
16P_TRIG — Skeniraj RLO za pozitivni robZazna naraščajoči rob na RLO
17N_TRIG — Skeniraj RLO za negativni robZazna padajoči rob na RLO
18R_TRIG — Zaznavanje pozitivnega roba signalaIEC detektor naraščajočega roba (FB)
19F_TRIG — Zaznavanje negativnega roba signalaIEC detektor padajočega roba (FB)

Pogosto zastavljena vprašanja

Kakšna je razlika med Set/Reset tuljavami in SR/RS flip-flopi?

Set (S) in Reset (R) tuljave so posamezne instrukcije, postavljene v ločene mreže — prednost določate s tem, katera mreža je zadnja. SR/RS flip-flopi so enotni bloki z obema vhodoma — prednost je vgrajena (SR = prednost Set, RS = prednost Reset). Flip-flopi so bolj kompaktni in naredijo prednost eksplicitno.

Katero detekcijo robov naj uporabim: |P|/|N|, (P)/(N), P_TRIG/N_TRIG ali R_TRIG/F_TRIG?

Kontakti |P|/|N| zaznavajo robove na določeni oznaki in potrebujejo zunanji M-bit. Tuljave (P)/(N) združujejo detekcijo roba s prireditvijo izhoda. P_TRIG/N_TRIG zaznavajo robove na RLO (kombinirani logiki). R_TRIG/F_TRIG so IEC-standardni FB-ji z vgrajenim pomnilnikom. Za kodo knjižnic dajte prednost R_TRIG/F_TRIG. Za preprosto logiko so kontakti |P|/|N| v redu.

Zakaj se moj Set/Reset krogotok obnaša nepredvidljivo?

Najpogostejši vzrok je, da sta pogoja za Set in Reset hkrati TRUE. V tem primeru prevlada zadnja instrukcija v programu. Če je vaša mreža Reset pred mrežo Set, bo izhod nastavljen (Set). Rešitev: uporabite RS flip-flop (prednost ponastavitve) za varnostno kritične krogotoke ali zagotovite, da sta pogoja vzajemno izključujoča.

Ali detekcija robov deluje na analognih vrednostih ali le na BOOL?

Instrukcije za detekcijo robov (|P|, |N|, R_TRIG, F_TRIG) delujejo le na boolovih signalih. Za analogne vrednosti morate ustvariti primerjavo (npr. vrednost > prag), ki proizvede BOOL rezultat, nato pa na tem rezultatu uporabiti detekcijo robov.

Generirajte bitno logiko z AI

Opišite svojo krmilno logiko v običajnem besedilu in T-IA Connect bo generiral PLC kodo — vključno s kontakti, tuljavami, flip-flopi in detekcijo robov.