Class Step
Version 1.0
Modified 15-JAN-2025 13:23:34.00
Kod rt_plc_macro_grafcet.h
Vanligt sekvensiellt Grafcet steg. 

Till den högra utgången kan samtidigt kopplas dels en eller flera Order-objekt, 
dels en eller flera Sto xx, Set xx eller Res xx objekt. Utgången kan också 
lämnas öppen eller användas som generell binär signal.

De vertikala anslutningarna ansluts Trans-objekt. 

Samtliga steg i en sekvenskedja kan nollställas med en gemensam reset- signal; 
se vidare under InitStep . 

Alternative Sequences



Vid alternativa sekvenser förutsätts att överföringsvillkoren skiljer sig åt på 
något sätt.

De speciella förbindningslinjerna vid alternativa sekvenser (förgrening resp. 
sammanföring) skapas på följande sätt: Välj i PLC Editorn, innan 
anslutningarna görs, i View-menyn 'Connections' och därunder 'Palette'. 
Därefter väljs i den undre delen av Paletten under 'ConGrafcet' 

- 'StepDiv' för förgrening 

- 'StepConv' för sammanföring 

Parallel Sequences



De speciella förbindningslinjerna vid parallella sekvenser ( förgrening resp. 
sammanföring) skapas på liknande sätt som vid alternativa sekvenser. Välj i 
den undre delen av Paletten under 'ConGrafcet' 

- 'TransDiv' för förgrening 

- 'TransConv' för sammanföring 

varefter förbindningarna skapas på vanligt sätt. Förhållandet att vid parallella 
sekvenser förgreningen utgår från ett Trans-objekt och sammanföring sker till 
ett Trans-objekt återkommer alltså i namnet på motsvarande linjeobjekt. 

Exempel




Connections to the Step Objects in a Straight Sequence 

Det är viktigt att känna till skillnaden mellan att koppla ett objekt direkt 
till ett Step-objekt och att koppla det till ett Order-objekt; se figuren ovan. 
Antag ett StoDv-objekt. Ansluts objektet direkt till ett steg kommer det att 
evalueras varje gång PLC-programmet exekveras. I figuren ovan betyder detta att: 

- 'Dv1' sätts så länge steget 'S1' är aktivt, eftersom Setxx objekt exekveras 
   endast då villkoret är uppfyllt, dvs. Dv:n förblir satt också sedan 'S1' 
   blivit inaktivt. 
- 'Do1' får värdet TRUE så länge 'S1' är aktiv och värdet FALSE då 'S1' är inaktiv. 
   Om 'Do1' skulle sättas från något annat objekt sedan S1 blivit inaktiv skulle 
   den därför genast nollställas av 'S1' 

Om å andra sidan objektet är kopplat tilll ett Order-objekt kommer det att 
evalueras varje gång PLC-programmet exekveras med aktivt Order-objekt plus en 
gång därefter med inaktivt Order-objekt, dvs precis som om objektet placerats i 
ett s.k aktivitetsfönster. Övrig logik direkt kopplade till Order-objektets 
utgång evalueras varje gång PLC- programmet exekverar. I figuren ovan innebär 
detta att: 

- 'Do2' är satt så länge 'ORD2' är aktiv och noll då 'ORD2' är inaktiv; dvs Do2 
  ger en puls. Om 'Do2' sätts från annat objekt sedan 'ORD2' blivit inaktiv 
  kommer den inte att nollställas, eftersom orderlistan för ORD2 inte evalueras 
  längre. 
- 'Do0' sätts till FALSE så länge 'ORD2' är aktiv. 
 
Alternative Sequences 

Vid alternativa sekvenser förutsätts att överföringsvillkoren skiljer sig åt på 
något sätt. I exemplet enligt figuren ovan ska t.ex vid varje tillfälle högst 
ett av villkoren T0, T1, T2 eller T7 vara uppfyllt. Om samtidigt mer än ett villkor 
är uppfyllt kan man inte förutsäga vilken gren som kommer att exekveras. 

De speciella förbindningslinjerna vid alternativa sekvenser (förgrening resp. 
sammanföring) skapas på följande sätt: Välj i PLC Editorn, innan anslutningarna 
görs, i View-menyn 'Connections' och därunder 'Palette'. Därefter väljs i den undre 
delen av Paletten under 'ConGrafcet' 

- 'StepDiv' för förgrening 

- 'StepConv' för sammanföring 

varefter förbindningarna skapas på vanligt sätt. Förhållandet att vid alternativa 
sekvenser förgreningen utgår från ett steg och sammanföring sker till ett steg 
återkommer alltså i namnet på motsvarande linjeobjekt.

Parallella sekvenser används då exekveringen ska fortsätta i parallella grenar. 
Figuren nedan visar ett exempel med två parallella grenar. När S13 är aktivt och 
övergångsvillkoret T1 blir uppfyllt sker övergången, dvs. S14 och S15 sätts aktiva 
och S13 inaktiv. Därefter kommer de parallella grenarna att exekver oberoende av 
varandra.

Eftersom turordningen för när respektive gren blir klar kan variera avslutas 
grenarna lämligen med väntesteg (dvs. med steg utan aktivitet) och Cond sätts till 
TRUE i det efterföljande övergångsvillkoret (i exemplet T4). Sammanföringen till 
huvudgrenen kommer då att ske när alla grenar nått sitt väntesteg. I figuren nedan
betyder det att om både S16 och S17 är aktiva, samtidigt som T4 är uppfyllt, sätts 
S18 aktiv samtidigt som S16 och S17 blir inaktiva.  

Parallel Sequences 

De speciella förbindningslinjerna vid parallella sekvenser ( förgrening resp. 
sammanföring) skapas på liknande sätt som vid alternativa sekvenser. Välj i den 
undre delen av Paletten under 'ConGrafcet' 

- 'TransDiv' för förgrening 

- 'TransConv' för sammanföring 

varefter förbindningarna skapas på vanligt sätt. Förhållandet att vid parallella 
sekvenser förgreningen utgår från ett Trans-objekt och sammanföring sker till ett 
Trans-objekt återkommer alltså i namnet på motsvarande linjeobjekt. 
 
A Sequential Chain with Repetition of a Step 

Figuren ovan visar att exekveringsordning också kan gå bakåt i en sekvenskedja. 


RtBody attributes pwr_sClass_step
Boolean Status sts1
Boolean Status2 sts2
Array of Boolean Order Order Order[0] anger stegets tillstånd. FALSE betyder inaktivt steg och TRUE innebär att
steget är aktivt. Värdet kan plockas upp i annat program med hjälp av GetDp –
objekt.

Order [1] är en kopia av Order [0]. Trans-objekt tittar i Order [0] och Order
[1].

I strukturbeskrivningen och vid referenser betecknas attributet 'Status[1]'.

DevBody attributes 
PlcNode PlcNode  


GraphPlcNode
object_type 30
parameters[0] 0
parameters[1] 0
parameters[2] 3
parameters[3] 0
subwindows 0
graphmethod 4 (special)
graphindex 2
default_mask[0] 0
default_mask[1] 7
segname_annotation 1
compmethod 14
compindex 1
tracemethod 7
traceindex 1
executeordermethod 4
objname S
graphname S
debugpar Order[0]


Attributes detail


Status Output
Klass Output
Typ Boolean
Flags STATE | RTVIRTUAL | INVISIBLE
GraphName sts1
Kropp RtBody

Status2 Output
Klass Output
Typ Boolean
Flags STATE | RTVIRTUAL | INVISIBLE
GraphName sts2
Kropp RtBody

Order Output
Klass Output
Typ Array of Boolean
Flags ARRAY | STATE | NOEDIT | NOREMOVE | REDUTRANSFER
Elements 2
GraphName Order
Kropp RtBody
Order[0] anger stegets tillstånd. FALSE betyder inaktivt steg och TRUE innebär att 
steget är aktivt. Värdet kan plockas upp i annat program med hjälp av GetDp –
objekt.

Order [1] är en kopia av Order [0]. Trans-objekt tittar i Order [0] och Order 
[1]. 

I strukturbeskrivningen och vid referenser betecknas attributet 'Status[1]'. 

PlcNode Buffer
Klass Buffer
Typ PlcNode
Flags INVISIBLE
Kropp DevBody