Werkzeugdaten (D bzw. #TOOL DATA)

Werkzeuggeometrie

Bei jedem D<i> bzw. #TOOL DATA fordert die CNC während der NC-Programmdekodierung die Daten des Werkzeuges an.

Bei der Anforderung des neuen Werkzeuges werden die D-Nummer, T-Nummer und die frei verwendbaren P-Parameter des aktuell eingewechselten Werkzeuges mitgeliefert. Hierdurch kann die PLC erkennen, welches Werkzeug ausgewechselt werden soll. Über die P-Parameter kann z.B. im NC-Programm der Verschleiß eingetragen und im Werkzeugwechsel an die PLC zurückgemeldet werden.

Bei der Anfrage der CNC an die PLC werden folgende Daten (CNC_TOOL_REQUEST_IN) übertragen :

id : CNC_TOOL_ID; (tool id of requested tool)

act_t_nr : DINT; (actual t number in nc kernel)

act_d_nr : CNC_TOOL_ID; (actual tool id in nc kernel)

param : ARRAY[1..60] OF LREAL;

log_ax_nr_tool_length : UINT; (spindle axis for tool length compensation)

Die PLC liefert den kompletten Werkzeugdatensatz (CNC_TOOL_DESC) zurück.

Werkzeugdaten (D bzw. #TOOL DATA) 1:
Anfordern der Werkzeugdaten von der PLC

Programmierbeispiel

Werkzeugmanager im PLC-Programm

RInd : ADSRDWRTIND;
RRes : ADSRDWRTRES;
Rind;
IF RInd.VALID THEN
(* initialize response *)
RRes.NETID := '';
RRes.PORT := RInd.PORT;
RRes.INVOKEID := RInd.INVOKEID;
(* sender channel nr is coded in the invoke id *)
cnc_channel_nr := RInd.INVOKEID;
cnc_channel_nr := cnc_channel_nr AND 16#00FFFFFF;
(* CNC fordert Werkzeuggeometriedaten aufgrund D<i> an *)
IF RInd.IDXGRP = ADS_IGRP_TOOL_DESC_READ THEN
(* Tool data request from CNC *)
pToolReq := RInd.DATAADDR;
BasicToolId := pToolReq^.id.basic;
SpiindleID := pToolReq^.log_ax_nr_tool_length;
IF BasicToolId <= MAX_TOOLS THEN
(* transmit tool data in the response *)
RRes.LEN := SIZEOF(tool[1].cnc.tool_desc);
RRes.DATAADDR := ADR(tool[BasicToolId].cnc.tool_desc);
RRes.RESULT := ADS_RDWRT_IND_NO_ERROR;
ELSE
(* Tool not present *)
RRes.LEN := 0;
RRes.DATAADDR := 0;
RRes.RESULT := WZV_TOOL_ID_BASIC_INVALID;
END_IF

Programmierbeispiel

Werkzeuganforderung

%main
N10 X1200
N11 S2[D1] (Werkzeug D1 für Spindel S2 anfordern
N20 S2[D2 REV=1 M4] (Werkzeug D2 für Spindel S2 anfordern
N30 D3 S100 M3 (Werkzeug D3 für Spindel S anfordern
N40 X0
N50 M30