Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Hinweis: Step7 (V5.4.3.1) ändert eigenmächtig Programmcode

  1. #1
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, schon gewußt?

    Nur durch das Umschalten der Ansicht von AWL zu FUP und wieder zu AWL ändert Step7 den
    Programmcode eigenmächtig:
    Code:
    U #IN1  ==FUP==> speichern ==AWL==>  X #IN1
    X #IN2                               X #IN2
    = #OUT                               = #OUT
    Hat man den Baustein mit "U #IN1" in die CPU geladen, dann den Baustein mit "X #IN1"
    gespeichert und vergleicht offline<->online, dann meldet Step7 keinen Unterschied,
    weil die Änderung nicht von einer Programmierer-Eingabe stammt und deshalb der Baustein
    keinen neuen Zeitstempel erhalten hat. (!)
    Öffnet man den offline-Baustein und den online-Baustein, dann wird der Unterschied exakt
    dargestellt ("U #IN1" online, "X #IN1" offline).

    Erst wenn man im offline-Baustein irgend ein Zeichen hinzufügt, wieder löscht und speichert,
    dann ergibt der offline<->online Vergleich einen Unterschied.

    Das gleiche passiert auch, wenn Oder-Verknüpfungen mit U begonnen werden:
    Code:
    U #IN1  ==FUP oder KOP==> speichern ==AWL==>  O #IN1
    O #IN2                                        O #IN2
    = #OUT                                        = #OUT
    Überflüssige Klammern werden entfernt:
    Code:
    O(
    U #IN1  ==FUP oder KOP==> speichern ==AWL==>  U #IN1
    U #IN2                                        U #IN2
    )                                             O #IN3
    O #IN3                                        = #OUT
    = #OUT
    Überflüssige Sprungmarken werden grundsätzlich gelöscht
    (das ist aber allgemein bekannt und nur ärgerlich).

    Das kommt mir doch bekannt vor?
    Auch in Step7 MicroWin 32 für S7-200 muß man nach Umschalten der Ansicht nachprüfen, ob das
    Programm noch das selbe geblieben ist.

    Also ich mag es nicht, wenn irgendwas ungefragt meine Programme ändert.
    Wenn dieses Verhalten wenigstens in einem Handbuch oder Hilfe stehen würde, dann könnte man das
    als Featuritis abtun. Da Step7 diese Dinge aber heimlich tut, qualifiziere ich es als Bug.


    Gruß
    PN/DP
    Zitieren Zitieren Hinweis: Step7 (V5.4.3.1) ändert eigenmächtig Programmcode  

  2. Folgende 2 Benutzer sagen Danke zu PN/DP für den nützlichen Beitrag:

    borromeus (30.08.2009),rostiger Nagel (30.08.2009)

  3. #2
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Voll der gleichen Meinung, der Source Code IST tabu!

    Ich kenne so ein Problem auch aus einer anderen Ecke: Microsoft Visual Studio 8 codiert im Resourcen Compiler klammheimlich eine 24 Bit/Pixel (ROT,GRÜN,BLAU) in eine 32 Bit/Pixel (+Alpha Kanal) um.

    Der Effekt ist, dass eingebettete Wasserzeichen weg sind und die Bitmap 33% mehr Speicher frisst!
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Tabu  

  4. #3
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.733
    Danke
    317
    Erhielt 1.522 Danke für 1.283 Beiträge

    Standard

    Also offengestanden verstehe ich nicht worüber du dich aufregst.

    Wenn man in Bezug auf AWL/KOP/FUP mal den Begriff "Ansicht" vergisst,
    dann ist das ganz klar eine bewusst ausgeführte Wandlung des Programmcodes
    und somit u.U. eben auch eine Vereinfachung des Codes.

    Bei der Konkurrenz also Codesys und Co. funktioniert das entweder überhaupt nicht,
    oder mit einer relativ aufwändigen Übersetzung (Konvertierung).

    Mfg
    Manuel
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

  5. #4
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Danke für diese wissenswerte Information!
    Frage: ist diese Umwandlung grundsätzlich so, oder nur wenn der Befehl davor VKE-begrenzend ist, weil wenn das so ist, ändert sich definitiv der Ausgang der logischen Verknüpfung, und dann ist es ein Bug!

    lG
    Karl

  6. #5
    Registriert seit
    20.11.2004
    Ort
    Linz, OÖ
    Beiträge
    1.365
    Danke
    96
    Erhielt 177 Danke für 133 Beiträge

    Standard

    Also, an der Funktion ändert sch definitiv nichts!

    Und meiner Meinung nach ist das Ändern in einige Fällen durchaus gerechtfertigt, z.B. ist
    Code:
    U   #BOOL1
    X   #BOOL2
    lt meiner Ansicht einfach nur schlampig programmiert - und es darf zurecht umgewandelt werden. Genauso wie z.B.
    Code:
    U   #BOOL1
    O   #BOOL2
    Hier haben wohl einige Programmierer einfach nur Angst, dass der zuvor geschriebene Programmteil das VKE noch nicht abgeschlossen hat, ich sehr auch immer wieder, dass einige Leute am Beginn jeder Verknüpfung noch SET oder CLR reinschreiben, wozu das?

    mfg Maxl
    Bin aufgrund §2 der "Rechte des Betreibers" der Forum-Regeln nicht mehr aktiv, da nicht nicht akzeptiere, dass Informationen und Erkenntnisse ohne Quellangabe weitergegeben werden sollen. Jedem steht frei, auf die gleichen Erkenntnisse durch Eigenversuche zu kommen, vor allem Buchautoren.

  7. #6
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.252
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Zitat Zitat von Maxl Beitrag anzeigen
    Hier haben wohl einige Programmierer einfach nur Angst, dass der zuvor geschriebene Programmteil das VKE noch nicht abgeschlossen hat, ich sehr auch immer wieder, dass einige Leute am Beginn jeder Verknüpfung noch SET oder CLR reinschreiben, wozu das?

    mfg Maxl
    Kein Mensch hat hier Angst, nur wenn es so eine "Autofunktion" gibt, sollte diese zumindest die VKE-Begrenzung mitchecken, ansonsten ist es eben ein Bug.


    lG
    Karl

  8. #7
    Registriert seit
    13.10.2007
    Beiträge
    12.038
    Danke
    2.789
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard

    Hallo,
    das Step 7 den Programmcode ändert ohne das ich es will finde
    ich auch nicht besonders toll. Dieses kann er tun wenn ich ihn
    dazu auffodere, wie z.B. bei der Bausteinkonsitenzprüfung.
    Das mit dem Marken stört mich auch umheimlich, was soll das
    die Steuerungen sind doch groß und schnell genug das Sie ein
    paar Marken mehr verkraften können.
    Was für mich das größte Elend ist das ich ein Baustein mit "Fehlern"
    am Abend nicht einfach Abspeichern kann und am nächsten Morgen
    weiterarbeiten kann. Ich kann erst speichern wenn ich alle Roten
    Zeilen gelöscht oder auskommentiert habe.
    Könnten die von Siemens nicht einfach den Baustein in der Baustein-
    liste zusätzlich Rot kenzeichnen. Dann vergesse ich schon nicht
    das dieser Baustein noch bearbeitet werden muss.

    gruß helmut
    Geändert von rostiger Nagel (30.08.2009 um 15:00 Uhr)
    - - -
    Wer als Werkzeug nur einen Hammer hat, sieht in jedem Problem einen Nagel.

  9. Folgende 2 Benutzer sagen Danke zu rostiger Nagel für den nützlichen Beitrag:

    borromeus (30.08.2009),PN/DP (30.08.2009)

  10. #8
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.223
    Danke
    533
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    Zitat Zitat von Maxl Beitrag anzeigen
    Also, an der Funktion ändert sch definitiv nichts!

    Und meiner Meinung nach ist das Ändern in einige Fällen durchaus gerechtfertigt, z.B. ist
    Code:
    U   #BOOL1
    X   #BOOL2
    lt meiner Ansicht einfach nur schlampig programmiert - und es darf zurecht umgewandelt werden. Genauso wie z.B.
    Code:
    U   #BOOL1
    O   #BOOL2
    Hier haben wohl einige Programmierer einfach nur Angst, dass der zuvor geschriebene Programmteil das VKE noch nicht abgeschlossen hat, ich sehr auch immer wieder, dass einige Leute am Beginn jeder Verknüpfung noch SET oder CLR reinschreiben, wozu das?

    mfg Maxl
    Ich mache beides.

    Bei mir fängt halt ein neues Netzwerk mit Logiík immer mit UND an, was soll daran schlimm sein, das sind einfach Gewohnheiten. Machmal weiß ich ja noch gar nicht, ob ich mit einem ODER weitermache.

    Ein SET bringt für mich in einer langen Reihe von AWL-Anweisungen, z.Bsp. in einem FB mit Sprüngen, ein wenig Struktur und tatsächlich für jeden Betrachter das eindeutige Signal, hier geht ein neuer logischer Abschnitt los.
    Auch daran kann ich nichts Verwerfliches sehen. Ansonsten hab ich irgendwann mal ewig nach genau so einem Fehler gesucht, immer frei weg im Spagetticode eines Programmierers.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  11. Folgende 3 Benutzer sagen Danke zu Ralle für den nützlichen Beitrag:

    borromeus (30.08.2009),IBFS (06.09.2009),UniMog (06.09.2009)

  12. #9
    Registriert seit
    29.03.2004
    Beiträge
    5.739
    Danke
    143
    Erhielt 1.686 Danke für 1.225 Beiträge

    Standard

    Beim Bausteinvergleich scheint Step 7 zuerst nur den Zeitstempel zu vergleichen.
    Dabei wird beim Vergleich auch noch die Bausteinprüfsumme aus der SPS abgefragt, die bei den beiden Versionen auf jeden Fall voneinander abweichen.
    Selbst wenn ich beim Bausteinvergleoch "Codevergleich durchführen" anwähle, prüft er zuerst nur den Zeitstempel. Wenn dieser gleich ist, wird nichts weiteres verglichen.

    Das finde ich eigentlich viel schlimmer, dass ich die verschiedenen Bausteine außer durch in Augenschein nehmen der Onlineversion nicht feststellen kann.

    Man müsste mal einen Baustein mit "gefaktem" Zeitstempel in die SPS schieben, wobei der Programmcode völlig unterschiedlich ist, und dann testen was die SPS macht wenn ich diesen Baustein beobachten will

  13. #10
    Avatar von PN/DP
    PN/DP ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.192
    Danke
    925
    Erhielt 3.292 Danke für 2.661 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @Thomas_v2.1

    @All
    Ob nun eine OR oder XOR-Verknüpfung nicht mit U begonnen werden darf, darüber läßt sich streiten.
    Es ergibt ja das gleiche Verknüpfungsergebnis.
    Es gab auch SPS, da MUSSTEN Verknüpfungen mit U begonnen werden (z.B. AEG LOGISTAT A020).
    In MicroWIN für die S7-200 ist das eindeutiger gelöst, da beginnt eine Verknüpfung mit LD und erst
    beim zweiten Operanden steht dann O.

    Code-Optimierungen sind ja eine prima Sache, allerdings nur, wenn ich Step7 extra dazu auffordere.

    Der Bug an der ganzen Sache ist der Umstand, daß der Baustein keinen neuen Zeitstempel bekommt
    und "Bausteine vergleichen" zunächst NUR die Baustein-Zeitstempel vergleicht. Die Baustein-Prüfsummen
    werden NICHT verglichen und deshalb keine Code-Unterschiede gemeldet.

    Noch "lustiger" wird die Zwangs-Optimierung, wenn Zeilenkommentare vorhanden sind. Die werden dann
    verschoben oder verschwinden auf Nimmerwiedersehen. Das kann nicht im Sinne des Programmierers sein.

    Beispiel (Ursprungscode ist AWL, die Ansicht wird nach FUP umgestellt):
    Code:
    U(         //K1
    U(         //K2            +---+
    O   #IN1   //K3       #IN1-|>=1| +---+
    O   #IN2   //K4       #IN2-|   |-| & |
    )          //K5            +---+ |   | +---+
    U   #IN3   //K6             #IN3-|   |-| & |
    )          //K7                  +---+ |   |
    U(         //K8                  +---+ |   |  #OUT
    O   #IN4   //K9             #IN4-|>=1| |   | +---+
    O   #IN5   //K10            #IN5-|   |-|   |-| = |
    )          //K11                 +---+ +---+ +---+
    =   #OUT   //K12
    Erstes Speichern in FUP: Klammern werden umgestellt (Zeilen 6 und 7 getauscht), Zeilenkommentare K6
    und K7 sind vertauscht
    Code:
    U(         //K1
    U(         //K2                  +---+
    O   #IN1   //K3             #IN1-|>=1| +---+
    O   #IN2   //K4             #IN2-|   |-| & |
    )          //K5                  +---+ |   |
    )          //K6                        |   |
    U   #IN3   //K7                   #IN3-|   |
    U(         //K8            +---+       |   |  #OUT
    O   #IN4   //K9       #IN4-|>=1|       |   | +---+
    O   #IN5   //K10      #IN5-|   |-------|   |-| = |
    )          //K11           +---+       +---+ +---+
    =   #OUT   //K12
    Zweites Speichern in FUP: erste U-Klammer wird entfernt, Zeilenkommentare K11 und K12 verschwinden
    auf Nimmerwiedersehen, K2 bis K10 werden verschoben
    Code:
    U(         //K1                  +---+
    O   #IN1   //K2             #IN1-|>=1| +---+
    O   #IN2   //K3             #IN2-|   |-| & |
    )          //K4                  +---+ |   |
    U   #IN3   //K5                   #IN3-|   |
    U(         //K6            +---+       |   |  #OUT
    O   #IN4   //K7       #IN4-|>=1|       |   | +---+
    O   #IN5   //K8       #IN5-|   |-------|   |-| = |
    )          //K9            +---+       +---+ +---+
    =   #OUT   //K10
    Dieses Beispiel halte ich übrigens NICHT für "schlampig programmiert", es kann auch nach
    Programm-Änderungen so entstanden sein.

    Gruß
    PN/DP
    Zitieren Zitieren Kommentare werden entfernt  

Ähnliche Themen

  1. Software eigenmächtig ändern
    Von flybywire im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 5
    Letzter Beitrag: 14.02.2010, 12:18
  2. Antworten: 0
    Letzter Beitrag: 19.06.2007, 15:29
  3. Programm ändert sich
    Von kpeter im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 03.08.2006, 08:36
  4. SCL-Programmcode
    Von hobel im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.07.2006, 22:03

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •