
Jetter AG
Programming | 8
jxm-io-ew30_ba_2151_manual
45 / 56
8.6.5 STX example: Output value AI1 Voltage to TPDO1
The following STX example shows you in part how you can output the value AI1 Voltage on
TPDO1.
//Switching
JXM-IO-EW30-G27
to PREOPERATIONAL
CanOpenSetCommand(
cCanChannel,CAN_CMD_NMT,CAN_CMD_NMT_Value(
cJXMNodeId,CAN_NMT_PREOPERATIONAL));
//AI 1 Port Type to AI_VOLTAGE (=1)
iTemp :=
1
;
CanOpenDownloadSDO(
cCanChannel, cJXMNodeId,
0x2100
,
1
, CANOPEN_DWORD,
4
, iTemp, iBusy);
when
SDOACCESS_FINISHED(iBusy)
continue
;
//Invalidating TxPDO object, setting uppermost bit to 1
dTemp :=
0x80000000
+
0x180
+
0x30
;
CanOpenDownloadSDO(
cCanChannel, cJXMNodeId,
0x1800
,
1
, CANOPEN_DWORD,
4
, dTemp, iBusy);
when
SDOACCESS_FINISHED(iBusy)
continue
;
//Disabling mapping
dTemp :=
0
;
CanOpenDownloadSDO(
cCanChannel, cJXMNodeId,
0x1a00
,
0
, CANOPEN_BYTE,
1
, dTemp, iBusy);
when
SDOACCESS_FINISHED(iBusy)
continue
;
//Entering value AI1 Voltage
dTemp :=
0x21000a10
;
// Index: 0x2100, sub-index 0x0a = 10, length 0x10 = 16
bits
CanOpenDownloadSDO(
cCanChannel, cJXMNodeId,
0x1a00
,
1
, CANOPEN_DWORD,
4
, dTemp, iBusy);
when
SDOACCESS_FINISHED(iBusy)
continue
;
//Enabling mapping
dTemp :=
1
;
// Number of mapping entries
CanOpenDownloadSDO(
cCanChannel, cJXMNodeId,
0x1a00
,
0
, CANOPEN_BYTE,
1
, dTemp, iBusy);
when
SDOACCESS_FINISHED(iBusy)
continue
;
//Validating object, setting uppermost bit to 0, specifying PDO COB
dTemp :=
0x180
+
0x30
;
CanOpenDownloadSDO(
cCanChannel, cJXMNodeId,
0x1800
,
1
, CANOPEN_DWORD,
4
, dTemp, iBusy);
when
SDOACCESS_FINISHED(iBusy)
continue
;
//Switching
JXM-IO-EW30-G27
to OPERATIONAL
CanOpenSetCommand(
cCanChannel,CAN_CMD_NMT,CAN_CMD_NMT_Value(
cJXMNodeId,CAN_NMT_OPERATIONAL));