Fehlangaben der steuerungsinternen Uhr und Auswirkungen auf die Archivierung

Alle Ergebnisse, die in ToolsNet gespeichert werden, tragen einen von der Verschraubungssteuerung generierten Zeitstempel. Wenn die interne Uhr der Steuerung aufgrund eines unzureichenden Batteriestands der Echtzeituhr (RTC), einer fehlgeschlagenen Synchronisierung des Netzwerkzeitprotokolls (NTP), einer manuellen Fehlkonfiguration oder eines Zeitversatzes nicht korrekt läuft, besteht die Gefahr, dass Ergebnisse mit einem falschen Zeitstempel gespeichert werden. Falsche Zeitstempel wiederum können dazu führen, dass ein Ergebnis nicht im richtigen Archiv aufgeführt oder in der falschen Archivdatenbank abgelegt wird.

Typische Anzeichen:

  • Ergebnisse tragen Daten, die weit in der Vergangenheit liegen (beispielsweise 1970 oder 2000).

  • Ergebnisse tragen Daten, die in der Zukunft liegen.

  • Die Gesamtanzahl der archivierten Ereignisse stimmt nicht mit der Anzahl der Ereignisse in der Produktionsdatenbank überein.

Fehlersuche

Vergewissern Sie sich, dass alle Ergebnisse korrekte Zeitstempel tragen, bevor Sie eine Archivierung durchführen lassen. Senden Sie folgende Abfrage an die ToolsNet-Datenbank, um verdächtige Ergebnisse ausfindig zu machen:

Ergebnisse mit einem Zeitstempel, der um mehr als 1 Tag in der Zukunft liegt

SELECT
    r.ID,
    r.ResultDateTime,
    r.ResultInsertDateTime,
    CASE
        WHEN u.MasterUnitID IS NOT NULL
            AND mu.Name IS NOT NULL
        THEN CONCAT(mu.Name, ' - ', u.Name)
        ELSE u.Name
    END AS ControllerName,
    u.IPAddress,
    p.Name AS ProgramName,
    r.UnifiedResultStatusTypeID AS ResultStatus
FROM AtlasCopco_ToolsNet_Database.ACDC.Result AS r
LEFT JOIN AtlasCopco_ToolsNet_Database.ACDC.Unit AS u
    ON r.UnitID = u.ID
LEFT JOIN AtlasCopco_ToolsNet_Database.ACDC.Unit AS mu
    ON u.MasterUnitID = mu.ID
LEFT JOIN AtlasCopco_ToolsNet_Database.ACDC.Program AS p
    ON r.ProgramID = p.ID
WHERE r.ResultDateTime > DATEADD(DAY, 1, GETUTCDATE())
ORDER BY
    r.ResultInsertDateTime DESC;

Ergebnisse mit verdächtig alten Zeitstempeln (vor der Einführung von ToolsNet; die Angabe des Jahres bitte entsprechend anpassen)

SELECT
    r.ID,
    r.ResultDateTime,
    r.ResultInsertDateTime,
    CASE
        WHEN u.MasterUnitID IS NOT NULL
            AND mu.Name IS NOT NULL
        THEN CONCAT(mu.Name, ' - ', u.Name)
        ELSE u.Name
    END AS ControllerName,
    u.IPAddress,
    p.Name AS ProgramName,
    r.UnifiedResultStatusTypeID AS ResultStatus
FROM AtlasCopco_ToolsNet_Database.ACDC.Result AS r
LEFT JOIN AtlasCopco_ToolsNet_Database.ACDC.Unit AS u
    ON r.UnitID = u.ID
LEFT JOIN AtlasCopco_ToolsNet_Database.ACDC.Unit AS mu
    ON u.MasterUnitID = mu.ID
LEFT JOIN AtlasCopco_ToolsNet_Database.ACDC.Program AS p
    ON r.ProgramID = p.ID
WHERE
    r.ResultDateTime < (
        SELECT TOP (1)
            TimeStamp
        FROM AtlasCopco_ToolsNet_Database.ToolsNet.SystemInfoLog
    )
    AND r.ResultDateTime < (
        SELECT TOP (1)
            ResultInsertDateTime
        FROM AtlasCopco_ToolsNet_Database.ACDC.Result
        ORDER BY
            ID
    )
ORDER BY
    r.ResultInsertDateTime ASC;

UnitID, Name und Gesamtmenge an Ergebnissen, bei denen es hinsichtlich des Jahres keine Übereinstimmung gibt

SELECT
    r.UnitID,
    CASE
        WHEN u.MasterUnitID IS NOT NULL AND mu.Name IS NOT NULL
            THEN CONCAT(mu.Name, ' - ', u.Name)
        ELSE u.Name
    END AS ControllerName,
    u.IPAddress,
    COUNT(*) AS MismatchedYearCount
FROM AtlasCopco_ToolsNet_Database.ACDC.Result r
LEFT JOIN AtlasCopco_ToolsNet_Database.ACDC.Unit u
    ON r.UnitID = u.ID
LEFT JOIN AtlasCopco_ToolsNet_Database.ACDC.Unit mu
    ON u.MasterUnitID = mu.ID
LEFT JOIN AtlasCopco_ToolsNet_Database.ACDC.Program p
    ON r.ProgramID = p.ID
WHERE DATEPART(YEAR, r.ResultDateTime) <> DATEPART(YEAR, r.ResultInsertDateTime)
GROUP BY
    r.UnitID,
    CASE
        WHEN u.MasterUnitID IS NOT NULL AND mu.Name IS NOT NULL
            THEN CONCAT(mu.Name, ' - ', u.Name)
        ELSE u.Name
    END,
    u.IPAddress
ORDER BY MismatchedYearCount DESC;

Wenn die Abfrage Ergebnisse erbringt, erfassen Sie den Namen der Steuerung und die IP-Adresse und überprüfen Sie die steuerungsinterne Uhr, bevor Sie die Archivierung durchführen.

Folgen für die Archivierung

Beim Archivierungsprozess werden die Ergebnisse anhand der Spalte Zeitstempel ausgewählt. Wenn eine Steuerung Ergebnisse mit fehlerhaftem Zeitstempel sendet, wirkt sich dies wie nachfolgend beschrieben auf die Archivierung aus.

Szenario

Auswirkung auf die Archivierung

Zeitstempel liegt in der Vergangenheit (beispielsweise im Jahr 2000)

Die Ergebnisse könnten im ersten Durchlauf sofort im falschen Archiv abgelegt werden – selbst wenn es sich um neuere Betriebsergebnisse handelt. Damit fallen sie auch unter die Aufbewahrungsregelung für dieses Archiv.

Zeitstempel liegt in der Zukunft (beispielsweise im Jahr 2099)

Die Ergebnisse werden erst archiviert, wenn dieses in der Zukunft liegende Datum erreicht ist. Dies führt zu einem Anwachsen der Produktionsdatenbank.

Mischung aus richtigen und falschen Zeitstempeln in derselben Steuerung

Das „letzte Ergebnis“ einer Montageaufgabe kann falsch sein. Dies wirkt sich auf die SPC, die Statistiken und die Berichterstattung aus.

Zeitstempel aus dem falschen Jahr

Die Ergebnisse könnten in der falschen Archivdatenbank abgelegt werden.

Empfohlene Maßnahmen vor einer Archivierung

  • Überprüfen Sie die Batterie der steuerungsinternen Echtzeituhr und ersetzen Sie sie, wenn der Ladestand gering ist.

  • Vergewissern Sie sich, dass die Steuerung auf eine Zeitsynchronisierung mit einem verlässlichen NTP-Server eingestellt und die Synchronisierung aktiv ist.

  • Korrigieren Sie etwaige Fehlkonfigurationen der Steuerung.

  • Führen Sie bei Steuerungen, die Ergebnisse mit fehlerhaften Zeitstempeln übermittelt haben, keine Archivierung durch.

  • Erstellen Sie ein QCM-Supportticket, um die Zeitstempel in ToolsNet manuell zu aktualisieren.

  • Wenn sehr viele Ergebnisse falsche Zeitstempel tragen und die Archivierung nicht sicher durchgeführt werden kann, wenden Sie sich an das ACDC-/ToolsNet-Supportteam.

Bei ToolsNet 8 werden fehlerhafte Zeitstempel der Steuerung weder automatisch erkannt noch korrigiert. Dies ist designbedingt. Die Verantwortung für die Integrität der Ergebniszeitstempel liegt bei der Steuerung.

Empfohlene Maßnahmen nach einer Archivierung

Führen Sie eine Abfrage durch, die sich auf einen festgelegten Zeitraum (01.01.2024 bis 01.01.2025) bezieht, um nicht archivierte Produktionsergebnisse ausfindig zu machen. Die Abfrage sollte:

  • die IDs der einzelnen Produktionsergebnisse (Ergebnis-ID) mit der Archivreferenz (Archive.dbo.Result.ResultID) vergleichen

  • nur Ergebnisse ausgeben, für die kein passender Archiveintrag vorliegt

  • Angaben zur Einheit und zur Steuerung (gegebenenfalls Anzeige von MasterUnitName – UnitName), die IP-Adresse der Einheit und das vollständige Ergebnisprotokoll beinhalten, um die Suche nach fehlenden Archiveinträgen zu unterstützen.

SELECT
    u.ID AS UnitID,
    CASE
        WHEN u.MasterUnitID IS NOT NULL AND mu.Name IS NOT NULL
            THEN CONCAT(mu.Name, ' - ', u.Name)
        ELSE u.Name
    END AS ControllerName,
    u.IPAddress AS IPaddress,
    r.*
FROM AtlasCopco_ToolsNet_Database.ACDC.Result r
INNER JOIN AtlasCopco_ToolsNet_Database.ACDC.Unit u
    ON r.UnitID = u.ID
LEFT JOIN AtlasCopco_ToolsNet_Database.ACDC.Unit mu
    ON u.MasterUnitID = mu.ID
LEFT JOIN Archive.dbo.Result arch
    ON r.ID = arch.ResultID
WHERE
    r.ResultDateTime >= '2024-01-01'
    AND r.ResultDateTime < '2025-01-01'
    AND arch.ResultID IS NULL
ORDER BY
    ControllerName,
    r.ResultDateTime DESC;

Vergewissern Sie sich, dass der Bestandteil Archive in Archive.dbo.Result durch den Archivdatenbanknamen Ihres Systems ersetzt wurde. Wenn Ihre Archivdatenbank beispielsweise die Bezeichnung ToolsNetArchive trägt, muss die Angabe ToolsNetArchive.dbo.Result lauten.