FB_Dpv1ReadPNET
Der Funktionsbaustein "FB_Dpv1ReadPNET" liest einen oder mehrere Parameter eines Sinamics Profidrive via DPV1 (Profidrive specification 3.1) via Profinet. Das DPV1 Lesetelegramm muss mit F_CreateDpv1ReadReqPkgPNET erstellt werden, bevor an bExecute eine steigende Flanke ansteht. Das DPV1 Antworttelegramm muss mit F_SplitDpv1ReadResPkgPNET ausgewertet werden, nach dem bBusy eine fallende Flanke anzeigt.
Die Ausführung dieses Funktionsbausteins benötigt einige Zeit, abhängig von der Anzahl der Parameter, die gelesen werden sollen. Der Funktionsbaustein sendet das DPV1 Telegramm und pollt nach einem Antworttelegramm.
Intern werden Instanzen von ADSREAD und ADSWRITE benutzt.
Siehe Sample05.zip.
VAR_INPUT
VAR_INPUT
bExecute : BOOL;
(* drive access info *)
aNetId : T_AmsNetId; (* NetID of Profibus Master EL6631 *)
iProfinetPort : UINT; (* Port of ProfiDrive *)
iDriveId : USINT; (* 0..255 possible *)
pDpv1ReqData : POINTER TO ARRAY [1..iMAX_DPV1_SIZE_PNET_REQ] OF BYTE;
iDpv1ReqDataLen : UDINT;
pDpv1ResData : POINTER TO ARRAY [1..iMAX_DPV1_SIZE_PNET_RES] OF BYTE;
iDpv1ResDataLen : UDINT;
tTmOut : TIME;
END_VAR
bExecute: Über eine positive Flanke an diesem Eingang wird der Baustein aktiviert.
aNetId: Die AmsNetId des Profibus Master Gerätes (siehe ADS-Tab des Profibus Master Gerätes in der I/O-Konfiguration im System Manager).
iProfinetPort: Die Profinet Port-Nummer des Antriebs. Das ist eine Adresse für mehrere Achsen, spezifiziert im TwinCAT System Manager in der I/O-Konfiguration.
iDriveID: Die ID ist 1 für die ControllerUnit, 2 für das Antriebsobjekt A, 3 für das Antriebsobjekt B eines Doppel/Dreifach-Antriebs. Die Drive ID wird in der Starter Software gesetzt. 1..16 ist möglich.
pDpv1ReqData: Zeiger auf ein Array von 240 Bytes, das das DPV1 Lesetelegramm enthält. Dieses Telegramm muss von der Funktion F_CreateDpv1ReadReqPkg erstellt werden, bevor das DPV1 Lesen via bExecute aktiviert wird.
iDv1ReqDataLen: Maximale Länge des DPV1 Datapuffer (240 bytes).
pDpv1ResData: Zeiger auf ein Array von 240 Bytes, das das DPV1 Leseantworttelegramms enthält. Dieses Telegramm muss von der Funktion F_SplitDpv1ReadResPkg ausgewertet werden nachdem auf bBusy eine negative Flanke erscheint.
iDv1ResDataLen: Maximale Länge des DPV1 Antwort-Datapuffers (240 bytes).
tTmOut: Bestimmt das Timeout der von den ADS-Kommandos nicht überschritten werden soll.
VAR_OUTPUT
VAR_OUTPUT
bBusy : BOOL;
bError : BOOL;
bErrorValues : BOOL;
iErrId : UDINT;
iErrorClass : BYTE;
iErrorCode : BYTE;
END_VAR
bBusy: Der Ausgang geht auf TRUE sobald der Funktionsbaustein via bExecute aktiviert wurde und bleibt so lange TRUE, wie der Baustein keine Antwort erhalten hat.
bError: Bei ADS Fehlern geht der Ausgang auf TRUE und bBusy auf FALSE.
bErrorValues: Ist TRUE wenn der DPV1 Read nicht oder nur teilweise erfolgreich war. Die Fehlerursachen werden über die Fehler-ID geliefert (sowie Class und Code).
nErrId: Liefert die ADS Fehlernummer oder funktionsbausteinspezifische Fehlernummern, wenn bError = TRUE.
nErrClass: Profidrive Fehlerklasse
nErrCode: Profidrive Fehlercode
VAR_IN_OUT
VAR_OUTPUT
iRequestRef : USINT; (* 1..127; 0: reserved *)
END_VAR
iRefRequest: Referenz, die mit jedem Telegramm automatisch hochgezählt wird. Die Referenz wird für die Zuordnung der Antworten auf die Schreib/Lese-Anforderungen benötigt.
Funktionbausteinspezifische Fehlercodes | Beschreibung |
---|---|
0x2 | falsche Antwortreferenz |
0x3 | DPV1 Read fehlerhaft oder teilweise fehlerhaft |
0x4 | falsche Antwort-ID |
other error IDs | siehe ADS Fehlercodes |
Fehlerklassen | Beschreibung | Fehlercode |
---|---|---|
0x0 - 0x9 | reserviert | - |
0xA | Anwendungsfehler | 0x0: Lesefehler 0x2: Modulfehler |
0xB | Zugriffsfehler | 0x0: ungültiger Index (kein Datenblock DB47, Parameterzugriff wird nicht unterstützt) 0x8: ungültiger Parameter |
0xC | Resourcefehler | 0x0: Lesekonflikt 0x4 - 0x7: reserviert |
0xD - 0xF | Benutzerdefinierte Fehler | - |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | IO Hardware | Einzubindende SPS-Bibliotheken |
---|---|---|---|
TwinCAT v2.11.0, Build > 1553 TwinCAT v2.11.0 R2, Build > 2024 | PC (i386)
| Beckhoff EL6632 | TcIoFunctions.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib; TcUtilities.Lib werden automatisch eingebunden ) |