TIA Portal Instruktioner

Jämförelseoperationer
Beslutslogik & Områden

Värdejämförelse är motorn i industriell beslutslogik. Bemästra standardkomparatorer, områdetester och validitetskontroller i TIA Portal.

Vad är jämförelseoperationer i TIA Portal?

Jämförelseoperationer gör det möjligt att jämföra två värden av samma datatyp (Heltal, Real, Tid, etc.) eller kontrollera om ett värde ligger inom eller utanför ett definierat område. De är grundläggande för att skapa larmtrösklar, övergångsvillkor och reglerloopar.

TIA Portal erbjuder standardkomparatorer (==, <>, >=, etc.), områdeinstruktioner (IN_Range, OUT_Range), validitetstester för flyttal och avancerade instruktioner för Variant-datatyp och DB-pekare.

Standardkomparatorer

Utvärdering av likhet och olikhet mellan två operander

CMP == — Lika med (Equal)

==

Vad den gör

Jämför två operander (IN1 och IN2). Om IN1 är lika med IN2 returnerar instruktionen TRUE. Den stöder nästan alla enkla datatyper.

När den ska användas

Kontrollera om en räknare har nått sitt mål, om ett HMI-börvärde motsvarar det aktuella värdet, eller om ett specifikt maskintillstånd är aktivt.

Proffstips

Var försiktig med Real-typer: strikt likhet kan misslyckas på grund av precisionen. Föredra en marginal eller ett område.

I SCL: IF value1 = value2 THEN ...

Du kan jämföra strängar (String) för att verifiera identifikationskoder.

CMP <> — Inte lika med (Not equal)

<>

Vad den gör

Returnerar TRUE om de båda operanderna IN1 och IN2 är olika. Det är motsatsen till lika med.

När den ska användas

Detektera en värdeändring, säkerställa att en givare inte returnerar 0, eller kontrollera att ett driftsläge inte är det förbjudna.

Proffstips

Ofta använd för att utlösa en åtgärd så snart ett värde avviker från sitt börvärde.

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

Kan användas för att jämföra tidsstämplar (DTL) för att se om ett datum har ändrats.

CMP >= — Större än eller lika med

>=

Vad den gör

Returnerar TRUE om det första värdet (IN1) är större än eller lika med det andra (IN2).

När den ska användas

Utlösa ett högnivålarm, tillåta uppvärmning så länge en temperatur inte har uppnåtts.

Proffstips

Idealisk för säkerhetströsklar där gränsvärdet ska inkluderas i villkoret.

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

Kan användas med Time-typer för att kontrollera om en minsta tid har förflutit.

CMP <= — Mindre än eller lika med

<=

Vad den gör

Returnerar TRUE om IN1 är mindre än eller lika med IN2.

När den ska användas

Lågnivåövervakning, stopp av en pump, validering av ett minimitryck.

Proffstips

Ofta kopplad till en hysteres för att undvika utgångsfladder.

Fungerar nativt med Date och Time-typer.

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

CMP > — Större än (Greater than)

>

Vad den gör

Returnerar TRUE om IN1 är strikt större än IN2.

När den ska användas

Strikt jämförelse som inte ska inkludera målvärdet.

Proffstips

Används mindre än >= i automatisering, men användbar för matematiska algoritmer.

I SCL: IF current > max THEN ...

Föredras för loop-index jämförelser (FOR).

CMP < — Mindre än (Less than)

<

Vad den gör

Returnerar TRUE om IN1 är strikt mindre än IN2.

När den ska användas

Tester av strikta nedre gränser.

Proffstips

Användbar för att kontrollera om ett värde är 'negativt' (val < 0).

I SCL: IF val < 0 THEN ...

Fungerar med tecken (alfabetisk sortering).

Områdesoperationer

Kontrollera tillhörighet till ett intervall [MIN..MAX]

IN_Range — Inom området

IN_Range

Vad den gör

Kontrollerar om ett värde (VAL) ligger mellan en nedre gräns (MIN) och en övre gräns (MAX). Intervallet är slutet: MIN <= VAL <= MAX.

När den ska användas

Övervakning av driftsfönster (t.ex. tryck mellan 2 och 5 bar), validering av maskinhastighet.

Proffstips

Ersätter fördelaktigt två seriekopplade komparatorer, vilket gör nätverket mer läsbart.

Om MIN > MAX returnerar instruktionen alltid FALSE.

Mycket användbar för 'Ready to Run'-villkor som kräver flera analoga förutsättningar.

OUT_Range — Utanför området

OUT_Range

Vad den gör

Returnerar TRUE om värdet (VAL) ligger utanför intervallet definierat av MIN och MAX. Antingen VAL < MIN eller VAL > MAX.

När den ska användas

Detektering av avvikelser eller överskridande av extrema tröskelvärden (områdeslarm).

Proffstips

Det är den exakta motsatsen till IN_Range.

Använd den för att förenkla processlarmlogik.

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

Validitetstester

Kontrollera integriteten hos flyttal

|OK| — Kontrollera validitet

|OK|

Vad den gör

Kontrollerar om ett flyttalsvärde (Real eller LReal) är ett giltigt tal. Returnerar FALSE om värdet är NaN (Not a Number) eller Inf (Infinity).

När den ska användas

Efter komplexa beräkningar (divisioner, kvadratrötter, log) för att undvika att sprida matematiska fel som kan stoppa PLC:n.

Proffstips

Oumbärlig innan ett Real-värde skickas till en analog utgång eller en omriktare.

Gör det möjligt att detektera en indirekt division med noll.

Praktisk för att filtrera returvärden från felaktiga givare.

|NOT_OK| — Kontrollera ogiltighet

|NOT_OK|

Vad den gör

Returnerar TRUE om flyttalsvärdet är ogiltigt (NaN eller Inf).

När den ska användas

Utlösa en beräkningsfelsbit eller tvinga fram ett ersättningsvärde.

Proffstips

Använd den för att sätta maskinen i säkert tillstånd om en banberäkning misslyckas.

Det är motsvarigheten till IS_NAN i andra språk.

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

Avancerade jämförelser (Variant)

Instruktioner för dynamisk programmering och komplexa typer

EQ_Type / NE_Type

Vad den gör

Jämför datatypen för en Variant-variabel med en annan variabel eller en definierad typ.

När den ska användas

I generiska block som ska hantera olika datatyper (t.ex. ett loggblock som accepterar Int eller Real).

Proffstips

Essenziell för objektorienterad programmering och återanvändbara bibliotek.

Gör det möjligt att säkra dynamisk minnesåtkomst.

Används med instruktionen VariantGet.

IS_NULL / NOT_NULL

Vad den gör

Kontrollerar om en pekare (Variant eller DB_ANY) är noll (pekar inte på någonting).

När den ska användas

Undvika åtkomstfel vid användning av indirekt adresserade DB.

Proffstips

Testa alltid NOT_NULL innan en metod anropas eller data läses via en pekare.

Motsvarighet till 'Nothing' eller 'null' objekt i C#/Java.

Oumbärlig för hantering av länkade listor eller dynamiska strukturer i PLC.

IS_ARRAY

Vad den gör

Kontrollerar om en Variant-variabel pekar på en array (Array).

När den ska användas

Programmering av batch-bearbetningsfunktioner eller databuffertar.

Proffstips

Kombinera den med CountOfElements för att få veta arrayens storlek.

Gör det möjligt att skapa universella sorteringsfunktioner.

Fungerar även för arrayer av strukturer (UDT).

Jämförelse av komparatorer — Vilken ska man använda?

Välj rätt instruktion för din PLC-logik

Du vill...Använd dennaExempel
Testa exakt likhetCMP ==Produktkod korrekt
Hög säkerhetströskelCMP >=Tryck > 10 bar
Hålla inom en zonIN_RangeTemp mellan 18 och 24°C
Övervaka Real-fel|OK|Kontrollera divisionsresultat
Verifiera DB-pekareNOT_NULLRecept-DB laddat
Verifiera Variant-typEQ_TypeIngången är verkligen Int

Vanliga frågor

Varför misslyckas min == jämförelse ibland med Real-tal?

Real-tal (flyttal) har begränsad precision. En beräkning kan ge 10.000001 istället för 10.0. Använd alltid IN_Range med en liten tolerans (t.ex. mellan 9.99 och 10.01) för att jämföra flyttalsvärden.

Vad är skillnaden mellan IN_Range och två seriekopplade komparatorer?

Funktionellt är det identiskt. Men IN_Range är grafiskt mer kompakt, mer lättläst och mer effektiv eftersom PLC:n bearbetar instruktionen i ett enda steg.

Vad används instruktionerna |OK| och |NOT_OK| till?

De används för att upptäcka 'tysta' fel i Real-beräkningar. Om du drar kvadratroten ur ett negativt tal blir resultatet NaN. Utan |OK|-testet kommer detta NaN att förorena alla dina andra beräkningar och kan orsaka ett CPU-stopp.

Kan man jämföra hela strukturer (UDT)?

Instruktionen CMP == tillåter inte direkt jämförelse av två strukturer. Du måste jämföra varje medlem individuellt eller använda ett specifikt block som jämför minnesområden.

Generera din jämförelselogik med AI

Beskriv dina tröskelvärden och villkor på naturligt språk, T-IA Connect kommer att generera optimerade jämförelsenätverk med felhantering.