Class Posit
|
Version |
1.0 |
|
Modified |
15-JAN-2025 13:23:35.00 |
|
Kod |
rt_plc_drive.c |
|
Positionerare. Används för positionering.

Positioneringen, som utförs utan hysteres, görs med utgångarna o1 och o2 .
Två driftlägen finns, MANUAL / AUTO. Driftläge väljs med hjälp av
ManMode på följande sätt:

För Posit-objekt gäller att styrningen i MANUAL sköts internt på samma sätt
som i AUTO. Skillnaden mellan MANUAL / AUTO ligger väsentligen i hur
positioneringen startas/stoppas.
NB! I andra objekt ( Pid , MValve , Valve , Drive etc) betyder MANUAL att
operatören direkt betsämmer utsignalen till storlek/riktning eller TRUE/FALSE
-- men så är det inte i Posit-objekt.
MANUAL
Läge MANUAL är tänkt att hanteras från objektets objektbild.
Denna saknas dock f.n.
* Börvärdet anges i SetPos.
* Positioneringen startas då PosOn blir TRUE.
* Olika händeser kan avsluta positioneringen:

- ärvärdet har hållit i sig i dödzonintervallet, dvs. målområdet, under der tid
som anges av TimerTime.
- PosOn blir FALSE.
- (insignalen) Reset blir TRUE.
AUTO
* Positioneringen begärs vid positiv flank på AutoPos.
* Olika händelser kan avsluta positioneringen:
- TimerTime > 0. Ärvärdet har hållit i sig i dödzonintervallet, dvs. målområdet,
under den tid som anges av TimerTime. En ny positionering begärs genom
positiv flank på AutoPos, dvs. inte på grund av att PosVal är utanför
målområdet.
- TimerTime <= 0. Positioneringen avslutas aldrig utan fortsätter följa SetPos
tills att Reset blir TRUE.
- (insignalen) Reset blir TRUE.
Exempel
Positionsstyrd vagn
Med hjäp av tryckknappen, TK_start, begärs start positionering.
Positioneringen sker mot det av 'Potentiometer' satta värdet. Positioneringen
avbryts så snart vagnen de senaste 5 sekunderna befunnit sig i målområdet.

Vagnens färdriktning styrs av Order1 och Order2 och av en analog referens,
'Referens'. Farten bör vara låg då vagnen ligger nära börvärdet och vice versa.
Därför bör Table-objektet definiera en funktion med följande utseende.

RtBody attributes pwr_sClass_posit |
Float32 |
PosVal |
PV |
Anger positionens ärvärde; P rocess V alue. |
Float32 |
SetPos |
SV |
Anger, oberoende av driftläge, positionens börvärde ( S etpoint V alue). |
Boolean |
AutoPos |
pos |
Anger, i läge AUTO, om positionering begärts eller ej. FALSE saknar
betydelse. övergången FALSE -> TRUE betyder att positionering begärs och
om Reset är FALSE, blir PosOn TRUE och positioneringen startar. |
Boolean |
Reset |
res |
Anger, oberoende av driftläge, om positioneringen ska blockeras eller ej.
FALSE saknar betydelse. Positioneringen stoppas så länge attributet är TRUE. |
Boolean |
ManMode |
man |
Anger valt driftläge ( MANUAL eller AUTO). Attributet används som en
traditionell parameter, dvs man kan skriva/läsa i den från olika program.
Tanken med att placera attributet som ett utgångsattribut är att attributet då
enklare kan användas i den grafiska konfigurationen. FALSE betyder att
AUTO gäller och TRUE att driftläget är MANUAL. |
Boolean |
PosOn |
pon |
Anger om positionering pågår eller ej. FALSE betyder att ingen positionering
pågår f.n. och TRUE innebär positionering pågår.
I läge MANUAL startas positioneringen, om Reset är FALSE, genom att
PosOn sätts TRUE och stoppas då PosOn sätts FALSE. |
Boolean |
Order1 |
o1 |
'Backward order', dvs körning så att värdet på PosVal minskar. FALSE betyder
ingen 'backward order' och TRUE innebär 'backward order' så länge som
PosVal > SetPos + DeadZone1 och positionering begärs. |
Boolean |
Order2 |
o2 |
'Forward order', dvs körning så att värdet på PosVal växer. FALSE betyder
ingen 'forward order' och TRUE innebär 'forward order' så länge som PosVal <
SetPos - DeadZone2 och positionering begärs. |
Boolean |
InPlace |
inp |
Anger om PosVal är i målområdet eller ej. FALSE betyder att så inte är fallet
TRUE att svaret är ja. |
Float32 |
PosError |
ERR |
Anger aktuellt positionsfel (= PosVal - SetPos ). |
Float32 |
DeadZone1 |
DeadZone1 |
Värdet, som ska vara >= 0, anger målområdets undre gräns.
|
Float32 |
DeadZone2 |
DeadZone2 |
Värdet, som ska vara >= 0, anger målområdets övre gräns. |
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 inte används, på TimerDoDum.
Efter tiden TimerTime tas den signal, som utpekas av TimerDo , ned. |
Float32 |
TimerTime |
|
Anger, i sekunder, den tid som PosVal ska ligga i målområdet för att
positioneringen ska avbrytas. Attributet beaktas enbart i läge AUTO. Se ovan. |
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. |
Int32 |
TimerAcc |
|
Ej implementerad funktion. Anger operatörens behörighet att ändra TimerTime
. Följande behörigheter är möjliga:
0 -- Ingen växling tillåten
? 0 -- Växling tillåten. |
Float32 |
TimerMin |
|
Anger minsta tillåtna värde vid operatörsändring av TimerTime.
TimerMin <= TimerTime <= TimerMax |
Float32 |
TimerMax |
|
Anger största tillåtna värde vid operatörsändring av TimerTime.
TimerMin <= TimerTime <= TimerMax |
Int32 |
ManAcc |
ManAcc |
|
Float32 |
ShowMin |
ShowMin |
|
Float32 |
ShowMax |
ShowMax |
|
Int32 |
SetAcc |
SetAcc |
|
Float32 |
SetMin |
SetMin |
|
Float32 |
SetMax |
SetMax |
|
GraphPlcNode |
object_type |
183 |
parameters[0] |
4 |
parameters[1] |
0 |
parameters[2] |
6 |
parameters[3] |
0 |
subwindows |
0 |
graphmethod |
0 (standard, individual attributes) |
graphindex |
0 |
default_mask[0] |
15 |
default_mask[1] |
30 |
segname_annotation |
1 |
compmethod |
4 |
compindex |
0 |
executeordermethod |
2 |
objname |
Posit |
graphname |
Posit |
debugpar |
|
Template Object |
TimerTime |
10.0 |
Attributes detail
Anger positionens ärvärde; P rocess V alue.
Anger, oberoende av driftläge, positionens börvärde ( S etpoint V alue).
Anger, i läge AUTO, om positionering begärts eller ej. FALSE saknar
betydelse. övergången FALSE -> TRUE betyder att positionering begärs och
om Reset är FALSE, blir PosOn TRUE och positioneringen startar.
Anger, oberoende av driftläge, om positioneringen ska blockeras eller ej.
FALSE saknar betydelse. Positioneringen stoppas så länge attributet är TRUE.
Anger valt driftläge ( MANUAL eller AUTO). Attributet används som en
traditionell parameter, dvs man kan skriva/läsa i den från olika program.
Tanken med att placera attributet som ett utgångsattribut är att attributet då
enklare kan användas i den grafiska konfigurationen. FALSE betyder att
AUTO gäller och TRUE att driftläget är MANUAL.
Anger om positionering pågår eller ej. FALSE betyder att ingen positionering
pågår f.n. och TRUE innebär positionering pågår.
I läge MANUAL startas positioneringen, om Reset är FALSE, genom att
PosOn sätts TRUE och stoppas då PosOn sätts FALSE.
'Backward order', dvs körning så att värdet på PosVal minskar. FALSE betyder
ingen 'backward order' och TRUE innebär 'backward order' så länge som
PosVal > SetPos + DeadZone1 och positionering begärs.
'Forward order', dvs körning så att värdet på PosVal växer. FALSE betyder
ingen 'forward order' och TRUE innebär 'forward order' så länge som PosVal <
SetPos - DeadZone2 och positionering begärs.
Anger om PosVal är i målområdet eller ej. FALSE betyder att så inte är fallet
TRUE att svaret är ja.
Anger aktuellt positionsfel (= PosVal - SetPos ).
Värdet, som ska vara >= 0, anger målområdets undre gräns.

Värdet, som ska vara >= 0, anger målområdets övre gräns.
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 inte används, på TimerDoDum.
Efter tiden TimerTime tas den signal, som utpekas av TimerDo , ned.
Anger, i sekunder, den tid som PosVal ska ligga i målområdet för att
positioneringen ska avbrytas. Attributet beaktas enbart i läge AUTO. Se ovan.
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.
Ej implementerad funktion. Anger operatörens behörighet att ändra TimerTime
. Följande behörigheter är möjliga:
0 -- Ingen växling tillåten
? 0 -- Växling tillåten.
Anger minsta tillåtna värde vid operatörsändring av TimerTime.
TimerMin <= TimerTime <= TimerMax
Anger största tillåtna värde vid operatörsändring av TimerTime.
TimerMin <= TimerTime <= TimerMax