Class Pos3P
|
Version |
1.0 |
|
Modified |
15-JAN-2025 13:23:36.00 |
|
Kod |
rt_plc_pid.c |
|
Tre-lägesregulator, 'Positional 3-step controller', med lägesåterföring och
dödzon. 'Positional' syftar på insignalen till OUT-ingången 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 tidsproportionella mot ingången.

Precis som för Inc3P är det möjligt att styra med utgångarna ope / clos
och/eller signaler vars namn finns i DoOpen / DoClose . Utgångarna och
signalerna kan sättas till TRUE med den frekvens som PlcPgm-objektet anger.
Men bara signaler kan sättas FALSE genom timerstyrningen . Pulslängden på
utgångarna, ope och clos , blir en heltalsmultipel PLC programmets cykeltid.
Objektet har en inbyggd timerstyrning för bättre upplösning vid frånslag
eftersom tidsstyrningen alltid evalueras med PLC-jobbets bascykeltid. Om
Pos3P-objektet ingår i ett PlcPgm , som kör med bascykeltiden, ger
timerstyrningen inte denna fördel.
Om timerstyrning används är det lämpligt att införa signalerna på ett sätt som
liknar det som användes för t.ex GetAp-objekt:
Välj, i 'Navigator', aktuellt PLC program och startan PLC Editorn med hjälp av
MB3 (= högra knappen på 3-knappars mus).
Välj i PLC Editorn 'Edit' under Mode-menyn och skapa ett Pos3P-objekt.
Behåll fönstret med PLC Editorn uppe men välj Navigator-fönstret som aktivt
fönster vari aktuellt Do-objekt markeras.
Ctrl/dubbelklicka med MB1 ( vänstra knappen på 3-knappars mus) i -- övre
delen av Pos3P -symbolen om det är 'öka'-signal och i nedre delen om det
gäller en 'minska'-signal.
Om en utsignal ska sättas eller ej beror på storleken av reglerfelet OutVal - Pos
och de separata dödzonerna ErrSo och ErrSta . Dödzonerna gör att en del
pulser, som i längden skulle kunna skada utrustningen, då reglerelementets läge
är 'ganska bra' aldrig genereras.

Varaktigheten på DoOpen / DoClose signalerna, pulslängden, är lika med
Gain · | ( OutVal t - Pos t ) |
Om pulslängden är mindre än PLC programmets cykeltid nollställes DoOpen /
DoClose av timerstyrningen innan PLC programmets nästa cykel startas.
Timerstyrning används också av Inc3P objekt.
Exempel
Timerstyrning
Antag flödesreglering med elektriska ställdon för öka/minska styrning.
Flödet ges av signalen 'kalle2' och ventilläget 'Ai1'.
En lösning visas i figuren nedan. Notera att det är Pid-objektets
'positionerutgång' som används. Curve-objektets närvaro kan motiveras
om ventilkarakteristiken är kraftigt olinjär.

Se även
RtBody attributes pwr_sClass_pos3p |
Float32 |
OutVal |
OUT |
Börvärdesposition. Ansluts ofta till OUT-utgången i ett Pid-objekt. |
Float32 |
Pos |
POS |
Ärvärdet. Återkoppling av aktuell position. |
Boolean |
Open |
ope |
Driftsorder. TRUE betyder öppna ( upp, öka, höger eller vad annars som kan
vara relevant för utgången). FALSE innebär ingen åtgärd. |
Boolean |
Close |
clo |
Driftsorder. TRUE betyder stäng ( ned, minska, vänster eller vad annars som
kan vara relevant för utgången). FALSE innebär ingen åtgärd. |
Float32 |
Gain |
Gain |
Förstärkning, i sekunder, per styrsignalenhet. Ofta är styrsignalen i området 0 -
100 %. Antag att gångtiden, tiden för att köra t.ex en ventil från fullt stängt till
fullt öppet, kan mätas. Välj då Gain som total gångtid dividerat med
signalområdet; här (100 - 0 ).
Gain används bara vid timerstyrning av utgångar. |
Float32 |
ErrSta |
ErrSta |
Dödzon. Attributet anger det värde som absolutvärdet av reglerfelet, OutVal t -
Pos t , ska över skrida innan en driftsorder ( Open eller Close ) blir TRUE.
Det gäller att 0 = ErrSto = ErrSta |
Float32 |
ErrSto |
ErrSto |
Dödzon. Attributet anger det värde som absolutvärdet av reglerfelet, OutVal t -
Pos t , ska under skrida innan en pågående driftsorder tas bort; Open eller
Close blir FALSE.
Det gäller att 0 = ErrSto = ErrSta |
Pointer to Boolean |
OpenP |
|
|
Pointer to Boolean |
CloseP |
|
|
Boolean |
TimerFlag |
|
Markerar aktiv timer. |
Pointer to Boolean |
TimerNext |
|
Pekar på nästa element i timer kö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. |
DevBody attributes |
AttrRef |
DoOpen |
|
Namn på extern 'öppna'-signal, t.ex Do - eller Dv-objekt vid timerstyrning.
även om DoOpen definierats hanterar objektet Open . |
AttrRef |
DoClose |
|
Namn på extern 'stäng'-signal, t.ex Do - eller Dv-objekt vid timerstyrning.
även om DoClose definierats hanterar objektet Close . |
PlcNode |
PlcNode |
|
|
GraphPlcNode |
object_type |
152 |
parameters[0] |
2 |
parameters[1] |
0 |
parameters[2] |
2 |
parameters[3] |
0 |
subwindows |
0 |
graphmethod |
2 (standard, two textfield) |
graphindex |
0 |
default_mask[0] |
3 |
default_mask[1] |
3 |
segname_annotation |
3 |
devbody_annotation |
1 |
compmethod |
23 |
compindex |
0 |
connectmethod |
0 |
executeordermethod |
2 |
objname |
Pos3P |
graphname |
Pos3P |
debugpar |
|
Attributes detail
Börvärdesposition. Ansluts ofta till OUT-utgången i ett Pid-objekt.
Ärvärdet. Återkoppling av aktuell position.
Driftsorder. TRUE betyder öppna ( upp, öka, höger eller vad annars som kan
vara relevant för utgången). FALSE innebär ingen åtgärd.
Driftsorder. TRUE betyder stäng ( ned, minska, vänster eller vad annars som
kan vara relevant för utgången). FALSE innebär ingen åtgärd.
Förstärkning, i sekunder, per styrsignalenhet. Ofta är styrsignalen i området 0 -
100 %. Antag att gångtiden, tiden för att köra t.ex en ventil från fullt stängt till
fullt öppet, kan mätas. Välj då Gain som total gångtid dividerat med
signalområdet; här (100 - 0 ).
Gain används bara vid timerstyrning av utgångar.
Dödzon. Attributet anger det värde som absolutvärdet av reglerfelet, OutVal t -
Pos t , ska över skrida innan en driftsorder ( Open eller Close ) blir TRUE.
Det gäller att 0 = ErrSto = ErrSta
Dödzon. Attributet anger det värde som absolutvärdet av reglerfelet, OutVal t -
Pos t , ska under skrida innan en pågående driftsorder tas bort; Open eller
Close blir FALSE.
Det gäller att 0 = ErrSto = ErrSta
Pekar på nästa element i timer kö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.
Namn på extern 'öppna'-signal, t.ex Do - eller Dv-objekt vid timerstyrning.
även om DoOpen definierats hanterar objektet Open .
Namn på extern 'stäng'-signal, t.ex Do - eller Dv-objekt vid timerstyrning.
även om DoClose definierats hanterar objektet Close .