Class DataArithm
Version 1.0
Modified 15-JAN-2025 13:23:35.00
DataArithm objektet gör det möjligt att komma åt innehållet i dataobjekt, 
analoga och digital signaler och parametrar i c-kod.

Objektet innehåller
-fyra dataingångar.
-sex digitala ingångar.
-sex analoga ingångar.
-fyra datautgångar.
-sex digitala utgångar.
-sex analoga utgångar.

Funktionen för digitala och analoga signaler är i densamma som för CArithm, 
men DataArithm kan dessutom hantera dataobjekts referenser.

Ett dataobjekt kan kopplas till en dataingång (antingen från en GetData eller 
från ett NMpsCell objekt). I koden hanteras den som  en c-struct.

Syntaxregler



Digitala och analoga in och utgångar hanteras på samma sätt som i ett CArithm 
objekt. Man kan ge ett aliasnamn till en in- eller utgång mha 'aliasdef' (för 
dataingångar invändes 'classdef'). 

Exempel

aliasdef d1 StartaMotor, od1 StoppaMotor;
aliasdef A1 Temperatur;

if ( Temperatur > 200)
  StoppaMotor = 1;

Dataingångar



En Dataingång som används i koden måste klass definieras med en classdef 
sats. Classdef satsen innehåller ordet classdef, dataingång och klassen på det 
dataobjekt som ska hanteras.
Man kan även ge ett aliasnamn i classdef deklarationen.

Exempel

classdef Da1 plate;
classdef Da2 plate FrämstaPlåt;
classdef Da3 vdata Värningsdata, Da4 data SistaPlåt;

Dataingångarna hanteras som en pekare på angiven klass.
Antag att klassen data innehåller attributet Width.
Attributet i dataobjektet refereras då med Da1->Width.

Exempel

if ( d1)
  Da1->Width = 55.;
else
  Da1->Width = 66.;

 if  ( FrämstaPlåt->Temperatur > SistaPlåt->Temperatur)
  od1 = 1;

Om dataingången är kopplad till ett NMpsCell objekt är datapekaren noll om 
refererad plats i cellen inte innehåller något dataobjekt. I detta fall måste man 
först testa om pekaren är noll innan den används. Plcprogrammet kommer 
annars att drabbas av access violation...

Exempel

if ( Da1 != 0)
{
  if ( d1)
    Da1->Width = 55.
  else
    Da1->Width = 66.
}

Om dataingången är kopplad till ett cellobjekt kan man komma åt 
informationen om fram och bakkant genom Da1Front, Da1Back, Da2Front, ...

Datautgångar



En datautgång kan tilldelas värdet av en dataingång

Exempel

if ( d1)
  ODa1 = Da1;
else
  ODa1 = Da2;


RtBody attributes pwr_sClass_dataarithm
Pointer to Void DataIn1 Da1 Data object referens input Da1.
Pointer to Void DataIn2 Da2 Data object referens input Da2.
Pointer to Void DataIn3 Da3 Data object referens input Da3.
Pointer to Void DataIn4 Da4 Data object referens input Da4.
Float32 AIn1 A1 Analog ingång. Ingången refereras A1 i c-koden.
Float32 AIn2 A2 Analog ingång. Ingången refereras A2 i c-koden.
Float32 AIn3 A3 Analog ingång. Ingången refereras A3 i c-koden.
Float32 AIn4 A4 Analog ingång. Ingången refereras A4 i c-koden.
Float32 AIn5 A5 Analog ingång. Ingången refereras A5 i c-koden.
Float32 AIn6 A6 Analog ingång. Ingången refereras A6 i c-koden.
Boolean DIn1 d1 Digital ingång. Ingången refereras d1 i c-koden.
Boolean DIn2 d2 Digital ingång. Ingången refereras d2 i c-koden.
Boolean DIn3 d3 Digital ingång. Ingången refereras d3 i c-koden.
Boolean DIn4 d4 Digital ingång. Ingången refereras d4 i c-koden.
Boolean DIn5 d5 Digital ingång. Ingången refereras d5 i c-koden.
Boolean DIn6 d6 Digital ingång. Ingången refereras d6 i c-koden.
Int32 IIn1 I1 Integer input I1.
Int32 IIn2 I2 Integer input I2.
Int32 IIn3 I3 Integer input I3.
Int32 IIn4 I4 Integer input I4.
Int32 IIn5 I5 Integer input I5.
Int32 IIn6 I6 Integer input I6.
DataRef OutData1 ODa1 Datautgång. Utgången refereras ODa1 i c-koden, och kan tilldelas
värdet av en dataingång.
DataRef OutData2 ODa2 Datautgång. Utgången refereras ODa2 i c-koden, och kan tilldelas
värdet av en dataingång.
DataRef OutData3 ODa3 Datautgång. Utgången refereras ODa3 i c-koden, och kan tilldelas
värdet av en dataingång.
DataRef OutData4 ODa4 Datautgång. Utgången refereras ODa4 i c-koden, och kan tilldelas
värdet av en dataingång.
Float32 OutA1 OA1 Analog utgång. Refereras OA1 i koden.
Float32 OutA2 OA2 Analog utgång. Refereras OA2 i koden.
Float32 OutA3 OA3 Analog utgång. Refereras OA3 i koden.
Float32 OutA4 OA4 Analog utgång. Refereras OA4 i koden.
Float32 OutA5 OA5 Analog utgång. Refereras OA5 i koden.
Float32 OutA6 OA6 Analog utgång. Refereras OA6 i koden.
Boolean OutD1 od1 Digital utgång. Refereras od1 i koden.
Boolean OutD2 od2 Digital utgång. Refereras od2 i koden.
Boolean OutD3 od3 Digital utgång. Refereras od3 i koden.
Boolean OutD4 od4 Digital utgång. Refereras od4 i koden.
Boolean OutD5 od5 Digital utgång. Refereras od5 i koden.
Boolean OutD6 od6 Digital utgång. Refereras od6 i koden.
Int32 OutI1 OI1 Integer output OI1.
Int32 OutI2 OI2 Integer output OI2.
Int32 OutI3 OI3 Integer output OI3.
Int32 OutI4 OI4 Integer output OI4.
Int32 OutI5 OI5 Integer output OI5.
Int32 OutI6 OI6 Integer output OI6.


GraphPlcNode
object_type 224
parameters[0] 22
parameters[1] 0
parameters[2] 22
parameters[3] 0
subwindows 0
graphmethod 14
graphindex 0
default_mask[0] 1
default_mask[1] 1
segname_annotation 3
devbody_annotation 1
compmethod 42
compindex 0
tracemethod 0
traceindex 0
executeordermethod 2
objname DataA
graphname DataA
debugpar

DevBody attributes 
PlcNode PlcNode  
Text1024 Code code C-kod.


Attributes detail


DataIn1 Input
Klass Input
Typ Pointer to Void
Flags POINTER
GraphName Da1
Kropp RtBody
Data object referens input. The input is connected to
a data output (for example from a GetData).
The class of the input is declared with a classdef statement
and the input is referred to as Da1 in the code. It can also
be referred to with an alias name supplied in the classdef
statement.

DataIn2 Input
Klass Input
Typ Pointer to Void
Flags POINTER
GraphName Da2
Kropp RtBody
Data object referens input.
Da2 or the aliasname is used to refer to the input in the code.

DataIn3 Input
Klass Input
Typ Pointer to Void
Flags POINTER
GraphName Da3
Kropp RtBody
Data object referens input.
Da3 or the aliasname is used to refer to the input in the code.

DataIn4 Input
Klass Input
Typ Pointer to Void
Flags POINTER
GraphName Da4
Kropp RtBody
Data object referens input.
Da4 or the aliasname is used to refer to the input in the code.

AIn1 Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName A1
Kropp RtBody
Analog ingång. Ingången refereras A1 i c-koden.

AIn2 Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName A2
Kropp RtBody
Analog ingång. Ingången refereras A2 i c-koden.

AIn3 Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName A3
Kropp RtBody
Analog ingång. Ingången refereras A3 i c-koden.

AIn4 Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName A4
Kropp RtBody
Analog ingång. Ingången refereras A4 i c-koden.

AIn5 Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName A5
Kropp RtBody
Analog ingång. Ingången refereras A5 i c-koden.

AIn6 Input
Klass Input
Typ Float32
Flags REDUTRANSFER
GraphName A6
Kropp RtBody
Analog ingång. Ingången refereras A6 i c-koden.

DIn1 Input
Klass Input
Typ Boolean
Flags REDUTRANSFER | NOINVERT
GraphName d1
Kropp RtBody
Digital ingång. Ingången refereras d1 i c-koden.

DIn2 Input
Klass Input
Typ Boolean
Flags REDUTRANSFER | NOINVERT
GraphName d2
Kropp RtBody
Digital ingång. Ingången refereras d2 i c-koden.

DIn3 Input
Klass Input
Typ Boolean
Flags REDUTRANSFER | NOINVERT
GraphName d3
Kropp RtBody
Digital ingång. Ingången refereras d3 i c-koden.

DIn4 Input
Klass Input
Typ Boolean
Flags REDUTRANSFER | NOINVERT
GraphName d4
Kropp RtBody
Digital ingång. Ingången refereras d4 i c-koden.

DIn5 Input
Klass Input
Typ Boolean
Flags REDUTRANSFER | NOINVERT
GraphName d5
Kropp RtBody
Digital ingång. Ingången refereras d5 i c-koden.

DIn6 Input
Klass Input
Typ Boolean
Flags REDUTRANSFER | NOINVERT
GraphName d6
Kropp RtBody
Digital ingång. Ingången refereras d6 i c-koden.

IIn1 Input
Klass Input
Typ Int32
Flags REDUTRANSFER
GraphName I1
Kropp RtBody
Integer input.
I1 or the aliasname is used to refer to the input in the code.

IIn2 Input
Klass Input
Typ Int32
Flags REDUTRANSFER
GraphName I2
Kropp RtBody
Integer input.
I2 or the aliasname is used to refer to the input in the code.

IIn3 Input
Klass Input
Typ Int32
Flags REDUTRANSFER
GraphName I3
Kropp RtBody
Integer input.
I3 or the aliasname is used to refer to the input in the code.

IIn4 Input
Klass Input
Typ Int32
Flags REDUTRANSFER
GraphName I4
Kropp RtBody
Integer input.
I4 or the aliasname is used to refer to the input in the code.

IIn5 Input
Klass Input
Typ Int32
Flags REDUTRANSFER
GraphName I5
Kropp RtBody
Integer input.
I5 or the aliasname is used to refer to the input in the code.

IIn6 Input
Klass Input
Typ Int32
Flags REDUTRANSFER
GraphName I6
Kropp RtBody
Integer input.
I6 or the aliasname is used to refer to the input in the code.

OutData1 Output
Klass Output
Typ DataRef
Flags STATE | NOEDIT
GraphName ODa1
Kropp RtBody
Datautgång. Utgången refereras ODa1 i c-koden, och kan tilldelas 
värdet av en dataingång.

OutData2 Output
Klass Output
Typ DataRef
Flags STATE | NOEDIT
GraphName ODa2
Kropp RtBody
Datautgång. Utgången refereras ODa2 i c-koden, och kan tilldelas 
värdet av en dataingång.

OutData3 Output
Klass Output
Typ DataRef
Flags STATE | NOEDIT
GraphName ODa3
Kropp RtBody
Datautgång. Utgången refereras ODa3 i c-koden, och kan tilldelas 
värdet av en dataingång.

OutData4 Output
Klass Output
Typ DataRef
Flags STATE | NOEDIT
GraphName ODa4
Kropp RtBody
Datautgång. Utgången refereras ODa4 i c-koden, och kan tilldelas 
värdet av en dataingång.

OutA1 Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OA1
Kropp RtBody
Analog utgång. Refereras OA1 i koden.

OutA2 Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OA2
Kropp RtBody
Analog utgång. Refereras OA2 i koden.

OutA3 Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OA3
Kropp RtBody
Analog utgång. Refereras OA3 i koden.

OutA4 Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OA4
Kropp RtBody
Analog utgång. Refereras OA4 i koden.

OutA5 Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OA5
Kropp RtBody
Analog utgång. Refereras OA5 i koden.

OutA6 Output
Klass Output
Typ Float32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OA6
Kropp RtBody
Analog utgång. Refereras OA6 i koden.

OutD1 Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName od1
Kropp RtBody
Digital utgång. Refereras od1 i koden.

OutD2 Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName od2
Kropp RtBody
Digital utgång. Refereras od2 i koden.

OutD3 Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName od3
Kropp RtBody
Digital utgång. Refereras od3 i koden.

OutD4 Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName od4
Kropp RtBody
Digital utgång. Refereras od4 i koden.

OutD5 Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName od5
Kropp RtBody
Digital utgång. Refereras od5 i koden.

OutD6 Output
Klass Output
Typ Boolean
Flags STATE | NOEDIT | REDUTRANSFER
GraphName od6
Kropp RtBody
Digital utgång. Refereras od6 i koden.

OutI1 Output
Klass Output
Typ Int32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OI1
Kropp RtBody
Integer output.
OI1 is used to refer to the output in the code.

OutI2 Output
Klass Output
Typ Int32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OI2
Kropp RtBody
Integer output.
OI2 is used to refer to the output in the code.

OutI3 Output
Klass Output
Typ Int32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OI3
Kropp RtBody
Integer output.
OI3 is used to refer to the output in the code.

OutI4 Output
Klass Output
Typ Int32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OI4
Kropp RtBody
Integer output.
OI4 is used to refer to the output in the code.

OutI5 Output
Klass Output
Typ Int32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OI5
Kropp RtBody
Integer output.
OI5 is used to refer to the output in the code.

OutI6 Output
Klass Output
Typ Int32
Flags STATE | NOEDIT | REDUTRANSFER
GraphName OI6
Kropp RtBody
Integer output.
OI6 is used to refer to the output in the code.

PlcNode Buffer
Klass Buffer
Typ PlcNode
Flags INVISIBLE
Kropp DevBody

Code Intern
Klass Intern
Typ Text1024
Flags
GraphName code
Kropp DevBody
C-kod.