Class Inc3P
|
Version |
1.0 |
|
Modified |
15-JAN-2025 13:23:35.00 |
|
Kod |
rt_plc_pid.c |
|
Inkrementell 3 - punktsutgång med dödzon men utan lägesåterföring.
Inkrementell syftar på insignalen och trean på att tre diskreta order kan ges
med innebörden höger/vänster/ 0, upp/ner/0, öka/minska/0 etc. Utgångarna är
satta under en tid som är proportionell mot storleken på insignalen.

Insignalen OutChange betraktas som ett reglerfel. Detta fel överförs till en tid
genom multiplikation med Gain . Produkten adderas till ackumulatorn Acc.
Absolutvärdet av Acc begränsas till MaxWindup.
Om absolut värdet av Acc är större än MinTim sätts någon av utgångarna Open
eller Close till TRUE.
Om Acc > MinTim sätts 'öka' signalen (= Open ) så länge som Acc > 0 , om, å
andra sidan, Acc < - MinTim sätts 'minska' signalen (= Close ) så länge som
Acc < 0. Vid varje exekvering räknas värdet av Acc ned respektive upp med ett
tidsbelopp av ScanTime , beroende på om 'öka' eller 'minska' signalen satts.
För att undvika 'obefogade' styringrepp, som skulle kunna skada ställdon vid
små reglerfel, måste absolutvärdet av Acc -attributet överstiga värdet på den
ändringsbara dödzonen MinTim , innan någon reglersignal sätts.

Output Signals from an Inc3P
S.k. tidsproportionell reglering ('timerstyrning'), också använd av Pos3P.
Precis som för Pos3P är det möjligt att välja mellan att styra direkt med
utgångarna Open / Close och/eller indirekt med signaler angivna av DoOpen /
DoClose . Utgångar och signaler kan båda sätts TRUE med en frekvens som
följer av det aktuella PlcPgm-objektets ScanTime . Men det är endast signaler
som kan sättas FALSE av timerstyrningen .
Fördelen med timerstyrning är förbättrad upplösning då det aktuella PLC
programmet ej kör med PLC-jobbets bascykeltid. Timerstyrningen arbetar
alltid med PLC-jobbets bascykeltid. Om Inc3P-objektet ingår i ett PlcPgm som
kör med bascykeltiden, ger timerstyrningen inte denna fördel.
Exempel
Timerstyrning av utgångar
Antag en flödesreglering med elektriskt ställdon för öka/minska styrning.
Flödessignalen (här 'kalle2') fnns. En lösning visas i figuren nedan. Notera
att PID-objektets inkrementella utgång används.

Styrsignalerna har angivits vid DoOpen resp DoClose. Dess sista namnled
visas i Inc3p0-symbolen; här Do2 resp Do1.
Se även
RtBody attributes pwr_sClass_inc3p |
Float32 |
OutChange |
OC |
Styrsignalförändring. Hämtas i praktiken ofta från OutChange i ett Pid-objekt. |
Boolean |
Open |
ope |
Anger om utgången ska sättas eller ej. FALSE betyder ingen aktivitet; TRUE
innebär öppna ( upp, öka, höger eller vad som kan vara relevant i det enskilda
fallet). |
Boolean |
Close |
clo |
Anger om utgången ska sättas eller ej. FALSE betyder ingen aktivitet; TRUE
innebär stäng ( ned, minska, vänster eller vad som kan vara relevant i det
enskilda fallet). |
Pointer to Float32 |
ScanTime |
ScanTime |
Programcykeltid i sekunder. Lagras automatiskt vid kompilering. |
Float32 |
Gain |
Gain |
Förstärkning, i sekunder, per styrsignalenhet.
Ofta ligger styrsignalen i intervallet 0 - 100 %. Antag att gångtiden kan mätas,
t.ex tiden för att köra en ventil från fullt stängt till fullt öppet. Välj då Gain =
gångtid / skalområdet; (här är skalområdet = 100 - 0 ). |
Float32 |
MinTim |
MinTim |
Dödzon i sekunder; se beskrivning ovan. Om absolutvärdet av Acc är mindre
än MinTim sätts ingen av utgångarna TRUE. |
Float32 |
MaxTim |
MaxTim |
Maximal löptid i sekunder för integrering utan ingrepp. Om tiden MaxTim har
förlöpt utan att någon utsignal blivit TRUE nollställs Acc . |
Float32 |
MaxWindup |
MaxWindup |
Absolutvärdet av Acc begränsas till MaxWindupsekunder, för att undvika oändlig
uppvridning vid felsatta parametrar. Negativt eller noll ger ingen begränsning.
Bör vara nära gångtid från helt stängd till helt öppen. Default 30 sek. |
Pointer to Boolean |
OpenP |
|
|
Pointer to Boolean |
CloseP |
|
|
Boolean |
TimerFlag |
|
Markerar aktiv timer. |
Pointer to Boolean |
TimerNext |
|
Pekar på nästa element i timerkön. |
UInt32 |
TimerCount |
|
Antal återstående ticks. ( 1 tick = PLC-jobbets bascykeltid.) |
Pointer to Boolean |
TimerDO |
|
Pekar på ett Do eller Dv objekt eller, om sådant objekt inte används, på
TimerDoDum . Efter tiden TimerTime nollställs den av TimerDo angivna
signalen. |
Float32 |
TimerTime |
|
Fördröjning i sekunder. Anger när utgångarna ska sättas FALSE. TimerTime =
PLC-jobbets bascykeltid. |
Boolean |
TimerDODum |
|
Dummy. Om TimerDoDum inte pekar på ett Do eller Dv objekt pekar det hit. |
Objid |
TimerObjDId |
|
Identity of this object is set at load file creation.
Used by the run time system. |
Float32 |
Acc |
Acc |
Ackumulerad styrsignal - ingrepp i form av tid. |
Float32 |
AccTim |
AccTim |
Ackumulerad löptid utan ingrepp. |
DevBody attributes |
AttrRef |
DoOpen |
|
Vid timerstyrning anger attributet namn på extern signal, t.ex Do eller Dv (
svarande mot Open ); även om DoOpen anger en signal manövreras Open av
objektet. |
AttrRef |
DoClose |
|
Vid timerstyrning anger attributet namn på extern signal, t.ex Do eller Dv (
svarande mot Close ), även om DoClose anger en signal manövreras Close av
objektet. |
PlcNode |
PlcNode |
|
|
GraphPlcNode |
object_type |
153 |
parameters[0] |
1 |
parameters[1] |
0 |
parameters[2] |
2 |
parameters[3] |
0 |
subwindows |
0 |
graphmethod |
2 (standard, two textfield) |
graphindex |
0 |
default_mask[0] |
1 |
default_mask[1] |
3 |
segname_annotation |
3 |
devbody_annotation |
1 |
compmethod |
23 |
compindex |
0 |
connectmethod |
0 |
executeordermethod |
2 |
objname |
Inc3P |
graphname |
Inc3P |
debugpar |
|
Template Object |
Gain |
1.0 |
MaxWindup |
30.0 |
Attributes detail
Styrsignalförändring. Hämtas i praktiken ofta från OutChange i ett Pid-objekt.
Anger om utgången ska sättas eller ej. FALSE betyder ingen aktivitet; TRUE
innebär öppna ( upp, öka, höger eller vad som kan vara relevant i det enskilda
fallet).
Anger om utgången ska sättas eller ej. FALSE betyder ingen aktivitet; TRUE
innebär stäng ( ned, minska, vänster eller vad som kan vara relevant i det
enskilda fallet).
Programcykeltid i sekunder. Lagras automatiskt vid kompilering.
Förstärkning, i sekunder, per styrsignalenhet.
Ofta ligger styrsignalen i intervallet 0 - 100 %. Antag att gångtiden kan mätas,
t.ex tiden för att köra en ventil från fullt stängt till fullt öppet. Välj då Gain =
gångtid / skalområdet; (här är skalområdet = 100 - 0 ).
Dödzon i sekunder; se beskrivning ovan. Om absolutvärdet av Acc är mindre
än MinTim sätts ingen av utgångarna TRUE.
Maximal löptid i sekunder för integrering utan ingrepp. Om tiden MaxTim har
förlöpt utan att någon utsignal blivit TRUE nollställs Acc .
Absolutvärdet av Acc begränsas till MaxWindupsekunder, för att undvika oändlig
uppvridning vid felsatta parametrar. Negativt eller noll ger ingen begränsning.
Bör vara nära gångtid från helt stängd till helt öppen. Default 30 sek.
Pekar på nästa element i timerkön.
Antal återstående ticks. ( 1 tick = PLC-jobbets bascykeltid.)
Pekar på ett Do eller Dv objekt eller, om sådant objekt inte används, på
TimerDoDum . Efter tiden TimerTime nollställs den av TimerDo angivna
signalen.
Fördröjning i sekunder. Anger när utgångarna ska sättas FALSE. TimerTime =
PLC-jobbets bascykeltid.
Dummy. Om TimerDoDum inte pekar på ett Do eller Dv objekt pekar det hit.
Identity of this object is set at load file creation.
Used by the run time system.
Ackumulerad styrsignal - ingrepp i form av tid.
Ackumulerad löptid utan ingrepp.
Vid timerstyrning anger attributet namn på extern signal, t.ex Do eller Dv (
svarande mot Open ); även om DoOpen anger en signal manövreras Open av
objektet.
Vid timerstyrning anger attributet namn på extern signal, t.ex Do eller Dv (
svarande mot Close ), även om DoClose anger en signal manövreras Close av
objektet.