Alte XTS Utility-Aufrufe ersetzen

Alte XTS Utility-Aufrufe ersetzen 1:

Da sich bei der Konvertierung die Struktur der XTS Objekte im Projekt grundlegend geändert hat, wurde auch die Struktur der XTS Utility geändert. In der neuen Konfiguration funktionieren die alten Aufrufe der Funktionsblöcke FB_XtsUnit und der FB_XtsVisuDiag nicht mehr korrekt.

Weil die ADS Lesekommandos und Schreibkommandos im Hintergrund auf andere Objekt-IDs verweisen, ist es nicht möglich Daten vom XtsIoDriver-Objekt zu lesen oder auf das XtsIoDriver-Objekt zu schreiben. Die XtsUnit-Struktur erlaubt keinen Zugriff auf die Daten der entsprechenden XTS Objekte, wie beispielsweise der Module CoE-Daten.

Jeder XTS Utility-Aufruf der PLC muss geprüft und mit einer neuen Funktion ersetzt werden, um die gewünschten Werte zu erhalten. Es ist erforderlich, alle Stellen zu finden, an denen die alte XtsUnit-Struktur zum Einsatz kam und die Werte zu ermitteln, die dort geschrieben oder gelesen wurden.

Viele der alten Aufrufe der XtsUnit-Struktur können mit dem Verfahren der XTS Environment-Struktur ersetzt werden.

Ein grundlegendes Beispiel dafür, was in der Struktur geändert werden muss, ist das Vorgehen bei der Mover ID-Erkennung:


//MoverId Functionality
//check whether the position detection of the Movers has been completed.
IF fbXtsUnit.stXtsUnit.stTcIoXtsDrv.stParameter.bAreAllMoverPositionsValid THEN

    //Check if “MoverIdDetectionMode” has been activated under the XtsIoDriver object
    IF fbXtsUnit.stXtsUnit.stTcIoXtsDrv.stParameter.eMoverIdDetectionMode = ­E_MoverIdDetectionMode.Mover1
        //and that we are not running in simulation.
        AND NOT bSimulation
        THEN
            //Check whether the “MoverIdDetection” has already been started or the Mover1 was found.
            IF NOT (bMoverIdDetectionStarted OR bMoverIdDetected)
            THEN
                //Trigger the “MoverIdDetection”.
                fbXtsUnit.stXtsUnit.stTcIoXtsDrv.ipTcXtsIo.TriggerMoverIdDetection();
                // “bMoverIdDetectionStarted” is set to “True” after a single initiation.
                bMoverIdDetectionStarted := TRUE;
            END_IF

//Check for error or success of “MoverIdDetection”.
bMoverIdDetectionError := fbXtsUnit.stXtsUnit.stTcIoXtsDrv.stParameter.bHasMoverIdDetectionError;
bMoverIdDetected := fbXtsUnit.stXtsUnit.stTcIoXtsDrv.stParameter.bIsMoverIdDetectionValid;

//Do not process any further until the “MoverId” was detected.
IF NOT bMoverIdDetected THEN
RETURN;
END_IF
// If the “MoverIdDetection” was not activated in the XtsIoDriver object or running in simulation,
// then the activation of the “MoverIdDetection” and the search of Moer1 is skipped.
ELSE
;
END_IF

//If not all Mover positions are valid, do not process any further.
ELSE
RETURN;
END_IF
Alte XTS Utility-Aufrufe ersetzen 2:
Alte XTS Utility-Aufrufe ersetzen 3:

In der alten Konfiguration bekamen einige Aufrufe der Mover ID-Erkennung die Informationen des XtsIoDriver-Objekts mithilfe der XtsUnit-Struktur:

Alte XTS Utility-Aufrufe ersetzen 4:

Da das XtsIoDriver-Objekt in der neuen Konfiguration nicht vorhanden ist, müssen die Aufrufe so angepasst werden, dass die XtsEnvironment-Struktur die Informationen des XtsProcessingUnit-Objekts für die Aufrufe liefern:

Alte XTS Utility-Aufrufe ersetzen 5:

Auf diese Weise können viele der Aufrufe ersetzt werden. Dabei ist zu beachten, dass sich die XtsEnvironment-Struktur von der alten XTS Struktur im Hinblick auf die Initialisierung und das Sammeln der Zyklusdaten unterscheidet. Weitere Informationen dazu finden Sie im Kapitel Bibliothek hinzufügen.

Nachdem alle XtsUnit-Aufrufe aus dem Projekt entfernt wurden, kann die Konfiguration aktiviert werden.