Currently I am using a CDD file for accessing signal in CAPL program. Now I am trying to send the UDS signal without CDD file. Is there any options for the same?
2 Answers
It is called basic diagnostics.
In the diagnostics configuration window, where you normally would assign a CDD to an ECU, you can chose something like „Add Basic Diagnostics (UDS)“.
After doing this and confirming the dialog, there is a basic diagnostics editor, where you can configure UDS like services and their parameters.
Sending the requests and handling the response is then the same as with a CDD.

- 3,500
- 2
- 12
- 24
-
Spiller I have two ECUs connected in RBS,How can i select particular ECU in the UDS configuration. Now I am getting the positive response but it is not reflecting in the connected ECUs. – Nandu Apr 13 '20 at 06:41
-
What do you mean by *selecting particular ECU*? You say that you are getting a positive response, but this is not coming from your simulated ECUs? Where else should it be coming from? – MSpiller Apr 13 '20 at 08:40
-
We Have two real ECU connected with RBS configuration. But after sending extended session getting positive response(May be from simulated node) but not reflected in the real ECU – Nandu Apr 14 '20 at 02:16
-
I do not really understand the problem. When it works with a CDD it will also work with basic diagnostics. In case you have other problem it might be better to open a new question. – MSpiller Apr 14 '20 at 08:20
-
You have incorrect address selected then? In physical addressing (which I assume you are using),, each node should have certain address which it responds to according to UDS. – Midas Apr 15 '20 at 09:13
you need to create your own library to handle Diagnostic.
CAPL Diag Function only support Diagnostic Object from CDD.
but there is an easy way for CAPL to send Diagnostic with the help of existing CDD/standard UDS CDD (example CDD from CANoe installation):
for example: I want to send Diag Req $22 F1 F0.
case 1: but this DID F1F0 is not defined in CDD.
in CDD have already defined $22 F1 16 (ECU_Identification_Hardware_Part_Number).
you should be able to see in Symbol Windows: the Service "ECU_Identification_Hardware_Part_Number_Read" under ECU name "yourECU"
then you could do as follow
on key 'x'
{
diagrequest yourECU.ECU_Identification_Hardware_Part_Number_Read req;
write("send new DID $22 F1 F0");
DiagSetPrimitiveByte(req,1,0xF1);
DiagSetPrimitiveByte(req,2,0xF0);
DiagSendRequest(req);
}
case 2: use Standard UDS CDD from CANoe.
- goto Menu Diagnostics > Diagnostics/ISO TP Configuration
- CAN Networks > CAN1 or your Channel
- add Diagnostic Description > add Standard Diagnostic Description (CDD) > GenericUDS
- rename ECU qualifier ex: yourECU
- OK
- open CAPL Editor
now you should be able to see in Symbol Windows the Diagnostic Object.
then you could drag and drop the Service you want to code ex:
on key 'x'
{
diagrequest yourECU.ReadDataByIdentifier_Process req;
DiagSetPrimitiveByte(req,1,0xF1);
DiagSetPrimitiveByte(req,2,0x90);
DiagSendRequest(req);
}
However, you can change the service by first Primitive Byte ex:
DiagSetPrimitiveByte(req,0,0x10); // Session Control
Note: the ECU Diag Request/Response ID have to be take care in config Menu Diagnostics > Diagnostics/ISO TP Configuration > CAN Networks > your CAN channel > yourECU > Transport Layer

- 28
- 6