|
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.
|
|