TIA Portal Instruktioner

Räknaroperationer
CTU, CTD, CTUD & Legacy S5

Räkning av händelser är kärnan i industriell styrning. Bemästra standard IEC-räknare och legacy-instruktioner i TIA Portal för dina produktionsapplikationer.

Vad är räknaroperationer i TIA Portal?

Räknaroperationer i TIA Portal gör det möjligt att räkna interna programhändelser eller externa signaler (positiva flanker). Dessa är funktionsblock enligt IEC 61131-3-standarden som hanterar inkrementering, dekrementering, återställning och jämförelse med ett förinställt värde (PV).

TIA Portal erbjuder 3 typer av IEC-räknare (CTU, CTD, CTUD) samt S5-kompatibilitetsinstruktioner (Legacy) och räknarspolar. Varje räknarinstans kräver sitt eget instansdatablock (IDB) eller kan integreras som en multiinstans i ett FB.

IEC-räknare

De 3 standardräknarblocken — flexibla och robusta

CTU — Uppräknare (Count Up)

Vad den gör

Räknar positiva flanker på räkneingången CU. Vid varje växling från FALSE till TRUE på CU ökar det aktuella räknarvärdet CV med 1. När CV blir större än eller lika med det förinställda värdet PV blir utgången Q TRUE. Ingången R (Reset) återställer CV till 0 och Q till FALSE.

När den ska användas

Används för att räkna detaljer på ett transportband, maskincykelantal eller hur ofta ett larm har utlösts. Idealisk för alla processer där ett numeriskt mål ska uppnås.

Proffstips

Räkningen stannar vid det maximala värdet för den datatyp som används (Int, DInt etc.). CV slår inte om till noll automatiskt utan Reset.

Ingången R har prioritet: så länge R är TRUE förblir räknaren på 0 och ignorerar flanker på CU.

I SCL: myCTU(CU := trigger, R := reset, PV := 10); IF myCTU.Q THEN ... END_IF;

CTD — Nedräknare (Count Down)

Vad den gör

Räknar nedåt från ett startvärde. Vid varje positiv flank på ingången CD minskar det aktuella värdet CV med 1. När CV är mindre än eller lika med 0 blir utgången Q TRUE. Ingången LD (Load) laddar det förinställda värdet PV till CV.

När den ska användas

Användbar för lagerhantering (dra ifrån detaljer), nedräkningsprocesser eller för att övervaka återstående kapacitet i en tank eller ett magasin.

Proffstips

Ingången LD används för att 'ladda om' räknaren. Så länge LD är TRUE är CV lika med PV.

Till skillnad från CTU uppfylls utgångsvillkoret Q när CV når 0 (eller mindre).

Räknaren stannar vid det minsta värdet för datatypen (t.ex. -32768 för en Int).

CTUD — Dubbelriktad Räknare (Up/Down)

Vad den gör

Kombinerar funktionerna i CTU och CTD i ett block. Den har två räkneingångar (CU för att öka, CD för att minska) och två utgångar (QU för 'Hög räknargräns nådd', QD för 'Noll nådd'). Den har både en Reset (R) och en Load (LD) ingång.

När den ska användas

Perfekt för enkel positionsspårning (framåt/bakåt), parkeringshantering (in-/utpassering av fordon) eller dynamisk lagerövervakning.

Proffstips

QU blir TRUE om CV >= PV. QD blir TRUE om CV <= 0.

R (Reset) nollställer CV till 0. LD (Load) initierar CV till PV. R har prioritet över LD.

Mycket användbar för automatiserade lager: öka vid inleverans, minska vid utleverans.

Legacy-instruktioner och Spolar

S5-räknare och spolinstruktioner för LAD/FBD

S_CU / S_CD / S_CUD

Vad den gör

Gamla räknarinstruktioner (Legacy S5) som används på S7-300/400. De använder globala räknarnummer (C0...C255) istället för instansdatablock. De tillåter parametrering, räkning och återställning i en enda komplex instruktion.

När den ska användas

Endast för underhåll av befintliga program eller migrering av S5/S7-300 projekt till S7-1500. Bör undvikas vid nyutveckling.

Proffstips

Dessa räknare är inte 'typade' som IEC-räknare. Deras område är begränsat (0-999).

Deras beteende vid flankanrop kan skilja sig från IEC-standarder.

Ersätt dem systematiskt med IEC CTU/CTD vid refactoring för bättre portabilitet.

—(SC)— Förinställ Räknare

—(SC)—

Vad den gör

Instruktion av spoltyp som laddar ett förinställt värde i en specifik räknare när RLO blir TRUE. Det är den grafiska motsvarigheten till Load-ingången (LD).

När den ska användas

I LAD/FBD för att tvinga fram laddning av ett värde i en räknare från ett separat nätverk.

Proffstips

Används främst med legacy-räknare.

Det laddade värdet definieras ofta av en konstant eller en heltalsvariabel.

För IEC-räknare, använd istället blockets LD-ingång eller få tillgång till instansen direkt.

—(CU) / —(CD)— Räknarspolar

—(CU)—

Vad den gör

Instruktioner av spoltyp som ökar (CU) eller minskar (CD) en räknare vid varje positiv flank av RLO. De gör det möjligt att styra en räknare utan att använda det fullständiga funktionsblocket.

När den ska användas

För mycket kompakt LAD-programmering där man bara vill trigga en räkning i slutet av en linje.

Proffstips

Dessa spolar refererar till en specifik räknare (t.ex. C1 eller ett IEC-räknardatablock).

Varning för läsbarhet: det är svårare att se det aktuella värdet (CV) med spolar än med block.

Föredra FB-block för bättre självdokumenterande kod.

Notering om S5-kompatibilitet

Globala räknare

S5-räknare (S_CU, S_CD, S_CUD) är begränsade till 256 globala instanser och ett område på 0 till 999. IEC-räknare (CTU, CTD, CTUD) är att föredra eftersom de använder instansdatablock, stöder större datatyper (LInt) och inte har en fast antalgräns.

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

Välj rätt räknare för din industriapplikation

Du behöver...Använd denna räknareExempel
Räkna uppåtgående händelserCTUAntal färdigförpackade produkter
Räkna nedåt till nollCTDÅterstående platser på hyllan
Följa dubbelriktat flödeCTUDFordon i ett parkeringshus
Ladda ett målvärdePV / LDStäll in batch på 50 st via HMI
Automatisk återställningReset (R)Batchslut, klar för nästa
Hantera miljontals enheterIEC (DInt/LInt)Årlig produktionstotalräknare

Vanliga frågor

Vad är skillnaden mellan en IEC-räknare och en S5-räknare?

IEC-räknare använder instansdatablock (DB), vilket gör det möjligt att skapa oändligt många. De stöder 16, 32 eller 64-bitars heltal. S5-räknare är begränsade till 256 globala nummer (C0-C255) och räknar bara upp till 999.

Hur får jag räknaren att starta om från noll automatiskt?

Du kan ansluta utgången Q från räknaren till dess egen Reset (R) ingång. På så sätt nollställs räknaren omedelbart så snart målet har uppnåtts.

Kan jag använda en räknare för att mäta hastighet?

En räknare ensam mäter inte hastighet. Du måste räkna pulser under en fast tid (tidsfönster hanterat av en Timer) och sedan utföra beräkningen: Hastighet = Pulser / Tid.

Förlorar räknare sitt värde när PLC:n stannar?

Precis som för timers lagras det aktuella värdet (CV) i instansdatabblocket. Om datablocket är konfigurerat som 'Retentive' behåller räknaren sitt värde efter en omstart.

Automatisera dina räknealgoritmer

Beskriv din räknelogik för vår AI och T-IA Connect genererar CTU/CTD-blocken konfigurerade med rätt datatyper.