Volume pwrb | |
Attributes: Runtime | Development | System | Template | Detail C Binding: Struct | Class | Code  ClassTree | INDEX NO INDEX |
Class PiPos![]() |
||
---|---|---|
Version | 1.0 | |
Modified | 15-JAN-2025 13:23:35.00 | |
Kod | rt_plc_io.c |
Översätter pulsräknarvärde till ingenjörsvärde (position, volym etc.).
Antag att ingenjörsvärdet är en position. Den aktuell positionen, ActVal , beräknas vid varje exekvering med hjälp av den linjära ekvationen ActVal = Gain · ( PulsIn - PiCal1 ) + PosCal1 Positionen beräknas relativt den kända positionen i 'calibration point 1' utifrån aktuell pulssignal, PulsIn , sparad pulssignal PiCal1 och sparad position, PosCal1 , i 'calibration point 1'. Förstärkningen, Gain , är antingen given eller beräknad med hjälp av en andra kalibreringspunkt, 'calibration point 2'.
Hur kalibreringen utförs beskrivs nedan under Calibration.
Bestämning av position genom kalibrering med hjälp av 'calibration point 1'. Det finns fyra olika sätt att bestämma position: Ingen kalibrering. Vid konfigureringen anges pulsvärdet PICal1 när ActVal är lika med den kända positionen PosCal1 . Metoden kan användas då pulsvärdet, vid konfigureringen, är känt för en bestämd position. Operatören kalibrerar. Operatören anger det styrda föremålets position CalPos1 och initierar därefter kalibreringen genom att sätta CalOrder1 . Automatisk kalibrering vid bestämd position. Koppla co1 -ingången till binär signal. Ange motsvarande position i CalPos1 . Vid positiv flank på CalOrder1 avläses pulsvärdet PulsIn och lagras i PICal1 och värdet i CalPos1 kopieras till PosCal1 . Automatisk kalibrering mot en varierande position. Som i fall 3) men CalPos1 kopplas också till en signal för den beräknade positionen. Vid positiv flank på CalOrder1 avläses pulsvärdet PulsIn och lagras i PICal1 och värdet PosCal1 uppdateras i enlighet med den externa signalen. Automatisk kalibrering bör ske vid låg hastighet för att undvika positionsfel Bestämning av förstärkningen (= Gain ) genom kalibrering med hjälp av 'calibration point 2' . Ingen kalibrering. Konstruktören anger Gain ; (= lägesdifferens per puls ). Detta är det normala förfarandet då konstruktören vet pulsgivarens karakteristik. Om omsättningsfaktorn betecknas Omsfak och Omsfak anger antal pulser per enhet, t.ex mm, grader etc. gäller att Gain =1 / Omsfak Moment 2- 4 som för positionskalibrering ovan. Först görs en kalibrering med hjälp av 'calibration point 1'. Därefter görs en kalibrering med hjälp av 'calibration point 2', varvid en ny position med tillhörande pulsvärde avläses. Därefter beräknas Gain . Automatisk kalibrering av förstärkningen är förmodligen ovanlig. Däremot kan det vara aktuellt med omkalibrering efter byte av pulsgivare eller vid förslitning av mäthjul.
RtBody attributes pwr_sClass_pipos | |||
---|---|---|---|
Int32 | PulsIn | PI | Pulsräknarvärde ( i form av heltal). T.ex kan pulsvärdet hämtas genom anslutning till PI-utgång på Count-objekt, till PI- eller PIX-utgång på GetPi - objekt. NB! Ansluts en analog signal, t.ex Av-signal, blir resultatet felaktigt. |
Float32 | CalPos1 | CP1 | Anger positionen i kalibreringspunkt 1. Värdet används vid positionskalibrering. Attributet kan tilldelas värde utvecklingsmiljön med hjälp av Objekts Editorn och i målmiljön med t.ex funktion i C eller PLC program. är motsvarande ingång ansluten sker uppdatering utifrån kopplad storhet. |
Boolean | CalOrder1 | co1 | 'Calibration order 1'. Flaggan anger om kalibrering av position ( se nedan under Calibration ) ska initieras eller ej. FALSE betyder ingen kalibrering. Övergången FALSE -> TRUE initierar 'calibration in point 1'. Pulsvärdet PulsIn avläses och lagras i PICal1 och värdet i CalPos1 kopieras över till PosCal1 . Lämnas ingången öppen kan attributet sättas t.ex via funktion i C-program. Sedan flaggan noterats ser ProviewR till att den tas ned. |
Float32 | CalPos2 | CP2 | Anger positionen i kalibreringspunkt 2. Värdet används vid kalibrering av förstärkningen, dvs av Gain . Attributet kan tilldelas värde i utvecklingsmiljön med hjälp av Objekts Editorn och i målmiljön med t.ex funktion i C eller PLC program. är motsvarande ingång ansluten sker uppdatering utifrån kopplad storhet. |
Boolean | CalOrder2 | co2 | 'Calibration order 2'. Flaggan anger om kalibrering av Gain ( se nedan under Calibration ) ska initieras eller ej. FALSE betyder ingen kalibrering. Övergången FALSE -> TRUE initierar 'calibration in point 2'. Lämnas ingången öppen kan attributet sättas t.ex via funktion i C-program. Sedan flaggan noterats ser ProviewR till att den tas ned. |
Float32 | ActVal | POS | Aktuell position. Enheten följer av enheten på Gain . Om Gain är i mm / puls blir ActVal i mm. |
Float32 | Gain | Gain | Antag att omsättningsfaktorn betecknas Omsfak . Om Omsfak anger antalet pulser per enhet, t.ex mm, grader etc. Gain erhålls då som 1 / Omsfak . Attributets värde är antingen givet eller beräknat; se nedan under Calibration |
Int32 | PICal1 | PICal1 | Pulsräknarvärde vid senaste positionskalibreringen i 'calibration at point 1'. Motsvarande ingenjörsvärde finns i PosCal1 . |
Boolean | CalOrder1Old | CalOrder1Old | Används för flankdetektering. |
Boolean | CalOrder2Old | CalOrder2Old | Används för flankdetektering. |
Float32 | PosCal1 | PosCal1 | Position vid senaste positionskalibrering enligt 'calibration at point 1'. Motsvarande pulsräknarvärde finns i PiCal11 . PosCal1 har samma dimension som ActVal . |
Float32 | PosCal2 | CalPos2 | Position vid senaste positionskalibrering enligt 'calibration at point 2'. Motsvarande pulsräknarvärde finns i PiCal12 . PosCal2 har samma dimension som ActVal . |
Int32 | AccCalPos1 | AccCalPos1 | Ej implementerad funktion. Anger operatörens behörighet att ändra värde på CalPos1. Följande behörigheter är möjliga: 0 -- Ingen ändring tillåten ? 0 -- ändring tillåten. |
Int32 | AccCalOrder1 | AccCalOrder1 | Ej implementerad funktion. Anger operatörens behörighet att ändra värde på CalOrder1. Följande behörigheter är möjliga: 0 -- Ingen ändring tillåten ? 0 -- ändring tillåten. |
Int32 | AccCalPos2 | AccCalPos2 | Ej implementerad funktion. Anger operatörens behörighet att ändra värde på CalPos2. Följande behörigheter är möjliga: 0 -- Ingen ändring tillåten ? 0 -- ändring tillåten. |
Int32 | AccCalOrder2 | AccCalOrder2 | Ej implementerad funktion. Anger operatörens behörighet att ändra värde på CalOrder2. Följande behörigheter är möjliga: 0 -- Ingen ändring tillåten ? 0 -- ändring tillåten. |
Float32 | MinCalPos1 | MinCalPos1 | Minsta tillåtna värde vid operatörsändring av CalPos1. |
Float32 | MaxCalPos1 | MaxCalPos1 | Största tillåtna värde vid operatörsändring av CalPos1. |
Float32 | MinCalPos2 | MinCalPos2 | Minsta tillåtna värde vid operatörsändring av CalPos2 . |
Float32 | MaxCalPos2 | MaxCalPos2 | Största tillåtna värde vid operatörsändring av CalPos2 . |
DevBody attributes | |||
---|---|---|---|
PlcNode | PlcNode |
GraphPlcNode | |
---|---|
object_type | 69 |
parameters[0] | 5 |
parameters[1] | 0 |
parameters[2] | 1 |
parameters[3] | 0 |
subwindows | 0 |
graphmethod | 0 (standard, individual attributes) |
graphindex | 0 |
default_mask[0] | 1 |
default_mask[1] | 1 |
segname_annotation | 1 |
compmethod | 4 |
compindex | 0 |
executeordermethod | 2 |
objname | PiPos |
graphname | PiPos |
debugpar |
Template Object | |
---|---|
Gain | 1.0 |
AccCalPos1 | 15 |
AccCalOrder1 | 15 |
PulsIn Input | ||
---|---|---|
Klass | Input | |
Typ | Int32 | |
Flags | STATE | NOEDIT | REDUTRANSFER | |
GraphName | PI | |
Kropp | RtBody |
Pulsräknarvärde ( i form av heltal). T.ex kan pulsvärdet hämtas genom anslutning till PI-utgång på Count-objekt, till PI- eller PIX-utgång på GetPi - objekt. NB! Ansluts en analog signal, t.ex Av-signal, blir resultatet felaktigt.
CalPos1 Input | ||
---|---|---|
Klass | Input | |
Typ | Float32 | |
Flags | REDUTRANSFER | |
GraphName | CP1 | |
Kropp | RtBody |
Anger positionen i kalibreringspunkt 1. Värdet används vid positionskalibrering. Attributet kan tilldelas värde utvecklingsmiljön med hjälp av Objekts Editorn och i målmiljön med t.ex funktion i C eller PLC program. är motsvarande ingång ansluten sker uppdatering utifrån kopplad storhet.
CalOrder1 Input | ||
---|---|---|
Klass | Input | |
Typ | Boolean | |
Flags | STATE | NOEDIT | NOINVERT | REDUTRANSFER | |
GraphName | co1 | |
Kropp | RtBody |
'Calibration order 1'. Flaggan anger om kalibrering av position ( se nedan under Calibration ) ska initieras eller ej. FALSE betyder ingen kalibrering. Övergången FALSE -> TRUE initierar 'calibration in point 1'. Pulsvärdet PulsIn avläses och lagras i PICal1 och värdet i CalPos1 kopieras över till PosCal1 . Lämnas ingången öppen kan attributet sättas t.ex via funktion i C-program. Sedan flaggan noterats ser ProviewR till att den tas ned.
CalPos2 Input | ||
---|---|---|
Klass | Input | |
Typ | Float32 | |
Flags | REDUTRANSFER | |
GraphName | CP2 | |
Kropp | RtBody |
Anger positionen i kalibreringspunkt 2. Värdet används vid kalibrering av förstärkningen, dvs av Gain . Attributet kan tilldelas värde i utvecklingsmiljön med hjälp av Objekts Editorn och i målmiljön med t.ex funktion i C eller PLC program. är motsvarande ingång ansluten sker uppdatering utifrån kopplad storhet.
CalOrder2 Input | ||
---|---|---|
Klass | Input | |
Typ | Boolean | |
Flags | STATE | NOEDIT | NOINVERT | REDUTRANSFER | |
GraphName | co2 | |
Kropp | RtBody |
'Calibration order 2'. Flaggan anger om kalibrering av Gain ( se nedan under Calibration ) ska initieras eller ej. FALSE betyder ingen kalibrering. Övergången FALSE -> TRUE initierar 'calibration in point 2'. Lämnas ingången öppen kan attributet sättas t.ex via funktion i C-program. Sedan flaggan noterats ser ProviewR till att den tas ned.
ActVal Output | ||
---|---|---|
Klass | Output | |
Typ | Float32 | |
Flags | STATE | NOEDIT | REDUTRANSFER | |
GraphName | POS | |
Kropp | RtBody |
Aktuell position. Enheten följer av enheten på Gain . Om Gain är i mm / puls blir ActVal i mm.
Gain Intern | ||
---|---|---|
Klass | Intern | |
Typ | Float32 | |
Flags | REDUTRANSFER | |
GraphName | Gain | |
Kropp | RtBody |
Antag att omsättningsfaktorn betecknas Omsfak . Om Omsfak anger antalet pulser per enhet, t.ex mm, grader etc. Gain erhålls då som 1 / Omsfak . Attributets värde är antingen givet eller beräknat; se nedan under Calibration
PICal1 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Int32 | |
Flags | REDUTRANSFER | |
GraphName | PICal1 | |
Kropp | RtBody |
Pulsräknarvärde vid senaste positionskalibreringen i 'calibration at point 1'. Motsvarande ingenjörsvärde finns i PosCal1 .
CalOrder1Old Intern | ||
---|---|---|
Klass | Intern | |
Typ | Boolean | |
Flags | STATE | NOEDIT | INVISIBLE | REDUTRANSFER | |
GraphName | CalOrder1Old | |
Kropp | RtBody |
Används för flankdetektering.
CalOrder2Old Intern | ||
---|---|---|
Klass | Intern | |
Typ | Boolean | |
Flags | STATE | NOEDIT | INVISIBLE | REDUTRANSFER | |
GraphName | CalOrder2Old | |
Kropp | RtBody |
Används för flankdetektering.
PosCal1 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Float32 | |
Flags | STATE | NOEDIT | INVISIBLE | REDUTRANSFER | |
GraphName | PosCal1 | |
Kropp | RtBody |
Position vid senaste positionskalibrering enligt 'calibration at point 1'. Motsvarande pulsräknarvärde finns i PiCal11 . PosCal1 har samma dimension som ActVal .
PosCal2 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Float32 | |
Flags | STATE | NOEDIT | INVISIBLE | REDUTRANSFER | |
GraphName | CalPos2 | |
Kropp | RtBody |
Position vid senaste positionskalibrering enligt 'calibration at point 2'. Motsvarande pulsräknarvärde finns i PiCal12 . PosCal2 har samma dimension som ActVal .
AccCalPos1 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Int32 | |
Flags | ||
GraphName | AccCalPos1 | |
Kropp | RtBody |
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på CalPos1. Följande behörigheter är möjliga: 0 -- Ingen ändring tillåten ? 0 -- ändring tillåten.
AccCalOrder1 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Int32 | |
Flags | ||
GraphName | AccCalOrder1 | |
Kropp | RtBody |
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på CalOrder1. Följande behörigheter är möjliga: 0 -- Ingen ändring tillåten ? 0 -- ändring tillåten.
AccCalPos2 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Int32 | |
Flags | ||
GraphName | AccCalPos2 | |
Kropp | RtBody |
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på CalPos2. Följande behörigheter är möjliga: 0 -- Ingen ändring tillåten ? 0 -- ändring tillåten.
AccCalOrder2 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Int32 | |
Flags | ||
GraphName | AccCalOrder2 | |
Kropp | RtBody |
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på CalOrder2. Följande behörigheter är möjliga: 0 -- Ingen ändring tillåten ? 0 -- ändring tillåten.
MinCalPos1 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Float32 | |
Flags | REDUTRANSFER | |
GraphName | MinCalPos1 | |
Kropp | RtBody |
Minsta tillåtna värde vid operatörsändring av CalPos1.
MaxCalPos1 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Float32 | |
Flags | REDUTRANSFER | |
GraphName | MaxCalPos1 | |
Kropp | RtBody |
Största tillåtna värde vid operatörsändring av CalPos1.
MinCalPos2 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Float32 | |
Flags | REDUTRANSFER | |
GraphName | MinCalPos2 | |
Kropp | RtBody |
Minsta tillåtna värde vid operatörsändring av CalPos2 .
MaxCalPos2 Intern | ||
---|---|---|
Klass | Intern | |
Typ | Float32 | |
Flags | REDUTRANSFER | |
GraphName | MaxCalPos2 | |
Kropp | RtBody |
Största tillåtna värde vid operatörsändring av CalPos2 .
PlcNode Buffer | ||
---|---|---|
Klass | Buffer | |
Typ | PlcNode | |
Flags | INVISIBLE | |
Kropp | DevBody |