Beispiel
// Variablendeklaration
VAR
// Diagnoseadresse der PROFIBUS-Schnittstelle
logAddrDpAdapter
// PROFIBUS-Adresse des lokalen Steckplatzes
locDpSlaveAddress
// Variablen für Rückgabewerte
retDpSlaveAddress
locRetVal
neededSetDpAddress
END_VAR
// Lese aktive DP-Slave-Adresse
retDpSlaveAddress := _getActiveDpSlaveAddress (
logicalAddressCommunicationAdapter := logAddrDpAdapter
// Diagnoseadresse der PROFIBUS-Schnittstelle
);
IF (0 = retDpSlaveAddress.functionResult) THEN
// Prüfen, ob neue DP-Slave-Adresse nötig
IF (retDpSlaveAddress.dpSlaveAddress <>
ELSE
END_IF;
END_IF;
IF (1 = neededSetDpAddress) THEN
// Setze neue DP-Slave-Adresse
locRetVal := _setDpSlaveAddress (
IF (0 = locRetVal) THEN
ELSE
END_IF;
END_IF;
Bild 3-1
© Siemens AG 2009 All Rights Reserved
SIMOTION Basisfunktionen für modulare Maschinen, 05/2009
Einstellen der Kommunikationsadressen durch das Anwenderprogramm
: DINT := 1023;
: SINT := 4;
: structRetDpSlaveAddress;
: DINT;
: DINT := 0;
// Setzen einer neuen DP-Slave-Adresse nötig
neededSetDpAddress := 1;
; //Anwenderdefinierte Fehlerreaktion
logicalAddressCommunicationAdapter := logAddrDpAdapter,
// Diagnoseadresse der PROFIBUS-Schnittstelle
dpSlaveAddress := locDpSlaveAddress
// PROFIBUS-Adresse des lokalen Steckplatzes
);
locRetVal := _activateDpSlaveAddress (
logicalAddressCommunicationAdapter :=
// Diagnoseadresse der PROFIBUS-Schnittstelle
);
;
// Anwenderdefinierte Fehlerreaktion
Beispiel zum Lesen, Setzen und Aktivieren der DP-Slave-Adresse
locDpSlaveAddress) THEN
logAddrDpAdapter
3-41