Navodila TIA Portal

Operacije Primerjave
Odločitvena logika in Območja

Primerjava vrednosti je gonilo industrijske odločitvene logike. Obvladajte standardne primerjalnike, teste območij in preverjanja veljavnosti.

Kaj so operacije primerjave v TIA Portalu?

Operacije primerjave omogočajo primerjavo dveh vrednosti istega podatkovnega tipa (Cela števila, Realna števila, Čas itd.) ali preverjanje, ali se vrednost nahaja znotraj ali zunaj določenega območja. So temeljne za ustvarjanje alarmnih pragov, pogojev prehoda in regulacijskih zank.

TIA Portal ponuja standardne primerjalnike (==, <>, >= itd.), navodila za območja (IN_Range, OUT_Range), teste veljavnosti za števila s plavajočo vejico in napredna navodila za Variant podatkovne tipe in DB kazalce.

Standardni Primerjalniki

Ocenjevanje enakosti in neenakosti med dvema operandoma

CMP == — Enako (Equal)

==

Kaj počne

Primerja dva operanda (IN1 in IN2). Če je IN1 enak IN2, navodilo vrne TRUE. Podpira skoraj vse preproste podatkovne tipe.

Kdaj uporabiti

Preverjanje, ali je števec dosegel cilj, ali nastavljena vrednost HMI ustreza trenutni vrednosti ali ali je specifično stanje stroja aktivno.

Pro Nasveti

Pozor pri tipih Real: stroga enakost lahko spodleti zaradi natančnosti. Raje uporabite toleranco ali območje.

V SCL: IF value1 = value2 THEN ...

Primerjate lahko nize znakov (String) za preverjanje identifikacijskih kod.

CMP <> — Neenako (Not equal)

<>

Kaj počne

Vrne TRUE, če sta operanda IN1 in IN2 različna. Je obratno od enakosti.

Kdaj uporabiti

Zaznavanje spremembe vrednosti, zagotavljanje, da senzor ne vrača 0, ali preverjanje, da način delovanja ni prepovedan.

Pro Nasveti

Pogosto se uporablja za sprožitev dejanja, takoj ko vrednost odstopi od nastavljene.

V SCL: IF value1 <> value2 THEN ...

Lahko se uporablja za primerjavo časovnih žigov (DTL), da vidite, ali se je datum spremenil.

CMP >= — Večje ali enako

>=

Kaj počne

Vrne TRUE, če je prva vrednost (IN1) večja ali enaka drugi (IN2).

Kdaj uporabiti

Sprožitev alarma visoke ravni, dovoljenje ogrevanja, dokler temperatura ni dosežena.

Pro Nasveti

Idealno za varnostne prage, kjer mora biti mejna vrednost vključena v pogoj.

V SCL: IF level >= setpoint THEN ...

Lahko se uporablka s tipi Time za preverjanje, ali je pretekel minimalni čas.

CMP <= — Manjše ali enako

<=

Kaj počne

Vrne TRUE, če je IN1 manjši ali enak IN2.

Kdaj uporabiti

Nadzor nizke ravni, ustavitev črpalke, potrditev minimalnega tlaka.

Pro Nasveti

Pogosto povezano s histerezo, da se prepreči nenehno preklapljanje izhoda.

Deluje izvorno s tipi Date in Time.

V SCL: IF pressure <= min_limit THEN ...

CMP > — Večje (Greater than)

>

Kaj počne

Vrne TRUE, če je IN1 strogo večji od IN2.

Kdaj uporabiti

Stroga primerjava, ki ne sme vključevati ciljne vrednosti.

Pro Nasveti

Manj uporabljeno kot >= v avtomatizaciji, a uporabno za matematične algoritme.

V SCL: IF current > max THEN ...

Priporočljivo za primerjave indeksov zank (FOR).

CMP < — Manjše (Less than)

<

Kaj počne

Vrne TRUE, če je IN1 strogo manjši od IN2.

Kdaj uporabiti

Testi strogih spodnjih mej.

Pro Nasveti

Uporabno za preverjanje, ali je vrednost 'negativna' (val < 0).

V SCL: IF val < 0 THEN ...

Deluje z znaki (abecedno razvrščanje).

Operacije Območja

Preverjanje pripadnosti intervalu [MIN..MAX]

IN_Range — V območju

IN_Range

Kaj počne

Preveri, ali se vrednost (VAL) nahaja med spodnjo mejo (MIN) in zgornjo mejo (MAX). Interval je zaprt: MIN <= VAL <= MAX.

Kdaj uporabiti

Nadzor delovnega okna (npr. tlak med 2 in 5 bar), potrditev hitrosti stroja.

Pro Nasveti

Učinkovito nadomesti dva zaporedno vezana primerjalnika, kar naredi mrežo bolj pregledno.

Če je MIN > MAX, navodilo vedno vrne FALSE.

Zelo uporabno za pogoje 'Ready to Run', ki zahtevajo več analognih pogojev.

OUT_Range — Izven območja

OUT_Range

Kaj počne

Vrne TRUE, če je vrednost (VAL) izven intervala, določenega z MIN in MAX. Bodisi VAL < MIN bodisi VAL > MAX.

Kdaj uporabiti

Zaznavanje anomalij ali prekoračitev ekstremnih pragov (alarm območja).

Pro Nasveti

Je natančno nasprotje IN_Range.

Uporabite ga za poenostavitev procesne alarmne logike.

V SCL: res := (val < min) OR (val > max);

Testi Veljavnosti

Preverjanje integritete števil s plavajočo vejico

|OK| — Preveri veljavnost

|OK|

Kaj počne

Preveri, ali je vrednost s plavajočo vejico (Real ali LReal) veljavno število. Vrne FALSE, če je vrednost NaN (Not a Number) ali Inf (Infinity).

Kdaj uporabiti

Po kompleksnih izračunih (deljenje, koreni, log), da se prepreči širjenje matematičnih napak, ki bi lahko ustavile PLC.

Pro Nasveti

Nujno pred pošiljanjem Real vrednosti na analogni izhod ali frekvenčni pretvornik.

Omogoča zaznavanje posrednega deljenja z nič.

Priročno za filtriranje povratnih informacij okvarjenih senzorjev.

|NOT_OK| — Preveri neveljavnost

|NOT_OK|

Kaj počne

Vrne TRUE, če je vrednost s plavajočo vejico neveljavna (NaN ali Inf).

Kdaj uporabiti

Sprožitev bita za napako pri izračunu ali prisilna uporaba varne vrednosti.

Pro Nasveti

Uporabite ga, da stroj prestavite v varno stanje, če izračun trajektorije spodleti.

Je ekvivalent IS_NAN v drugih jezikih.

V SCL: IF NOT OK(value) THEN ...

Napredne primerjave (Variant)

Navodila za dinamično programiranje in kompleksne tipe

EQ_Type / NE_Type

Kaj počne

Primerja podatkovni tip Variant spremenljivke s tipom druge spremenljivke ali določenim tipom.

Kdaj uporabiti

V generičnih blokih, ki morajo obdelovati različne podatkovne tipe (npr. blok za beleženje, ki sprejema Int ali Real).

Pro Nasveti

Ključno za objektno orientirano programiranje in knjižnice za večkratno uporabo.

Omogoča zavarovanje dinamičnih dostopov do pomnilnika.

Uporablja se z navodilom VariantGet.

IS_NULL / NOT_NULL

Kaj počne

Preveri, ali je kazalec (Variant ali DB_ANY) ničeln (ne kaže na nič).

Kdaj uporabiti

Izogibanje napakam pri dostopu pri uporabi posredno naslovljenih DB-jev.

Pro Nasveti

Vedno testirajte NOT_NULL pred klicem metode ali branjem podatkov prek kazalca.

Ekvivalent objekta 'Nothing' ali 'null' v C#/Java.

Nujno za upravljanje povezanih seznamov ali dinamičnih struktur v PLC.

IS_ARRAY

Kaj počne

Preveri, ali Variant spremenljivka kaže na polje (Array).

Kdaj uporabiti

Programiranje funkcij za paketno obdelavo ali podatkovnih medpomnilnikov.

Pro Nasveti

Povežite ga s CountOfElements, da izveste velikost polja.

Omogoča ustvarjanje univerzalnih funkcij razvrščanja.

Deluje tudi za polja struktur (UDT).

Primerjava primerjalnikov — Katerega uporabiti?

Izbira pravega navodila za vašo PLC logiko

Želite...Uporabite toPrimer
Testirati natančno enakostCMP ==Koda izdelka pravilna
Visok varnostni pragCMP >=Tlak > 10 bar
Vzdrževati v območjuIN_RangeTemp med 18 in 24°C
Nadzorovati napake Real|OK|Preveriti rezultat deljenja
Preveriti kazalec DBNOT_NULLRecept DB naložen
Preveriti tip VariantEQ_TypeVhod je res Int

Pogosta Vprašanja

Zakaj moja primerjava == včasih spodleti pri številih Real?

Števila Real (s plavajočo vejico) imajo omejeno natančnost. Izračun lahko da 10.000001 namesto 10.0. Vedno uporabljajte IN_Range z majhno toleranco (npr. med 9.99 in 10.01) za primerjavo realnih vrednosti.

Kakšna je razlika med IN_Range in dvema zaporednima primerjalnikoma?

Funkcionalno je enako. Vendar je IN_Range grafično bolj kompakten, lažji za branje in hitrejši, saj PLC obdela navodilo v enem koraku.

Čemu služita navodili |OK| in |NOT_OK|?

Služita za zaznavanje 'tihih' napak pri izračunih Real. Če izračunate koren negativnega števila, je rezultat NaN. Brez testa |OK| bi ta NaN 'umazal' vse ostale izračune in lahko povzročil zaustavitev CPU.

Je mogoče primerjati celotne strukture (UDT)?

Navodilo CMP == ne omogoča neposredne primerjave dveh struktur. Vsakega člana morate primerjati posebej ali uporabiti specifičen blok, ki primerja pomnilniška območja.

Ustvarite svojo primerjalno logiko z UI

Opišite svoje prage in pogoje v naravnem jeziku, T-IA Connect bo ustvaril optimizirane primerjalne mreže z upravljanjem napak.