TIA Portal Instruktioner

Programstyrning
Flöde & Exekvering

Bemästra det logiska flödet i ditt program. Från villkorliga hopp till realtidsdiagnostikverktyg — optimera exekveringsstrukturen i din styrenhet.

Vad är programstyrning i TIA Portal?

Programstyrningsoperationer gör det möjligt att ändra den sekventiella exekveringsordningen för nätverk. De används för att hoppa över delar av koden (Hopp), skapa komplexa förgreningar (Fördelare) eller hantera CPU:ns interna beteende (Stop, Watchdog, Tidsmätning).

Dessa instruktioner är kraftfulla men måste användas med försiktighet, särskilt WAIT-instruktionen som blockerar cykeln, eller hopp som kan göra programmet svårt att felsöka om de är för många. TIA Portal erbjuder även moderna verktyg för att fånga upp fel lokalt i varje block.

Hopp och Flöde

Instruktioner för programomdirigering

JMP / JMPN — Villkorliga hopp

JMP

Vad den gör

JMP avbryter den sekventiella exekveringen och hoppar till en etikett (LABEL) om RLO är 1. JMPN gör detsamma om RLO är 0.

När den ska användas

Hoppa över en koddel som inte ska köras i ett specifikt läge, eller skapa enkla loopar i LAD/FBD.

Proffstips

Hoppmålet (LABEL) måste finnas i samma block (FC eller FB).

Använd inte bakåthopp för att skapa loopar utan villkor för avslut, eftersom du riskerar att cykeltiden överskrids.

I SCL, använd istället IF...THEN eller CASE...OF-strukturer.

SWITCH — Hoppfördelare

SWITCH

Vad den gör

Jämför ett ingångsvärde med flera målvärden och hoppar till det nätverk som motsvarar det första verifierade fallet. Grafisk motsvarighet till Switch/Case.

När den ska användas

Hantering av maskintillstånd (enkel Grafcet), val av driftslägen eller dirigering av delar enligt en typkod.

Proffstips

Renare och mer lättläst än en serie == komparatorer i serie.

Använd 'ELSE'-ingången för att hantera fall där inget värde matchar.

Idealisk för menystrukturer på HMI.

RET — Retur

RET

Vad den gör

Tvingar fram slutet på exekveringen av det aktuella blocket (FC/FB) och återgår till det anropande blocket.

När den ska användas

Tidigt avslut av en funktion om ett fel upptäcks i början av blocket, eller om ett säkerhetsvillkor inte är uppfyllt.

Proffstips

Användbart för att optimera cykeltiden genom att inte bearbeta resten av koden i onödan.

Var vaksam: blockutgångar som ännu inte bearbetats behåller sitt senaste tillstånd.

I SCL, använd instruktionen RETURN;

Runtime-kontroll

CPU-cykelhantering och prestandamätningar

RUNTIME — Mäta tid

RUNTIME

Vad den gör

Mäter exekverinstiden för en del av programmet eller hela blocket i mikrosekunder (µs).

När den ska användas

Kodoptimering, diagnostik av tunga nätverk eller prestandaberäkningar för maskinen.

Proffstips

Anropa RUNTIME en gång för att initiera mätningen, sedan en andra gång för att få resultatet.

Använd datatypen LReal för att lagra mätresultatet.

Praktiskt för att kontrollera om en komplex FOR-loop närmar sig watchdog-gränserna.

WAIT — Fast fördröjning

WAIT

Vad den gör

Pausar programexekveringen under en angiven tid i mikrosekunder. VARNING: till skillnad från en Timer blockerar WAIT CPU-cykeln helt.

När den ska användas

Vänta några mikrosekunder för att stabilisera en elektronisk signal på ett ultrasnabbt I/O-kort.

Proffstips

Använd med extrem måttfullhet. En för lång WAIT utlöser ett Watchdog-fel och stoppar PLC:n.

Använd aldrig för processfördröjningar (sekunder/minuter); använd TON-timers för det.

Endast tillgänglig på S7-1500.

STP — CPU-stopp

STP

Vad den gör

Tvingar CPU:n till läget STOP.

När den ska användas

Fatalt feltillstånd där maskinen inte längre får styras, eller diagnostiktest.

Proffstips

Stoppet är omedelbart. Manuellt ingrepp (HMI eller omkopplare) krävs för omstart.

Föredra larmhantering med säkert fallback-läge framför ett bryskt CPU-stopp när det är möjligt.

Användbart i drifttagningsprojekt för att 'breaka' på ett specifikt ställe.

Felhantering

Lokalt fångande av exekveringsfel

GET_ERROR / GET_ERR_ID

Vad de gör

Hämtar information om det första felet som inträffat inuti ett block (t.ex. åtkomst till ett array-index som inte finns).

När den ska användas

Göra dina block robusta genom att fånga upp programmeringsfel utan att stoppa PLC:n.

Proffstips

GET_ERROR ger en detaljerad struktur, GET_ERR_ID returnerar endast felnumret.

Placera dessa instruktioner i slutet av dina kritiska block.

Gör det möjligt att skapa en anpassad fellogg.

Hopp vs Kontrollstrukturer

Vilken metod ska användas för att omdirigera programmet?

Du behöver...Rekommenderad instruktionVarför?
Enkelt hopp i LadderJMPHoppa över ett nätverk
Komplext flervalSWITCH / CASEMer lättläst än 10 JMP
Mäta intern varaktighetRUNTIMEPrestandaoptimering
Omedelbart stoppSTPKritiskt hårdvarufel
Mycket kort väntanWAITElektronisk stabilisering
Lokal diagnostikGET_ERRORUndvik CPU-STOPP

Vanliga frågor

Vad är skillnaden mellan JMP och JMP_LIST?

JMP är ett enstaka hopp till ett mål. JMP_LIST gör det möjligt att definiera en lista med destinationer. Baserat på ett numeriskt index hoppar programmet till den 1:a, 2:a eller N:te etiketten i listan.

Är WAIT-instruktionen farlig?

Ja, vid felaktig användning. Den pausar exekveringen av HELA användarprogrammet. Om summan av dina WAIT och din kod överskrider watchdog-tiden (ofta 150ms) går CPU:n till STOP.

Hur mäter man PLC:ns totala cykeltid?

Du behöver inte RUNTIME-instruktionen för det. Du kan läsa informationen direkt i CPU-egenskaperna online eller använda systemvariablerna i OB1.

Var ska man placera LABEL-etiketter?

LABEL kan placeras i början av vilket nätverk som helst. I LAD visas de ovanför den vänstra strömskenan. Ett etikettnamn måste vara unikt inom blocket.

Automatisera dina kontrollstrukturer

Beskriv din hopplogik eller dina diagnostikbehov, T-IA Connect genererar optimerade JMP- och SWITCH-nätverk för din applikation.