Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine maschinelle Übersetzung. Die originale FAQ ist hier zu finden. SBC stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Kann ich ein PG5-Projekt zum modifizieren zu zerlegen?

FAQ #100676

Diese FAQ beschreibt die Möglichkeiten für den Fall, dass ein PG5-Projekt nicht verfügbar, aber noch ist eine vorhandene Anwendung muss geändert werden.

 

Demontage im allgemeinen
PG5 enthält ein Tool zum disassemblieren Code in eine PCD ausgeführt. Dieses Tool ("Disassembler") ermöglicht die Konvertierung hochgeladen (oder nur kompilierte) Code, der in "Binär" Form in die Darstellung im Unterricht Liste (IL) ist.
Der resultierende Code ist identisch mit dem Code von PCD ausgeführt, aber es ist nicht gleich zu den Quelldateien, aus denen das Projekt erstellt wurde. Die wichtigsten Unterschiede sind

  • Die fehlende Symbolnamen; Alle Symbole werden statisch in der zergliederten Code behandelt, (während Symols in der Symbol-Manager "dynamische" Adressen zur Buildzeit verteilt haben können)
  • Alle Kommentare sind im disassemblierten Code fehlt, (weil sie an die PCD heruntergeladen sind nicht)
  • Code kann nur in IL demontiert werden. Es ist nicht möglich disassemblieren Code zurück zu Fupla oder eine HMI-Datei!
  • Sprung-Etiketten sind im zergliederten Code fehlt (die Sprünge werden direkt angesprochen)
  • Assembler-Direktiven (wie $IF etc.) sind nicht vorhanden im zergliederten Code (sie waren zum Zeitpunkt der Erstellung ausgewertet)

Kann ich zurückentwickeln ein Disassemled-Projekts?
Abhängig von den Tools für die Erstellung des Programms und der Komplexität des Programms wird diese Aufgabe schnell praktisch unmöglich. Demontage und Reverse Engineering z.B. Fupla-Programm ist fast unmöglich (gut, könnte wenn Sie Hunderte von Stunden verbringen und die Aufgaben der Anwendung sehr gut verstanden, Sie vielleicht Reverse-Engineering ein Fupla-Projekt verwalten).
Das Problem ist, dass eine FBox völlig anderen Code erstellen kann, in Abhängigkeit des Zielsystems, Optionen im Fenster "anpassen" etc. gebaut. Weitere kann dort Unterschiede zwischen einzelnen Versionen von ein und demselben FBox (da neue Features implementiert sind und Bug-Fixes angewendet werden).

In 99 % aller Fälle ist es sehr viel effektiver, Re-engineering eines vorhandenen Projekts für den Fall, dass die Ausgangsdateien nicht verfügbar sind.

Kann ich ein vorhandenes Projekt (z.B. Sollwert) ändern?
Ändern z. B. ein Sollwert bedeutet auch identifizieren und Reverse Engineering der relevante Teil des Codes. Wenn nur ein Sollwert werden kopiert muss, ist es möglich alle Code-Teile, die diesen Wert in ein Register laden suchen. Nachdem alle diese Teile gefunden werden muss der relevante Teil des Codes erkannt und verändert werden. Selbst wenn diese Änderung erfolgreich ist noch das ganze Projekt ist nur in "reinen" IL und weitere Modifikationen benötigen mindestens genauso viel Arbeit (wenn überhaupt möglich ist). Änderungen auf diese Weise sind nur für fortgeschrittene Experten empfohlen.
Für den Fall, dass nicht nur der Sollwert, sondern das Verhalten eines Teils eines Programms muss geändert werden ist die Komplexität, die wahrscheinlich bereits zu hoch (zumindest wenn das Programm im Fupla o.ä. geschrieben wurde).

 

Categories

Local FAQ Deutschland / Fupla

PG5 2.0 / Fupla

Last update: 29.05.2015 11:11

First release: 01.02.2007 09:15

Views: 4627

Die von Ihnen angeforderte Software / Dokument wird von der Saia-Burgess Controls AG nicht mehr vermarktet und technisch unterstützt. Es handelt sich um eine ältere Software-Version, die lediglich auf bestimmten, mittlerweile nicht mehr im Handel erhältlichen Produkten betrieben werden kann.

Download