DELIB API Referenz > CAN Runtime Funktionen > RunTimeVarWriteToModule

Navigation:

 

DELIB API Referenz > CAN Runtime Funktionen >



RunTimeVarWriteToModule

Previous pageReturn to chapter overviewNext page

Beschreibung

Bei dem Start des Moduls werden die Einstellungen aus dem Module-Configuration-Memory geladen und benutzt. Mit Hilfe dieser Befehle lassen sich die Einstellungen während der Laufzeit verändern und auslesen.

Sie werden jedoch nicht in das Module-Configuration-Memory gespeichert und gehen daher nach Modulneustart verloren.

Parameter

handle = Dies ist das Handle eines geöffneten Moduls

par = Laufzeitenvariable, die beschrieben oder ausgelesen werden soll

index = Gibt den Index des TX/RX-Paketes an [Wertebereich 0-7]

value = Der Wert um den die Laufzeitenvariable geändert werden soll. Bei der Read-Funktion wird hier eine Referenz übergeben

Bemerkung

Das value muss immer als Hex-Wert angegeben werden. Der Return-Wert ist ebenfalls in Hex. Eine Auflistung von Module, die diese Funktionen unterstützen, können Sie unserer Delib Übersichtstabelle entnehmen.

Definition

Für ein besseres Verständnis unserer Beispiele, verwenden wir für das Schreiben die Funktion RunTimeVarWriteToModule und für das Lesen RunTimeVarReadFromModule

 

Der darin befindliche Quellcode lautet wie folgt:

//Lesen der Werte

public static uint RunTimeVarReadFromModule(uint handle, uint par, uint index, ref uint value)

{

byte[] dummy_buff = new byte[] { 0 };

 uint u0 = 0;

 

if(DT.Delib.DapiSpecialCommandExt(handle,

DT.Ext.DAPI_SPECIAL_CMDEXT_CAN_RD_RUNTIME_VALUE,

par, index, value, ref value, ref u0, ref u0,

dummy_buff, 0, dummy_buff, 0, dummy_buff, 0, ref u0) != DT.RETURN_OK)

{

return DT.Error.DAPI_ERR_DEV_CONFIG_READ_ERROR;

}

return DT.Error.DAPI_ERR_NONE;

}

//Schreiben der Werte

public static uint RunTimeVarWriteToModule(uint handle, uint par, uint index, uint value)

{

byte[] dummy_buff = new byte[] { 0 };

uint u0 = 0;

 

if(DT.Delib.DapiSpecialCommandExt(handle,

DT.Ext.DAPI_SPECIAL_CMDEXT_CAN_WR_RUNTIME_VALUE,

par, index, value, ref u0, ref u0, ref u0,

dummy_buff, 0, dummy_buff, 0, dummy_buff, 0, ref u0) != DT.RETURN_OK)

{

return DT.Error.DAPI_ERR_DEV_CONFIG_READ_ERROR;

}

return DT.Error.DAPI_ERR_NONE;

}

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_DEV_BAUDRATE

Mit diesem Befehl kann die Baudrate des Interface eingestellt/ausgelesen werden.

Baudrate

Value

1 MBit/s

0x00

500 KBit/s

0x01

250 KBit/s

0x02

125 KBit/s

0x03

100 KBit/s

0x04

50 KBit/s

0x05

20 KBit/s

0x06

10 KBit/s

0x07

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_DEV_BAUDRATE, 0, 0x01);

// Hier wird die Baudrate auf 500 KBit/s gesetzt.

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_DEV_BAUDRATE, 0, ref val);

// Hier wird die Baudrate an die Variable val übergeben.

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_DEV_USEEXTID

Mit diesem Befehl kann der Bit-Mode eingestellt/ausgelesen werden.

useExtID

Value

11 Bit Mode

0x00

29 Bit Mode

0x01

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_DEV_USEEXTID, 0, 0x00);

// Hier wird die Ext-ID des Intefaces auf den 11 Bit Mode gesetzt.

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_DEV_USEEXTID, 0, ref val);

// Hier wird der verwendete Bit Mode  der Variable val übergeben.

 

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_IS_ACTIVE

Mit diesem Befehl kann der Trigger-Mode eingestellt/ausgelesen werden.

Bei dem Nutzen des "Interval Mode (0x01)" kann zusätzlich über den Interval-Befehl eingestellt werden, in welchem Zeitinterval die TX-Pakete gesendet werden sollen.

Trigger Mode

Value

OFF

0x00

Interval Mode

0x01

RX-Event

0x02

Fast as possible

0x03

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_IS_ACTIVE, 1, 0x00);

// Hier wird der Trigger Mode des TX-Paketes[1] auf OFF gesetzt.

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_IS_ACTIVE, 0, ref val);

// Hier wird der Trigger-Mode Status des TX-Paketes[0] der Variable val übergeben.

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_INTERVAL

Mit diesem Befehl kann das Interval eingestellt/ausgelesen werden.

Interval count

Value Bit [4..7]

1

0x01

2

0x02

3

0x03

4

0x04

.. 9

.. 0x09

 

Interval unit

Value Bit [0..3]

* 1 ms

0x01

* 10 ms

0x02

* 100 ms

0x03

* 1 sec

0x04

Beispiel

Ein Interval von 700ms entspricht einem value von 0x73

Ein Interval von 40ms entspricht einem value von 0x42

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_INTERVAL, 1,

(((0x02 << 4) & 0xf0) | (0x04 & 0x0f)));

// Hier wird das Interval des TX-Paketes[1] auf 40ms eingestellt.

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_INTERVAL, 0, ref val);

// Hier wird das Interval des TX-Paketes[0] der Variable val übergeben.

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_USE_EXT_ID

Mit diesem Befehl kann der Bit-Mode eingestellt/ausgelesen werden.

useExtID

Value

11 Bit Mode

0x00

29 Bit Mode

0x01

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_USE_EXT_ID, 1, 0x00);

// Hier wird die Ext-ID des TX-Paketes[1] auf den 11 Bit Mode gesetzt.

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_USE_EXT_ID, 0, ref val);

// Hier wird der verwendete Bit Mode des TX-Paketes[0]  der Variable val übergeben.

 

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_CANID

Mit diesem Befehl kann die CAN-ID eingestellt/ausgelesen werden.

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_CANID, 1, 0x1e);

// Hier wird die CAN-ID des TX-Paketes[1] auf die 30 gesetzt.

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_CANID, 0, ref val);

// Hier wird der verwendete CAN-ID des TX-Paketes[0] der Variable val übergeben.

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_MODE

Mit diesem Befehl kann der TX-Mode eingestellt/ausgelesen werden.

TX-Mode

Value

OPTO-IN 1-64

0x01

OPTO-IN 65-128

0x24

OPTO-IN 129-192

0x25

OPTO-IN 193-256

0x26

A/D CH 1-4 (16 Bit)

0x02

A/D CH 5-8 (16 Bit)",

0x03

A/D CH 9-12 (16 Bit)

0x04

A/D CH 13-16 (16 Bit)

0x05

A/D CH 17-20 (16 Bit)

0x06

A/D CH 21-24 (16 Bit)

0x07

A/D CH 25-28 (16 Bit)

0x08

A/D CH 29-32 (16 Bit)

0x09

Counter16 1-4   (16 Bit)

0x0a

Counter16 5-8   (16 Bit)

0x0b

Counter16 9-12  (16 Bit)

0x0c

Counter16 13-16 (16 Bit)

0x0d

Counter16 17-20 (16 Bit)

0x0e

Counter16 21-24 (16 Bit)

0x0f

Counter16 25-28 (16 Bit)

0x10

Counter16 29-32 (16 Bit)

0x11

Cnt48 1-2 (32 Bit)

0x12

Cnt48 3-4 (32 Bit)

0x13

Cnt48 5-6 (32 Bit)

0x14

Cnt48 7-8 (32 Bit)

0x15

PT-100 1-2 (32 Bit)

0x16

PT-100 3-4 (32 Bit)

0x17

PT-100 5-6 (32 Bit)

0x18

PT-100 7-8 (32 Bit)

0x19

Cnt48 1 (64 Bit)

0x1a

Cnt48 2 (64 Bit)

0x1b

Cnt48 3 (64 Bit)

0x1c

Cnt48 4 (64 Bit)

0x1d

Testcounter 8 bit

0x1e

DO Readback 1-64

0x1f

DO Readback 1-32

0x23

Custom1

0x20

Custom2

0x21

Custom3

0x22

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_MODE, 1, 0x0f);

// Hier wird der Modus des TX-Paketes[1] auf den TX-Mode "Counter16 21-24 (16 Bit)" gesetzt

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_TX_MODE, 0, ref val);

// Hier wird der verwendete TX-Mode des TX-Paketes[0]  der Variable val übergeben.

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_IS_ACTIVE

Mit diesem Befehl wird das RX-Paket aktiviert/deaktiviert

Trigger Mode

Value

OFF

0x00

ON

0x01

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_IS_ACTIVE, 1, 0x00);

// Hier wird das RX-Paket[1] auf OFF gesetzt.

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_IS_ACTIVE, 0, ref val);

// Hier wird der Status des RX-Paketes[0] der Variable val übergeben.

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_USE_EXT_ID

Mit diesem Befehl kann der Bit-Mode eingestellt/ausgelesen werden.

UseExtID

Value

11 Bit Mode

0x00

29 Bit Mode

0x01

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_USE_EXT_ID, 1, 0x00);

// Hier wird die Ext-ID des RX-Paketes[1] auf den 11 Bit Mode gesetzt.

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_USE_EXT_ID, 0, ref val);

// Hier wird der verwendete Bit Mode des RX-Paketes[0]  der Variable val übergeben.

 

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_CANID

Mit diesem Befehl kann die CAN-ID eingestellt/ausgelesen werden.

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_CANID, 1, 0x1e);

// Hier wird die CAN-ID des RX-Paketes[1] auf die 30 gesetzt.

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_CANID, 0, ref val);

// Hier wird der verwendete CAN-ID des RX-Paketes[0] der Variable val übergeben.

par = DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_MODE

Mit diesem Befehl kann RX-Mode eingestellt/ausgelesen werden.

RX-Mode

Value

Digital Out 1-64

0x01

D/A CH 1-4

0x02

D/A CH 5-8

0x03

D/A CH 9-12

0x04

D/A CH 13-16

0x05

D/A CH 17-20

0x06

D/A CH 21-24

0x07

D/A CH 25-28

0x08

D/A CH 29-32

0x09

Stepper No. 1

0x0a

Stepper No. 2

0x0b

Stepper No. 3

0x0c

Stepper No. 4

0x0d

Stepper No. 5

0x0e

Stepper No. 6

0x0f

Stepper No. 7

0x10

Stepper No. 8

0x11

D/A CH 1-4 (custom)

0x12

D/A CH 5-8 (custom)

0x13

D/A CH 9-12 (custom)

0x14

D/A CH 13-16 (custom)

0x15

D/A CH 17-20 (custom)

0x16

D/A CH 21-24 (custom)

0x17

D/A CH 25-28 (custom)

0x18

D/A CH 29-32 (custom)

0x19

Trigger Auto TX 1

0x1a

Trigger Auto TX 2

0x1b

Trigger Auto TX 3

0x1c

Trigger Auto TX 4

0x1d

Custom1

0x1e

Custom2

0x1f

Custom3

0x20

PWM CH 1-8

0x21

PWM CH 9-16

0x22

PWM CH 17-24

0x23

PWM CH 25-32

0x24

PWM CH 33-40

0x25

PWM CH 41-48

0x26

PWM CH 49-56

0x27

PWM CH 57-64

0x28

Trigger Auto TX 5

0x29

Trigger Auto TX 6

0x2a

Trigger Auto TX 7

0x2b

Trigger Auto TX 8

0x2c

Programmierbeispiel

RunTimeVarWriteToModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_MODE, 1, 0x0f);

// Hier wird der Modus des RX-Paketes[1] auf den RX-Mode "Stepper No. 6" gesetzt

uint val = 0;

RunTimeVarReadFromModule(handle, DAPI_SPECIAL_CMDEXT_CAN_RUNTIME_RX_MODE, 0, ref val);

// Hier wird der verwendete RX-Mode des RX-Paketes[0]  der Variable val übergeben.