Class DsFast
Version 1.0
Modified 15-JAN-2025 13:23:34.00
Lagrar data för snabbkurva à la minnesoscilloskop. 

I varje nod där mätdata för snabbkurvor ska lagras finns behov av ett DsFast- 
jobb som genomsöker nodens (= lokala ) datalagringsobjekt. 

Varje attribut (= mätstorhet) som ska kunna plottas måste ha ett data 
lagringsobjekt. Attribut i datalagringsobjektet anger t.ex. namnet på den 
samplade mätstorheten och hur ofta lagring ska. En mätstorhet kan ha flera 
datalagringsobjekt, t.ex. för lagring med olika frekvens. 
 
DsFast Job with Data Storage Objects 

NB! Kom ihåg att sampling av fysiska signaler sker med ändlig frekvens. För 
närvarande samplas analoga signaler (Ai, Ao) med 5 Hz och Co-, Di-, Do-
signaler med basfrekvensen vilken är lika med den frekvens som det i noden 
oftast exekverande PLC programmet har. Högsta möjliga basfrekvens är 50 Hz. 

Data lagras i en cirkulär lista (buffer) med storleken NoOfBufElement . 

Samplingscykeln startas genom att Start -flaggan sätts. Detta kan göras med 
hjälp av Start-knappen i snabbkurv-bilden. Mätstorheten samplas och värdet 
lagras i DataBuffer . När alla element i den cirkulära listan fått värden en gång 
sätts AllDataOK . 

Flaggan Trigged kan sättas av två skilda händelser: 

manuellt från t.ex. Trigger-knappen i snabbkurv-bilden. I detta fall sätts 
TrigManTrue . 
via yttre signal vars namn anges av TrigName . 
Samplingscykeln fortsätter därefter med ytterligare NoOfBufElement - 
SampBeforeTrig sampel efter det att flaggan Trigged blivit satt varefter den 
stoppas. Mätvärdena i den cirkulära listan, som nu är frysta, plottas därefter i 
snabbkurv-bilden. 

 
Det samplade attributet ska vara en lokal storhet . Därför ska i målmiljön 
DsFast objekten finnas i samma nod som de samplade attributens objekt. 

DsFast modulen inkluderas i resp. processnods EBUILD-fil med hjälp av: 

program PWR_EXE:RS_DS_FAST.EXE_ELN /warm_debug 
Det samplade attributet förutsätts vara någon av typerna: 

- pwr_tBoolean 

- pwr_tFloat32, pwr_tFloat64 

- pwr_tInt8, pwr_tInt16, pwr_tInt32 

- pwr_tUInt8, pwr_tUInt16, pwr_tUInt32 



RtBody attributes pwr_sClass_DsFast
String80 Description   Valfri text.
Boolean Start   Anger om lagring ska göras eller ej. FALSE betyder att lagringen ska stoppas.
TRUE innebär att lagringen är igång. Lagringen kan startas från Start-knappen
i snabbkurv-bilden. Attributet sätts FALSE när lagringscykeln avslutas.
UInt32 BaseFrequency   DsFast-jobbets frekvens i Hz. Se också Multiple nedan.

Attributet tilldelas samma värde som motsvarande attribut i nodens
DsFastConf objekt. Detta görs vid DsFast-jobbets initialisering.
UInt16 Multiple   Den enskilda mätstorhet som DataName anger kommer att lagrasmed
frekvensen BaseFrequency / Multiple .
UInt16 NextMultiple   Används för att hålla reda på vid vilka scan just denna instans ska hanteras.
NextMultiple sätts till värdet av Multiple och räknas därefter ned vid varje
scan. Blir NextMultiple = 0 sker sampling och lagring varefter attributet åter
tilldelas värdet Multiple .
UInt8 TrigMode   Anger triggvillkoret för den binära signal som anges av TrigName . Följande
värden är möjliga:
0 -- triggning är blockerad.
1 -- positiv flank, dvs. övergången FALSE --> TRUE startar lagring.
2 -- negativ flank, dvs. övergången TRUE --> FALSE startar lagring.
AttrRef TrigName   Namn på extern binär triggsignal. Triggsignalens fullständiga namn, t.ex. för
lokal storhet, PROC1-Di123 . ActualValue . Fältet lämnas blankt om yttre
triggsignal saknas.
Pointer to Boolean TrigPointer   Om TrigName är ifylld, pekare till den externa triggsignalen.
RefId TrigSubId   Identitet vid prenumeration av triggsignal.
Boolean TrigManTrue   Anger om ovillkorlig triggning ska göras eller ej. TRUE betyder att triggning
ska ske. Attributet sätts TRUE , t.ex. via Trigger-knappen i snabbkurv-bilden
för att åter blir FALSE när samplingscykeln avslutas.
UInt8 DataType   Lagrar mätstorhetens datatyp. Denna ska vara någon av typerna:
pwr_tBoolean, pwr_tFloat32, pwr_tFloat64, pwr_tInt8, pwr_tInt16,
pwr_tInt32, pwr_tUInt8, pwr_tUInt16 eller pwr_tUInt32.
AttrRef DataName   Samplade mätstorhetens (attributets) fullständiga namn. Storheten, som ska
vara lokal, anges t.ex. som PROC1-TEMP1. ActualValue
Pointer to Float32 DataPointer   Pekar på den storhet som ska samplas och lagras.
RefId DataSubId   Identitet vid prenumeration av mätstorheten.
UInt32 StorageTime   Anger, i sekunder, längden på lagringssekvensen. Om denna tid, med hänsyn
till lagringsfrekvensen, överskrider vad som ryms i DataBuffer , stoppas
lagringen när DataBuffer blivit fylld.

StorageTime , Multiple , BaseFrequency och NoOfBufElement bestämmer
NoOfSample.
UInt32 NoOfSample   Antal sampel som kan lagras i DataBuffer .
UInt32 SampBeforeTrig   Anger antal sampel före triggtidpunkten som ska ingå i 'mätprovet'.
UInt32 TrigIndex   Anger 1:a elementet i DataBuffer sedan triggning skett.
Boolean Trigged   Anger om triggvillkoret, under pågående samplingscykel, har uppfyllts eller ej.
TRUE betyder att triggvillkoret uppfyllts. Attributet blir FALSE så snart
samplingscykeln avslutas.
UInt32 NextIndex   Anger var i bufferten nästa skrivning ska göras.
Boolean AllDataOK   Anger om hela bufferten uppdaterats sedan Start -attributet blivit TRUE eller
ej. AllDataOK sätts TRUE då DataBuffer har uppdaterats minst en gång och
FALSE så snart samplingscykeln avslutas.
UInt16 NoOfBufElement   Anger antalet element som kan lagras i DataBuffer vid ett mätprov.
Array of Float32 DataBuffer   Totalt tillgänglig lagringsutrymme. Max. storleken, som är förutbestämd (=
NoOfBufElement ), anger antal sampel som samtidigt kan hållas lagrade.


Template Object
StorageTime 9
BaseFrequency 50
Multiple 1
NoOfBufElement 460


Attributes detail


Description Attribute
Klass Attribute
Typ String80
Flags
Kropp RtBody
Valfri text. 

Start Attribute
Klass Attribute
Typ Boolean
Flags STATE | INVISIBLE
Kropp RtBody
Anger om lagring ska göras eller ej. FALSE betyder att lagringen ska stoppas. 
TRUE innebär att lagringen är igång. Lagringen kan startas från Start-knappen 
i snabbkurv-bilden. Attributet sätts FALSE när lagringscykeln avslutas. 

BaseFrequency Attribute
Klass Attribute
Typ UInt32
Flags STATE | INVISIBLE
Kropp RtBody
DsFast-jobbets frekvens i Hz. Se också Multiple nedan. 

Attributet tilldelas samma värde som motsvarande attribut i nodens 
DsFastConf objekt. Detta görs vid DsFast-jobbets initialisering. 

Multiple Attribute
Klass Attribute
Typ UInt16
Flags
Kropp RtBody
Den enskilda mätstorhet som DataName anger kommer att lagrasmed 
frekvensen BaseFrequency / Multiple . 

NextMultiple Attribute
Klass Attribute
Typ UInt16
Flags STATE | INVISIBLE
Kropp RtBody
Används för att hålla reda på vid vilka scan just denna instans ska hanteras. 
NextMultiple sätts till värdet av Multiple och räknas därefter ned vid varje 
scan. Blir NextMultiple = 0 sker sampling och lagring varefter attributet åter 
tilldelas värdet Multiple . 

TrigMode Attribute
Klass Attribute
Typ UInt8
Flags
Kropp RtBody
Anger triggvillkoret för den binära signal som anges av TrigName . Följande 
värden är möjliga:
0 -- triggning är blockerad.
1 -- positiv flank, dvs. övergången FALSE --> TRUE startar lagring.
2 -- negativ flank, dvs. övergången TRUE --> FALSE startar lagring. 

TrigName Attribute
Klass Attribute
Typ AttrRef
Flags
Kropp RtBody
Namn på extern binär triggsignal. Triggsignalens fullständiga namn, t.ex. för 
lokal storhet, PROC1-Di123 . ActualValue . Fältet lämnas blankt om yttre 
triggsignal saknas. 

TrigPointer Attribute
Klass Attribute
Typ Pointer to Boolean
Flags POINTER | PRIVATE | STATE | INVISIBLE
Kropp RtBody
Om TrigName är ifylld, pekare till den externa triggsignalen. 

TrigSubId Attribute
Klass Attribute
Typ RefId
Flags STATE | INVISIBLE
Kropp RtBody
Identitet vid prenumeration av triggsignal. 

TrigManTrue Attribute
Klass Attribute
Typ Boolean
Flags STATE | INVISIBLE
Kropp RtBody
Anger om ovillkorlig triggning ska göras eller ej. TRUE betyder att triggning 
ska ske. Attributet sätts TRUE , t.ex. via Trigger-knappen i snabbkurv-bilden 
för att åter blir FALSE när samplingscykeln avslutas. 

DataType Attribute
Klass Attribute
Typ UInt8
Flags STATE | INVISIBLE
Kropp RtBody
Lagrar mätstorhetens datatyp. Denna ska vara någon av typerna: 
pwr_tBoolean, pwr_tFloat32, pwr_tFloat64, pwr_tInt8, pwr_tInt16, 
pwr_tInt32, pwr_tUInt8, pwr_tUInt16 eller pwr_tUInt32. 

DataName Attribute
Klass Attribute
Typ AttrRef
Flags
Kropp RtBody
Samplade mätstorhetens (attributets) fullständiga namn. Storheten, som ska 
vara lokal, anges t.ex. som PROC1-TEMP1. ActualValue 

DataPointer Attribute
Klass Attribute
Typ Pointer to Float32
Flags POINTER | PRIVATE | STATE | INVISIBLE
Kropp RtBody
Pekar på den storhet som ska samplas och lagras. 

DataSubId Attribute
Klass Attribute
Typ RefId
Flags STATE | INVISIBLE
Kropp RtBody
Identitet vid prenumeration av mätstorheten. 

StorageTime Attribute
Klass Attribute
Typ UInt32
Flags
Kropp RtBody
Anger, i sekunder, längden på lagringssekvensen. Om denna tid, med hänsyn 
till lagringsfrekvensen, överskrider vad som ryms i DataBuffer , stoppas 
lagringen när DataBuffer blivit fylld. 

StorageTime , Multiple , BaseFrequency och NoOfBufElement bestämmer 
NoOfSample. 

NoOfSample Attribute
Klass Attribute
Typ UInt32
Flags STATE | INVISIBLE
Kropp RtBody
Antal sampel som kan lagras i DataBuffer . 

SampBeforeTrig Attribute
Klass Attribute
Typ UInt32
Flags
Kropp RtBody
Anger antal sampel före triggtidpunkten som ska ingå i 'mätprovet'. 

TrigIndex Attribute
Klass Attribute
Typ UInt32
Flags STATE | INVISIBLE
Kropp RtBody
Anger 1:a elementet i DataBuffer sedan triggning skett. 

Trigged Attribute
Klass Attribute
Typ Boolean
Flags STATE | INVISIBLE
Kropp RtBody
Anger om triggvillkoret, under pågående samplingscykel, har uppfyllts eller ej. 
TRUE betyder att triggvillkoret uppfyllts. Attributet blir FALSE så snart 
samplingscykeln avslutas. 

NextIndex Attribute
Klass Attribute
Typ UInt32
Flags STATE | INVISIBLE
Kropp RtBody
Anger var i bufferten nästa skrivning ska göras. 

AllDataOK Attribute
Klass Attribute
Typ Boolean
Flags STATE | INVISIBLE
Kropp RtBody
Anger om hela bufferten uppdaterats sedan Start -attributet blivit TRUE eller 
ej. AllDataOK sätts TRUE då DataBuffer har uppdaterats minst en gång och 
FALSE så snart samplingscykeln avslutas. 

NoOfBufElement Attribute
Klass Attribute
Typ UInt16
Flags CONST | INVISIBLE
Kropp RtBody
Anger antalet element som kan lagras i DataBuffer vid ett mätprov. 

DataBuffer Attribute
Klass Attribute
Typ Array of Float32
Flags ARRAY | STATE | INVISIBLE
Elements 460
Kropp RtBody
Totalt tillgänglig lagringsutrymme. Max. storleken, som är förutbestämd (= 
NoOfBufElement ), anger antal sampel som samtidigt kan hållas lagrade.