Class Mode
Version 2.0
Modified 26-MAY-2023 14:29:27.00
Kod rt_plc_pid.c
Hanterar val av reglermod (MANUAL / AUTO / CASCADE) och s.k. 
tvångsstyrning åt Pid-objekt. 

Följande reglermoder finns: 

MANUAL  -- då operatören själv sätter Pid-objektets styrsignal. 
AUTO    -- då operatören väljer börsvärde och Pid-objektet
           beräknar styrsignal. 
CASCADE -- utsignalen från ett objekt, t.ex. Pid-objekt, används som 
           börvärde av det med Mode-objektet associerade Pid-objektet. 
 

Tvångsstyrning innebär att Pid objektets OutVal baseras på Mode objektets 
attribut XForceVal , inte på PID-algoritmen.

Pid-objektet har två utgångar som båda kan användas som styrsignal. Vilken 
som används i det enskilda fallet beror på hur regleringen är ordnad: 

OUT (attributet OutVal ) innehåller ett värde som kan komma från 
evalueringen av PID-algoritmens 'positional form', från operatören i läge 
MANUAL eller vara ett s.k. tvångsstyrningsvärde. Kunskapen om var 
ställdonet ska stå ligger i detta fall på regulatorsidan eftersom hela värdet 
används. 
OC (attributet OutChange ) anger hur ställdonet ska ändras mellan två 
successiva programcykler. I detta fall talar man om PID-algoritmens 'velocity' 
eller 'incremental form'. 

Objektsbild


RtBody attributes pwr_sClass_mode
Float32 XSetVal XSV Externt börvärde (= Set point Val ue). Attributet används enbart i läge
CASCADE och då på så sätt att SetVal = XSetVal .
Float32 ProcVal PV ärvärde (= Proc ess Val ue). Attributet används i Mode objektets objektbild vid
visning av ärvärdet.
Float32 XForcVal XFO Externt tvångsstyrningsvärde (= Forc ed Val ue). Attributet används enbart vid
tvångsstyrning (dvs. Force1 eller Force2 är TRUE) och då på så sätt att
ForceVal = XForceVal .
Boolean Forc1 fo1 Anger om ovillkorlig tvångsstyrning valts eller ej.
Boolean Forc2 fo2 Anger, i läge AUTO och CASCADE, om tvångsstyrning valts eller ej.
Float32 OutVal OUT Då reglerkretsen sätts i läge MANUAL skulle processen få en större eller
mindre stöt ('bump') om värdet på ForcVal inledningsvis avvek från det
aktuella ärvärdet, ProcVal .

För att undvika detta gäller följande: Vid omkoppling till läge MANUAL
initieras internt FOV-utgången med värdet av OutVal . Alltså återstår att se till
att värdet på OutVal ger 'bumpless transfer'. Detta brukar lösas med en analog
återkoppling från Pid-objektets OUT -utgång.
Float32 SetVal SV Anger, i läge AUTO och CASCADE, aktuellt börvärde. Attributet kan i läge

- MANUAL och AUTO, ändras från Mode objektets objektbild

- CASCADE, internt tilldelas värdet av XSetVal .

Ofta ansluts utgången till motsvarande ingång på efterföljande Pid-objekt.
Float32 ForcVal FOV Normalt ansluts utgången till motsvarande ingång på efterföljande Pid-objekt.
Värdet på Pid-objektets utgångar OUT och OC kommer att baseras på ForcVal
i följande fall:

ovillkorlig tvångsstyrning, dvs Forc1 är TRUE och ForceVal = XForceVal
villkorlig (= reglermod är AUTO eller CASCADE) tvångsstyrning då Force2 =
TRUE och ForceVal = XForceVal
OpMod = MANUAL. ForcVal sätts av operatören, t.ex från Mode-objektets
objektbild.
Boolean Force for Normalt ansluts utgången till motsvarande ingång på efterföljande Pid - objekt.

Attributet anger för Pid-objektet om värdena till utgångarna OUT och OC ska
hämtas från algoritmen eller ej. FALSE betyder att AUTO eller CASCADE
gäller, dvs. värdena baseras på algoritmen. TRUE innebär att tvångskörning
eller MANUAL gäller och att värdena istället ska bygga på FOV-utgångens
värde.
Boolean AutMode aut Anger om reglermod AUTO valts eller ej. FALSE betyder att annan mode
gäller; TRUE innebär att AUTO valts.

Eftersom ett efterföljande Pid-objekt inte behöver skilja mellan AUTO och
CASCADE används attributet ofta för ren indikering.
Boolean CascMod cas Indicates if the control mode CASCADE is selected or
not. FALSE means that CASCADE is not the control mode;
TRUE means that CASCADE is the control mode.
A subsequent Pid object does not have to make any
distinction between AUTO or CASCADE, so this attribute
is often used only as information.
Boolean ManMode man Indicates if the control mode MANUAL is selected or not.
FALSE means that MANUAL is not the control mode; TRUE
means that MANUAL is the control mode.
This attribute is used only as information.
PidOpModeEnum OpMod OpMod Anger vald reglermod. Attributet kan ändras från Mode-objektets objektbild.

= 1 MANUAL. Operatören väljer regulatorns styrsignal. Regulatorns
styrsignal tvångsstyrs till angivet värde i ForceVal.

MinOut och MaxOut definierar styrsignalens tillåtna intervall.

= 2 AUTO. Operatören väljer börvärde, Regulatorns börvärde =
SetVal och styrsignalen räknar regulatorn fram.

MinSet och MaxSet definierar böbrvärdets tillåtna intervall.

= 4 CASCADE. Som i AUTO men regulatorns börvärde = XSetVal.


Illustrates the Connection between Forced Control and
Control Modes
PidModeEnum AccMod AccMod Anger operatörens behörighet att ändra värde på OpMod . Följande
behörigheter är möjliga:

1 -- Bara MANUAL 5 -- CASCADE / MANUAL
2 -- Bara AUTO 6 -- CASCADE / AUTO
3 -- MANUAL / AUTO 7 -- MANUAL / AUTO / CASCADE
4 -- Bara CASCADE
Int32 AccOut AccOut Ej implementerad funktion. Anger operatörens behörighet att ändra ForcVal .
Följande behörigheter är möjliga:

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten.
Float32 MinOut MinOut The choice of the operator of ForcVal is checked
against the interval { MinOut, MaxOut}. ForcVal may be
changed in the control mode MANUAL from the display of
the Mode object.
Float32 MaxOut MaxOut
Största tillåtna värde vid operatörsändring av ForcVal .

I läge MANUAL kan ForcVal ändras från Mode-objektets objektbild.
Int32 AccSet AccSet Ej implementerad funktion. Anger operatörens behörighet att ändra SetVal .
Följande behörigheter är möjliga:

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten.
Float32 MinSet MinSet The choice of the operator of SetVal is checked against
the interval { MinSet, MaxSet}. The value may be
changed in the control modes MANUAL and AUTO from the
display of the Mode object.
Float32 MaxSet MaxSet Största tillåtna värde vid operatörsändring av SetVal .

I läge MANUAL och AUTO kan SetcVal ändras från Mode-objektets
objektbild.
Float32 SetMinShow SetMinShow Undre gräns vid presentation av är-och börvärde i Mode-objektets
objektbild. Gränserna kan ändras från objektbilden.
Float32 SetMaxShow SetMaxShow Övre gräns vid presentation av är-och börvärde i Mode-objektets
objektbild. Gränserna kan ändras från objektbilden.
String16 SetEngUnit SetEngUnit Anger ingenjörsenheten för XSetVal / SetVal / SetMinShow / SetMaxShow, t.ex kg.
Används i Mode-objektets objektbild.
FloatPrecisionEnum SetPrecision SetPrecision Specifies the number of characters displayed after the decimal point
for set value and process value in the object graph.
Float32 OutMinShow OutMinShow Undre gräns vid presentation av Pid-objektets OutVal i Mode -
objektets objektbild. Gränserna kan ändras från Mode-objektets MERbild.
Float32 OutMaxShow OutMaxShow Övre gräns vid presentation av Pid-objektets OutVal i Mode -
objektets objektbild. Gränserna kan ändras från Mode-objektets MERbild.
String16 OutEngUnit OutEngUnit Anger ingenjörsenheten för XForcVal / OutVal /ForcVal / OutMinShow / OutMaxShow, t.ex %.
Används i Mode-objektets objektbild.
FloatPrecisionEnum OutPrecision OutPrecision Specifies the number of characters displayed after the decimal point
for output value in the object graph.
Float32 Error Error The difference between process value and set value.
Float32 ErrorMinShow ErrorMinShow The lower respectively upper limits in the graphical
display of the error in the object graph.
Float32 ErrorMaxShow ErrorMaxShow
Boolean AdjustableRanges   Specifies that the ranges for set value, process value and output
in the object graph can be adjusted.
Objid PidObjDId PidObjDId Anger fullständigt namn på det med Mode-objektet associerade Pid-objektet.
Attributet gör det möjligt att via knapp i Mode-objektets objektbild starta
objektbilden för det associerade Pid-objektet.

DevBody attributes 
PlcNode PlcNode  


GraphPlcNode
object_type 151
parameters[0] 6
parameters[1] 0
parameters[2] 5
parameters[3] 0
subwindows 0
graphmethod 0 (standard, individual attributes)
graphindex 0
default_mask[0] 35
default_mask[1] 7
segname_annotation 1
compmethod 4
compindex 0
executeordermethod 2
objname Mode
graphname Mode
debugpar


Template Object
OpMod 1
AccMod 3
AccOut 15
AccSet 15
MaxOut 100.0
MaxSet 100.0
OutMaxShow 100.0
SetMaxShow 100.0
OutEngUnit %
SetEngUnit %
SetPrecision 1
OutPrecision 1
ErrorMinShow -10.0
ErrorMaxShow 10.0


Attributes detail


XSetVal Input
Klass Input
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName XSV
Kropp RtBody
Externt börvärde (= Set point Val ue). Attributet används enbart i läge 
CASCADE och då på så sätt att SetVal = XSetVal . 

ProcVal Input
Klass Input
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName PV
Kropp RtBody
ärvärde (= Proc ess Val ue). Attributet används i Mode objektets objektbild vid 
visning av ärvärdet. 

XForcVal Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName XFO
Kropp RtBody
Externt tvångsstyrningsvärde (= Forc ed Val ue). Attributet används enbart vid 
tvångsstyrning (dvs. Force1 eller Force2 är TRUE) och då på så sätt att 
ForceVal = XForceVal . 

Forc1 Input
Klass Input
Typ Boolean
Flags STATE | NOEDIT | NOINVERT | REDUTRANSFER
GraphName fo1
Kropp RtBody
Anger om ovillkorlig tvångsstyrning valts eller ej.

Forc2 Input
Klass Input
Typ Boolean
Flags STATE | NOEDIT | NOINVERT | REDUTRANSFER
GraphName fo2
Kropp RtBody
Anger, i läge AUTO och CASCADE, om tvångsstyrning valts eller ej.

OutVal Input
Klass Input
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OUT
Kropp RtBody
Då reglerkretsen sätts i läge MANUAL skulle processen få en större eller 
mindre stöt ('bump') om värdet på ForcVal inledningsvis avvek från det 
aktuella ärvärdet, ProcVal . 

För att undvika detta gäller följande: Vid omkoppling till läge MANUAL 
initieras internt FOV-utgången med värdet av OutVal . Alltså återstår att se till 
att värdet på OutVal ger 'bumpless transfer'. Detta brukar lösas med en analog 
återkoppling från Pid-objektets OUT -utgång. 

SetVal Output
Klass Output
Typ Float32
Flags REDUTRANSFER
GraphName SV
Kropp RtBody
Anger, i läge AUTO och CASCADE, aktuellt börvärde. Attributet kan i läge 

- MANUAL och AUTO, ändras från Mode objektets objektbild 

- CASCADE, internt tilldelas värdet av XSetVal . 

Ofta ansluts utgången till motsvarande ingång på efterföljande Pid-objekt. 

ForcVal Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName FOV
Kropp RtBody
Normalt ansluts utgången till motsvarande ingång på efterföljande Pid-objekt. 
Värdet på Pid-objektets utgångar OUT och OC kommer att baseras på ForcVal 
i följande fall: 

ovillkorlig tvångsstyrning, dvs Forc1 är TRUE och ForceVal = XForceVal 
villkorlig (= reglermod är AUTO eller CASCADE) tvångsstyrning då Force2 = 
TRUE och ForceVal = XForceVal 
OpMod = MANUAL. ForcVal sätts av operatören, t.ex från Mode-objektets 
objektbild. 

Force Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName for
Kropp RtBody
Normalt ansluts utgången till motsvarande ingång på efterföljande Pid - objekt. 

Attributet anger för Pid-objektet om värdena till utgångarna OUT och OC ska 
hämtas från algoritmen eller ej. FALSE betyder att AUTO eller CASCADE 
gäller, dvs. värdena baseras på algoritmen. TRUE innebär att tvångskörning 
eller MANUAL gäller och att värdena istället ska bygga på FOV-utgångens 
värde. 

AutMode Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName aut
Kropp RtBody
Anger om reglermod AUTO valts eller ej. FALSE betyder att annan mode 
gäller; TRUE innebär att AUTO valts. 

Eftersom ett efterföljande Pid-objekt inte behöver skilja mellan AUTO och 
CASCADE används attributet ofta för ren indikering. 

CascMod Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName cas
Kropp RtBody
 Indicates if the control mode CASCADE is selected or
 not. FALSE means that CASCADE is not the control mode;
 TRUE means that CASCADE is the control mode.
 A subsequent Pid object does not have to make any
 distinction between AUTO or CASCADE, so this attribute
 is often used only as information.

ManMode Intern
Klass Intern
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName man
Kropp RtBody
 Indicates if the control mode MANUAL is selected or not.
 FALSE means that MANUAL is not the control mode; TRUE
 means that MANUAL is the control mode.
 This attribute is used only as information.

OpMod Intern
Klass Intern
Typ PidOpModeEnum
Flags REDUTRANSFER
GraphName OpMod
Kropp RtBody
Anger vald reglermod. Attributet kan ändras från Mode-objektets objektbild. 

= 1 MANUAL. Operatören väljer regulatorns styrsignal. Regulatorns
styrsignal tvångsstyrs till angivet värde i ForceVal.

MinOut och MaxOut definierar styrsignalens tillåtna intervall.

= 2 AUTO. Operatören väljer börvärde, Regulatorns börvärde = 
SetVal och styrsignalen räknar regulatorn fram.

MinSet och MaxSet definierar böbrvärdets tillåtna intervall.

= 4 CASCADE. Som i AUTO men regulatorns börvärde = XSetVal. 

 
Illustrates the Connection between Forced Control and
Control Modes 

AccMod Intern
Klass Intern
Typ PidModeEnum
Flags
GraphName AccMod
Kropp RtBody
Anger operatörens behörighet att ändra värde på OpMod . Följande 
behörigheter är möjliga: 

1 -- Bara MANUAL 5 -- CASCADE / MANUAL
2 -- Bara AUTO 6 -- CASCADE / AUTO
3 -- MANUAL / AUTO 7 -- MANUAL / AUTO / CASCADE
4 -- Bara CASCADE

AccOut Intern
Klass Intern
Typ Int32
Flags
GraphName AccOut
Kropp RtBody
Ej implementerad funktion. Anger operatörens behörighet att ändra ForcVal . 
Följande behörigheter är möjliga: 

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten. 

MinOut Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName MinOut
Kropp RtBody
 The choice of the operator of ForcVal is checked
 against the interval { MinOut, MaxOut}. ForcVal may be
 changed in the control mode MANUAL from the display of
 the Mode object.

MaxOut Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName MaxOut
Kropp RtBody

Största tillåtna värde vid operatörsändring av ForcVal . 

I läge MANUAL kan ForcVal ändras från Mode-objektets objektbild. 

AccSet Intern
Klass Intern
Typ Int32
Flags
GraphName AccSet
Kropp RtBody
Ej implementerad funktion. Anger operatörens behörighet att ändra SetVal . 
Följande behörigheter är möjliga: 

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten. 

MinSet Intern
Klass Intern
Typ Float32
Flags
GraphName MinSet
Kropp RtBody
 The choice of the operator of SetVal is checked against
 the interval { MinSet, MaxSet}. The value may be
 changed in the control modes MANUAL and AUTO from the
 display of the Mode object.

MaxSet Intern
Klass Intern
Typ Float32
Flags
GraphName MaxSet
Kropp RtBody
Största tillåtna värde vid operatörsändring av SetVal . 

I läge MANUAL och AUTO kan SetcVal ändras från Mode-objektets 
objektbild. 

SetMinShow Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName SetMinShow
Kropp RtBody
Undre gräns vid presentation av är-och börvärde i Mode-objektets 
objektbild. Gränserna kan ändras från objektbilden. 

SetMaxShow Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName SetMaxShow
Kropp RtBody
Övre gräns vid presentation av är-och börvärde i Mode-objektets 
objektbild. Gränserna kan ändras från objektbilden. 

SetEngUnit Intern
Klass Intern
Typ String16
Flags
GraphName SetEngUnit
Kropp RtBody
Anger ingenjörsenheten för XSetVal / SetVal / SetMinShow / SetMaxShow, t.ex kg.
Används i Mode-objektets objektbild. 

SetPrecision Intern
Klass Intern
Typ FloatPrecisionEnum
Flags
GraphName SetPrecision
Kropp RtBody
 Specifies the number of characters displayed after the decimal point
 for set value and process value in the object graph.

OutMinShow Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName OutMinShow
Kropp RtBody
Undre gräns vid presentation av Pid-objektets OutVal i Mode -
objektets objektbild. Gränserna kan ändras från Mode-objektets MERbild. 

OutMaxShow Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName OutMaxShow
Kropp RtBody
Övre gräns vid presentation av Pid-objektets OutVal i Mode -
objektets objektbild. Gränserna kan ändras från Mode-objektets MERbild. 

OutEngUnit Intern
Klass Intern
Typ String16
Flags
GraphName OutEngUnit
Kropp RtBody
Anger ingenjörsenheten för XForcVal / OutVal /ForcVal / OutMinShow / OutMaxShow, t.ex %.
Används i Mode-objektets objektbild. 

OutPrecision Intern
Klass Intern
Typ FloatPrecisionEnum
Flags
GraphName OutPrecision
Kropp RtBody
 Specifies the number of characters displayed after the decimal point
 for output value in the object graph.

Error Intern
Klass Intern
Typ Float32
Flags STATE | NOEDIT
GraphName Error
Kropp RtBody
 The difference between process value and set value.

ErrorMinShow Intern
Klass Intern
Typ Float32
Flags
GraphName ErrorMinShow
Kropp RtBody
 The lower respectively upper limits in the graphical
 display of the error in the object graph.

ErrorMaxShow Intern
Klass Intern
Typ Float32
Flags
GraphName ErrorMaxShow
Kropp RtBody

AdjustableRanges Intern
Klass Intern
Typ Boolean
Flags
Kropp RtBody
 Specifies that the ranges for set value, process value and output
 in the object graph can be adjusted.

PidObjDId Intern
Klass Intern
Typ Objid
Flags
GraphName PidObjDId
Kropp RtBody
Anger fullständigt namn på det med Mode-objektet associerade Pid-objektet. 
Attributet gör det möjligt att via knapp i Mode-objektets objektbild starta 
objektbilden för det associerade Pid-objektet. 

PlcNode Buffer
Klass Buffer
Typ PlcNode
Flags INVISIBLE
Kropp DevBody