Class PID
Version 1.0
Modified 26-MAY-2023 14:29:26.00
Kod rt_plc_pid.c
Implementerar olika former av PID reglering. 

Bra att veta


I normalfallet används Pidobjekt tillsammans med ett Modeobjekt. Gäller även
CompPID och CompMode.
Modeobjektet spelar då rollen av interface till Pidobjektet. Från Modeobjektet är 
det möjligt att välja MANUAL, AUTO och CASCADE: 
 
   - Manual mod är en mod när regulatorns utsignal är tvångsstyrd till önskat 
     värde.   
   - Auto mod är en mod när regulatorns arbetar med internt börvärde från 
     modobjektet.
   
   - Cascade mod (kaskad) är en mod där regulatorns arbetar med ett externt
     börvärde, dvs modobjektets ingång XSetVal [XSV].
    

Regulatorn



Algoritmens proportionella term respektive derivata term kan baseras antingen på 
ärvärdet eller reglerfelet. 
PidAlg anger fördelningen.
Exempel: PI+D innebär att P-delen och I-delen verkar på regleravvikelsen, medan 
D-delen bara påverkas av ärvärdesförändringar. En stegändring av börvärdet ger 
inte någon spik från D-delen, utan bara en stegändring från P-delen, och sedan 
en integrering av reglerfelet.
I+P innebär på samma sätt att P-delen bara påverkas av ärvärdesförändringar. Vid 
en stegändring av börvärdet får vi inget steg på utgången. Utstyrningen ändras 
bara genom att det större reglerfelet börjar integrera utsignalen.

Vid P- och PD-algoritm används en absolut algoritm. Utsignalen kan då alltså inte 
ligga stabilt skilt från noll utan regleravvikelse, annat än om man använder en 
framkopplingssignal. Om flaggan PDAbsFlag sitter, så beräknas en offset i manuell mod,
så att vi får en stötfri övergång till auto.
Vid alla algoritmer med I-del delas utsignalen upp i två delar ned hjälp av masken WindupMask.
I-delen ingår alltid i OutWindup, medanBias, P-delen och D-delen kan tillhöra antingen OutWindup
eller AbsOut.
OutWindup begränsas av MinWindup och MaxWindup, vilket sätter flaggorna EndMin och EndMax.
Resten av utsignalen lagras i AbsOut, och total utsignal begränsas med MinOut och MaxOut
Man kan även stänga av integrereringen med en insignal till objektet.
 
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 regleralgoritmen,
från operatören i läge  MANUAL eller vara ett s.k. tvångsstyrningsvärde.
Signalen används för t ex varvtalsutstyrning, eller som börvärdesposition till 
ett ställdon.
OC (attributet OutChange ) anger hur ställdonet ska ändras mellan två successiva 
exekveringar.
I detta fall talar man om algoritmens 'velocity' eller 'incremental form'.
Detta är användbart för ställdon som bara har öka- och minska-signaler, utan 
lägesåterföring. Används då normalt med INC3P-objektet, som integrerar 
förändringarna och omvandlar till tid för öka resp minska.
OutChange fortsätter att ge signal, även OutVal bottnat i MinOut eller MaxOut.

Derivata termen filtreras internt med 1:a ordningens filter. Filtreringen kopplas 
bort genom att sätta DerGain = 0, men regleringen blir då ofta mycket störkänslig.
Normalt är DerGain ca 3, vilket innebär att utsignalen påverkas momentant 3 ggr 
så mycket av derivatadelen som av P-delen. Derivatatillskottet smetas sedan ut 
över tiden, så att det totala integrerade tillskottet blir lika stort som den 
skulle bli utan filtrering.
 
En framkopplingssignal, Bias, kan inkluderas i algoritmen genom en ingångssignal 
till objektet. Förstärkning framkoppling anges med BiasGain.

Regulatorns utsignal OutVal är uppdelad i två delar, OutWindup och AbsOut.
I-delen innefattas alltid i OutWindup. Med WindupMask kan man styra även Bias,
P-delen och D-delen till OutWindup.
OutWindup, begränsas till intervallet { MinWindup, MaxWindup }. Det innebär att 
man kan tappa det stabila läget vid en orolig reglering, speciellt vid inkopplad 
D-del. Om man sätter flaggan WindupMask till BIP, så tar man bort D-delens inflytande 
på OutWindup. Man kan även sätta den till BI eller I för att ta bort P-delen och
Bias från OutWindup.
Den totala utsignalen OutVal begränsas till intervallet { MinOut , MaxOut }.

Exempel: Vi har en ganska orolig flödesreglering (utsignal 0-100 %) och reglerar 
nära maxvarvet för pumpen. WindupMask = BPID. Vi behöver styra ut i snitt 98 % för 
att nå önskat börvärde. Utsignalen fladdrar ca +- 5 % pga störningar. 
Om MaxWindup är 100 %, så innebär det att regulatorn bottnar regelbundet. Utsignalen 
kommer då att svänga mellan 90 och 100 % med en medelutsignal på ca 95%, och vi når inte önskat 
börvärde.
Lösning: Sätt WindupMask till I eller BI. Störningarna kommer inte att  påverka MaxWindup.

För en servoventil med positionsreglering, kan man vilja ha en långsam I-del för läckagekontroll,
begränsad till +- 20 %. Sätt WindupMask till I eller BI.
Sätt MinWindup = -20% och MaxWindup till +20%, MinOutput = -100 %, MaxOutput = 100 %
EndMin och EndMax kan användas för läckagelarm.


Regulatorn har stötfri omkoppling AUTO / MANUAL och efter annan tvångsstyrning av 
regulatorn.
Dock ej vid P- eller PD-reglering, om man har PDAbsFlag satt.
 
EXEMPEL 1

Exempelkurvor för att visa P- och Delens inverkan vid olika typinställningar. 
Insignal steg och ramp.


Övre delen:
Brun kurva.  Ärvärde (samma som P-del från regulatorn). Steg samt ramp.
Lila kurva.  Utsignal från PD med Kp = 1, DerTime = 10s, DerGain = 3.

Nedre delen -  D-del från regulatorn.
Grön kurva.  DerTime = 10s. Ingen filtrering (DerGain = 0). Notera spiken vid 
             stegändringen.
Gul kurva.   DerTime = 10s. Filtrerad D-del DerGain = 3.
Blå kurva.   DerTime = 20s. Filtrerad D-del DerGain = 3.


EXEMPEL 2 för att visa skillnaden mellan PID, PI+D och I+PD vid återkopplat
system och stegförändring av börvärdet:


I+PD (uppe till vänster) börjar sakta integrera upp styrsignalen vid stegändring.
PI+D (uppe till höger) ger ett stegsvar som medför att vi får en snabbare 
     reglering till nya börvärdet.
PID  (nere till vänster) ger en kort spik vid stegändringen. Denna regulator har 
     MaxOut = 500%
PID  (nere till höger) är identisk med föregående, men har MaxOut = 100%, vilket 
     ger "bakvänt" resultat. P ger ca 30 % upp, D ger en spik på ca 90 % Totalt ca 
     155 % Regulatorn bottnar i 100 % utsignal, och när vi sedan tar bort D-spiken 
     på 90 % får regulatorn börja om från 10 % utsignal.

Exempel



Flödesreglering


Flödesreglering med varvtalsreglerad pump; se figur nedan (Speed Control of 
a Pump). 

- Börvärde sätts från externt optimeringsprogram (Av-signalen OptFlow) t.ex 
  1 gång / 10 min eller direkt av operatör. 
- Börja med styrsignalen 0 vid pumpstart. 
 
Speed Control of a Pump 

En principlösning för styrning av den varvtalsreglerade pumpen visas i figuren
nedan (Configuration of Speed Control of a Pump) 

 
Configuration of Speed Control of a Pump 

Mode-objektets attribut modifieras enligt följande: 
 
Pid-objektets attribut modifieras enligt följande: 
 
Insignalen på fo1-ingången tillsammans med OpMod-attributet i Mode-objektet 
bestämer aktuellt driftfall. 

OpMod = MANUAL (=1)
  Då Mode-objektets for-utgång blir TRUE tvingas Pid-objekt utgång
  anta värdet på FOV-ingången.

  Vid ändring av driftläge, AUTO --> MANUAL, innehåller ForcVal styr-
  signalens ( OutVal ) senaste värde. Detta är ett bra värde att starta
  manuella ändringar utifrån.

  I detta driftläge kan operatören ändra ForcVal liksom börvärdet SetVal.
  MinOut och MaxOut, i Pid-objektet, utgör ingen begränsning i läge
  MANUAL. 

OpMod = AUTO (=2)
  Operatören sätter flödesbörvärdet SetVal. Värdet ska ligga i intervallet
  MinSet till MaxSet. Optimeringsbörvärdet XSetVal ignoreras.

  Regulatorns styrsignal, OutVal varierar i intervallet MinOut till
  MaxOut.

  Mode-objektet avläser Pid-objektets OutVal och lagrar värdet i
  utgången ForcVal så länge AUTO gäller. 

OpMod = CASCADE (=4)
  Det externa optimeringsbörvärdet i XSetVal kopieras över till SetVal.
  Pid-objektet reglerar mot detta börvärde.

Force1 = 1 PUMP STOP
  Oberoende av värdet på OpMod tvångsstyrs regulatorns styrsignal till
  ForcVal = XForcVal (=0), dvs MinOut och MaxOut utgör ingen
  begrgänsning vid tvångsstyrning.

Alternativa regulatorer med följning


 
Shunt Control 

Genom shuntreglering över värmeväxlaren, skall TT1-temperaturen hållas 
konstant i sekundärnätet. TT2-temperaturen på returflödet till pannan ('BOILER') 
får dock inte understiga daggpunkttemperaturen vilket skulle kunna ske vid stora 
effektuttag. 

Vid låg primärtemperatur väljs TT2-reglering. Då driftsförhållanden medger sker 
återgång till TT1-reglering. 

I läge MANUAL sker styrningen med TT1-regulatorn. TIC2 får ej läggas i MANUAL. 
Se figur nedan (PLC program with Alternative Controllers). 

Inställningar 

... i Mode-objektet TIC1M har valts: 

- AccMod = 3 , dvs AUTO / MANUAL är båda tillåtna. 
- OpMod = AUTO, betyder att operatören sätter SetVal
        = MANUAL, betyder att operatören sätter utsignalen ForcVal 

... i Pid-objektet TIC1 har valts: 

- Inverse = TRUE, dvs. låg TT1-temperatur medför ökat flöde genom värmeväxlaren. 

... i Mode-objektet TIC2M har valts: 

- AccMod = 2 , dvs. endast AUTO 
- Konstruktören sätter gränsvärdet, dvs minvärdet av TT2, i SetVal 

... i Pid-objektet TIC2 har valts: 

- Inverse = FALSE, dvs. omvänt styringrepp, vid låga TT2-temperaturer minskar 
  flödet genom värmeväxlaren, by-pass flödet ökar. 
  
PLC program with Alternative Controllers 

Driftfall: 

- Normal drift. TIC1 i AUTO. TIC2 följer i tvångsstyrning. 
- TT2 låg. TIC1 väljer i tvångsstyrning. 
- TIC1M i MANUELL. TIC1 ställer ut operatörens värde från TICM. ForcVal . 
- TIC2 följer i tvångsstyrning. 
- TIC2 återgår till AUTO då TT2 går under gränsen 
- Flödet genom värmeväxlaren är tillräckligt för att TT1-temperaturen ska gå 
  över börvärdet. Växla till TT1-reglering, dvs TIC1 styr shuntventilen. 

Kaskad reglering



Temperaturreglering i ugn med två separata bränsleflödesloopar, med undantag 
för förbränningsluftregleringen, visas i figuren nedan. TT avser en temperatur 
transmitter, FT flödes transmittrar och FIC flödesregulatorer. TIC är en 
temperatur regulator 
 
Block Diagram for Temperature Control 

Alla Pid-objekt har Inverse satt till TRUE. Lösningen bör kompletteras med 
tvångsstyrning av TIC1M till medelflöde då ingen FICx ligger i kaskad. En 
realiseringen visas i figuren nedan (Traditional Cascade Configuration). 

Traditional Cascade Configuration 

Gemensam eller individuell styrning av flera reglerloopar


I figuren nedan (Two Levels with Mode Objects in a Control Loop) delar två 
reglerloopar en gemensamma mode-instans för synkront uppträdande i AUTO och 
MANUAL. Men varje enskild loop kan också styras individuellt från separata 
Mode-objekt med internt börvärde och egen manuell utsignal. Den individuella 
styrningen överrider den gemensamma. 

Two Levels with Mode Objects in a Control Loop 

Kvotreglering ('ratio control')


Figuren nedan (Addition of a Reagent) visar tillsats av en reagens. 
Blandningsförhållandet ska hållas konstant oberoende av FT2-flödet. FT är 
flödestransmittern och FIC flödesregulatorn. 

Addition of a Reagent 

En realisering visas i figuren nedan (Ratio Control). Regleringen kan ske i 
AUTO (= operatören ger kvotbörvärde) eller MANUAL ( = operatören ger själv 
utsignalens storlek). Kvotärvärdet bör kontrollers för att förhindra division 
med noll. 
 
Ratio Control 

Objektsbild

Se även


RtBody attributes pwr_sClass_pid
Float32 ProcVal PV Ärvärdet (PROCess VALue).
Float32 SetVal SV Börvärdet (SETpoint VALue). Ingången kopplas ofta till motsvarande utgång
på det associerade Mode-objektet.
Float32 Bias BIS Framkopplingsvärdet ( 'feed forward value'). Attributet kan ändras från Pid -
objektets MERbild.
Float32 ForcVal FOV Tvångsstyrningsvärdet. Då Force är TRUE sätts OutVal = ForcVal . Ingången
kopplas ofta till motsvarande utgång på det associerade Mode-objektet.
Boolean Force for Anger om något av alternativen tvångsstyrning / MANUAL gäller eller ej.
FALSE betyder att inget av dessa alternativ är förhanden; TRUE innebär att
antingen tvångsstyrning eller MANUAL valts. Ingången kopplas ofta till
motsvarande utgång på det associerade Mode-objektet.
Boolean IntOff iof Anger om integrationen kopplats bort eller ej. FALSE betyder att
integrationstermen ska vara med; TRUE innebär att integrationen kopplats
bort. Attributet kan ändras från Pid-objektets MERbild.
Float32 OutVal OUT Regulatorns syrsignal. Värdet baseras på algoritmens 'positional form', från
operatören i läge MANUAL eller på ett s.k. tvångsstyrningsvärde.
Float32 OutChange OC Regulatorns syrsignal baserad på 'incremental form', eller förändring i styrsignalen
vid 'positional form'.
Attributet avser styrsignalsförändringen mellan två konsekutiva exekveringar;
dvs. OutVal t - OutVal t-1 .
Float32 ControlDiff DIF Reglerfelet (= ProcVal - SetVal ).
Boolean EndMax max Se EndMin
Boolean EndMin min Om beräknat värde på OutWindup inte tillhör intervallet { MinWindup , MaxWindup } ska
begränsning ske till motsvarande intervallgräns. Attributet anger om sådan
begränsning skett vid den senaste exekveringen eller ej.

Om begränsning görs mot

-- MinWindup , ska EndMin sättas TRUE
-- MaxWindup , ska EndMax sättas TRUE

annars är de FALSE.

EndMin / EndMax kan endast sättas i driftläge AUTO och CASCADE. Se
också EndHys nedan.
PidAlgEnum PidAlg PidAlg Det finns åtskilliga diskreta variationer av PID algoritmen. PidAlg anger det
aktuella valet. Följande realiseringar finns att välja mellan:

1 -- I I-regulator. Regulator med endast I-verkan.
Gain används inte.

3 -- I + P Integrerande regulator med proportionell regler-
verkan. P-termen baseras på ärvärdet ProcVal.

6 -- P P-regulator. Ger endast proportionell reglerverkan.

7 -- PI PI-regulator. Regulator som ger proportionell och
integrerande reglerverkan.
P-termen baseras på reglerfelet ControlDiff.

11 -- I + PD Integrerande regulator med proportionell deriverande
reglerverkan.
Både P- och D-termen baseras på ärvärdet ProcVal.

14 -- P + D Proportionell regulator med deriverande reglerverkan.
P baseras på reglerfelet, D på ärvärdet.

15 -- PI + D Proportionell integrerande regulator med deriverande
reglerverkan. P-termen baseras på reglerfelet ControlDiff,
D på ärvärdet value.

30 -- PD PD-regulator. Regulator som ger proportionell och
deriverande reglerverkan.
Både P- och D-termen baseras på reglerfelet.

31 -- PID PID-regulator. Regulator som ger proportionell
integrerande och deriverande reglerverkan. Både P- och
D-termen baseras på reglerfelet.
Float32 Gain Gain Proportionalitetsfaktorn. Anger förstärkningen; = 0.

Värdet kan ändras från Pid-objektets MERbild.
Float32 IntTime IntTime Anger, i sekunder, integrationstiden.

Värdet kan ändras från Pid-objektets MERbild.
Float32 DerTime DerTime Anger deriveringstiden i sekunder.

Normalt gäller att DerTime är större än ScanTime och
1.0 = DerGain <
Float32 DerGain DerGain Derivatatermens bidrag till styrsignalen kan filteraras i ett 1:a ordningens filter.
Attributet definierar filtret. Om,
1.0 = DerGain < , annars ingen filtrering

DerGain är normalt i storleksordningen 3 till 4.

Värdet kan ändras från Pid-objektets MERbild.
Boolean Inverse Inverse Anger om reglerverkan ska ske inverterat eller ej. FALSE betyder att ett vid
oförändrat börvärde spontant växande ärvärde möts av en ökande styrsignal,
dvs. omvänd reglerverkan. TRUE är normalfallet, då ett spontant ökande
ärvärde möts med en minskande styrsignal.
Float32 BiasGain BiasGain Anger framkopplingens förstärkning; faktorn får vara negativ.

Värdet kan ändras från Pid-objektets MERbild.
Boolean PDAbsFlag PDAbsFlag Anger att utsignalen beräknas direkt med regleravvikelsen.
Vid nollvärde beräknas en offset i manuell mod, så att vi får stötfri övergång till auto.
WindupMaskEnum WindupMask WindupMask Möjliga värden är:
1 -- I Bara I-delen begränsas i OutWindup
2 -- BI I-delen och Bias begränsas i OutWindup
4 -- BIP Också P-delen begränsas i OutWindup
8 -- BIPD Hela utsignalen, även D-delen begränsas i OutWindup
Float32 MinWindup MinWindup I driftläge AUTO och CASCADE ska den utställda styrsignalen OutWindup vara i
intervallet { MinWindup , MaxWindup }. Flaggorna EndMin / EndMax används för att
signalera då begränsning sker.
Om OutWindup är större än MaxWindup eller mindre än MinWindup , begränsas OutWindup
till värdet av motsvarande intervallgräns.
Om MinWindup >= MaxWindup sker ingen begränsning.
Float32 MaxWindup MaxWindup Se MinOut
Float32 MinOut MinOut I driftläge AUTO och CASCADE ska den utställda styrsignlaen OutVal vara i
intervallet { MinOut , MaxOut }.
Om OutVal är större än MaxOut eller mindre än MinOut , begränsas OutVal
till värdet av motsvarande intervallgräns.
Om MinOut >= MaxOut sker ingen begränsning.
Float32 MaxOut MaxOut Se MinOut
Float32 EndHys EndHys Anger hysteresen på MinOut och MaxOut i samband med manövreringen av
EndMin / EndMax flaggorna.
Float32 SetMinShow SetMinShow Skalområdets nedre gräns vid presentation av ProcVal och SetVal i
Pid-objektets objektbild.

Värdena kan ändras från Pid-objektets MERbild.
Float32 SetMaxShow SetMaxShow Skalområdets övre gräns vid presentation av ProcVal och SetVal i
Pid-objektets objektbild.

Värdena kan ändras från Pid-objektets MERbild.
String16 SetEngUnit SetEngUnit Anger ingenjörsenheten på SetMinShow / SetMaxShow , t.ex. meter. Används
i Pid-objektets objektbild.
FloatPrecisionEnum SetPrecision   Specifies the number of characters displayed after the decimal point
for set value and process value in the object graph.
Float32 OutMinShow OutMinShow Skalområdets nedre gräns vid presentation av OutVal i Pid-objektets
objektbild.

Värdena kan ändras från Pid-objektets MERbild.
Float32 OutMaxShow OutMaxShow Skalområdets övre gräns vid presentation av OutVal i Pid-objektets
objektbild.

Värdena kan ändras från Pid-objektets MERbild.
String16 OutEngUnit OutEngUnit Anger ingenjörsenheten på OutMinShow / OutMaxShow , t.ex. %. Används i
Pid-objektets objektbild.
FloatPrecisionEnum OutPrecision   Specifies the number of characters displayed after the decimal point
for output value in the object graph.
Float32 TrendTimeRange   Specifies time range for the trends in the object graph.
Pointer to Float32 ScanTime ScanTime Programcykeltid i sekunder. Initieras automatiskt vid kompilering.
Int32 AccGain AccGain Ej implementerad funktion. Anger operatörens behörighet att ändra värde på
Gain resp. IntTime . Följande behörigheter är möjliga:

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten.
Int32 AccInt AccInt Ej implementerad funktion. Anger operatörens behörighet att ändra värde på
Gain resp. IntTime . Följande behörigheter är möjliga:

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten.
Int32 AccDer AccDer Ej implementerad funktion. Anger operatörens behörighet att ändra värde på
DerTime. Följande behörigheter är möjliga:

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten.
Int32 AccDGain AccDGain Ej implementerad funktion. Anger operatörens behörighet att ändra värde på
DerGain . Följande behörigheter är möjliga:

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten.
Int32 AccBias AccBias Ej implementerad funktion. Anger operatörens behörighet att ändra värde på
Bias. Följande behörigheter är möjliga:

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten.
Int32 AccBGain AccBGain Ej implementerad funktion. Anger operatörens behörighet att ändra värde på
BiasGain . Följande behörigheter är möjliga:

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten.
Float32 MinGain MinGain Minsta tillåtna värde vid operatörsändring av Gain.
Float32 MaxGain MaxGain Största tillåtna värde vid operatörsändring av Gain.
Float32 MinInt MinInt Minsta tillåtna värde vid operatörsändring av IntTim.
Float32 MaxInt MaxInt Största tillåtna värde vid operatörsändring av IntTim.
Float32 MinDer MinDer Minsta tillåtna värde vid operatörsändring av DerTim .
Float32 MaxDer MaxDer Största tillåtna värde vid operatörsändring av DerTim .
Float32 MinDGain MinDGain The minimum and maximum allowed value of DerGain at
changes made by an operator.
Float32 MaxDGain MaxDGain
Float32 MinBias MinBias Minsta tillåtna värde vid operatörsändring av Gain .
Float32 MaxBias MaxBias Största tillåtna värde vid operatörsändring av Gain .
Float32 MinBGain MinBGain Minsta tillåtna värde vid operatörsändring av BiasGain .
Float32 MaxBGain MaxBGain Största tillåtna värde vid operatörsändring av BiasGain .
Objid ModeObjDId ModeObjDId Anger fullständigt namn på det med Pid-objektet associerade Mode-objektet.
Attributet gör det möjligt att via knapp i Pid-objektets objektbild starta
objektbilden för det associerade Mode-objektet.
Float32 FiltDer FiltDer Filtrerad derivata sparas till nästa exekevering.
Float32 PDManOffset PDManOffset Offset beräknas i manuell mod, och används vid P och PD-algoritm
för att få stötfri övergång till auto.
Float64 OutWindup OutWindup Utsignal som begränsas av MinWindup och MaxWindup
Float64 AbsOut AbsOut Utsignaldel som ligger utanför OutWindup

DevBody attributes 
PlcNode PlcNode  


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


Template Object
PidAlg 3
Gain 1.0
IntTime 120.0
MaxOut 100
DerGain 3.0
BiasGain 1.0
Inverse 1
AccGain 15
AccInt 15
AccDer 15
AccBias 15
AccBGain 15
MinGain 0.1
MaxGain 10.0
MinInt 10.0
MaxInt 600.0
MaxDer 20.0
MaxBias 100.0
MinBGain -100.0
MaxBGain 100.0
OutMaxShow 100.0
SetMaxShow 100.0
SetEngUnit %
SetPrecision 1
OutEngUnit %
OutPrecision 1
TrendTimeRange 100
WindupMask 4
MaxWindup 100.0


Attributes detail


ProcVal Input
Klass Input
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName PV
Kropp RtBody
Ärvärdet (PROCess VALue). 

SetVal Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName SV
Kropp RtBody
Börvärdet (SETpoint VALue). Ingången kopplas ofta till motsvarande utgång 
på det associerade Mode-objektet. 

Bias Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName BIS
Kropp RtBody
Framkopplingsvärdet ( 'feed forward value'). Attributet kan ändras från Pid - 
objektets MERbild. 

ForcVal Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName FOV
Kropp RtBody
Tvångsstyrningsvärdet. Då Force är TRUE sätts OutVal = ForcVal . Ingången 
kopplas ofta till motsvarande utgång på det associerade Mode-objektet. 

Force Input
Klass Input
Typ Boolean
Flags NOINVERT | REDUTRANSFER
GraphName for
Kropp RtBody
Anger om något av alternativen tvångsstyrning / MANUAL gäller eller ej. 
FALSE betyder att inget av dessa alternativ är förhanden; TRUE innebär att 
antingen tvångsstyrning eller MANUAL valts. Ingången kopplas ofta till 
motsvarande utgång på det associerade Mode-objektet. 

IntOff Input
Klass Input
Typ Boolean
Flags STATE | NOEDIT | NOINVERT | REDUTRANSFER
GraphName iof
Kropp RtBody
Anger om integrationen kopplats bort eller ej. FALSE betyder att 
integrationstermen ska vara med; TRUE innebär att integrationen kopplats 
bort. Attributet kan ändras från Pid-objektets MERbild. 

OutVal Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OUT
Kropp RtBody
Regulatorns syrsignal. Värdet baseras på algoritmens 'positional form', från 
operatören i läge MANUAL eller på ett s.k. tvångsstyrningsvärde. 

OutChange Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OC
Kropp RtBody
Regulatorns syrsignal baserad på 'incremental form', eller förändring i styrsignalen
vid 'positional form'.
Attributet avser styrsignalsförändringen mellan två konsekutiva exekveringar; 
dvs. OutVal t - OutVal t-1 . 

ControlDiff Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName DIF
Kropp RtBody
Reglerfelet (= ProcVal - SetVal ). 

EndMax Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName max
Kropp RtBody
Se EndMin

EndMin Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName min
Kropp RtBody
Om beräknat värde på OutWindup inte tillhör intervallet { MinWindup , MaxWindup } ska 
begränsning ske till motsvarande intervallgräns. Attributet anger om sådan 
begränsning skett vid den senaste exekveringen eller ej. 

Om begränsning görs mot 

-- MinWindup , ska EndMin sättas TRUE
-- MaxWindup , ska EndMax sättas TRUE 

annars är de FALSE. 

EndMin / EndMax kan endast sättas i driftläge AUTO och CASCADE. Se 
också EndHys nedan. 

PidAlg Intern
Klass Intern
Typ PidAlgEnum
Flags REDUTRANSFER
GraphName PidAlg
Kropp RtBody
Det finns åtskilliga diskreta variationer av PID algoritmen. PidAlg anger det 
aktuella valet. Följande realiseringar finns att välja mellan: 

1 -- I I-regulator. Regulator med endast I-verkan.
Gain används inte.

3 -- I + P Integrerande regulator med proportionell regler-
verkan. P-termen baseras på ärvärdet ProcVal.

6 -- P P-regulator. Ger endast proportionell reglerverkan.

7 -- PI PI-regulator. Regulator som ger proportionell och
integrerande reglerverkan.
P-termen baseras på reglerfelet ControlDiff.

11 -- I + PD Integrerande regulator med proportionell deriverande
reglerverkan.
Både P- och D-termen baseras på ärvärdet ProcVal.

14 -- P + D Proportionell regulator med deriverande reglerverkan.
P baseras på reglerfelet, D på ärvärdet.

15 -- PI + D Proportionell integrerande regulator med deriverande
reglerverkan. P-termen baseras på reglerfelet ControlDiff,
D på ärvärdet value.

30 -- PD PD-regulator. Regulator som ger proportionell och
deriverande reglerverkan.
Både P- och D-termen baseras på reglerfelet.

31 -- PID PID-regulator. Regulator som ger proportionell
integrerande och deriverande reglerverkan. Både P- och
D-termen baseras på reglerfelet.

Gain Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName Gain
Kropp RtBody
Proportionalitetsfaktorn. Anger förstärkningen; = 0.

Värdet kan ändras från Pid-objektets MERbild. 

IntTime Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName IntTime
Kropp RtBody
Anger, i sekunder, integrationstiden.

Värdet kan ändras från Pid-objektets MERbild. 

DerTime Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName DerTime
Kropp RtBody
Anger deriveringstiden i sekunder.

Normalt gäller att DerTime är större än ScanTime och
1.0 = DerGain <  

DerGain Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName DerGain
Kropp RtBody
Derivatatermens bidrag till styrsignalen kan filteraras i ett 1:a ordningens filter. 
Attributet definierar filtret. Om,
1.0 = DerGain <  , annars ingen filtrering 

DerGain är normalt i storleksordningen 3 till 4. 

Värdet kan ändras från Pid-objektets MERbild. 

Inverse Intern
Klass Intern
Typ Boolean
Flags REDUTRANSFER
GraphName Inverse
Kropp RtBody
Anger om reglerverkan ska ske inverterat eller ej. FALSE betyder att ett vid 
oförändrat börvärde spontant växande ärvärde möts av en ökande styrsignal, 
dvs. omvänd reglerverkan. TRUE är normalfallet, då ett spontant ökande 
ärvärde möts med en minskande styrsignal. 

BiasGain Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName BiasGain
Kropp RtBody
Anger framkopplingens förstärkning; faktorn får vara negativ.

Värdet kan ändras från Pid-objektets MERbild. 

PDAbsFlag Intern
Klass Intern
Typ Boolean
Flags REDUTRANSFER
GraphName PDAbsFlag
Kropp RtBody
Anger att utsignalen beräknas direkt med regleravvikelsen.
Vid nollvärde beräknas en offset i manuell mod, så att vi får stötfri övergång till auto. 

WindupMask Intern
Klass Intern
Typ WindupMaskEnum
Flags
GraphName WindupMask
Kropp RtBody
Möjliga värden är:
1  -- I		Bara I-delen begränsas i OutWindup
2  -- BI	I-delen och Bias begränsas i OutWindup
4  -- BIP	Också P-delen begränsas i OutWindup
8  -- BIPD	Hela utsignalen, även D-delen begränsas i OutWindup

MinWindup Intern
Klass Intern
Typ Float32
Flags
GraphName MinWindup
Kropp RtBody
I driftläge AUTO och CASCADE ska den utställda styrsignalen OutWindup vara i 
intervallet { MinWindup , MaxWindup }. Flaggorna EndMin / EndMax används för att 
signalera då begränsning sker.
Om OutWindup är större än MaxWindup eller mindre än MinWindup , begränsas OutWindup 
till värdet av motsvarande intervallgräns.
Om MinWindup >= MaxWindup sker ingen begränsning. 

MaxWindup Intern
Klass Intern
Typ Float32
Flags
GraphName MaxWindup
Kropp RtBody
Se MinOut

MinOut Intern
Klass Intern
Typ Float32
Flags
GraphName MinOut
Kropp RtBody
I driftläge AUTO och CASCADE ska den utställda styrsignlaen OutVal vara i 
intervallet { MinOut , MaxOut }.
Om OutVal är större än MaxOut eller mindre än MinOut , begränsas OutVal 
till värdet av motsvarande intervallgräns.
Om MinOut >= MaxOut sker ingen begränsning. 

MaxOut Intern
Klass Intern
Typ Float32
Flags
GraphName MaxOut
Kropp RtBody
Se MinOut

EndHys Intern
Klass Intern
Typ Float32
Flags
GraphName EndHys
Kropp RtBody
Anger hysteresen på MinOut och MaxOut i samband med manövreringen av 
EndMin / EndMax flaggorna. 

SetMinShow Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName SetMinShow
Kropp RtBody
Skalområdets nedre gräns vid presentation av ProcVal och SetVal i 
Pid-objektets objektbild. 

Värdena kan ändras från Pid-objektets MERbild. 

SetMaxShow Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName SetMaxShow
Kropp RtBody
Skalområdets övre gräns vid presentation av ProcVal och SetVal i 
Pid-objektets objektbild. 

Värdena kan ändras från Pid-objektets MERbild. 

SetEngUnit Intern
Klass Intern
Typ String16
Flags
GraphName SetEngUnit
Kropp RtBody
Anger ingenjörsenheten på SetMinShow / SetMaxShow , t.ex. meter. Används 
i Pid-objektets objektbild. 

SetPrecision Intern
Klass Intern
Typ FloatPrecisionEnum
Flags
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
Skalområdets nedre gräns vid presentation av OutVal i Pid-objektets 
objektbild. 

Värdena kan ändras från Pid-objektets MERbild. 

OutMaxShow Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName OutMaxShow
Kropp RtBody
Skalområdets övre gräns vid presentation av OutVal i Pid-objektets 
objektbild. 

Värdena kan ändras från Pid-objektets MERbild. 

OutEngUnit Intern
Klass Intern
Typ String16
Flags
GraphName OutEngUnit
Kropp RtBody
Anger ingenjörsenheten på OutMinShow / OutMaxShow , t.ex. %. Används i 
Pid-objektets objektbild. 

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

TrendTimeRange Intern
Klass Intern
Typ Float32
Flags
Kropp RtBody
 Specifies time range for the trends in the object graph.

ScanTime Intern
Klass Intern
Typ Pointer to Float32
Flags INVISIBLE | POINTER | PRIVATE
GraphName ScanTime
Kropp RtBody
Programcykeltid i sekunder. Initieras automatiskt vid kompilering. 

AccGain Intern
Klass Intern
Typ Int32
Flags
GraphName AccGain
Kropp RtBody
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på 
Gain resp. IntTime . Följande behörigheter är möjliga: 

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

AccInt Intern
Klass Intern
Typ Int32
Flags
GraphName AccInt
Kropp RtBody
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på 
Gain resp. IntTime . Följande behörigheter är möjliga: 

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

AccDer Intern
Klass Intern
Typ Int32
Flags
GraphName AccDer
Kropp RtBody
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på 
DerTime. Följande behörigheter är möjliga: 

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

AccDGain Intern
Klass Intern
Typ Int32
Flags
GraphName AccDGain
Kropp RtBody
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på 
DerGain . Följande behörigheter är möjliga: 

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

AccBias Intern
Klass Intern
Typ Int32
Flags
GraphName AccBias
Kropp RtBody
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på 
Bias. Följande behörigheter är möjliga: 

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

AccBGain Intern
Klass Intern
Typ Int32
Flags
GraphName AccBGain
Kropp RtBody
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på 
BiasGain . Följande behörigheter är möjliga: 

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

MinGain Intern
Klass Intern
Typ Float32
Flags
GraphName MinGain
Kropp RtBody
Minsta tillåtna värde vid operatörsändring av Gain. 

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

MinInt Intern
Klass Intern
Typ Float32
Flags
GraphName MinInt
Kropp RtBody
Minsta tillåtna värde vid operatörsändring av IntTim. 

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

MinDer Intern
Klass Intern
Typ Float32
Flags
GraphName MinDer
Kropp RtBody
Minsta tillåtna värde vid operatörsändring av DerTim . 

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

MinDGain Intern
Klass Intern
Typ Float32
Flags
GraphName MinDGain
Kropp RtBody
 The minimum and maximum allowed value of DerGain at
 changes made by an operator.

MaxDGain Intern
Klass Intern
Typ Float32
Flags
GraphName MaxDGain
Kropp RtBody

MinBias Intern
Klass Intern
Typ Float32
Flags
GraphName MinBias
Kropp RtBody
Minsta tillåtna värde vid operatörsändring av Gain . 

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

MinBGain Intern
Klass Intern
Typ Float32
Flags
GraphName MinBGain
Kropp RtBody
Minsta tillåtna värde vid operatörsändring av BiasGain . 

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

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

FiltDer Intern
Klass Intern
Typ Float32
Flags INVISIBLE | STATE | NOEDIT | REDUTRANSFER
GraphName FiltDer
Kropp RtBody
Filtrerad derivata sparas till nästa exekevering. 

PDManOffset Intern
Klass Intern
Typ Float32
Flags INVISIBLE | STATE | NOEDIT | REDUTRANSFER
GraphName PDManOffset
Kropp RtBody
Offset beräknas i manuell mod, och används vid P och PD-algoritm 
för att få stötfri övergång till auto. 

OutWindup Intern
Klass Intern
Typ Float64
Flags INVISIBLE | STATE | NOEDIT | REDUTRANSFER
GraphName OutWindup
Kropp RtBody
Utsignal som begränsas av MinWindup och MaxWindup

AbsOut Intern
Klass Intern
Typ Float64
Flags INVISIBLE | STATE | NOEDIT | REDUTRANSFER
GraphName AbsOut
Kropp RtBody
Utsignaldel som ligger utanför OutWindup

PlcNode Buffer
Klass Buffer
Typ PlcNode
Flags INVISIBLE
Kropp DevBody