Vergleichen von Projekten

Mit Hilfe des Befehls 'Projekt > Projekte vergleichen...' können die Programmquellen zweier Projekte miteinander verglichen werden.

Um zwei Projekte vergleichen zu können, müssen diese vorher nicht notwendigerweise kompiliert worden sein. Somit können auch Projekte verglichen werden, die sich nicht kompilieren lassen.

HINWEIS:

Dies gilt nicht für ST-Arbeitsblätter. Diese müssen kompiliert werden, damit Code-Änderungen beim Projektvergleich erkannt werden.

HINWEIS:

Die zu vergleichenden Projekte müssen mit SoSafe Programmable V2.x oder Machine Expert – Safety V1.x oder neuer bearbeitet oder zumindest geöffnet worden sein.

Projektänderungen unter sicherheitstechnischen Aspekten zuverlässig finden

HINWEIS:

Die Ergebnisse aus dem Machine Expert – Safety-Projektvergleich dürfen weder direkt noch indirekt zu ausführbarem Code (inklusive Daten) des sicherheitsbezogenen Systems beitragen. Der Machine Expert – Safety-Projektvergleich ist als T1-Werkzeug gemäß der Norm 61508:4:2010 klassifiziert.

Um modifizierte Projektteile zuverlässig zu bestimmen, dürfen die Ergebnisse des Projektvergleichs nur in Verbindung mit dem manuellen Vergleich der von Machine Expert – Safety berechneten Prüfsummen (CRCs) verwendet werden. CRCs werden im 'Projekt Info'-Dialog und, für verifizierte POEs, im Projektbaum ausgegeben.

Diese CRCs stellen die einzig gültige Basis für die zuverlässige Erkennung sicherheitsbezogener Projektänderungen dar. Um Sie beim Auffinden der Änderungsdetails in Projektteilen mit unterschiedlichen CRCs zu unterstützen, bietet Machine Expert – Safety die hier beschriebene Projektvergleichsfunktion an.

 WARNUNG

UNBEABSICHTIGTER BETRIEBSZUSTAND DES GERÄTS

  • Stellen Sie sicher, dass die Ergebnisse des Projektvergleichs nur in Kombination mit einem manuellen Vergleich der in Machine Expert – Safety berechneten CRCs verwendet werden.

  • Wenden Sie bei Änderungen an sicherheitsbezogenen Programmteilen oder Geräteparametern immer die Maßnahmen gemäß geltender Sicherheitsnormen an.

Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Körperverletzungen oder Sachschäden zur Folge haben.

Generelle Vorgehensweise für das sicherheitsbezogene Auffinden von Projektänderungen:

  1. Führen Sie einen manuelle Vergleich durch

    • der CRCs im Dialog 'Projekt-Info' ('Projekt > Projektinformation', Register 'Projekt') des in Machine Expert – Safety geladenen Projekts

    • mit den CRCs in der archivierten Projektdokumentation des zu vergleichenden Projekts.

    Unterschiedliche CRCs deuten darauf hin, dass der betreffende Projektteil geändert wurde.

    Identische CRCs bedeuten, dass der betreffende Projektteil unverändert ist.

  2. Wenn die 'Logik-CRC' abweicht, können Sie die POE-Verifizierungsfunktion nutzen, um geänderte POEs zu bestimmen.

    Zu diesem Zweck führen Sie einen manuellen Vergleich durch

    • der POE-CRCs neben den POE-Symbolen im Projektbaum

    • mit den POE-CRCs in der gedruckten Projektdokumentation des zu vergleichenden Projekts.

    (Die bei der Verifizierung durch Machine Expert – Safety berechnete CRC wird in der Fußzeile jedes Code-Arbeitsblatts und des lokalen Variablen-Arbeitsblatts unter dem Namen der verifizierten POE gedruckt.)

  3. Basierend auf den Ergebnissen der CRC-Vergleiche in den Schritten 1 und 2, können Sie den Projektvergleich, wie in diesem Thema beschrieben, dazu verwenden, um die Details der Änderungen zu bestimmen und zu finden.

Verglichene Projektteile

Beim Projektvergleich werden folgende Unterschiede erkannt und aufgelistet:

Projektteil

Erkannte Änderungen

Nicht erkannte Änderungen

Projektstruktur

(Ordner 'Logische POEs')

Neue, umbenannte oder gelöschte POEs.

Neue, umbenannte oder gelöschte Code-Arbeitsblätter.

Geänderte Reihenfolge der Code-Arbeitsblätter in POEs.

Hinzugefügte/gelöschte Bibliotheken

Neue Dokumentationsarbeitsblätter

FBS/KOP-Code

Alle code-relevanten Unterschiede und Kommentare.

Was bedeutet "code-relevant"?

Als "code-relevant" gilt jede Änderung, die Auswirkungen auf den resultierenden Applikationscode hat. Neben dem Einfügen, Löschen oder Ändern von Code-Objekten gehören auch all jene Modifikationen dazu, welche die Abarbeitungsreihenfolge beeinflussen, wie beispielsweise das Verschieben eines ganzen Code-Netzwerks.

Im Gegensatz dazu wird durch das Verschieben einzelner Variablen, KOP-Objekte oder Funktionen/FBs an eine andere Arbeitsblattposition zwar das sichtbare Schaltungslayout verändert, auf die Abarbeitungsreihenfolge der Sicherheitssteuerung hat dies aber keinen Einfluss. Solche Modifikationen sind nicht code-relevant und werden folglich beim Vergleich auch nicht erkannt.

Keine

ST-Code

Alle Unterschiede.

Der Projektvergleich unterstützt jedoch keine grafische Aufbereitung der gefundenen Unterschiede. Falls in Ihrer Machine Expert – Safety-Version implementiert, können Sie dazu ein externes Vergleichstool verwenden.

Keine

Variablen-Arbeitsblätter

Alle Unterschiede.

Der Projektvergleich unterstützt jedoch keine grafische Aufbereitung der gefundenen Unterschiede. Falls in Ihrer Machine Expert – Safety-Version implementiert, können Sie dazu ein externes Vergleichstool verwenden.

Keine

Dokumentationsarbeitsblätter

Keine

Im Projektvergleich nicht berücksichtigt.

'Projektinformation'-Dialog

Keine

Im Projektvergleich nicht berücksichtigt.

Parametrierung sicherheitsbezogener Geräte

Alle Änderungen im sicherheitsbezogenen Geräteparametrierungseditor.

Keine

Alle erkannten Unterschiede werden im Arbeitsbereich Projektvergleich aufgelistet, der sich automatisch öffnet.

So vergleichen Sie Projektquellen

HINWEIS:

Lesen und beachten Sie vor dem Projektvergleich die Informationen im Abschnitt "Projektänderungen unter sicherheitstechnischen Aspekten zuverlässig finden".

Da das Machine Expert – Safety-Projekt Teil des zugehörigen Machine Expert-Projekts ist, können Sie zum Vergleich Machine Expert-Projekte auswählen. Der Projektvergleich vergleicht die darin enthaltenen sicherheitsbezogenen Projektteile. Es können auch sicherheitsbezogene Projekte verglichen werden, die aus Machine Expert – Safety exportiert wurden.

  1. Öffnen Sie das Projekt (Projekt A), das mit einem anderen Projekt (B) verglichen werden soll.

    Die Dateierweiterung eines Machine Expert-Projekts ist *.project.

    Die Dateierweiterung eines sicherheitsbezogenen exportierten Projekts ist *.spa.

  2. Wählen Sie 'Projekt > Projekte vergleichen...' und wählen Sie anschließend das zu vergleichende Projekt (B) aus (das mit Projekt A verglichen werden soll).

    Sie können entweder ein Machine Expert-Projekt auswählen (siehe Hinweis oben) oder ein exportiertes sicherheitsbezogenes Projekt (*.spa).

    Der Vergleich wird nun automatisch gestartet.

    Falls das aktuelle Projekt (A) zuvor geändert aber noch nicht gespeichert wurde, werden Sie zunächst aufgefordert, die Änderungen zu speichern.

    Wenn Sie nicht speichern, wird die zuletzt gespeicherte Projektversion für den Vergleich verwendet. Die durchgeführten Änderungen bleiben natürlich erhalten.

  3. Nachdem der Vergleich gestartet wurde, öffnet sich automatisch der Arbeitsbereich Projektvergleich mit den Vergleichsergebnissen. (Falls der Arbeitsbereich Projektvergleich bereits geöffnet war, wird sein Inhalt automatisch aktualisiert.)

Arbeitsbereich Projektvergleich

HINWEIS:

Lesen und beachten Sie die Informationen im Abschnitt "Projektänderungen unter sicherheitstechnischen Aspekten zuverlässig finden" bevor Sie die Vergleichsergebnisse verwenden.

 WARNUNG

UNBEABSICHTIGTER BETRIEBSZUSTAND DES GERÄTS

Stellen Sie sicher, dass die Ergebnisse des Projektvergleichs nur in Kombination mit einem manuellen Vergleich der in Machine Expert – Safety berechneten CRCs verwendet werden.

Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Körperverletzungen oder Sachschäden zur Folge haben.

Der Arbeitsbereich Projektvergleich erscheint automatisch nach dem Starten des Vergleichs. Er setzt sich aus zwei Bereichen zusammen (eine Beispielabbildung sehen Sie am Ende dieses Themas).

Die 'Unterschiede'-Liste (im unteren Fensterbereich) enthält die erkannten Unterschiede in hierarchisch gruppierter Weise. Je nach erkannten Unterschieden, können folgende Gruppen aufgelistet sein: Änderungen im Projekt, Änderungen im Code, Änderungen in Variablen, Änderungen in sicherheitsbezogenen Geräten und Änderungen im Busnavigator.

Jede Gruppe lässt sich erweitern, um die darin enthaltenen Details, wie zum Beispiel betroffene Arbeitsblätter oder Module, anzuzeigen. Wenn Sie einen Detailknoten erweitern, werden darin die erkannten Unterschiede angezeigt.

Sie erweitern und reduzieren eine bestimmte Gruppe, indem Sie auf das Symbol '+' oder '-' neben dem betreffenden Eintrag klicken. Um alle Einträge in der Liste gemeinsam zu erweitern bzw. zu reduzieren, wählen Sie im Kontextmenü entsprechend 'Alle erweitern' bzw. 'Alle reduzieren'. Die Symbole neben den Listeneinträgen zeigen die Art des Unterschieds, d.h. die Modifikation an:

Hinzugefügtes Element

Geändertes/aktualisiertes Element

Gelöschtes Element

Verschobenes Element

Vergleichende Code-Ansicht (im oberen Teil des Arbeitsbereichs): Unterschiedliche FBS/KOP-Arbeitsblätter können Seite an Seite im Nur-Lese-Modus angezeigt werden. Dazu klicken Sie in der 'Unterschiede'-Liste auf den gewünschten Eintrag. Unterschiedliche code-relevante FBS/KOP-Objekte (inklusive Kommentare) werden durch farbige Umrandungen und grauen Hintergrund hervorgehoben. (Unterschiede in anderen Projektteilen als FBS/KOP-Code lassen sich optional mit Hilfe eines externen Vergleichstools anzeigen.)

Was bedeutet "code-relevant"?

Als "code-relevant" gilt jede Änderung, die Auswirkungen auf den resultierenden Applikationscode hat. Neben dem Einfügen, Löschen oder Ändern von Code-Objekten gehören auch all jene Modifikationen dazu, welche die Abarbeitungsreihenfolge beeinflussen, wie beispielsweise das Verschieben eines ganzen Code-Netzwerks.

Im Gegensatz dazu wird durch das Verschieben einzelner Variablen, KOP-Objekte oder Funktionen/FBs an eine andere Arbeitsblattposition zwar das sichtbare Schaltungslayout verändert, auf die Abarbeitungsreihenfolge der Sicherheitssteuerung hat dies aber keinen Einfluss. Solche Modifikationen sind nicht code-relevant und werden folglich beim Vergleich auch nicht erkannt.

Farbe

Bedeutung

Beispiel

Grün

Neu eingefügte Objekte im aktuellen Projekt. Nur in der linken Code-Ansicht vorhanden.

Blau

Geänderte Objekte. Sowohl in der linken als auch in der rechten Code-Ansicht vorhanden.

Rot

Gelöschte Objekte. Nur in der rechten Code-Ansicht vorhanden.

Orange

Netzwerk, das an eine andere Arbeitsblattposition verschoben wurde. Sowohl in der linken als auch in der rechten Code-Ansicht vorhanden. Beachten Sie hierzu bitte die oben stehende Erläuterung zu "code-relevanten Änderungen".

Funktionen im Arbeitsbereich Projektvergleich:

Synchronisiertes Scrollen in der vergleichenden Code-Ansicht.

Wenn Sie im Arbeitsbereich Projektvergleich den Menüpunkt 'Extras > Synchroner Bildlauf' ausgewählt haben, werden die beiden angezeigten Code-Arbeitsblätter synchron gescrollt (horizontal und vertikal). Dadurch kann der Code auch in sehr großen Arbeitsblättern verglichen werden.

Wenn die Arbeitsblätter beim Auswählen des Befehls unterschiedliche Positionen zeigen, werden sie zunächst an die gleiche Position gesetzt.

Aufruf eines externen Vergleichstools

Machine Expert – Safety unterstützt ein externes Vergleichstool (z. B. Beyond Compare), mit dem sich Unterschiede in anderen Projektteilen als FBS/KOP-Code anzeigen lassen. Nachdem Sie das externe Vergleichstool installiert und konfiguriert haben, lässt es sich über das Kontextmenü der entsprechenden Einträge in der 'Unterschiede'-Liste aufrufen. Lesen Sie hierzu den Abschnitt "Externes Vergleichstool".

Anspringen und Bearbeiten einer bestimmten Code-Position

In der vergleichenden Code-Ansicht kann nicht editiert werden (Nur-Lese-Ansicht). Sie können jedoch aus dieser Ansicht direkt in die betreffenden Code-Arbeitsblätter im Projekt springen, um diese dort zu bearbeiten. Auf das "Vergleichsprojekt" (das Sie als zweites ausgewählt haben) kann auf diese Weise nicht zugegriffen werden.

  • Rechtsklicken Sie entweder in der 'Unterschiede'-Liste auf den betreffenden Eintrag und wählen Sie den Kontextmenüpunkt 'Quelle bearbeiten' aus.

  • Oder doppelklicken Sie auf der linken Seite der vergleichenden Code-Ansicht an die entsprechende Code-Position.

Drucken der Vergleichsergebnisse

Das 'Datei'-Menü des Arbeitsbereichs Projektvergleich bietet Befehle zum Drucken der Vergleichsergebnisse und für die Druckvorschau an.

Beispiel

Externes Vergleichstool

HINWEIS:

Das externe Vergleichstool wie hier beschrieben wird ab Machine Expert V2.0 unterstützt.

Der Arbeitsbereich Projektvergleich zeigt in der vergleichenden Code-Ansicht eine grafische Darstellung aller gefundenen Unterschiede im FBS/KOP-Code an. Unterschiede in ST-Code sowie in Variablen-/Geräteparametertabellen oder im Projektbaum können jedoch in der vergleichenden Code-Ansicht nicht dargestellt werden (obwohl Sie in der 'Unterschiede'-Liste aufgeführt sind).

Machine Expert – Safety unterstützt übliche externe Vergleichstools, beispielsweise Beyond Compare. Damit lassen sich Unterschiede in solchen Projektteilen anzeigen.

Nachdem Sie das externe Vergleichstool installiert und konfiguriert haben (siehe Abschnitt unten), steht in der 'Unterschiede'-Liste für die entsprechenden Einträge der Kontextmenübefehl 'Externes Vergleichstool öffnen...' zur Verfügung. Nach dem Aufruf wird das ältere Vergleichsprojekt (Projekt B, ausgewählt im Schritt 2) im externen Vergleichstool auf der rechten Seite angezeigt und das aktuelle Projekt (A) steht links.

Machine Expert – Safety übergibt Projektkopien an das externe Vergleichstool, um irrtümliche Veränderungen an den Originaldateien zu verhindern.

Sie können über die Konfiguration spezifische Funktionen des externen Vergleichstools nutzen. So lässt sich beispielsweise für das linke oder rechte Projekt ein Schreibschutz definieren (z.B. /leftreadonly, falls Sie Beyond Compare verwenden). In der Vergleichsansicht des externen Tools können Sie die verfügbaren Befehle des Tools verwenden.

Weitere Informationen:

Informationen über die verfügbaren Befehlszeilenparameter und weitere Befehle des externen Vergleichstools entnehmen Sie bitte der zugehörigen Softwaredokumentation (z.B. Beyond Compare Online-Hilfe).

So konfigurieren Sie ein externes Vergleichstool

  1. Wählen Sie in Machine Expert – Safety den Befehl 'Projekt > Externes Vergleichstool konfigurieren...'.

  2. Definieren Sie im Konfigurationsdialog den Pfad zur ausführbaren Tool-Datei auf Ihrem PC.

    Beispiele:

    Beyond Compare: C:\Program Files (x86)\Beyond Compare\BComp.exe

    TortoiseSVN: C:\Program Files\TortoiseSVN\bin\TortoiseMerge.exe

  3. Spezifizieren Sie im unteren Dialogfeld die folgenden Befehlszeilenparameter, unabhängig vom verwendeten externen Vergleichstool:

    %base %mine

    %base repräsentiert das Projekt, das aktuell in Machine Expert – Safety geöffnet ist (Projekt A) und %mine steht für das ältere Vergleichsprojekt (B).

    Beim Aufruf des externen Tools werden die Parameter %base und %mine durch die tatsächlichen Dateinamen aus der 'Unterschiede'-Liste ersetzt.

    Der %worksheet-Parameter kann zusätzlich verwendet werden, um die Arbeitsblattnamen an das externe Tool zu übergeben.

  4. Ergänzen Sie die Befehlszeile um Tool-spezifische Parameter.

    HINWEIS:

    Der Schreibschutz für das aktuelle Projekt, welches auf der linken Seite angezeigt wird, ist obligatorisch.

    Beyond Compare unterstützt beispielsweise die Parameter /leftreadonly, /rightreadonly oder /readonly.

Beispiele für die Beyond Compare-Befehlszeile:

  • %base %mine /leftreadonly bewirkt ein schreibgeschütztes aktuelles Projekt, welches auf der linken Seite angezeigt wird.

  • %base %mine /title1=%worksheet /title2=%worksheet /leftreadonly bewirkt den Schreibschutz des aktuellen Projekts und die Anzeige der Arbeitsblattnamen als Titel auf beiden Seiten in Beyond Compare.

Beispiel für eine TortoiseSVN-Befehlszeile:

/base:%base /mine:%mine /basename:%worksheet /minename:%worksheet /readonly