Class Adelay
Version 1.0
Modified 15-JAN-2025 13:23:36.00
Kod rt_plc_arithm.c
Tidsfördröjning av analog signal (Analog delay). 

Tidsfördröjningen Tim kan vara variabel inom intervallet: 

{ 0 - 100 MaxCount ScanTime } 

Fördröjningen realiseras i ett skiftregister med 100 steg. Tidsupplösningen per 
steg är MaxCount ScanTime . Maximala tidsfördröjning blir 100 MaxCount 
ScanTime sekunder. 

Krävs större upplösning kan flera Adelay -instanser seriekopplas. 

Om tidsupplösningen per steg blir sämre än PLC programmets cykeltid ( dvs. 
MaxCount >1) sker medelvärdesbildning vid lagring i skiftregister 1. 

Vid allra 1:a samplet lagras insignalvärdet i samtliga skiftregister. Vid 2:a 
samplet medelvärdesbildas värdet i skiftregister ? och insignalen varefter 
resultatet återlagras i skiftregister 1. Detta upprepas t.o.m sampel nr. MaxCount 
- 1. Vid sampel nr. MaxCount sker skiftning av registerinnehåll och insignalen 
lagras direkt i skiftregister 1. Första registerpositionen lagrar därefter 
insignalens medelvärde fram till nästa skifttillfälle. 

Utsignalen hämtas från det register som representerar den aktuella 
fördröjningen. 

Example

1. Med MaxCount = 1 och ScanTime = 20 ms är den maximala fördröjningen
   100 * 1 * 1 / 50 secunder.    

   om fördröjningstiden Tim = 1, är ActVal(t) = In(t-50), dvs insignalen
   är fördröjd 50 exekverings cykler.

2. Om MaxCount = 1 och ScanTime = 1 sekund representerar varje register en
   fördröjning på en sekund. Tim anger från vilket register ActVal hämtas.


RtBody attributes pwr_sClass_adelay
Float32 In IN Värde på insignalen.
Float32 Tim TIM Aktuell tidsfördröjning ( i sekunder ) i intervallet
{ 0, 100 MaxCount * ScanTime }.
Float32 ActVal VAL Fördröjd signal enligt Tim .
Pointer to Float32 ScanTime ScanTime Programcykeltid i sekunder, lagras automatiskt vid kompilering.
Array of Float32 TimVect TimVect Cykliskt register.
Int32 StoInd StoInd Index som anger nästa position för lagring.
Int32 MaxCount MaxCount Antal cykler per registersteg ; dvs registerskiftning sker vid vart MaxCount :e
programcykel.

Är MaxCount t.ex. 1.6 sker avkortning till 1.
Int32 StoredNumbers StoredNumbers Räknare under initieringsfas.
Int32 Count Count Varvräknare för skift.
Int32 AccTim AccTim Ej implementerad funktion. Anger operatörens behörighet att ändra värde på
Tim . Följande behörigheter är möjliga:

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten.
Float32 MinTim MinTim Minsta tillåtna värde vid operatörsändring av Tim.
Float32 MaxTim MaxTim Största tillåtna värde vid operatörsändring av Tim.

DevBody attributes 
PlcNode PlcNode  


GraphPlcNode
object_type 131
parameters[0] 2
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
tracemethod 0
traceindex 0
executeordermethod 2
objname Adelay
graphname Adelay
debugpar


Template Object
MaxCount 1


Attributes detail


In Input
Klass Input
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName IN
Kropp RtBody
Värde på insignalen. 

Tim Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName TIM
Kropp RtBody
Aktuell tidsfördröjning ( i sekunder ) i intervallet 
{ 0, 100 MaxCount * ScanTime }. 


ActVal Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName VAL
Kropp RtBody
Fördröjd signal enligt Tim . 

ScanTime Intern
Klass Intern
Typ Pointer to Float32
Flags INVISIBLE | POINTER | PRIVATE
GraphName ScanTime
Kropp RtBody
Programcykeltid i sekunder, lagras automatiskt vid kompilering. 

TimVect Intern
Klass Intern
Typ Array of Float32
Flags ARRAY | STATE | INVISIBLE | REDUTRANSFER
Elements 100
GraphName TimVect
Kropp RtBody
Cykliskt register. 

StoInd Intern
Klass Intern
Typ Int32
Flags STATE | NOEDIT | INVISIBLE | REDUTRANSFER
GraphName StoInd
Kropp RtBody
Index som anger nästa position för lagring. 

MaxCount Intern
Klass Intern
Typ Int32
Flags REDUTRANSFER
GraphName MaxCount
Kropp RtBody
Antal cykler per registersteg ; dvs registerskiftning sker vid vart MaxCount :e 
programcykel. 

Är MaxCount t.ex. 1.6 sker avkortning till 1. 

StoredNumbers Intern
Klass Intern
Typ Int32
Flags STATE | NOEDIT | INVISIBLE
GraphName StoredNumbers
Kropp RtBody
Räknare under initieringsfas. 

Count Intern
Klass Intern
Typ Int32
Flags STATE | NOEDIT | INVISIBLE | REDUTRANSFER
GraphName Count
Kropp RtBody
Varvräknare för skift. 

AccTim Intern
Klass Intern
Typ Int32
Flags REDUTRANSFER
GraphName AccTim
Kropp RtBody
Ej implementerad funktion. Anger operatörens behörighet att ändra värde på 
Tim . Följande behörigheter är möjliga: 

0 -- Ingen ändring tillåten
? 0 -- ändring tillåten. 

MinTim Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName MinTim
Kropp RtBody
Minsta tillåtna värde vid operatörsändring av Tim. 

MaxTim Intern
Klass Intern
Typ Float32
Flags REDUTRANSFER
GraphName MaxTim
Kropp RtBody
Största tillåtna värde vid operatörsändring av Tim. 

PlcNode Buffer
Klass Buffer
Typ PlcNode
Flags INVISIBLE
Kropp DevBody