TIA Notwendigkeit von SET im TIA PORTAL

IBFS

Level-1
Beiträge
4.068
Reaktionspunkte
893
Naja okay. TIA erkennt halt so einen Blödsinn schon beim Kompilieren. Sicher nicht schlecht.

Aber solche Vorgehen halte ich persönlich für sehr konstruiert. Oder wieso sollte man in Verknüpfungen reinspringen?
Ich meine mit dem SET/RES reisst man sie ja sowieso auseinander. Da könnte man sie also auch ohne vernünftig ausprogrammieren.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ob das Hinein- oder Hinausspringen bei einer Verknüpfungskette sinnvoll ist, sei mal dahingestellt.
Interessant ist der erzwungene Einsatz von "SET/CLR" allemal. Aber eine wirkliche Begründung liefert Siemens nicht für das "Warum". Man soll's halt tun, weil TIA sonst meckert. Wenn die CPU die Befehle so ausführt, wie sie definiert sind (inkl. dieses immer wieder schrägen Erstabfragebits), dann kann kein Problem daraus entststehen, solange ich ich mir im klaren darüber bin was ich tue und das Verhalten von VKE und Erstabfrage richtig durchdacht habe.

Bleiben an sich nur drei Möglichkeiten:
  1. Der Nachbau der Verhaltensweisen für den Emulator ist nervig - deshalb wird's auf diesem Wege optimiert.
  2. Es gibt Probleme beim Handling des CPU-Status beim Online-Beobachten.
  3. Die für Compileroptimierungen notwendigen Aktionen verbieten (ok, erschweren deutlich) ein Generieren von Code der das tut, was in der Befehlsdokumentation steht - schlichtweg um mehr Performance aus der existierenden HW zu holen. Mit MC7-Code hat das, was TIA produziert ja nichts zu tun, es wird Zielplattform-spezifisch kompiliert.

Ich für meinen Teil tippe auf 3.

Im Prinzip ist es ja egal, da man sich mit sauber strukturiertem Code gar nicht erst in dieses Dilemma begibt - und besser wartbar ist's auch.
 
Das schlimmste ist doch mal wieder, Siemens hat jetzt bei Erneuerung ihrer
Programmiersoftware gepennt. Warum haben Sie nicht ein paar Vorteile von
einer anderen Steuerung aus dem eigenen Haus übernommen, der 200er.

Dort gab es wunderbare SonderMerker und den erstabfragebefehl,
also den 'LD'. Das leben könnte so einfach sein....
 
Vorgehensweise im TIA Portal schrieb:
Sprünge aus booleschen Verknüpfungsketten heraus [...] sind nicht erlaubt.
Können die FAQ-Schreiber bei Siemens kein deutsch oder bin ich zu blöd das zu verstehen?

Genau das Herausspringen wird doch IMHO im Erlaubt-Beispiel mit dem "JC n_OK" gemacht. :confused:

Oder meinen die vielleicht, daß nach einem Sprung keine Verknüpfungsoperation folgen darf?

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Können die FAQ-Schreiber bei Siemens kein deutsch oder bin ich zu blöd das zu verstehen?

OT: da hab ich auch noch ein Beispiel: http://support.automation.siemens.com/WW/view/de/73193481

Gruß.

Vielleicht ist TIA ja eher wegen dem chinesischen Markt entwickelt worden, und die Anleitungen in chinesisch sind verständlicher... Kann ich aber leider nicht nachprüfen...
 
Zuletzt bearbeitet:
Bei mir seht VOR dem folgenden Ziel-Label eigentlich immer ein SPA,

Code:
U   M8.0
U   M8.1
=   M8.2
SPA ende

dafür aber hinter dem Label immer ein nop 0

Code:
cas2:  NOP 0
...

Als ob es da nur einer Variante gebe (diese Schmalspurcodierer :ROFLMAO: )

Nein im Erst, mit

Code:
U   M8.0
U   M8.1
=   M8.2
SPA ende

cas2:  NOP 0
U   M8.4
U   M8.5
=   M8.6
ende: NOP 0

gibt es doch weder in CLASSIC als auch im TIA keine Probleme.

Was da im Bild01 zu sehe ist, wer so codiert hat ohnehin programmieren im Autoscooter gelernt.
Die hätten mal Code-identische Beispiele geben sollen, also Code der sich identisch verhält.
Aber so sind beide Bilder zusammengenommen Unsinn
 
Mein lieber Herr Siemens...

Warum muss in STEP 7 (TIA Portal) V12 hinter einem Sprungbefehl die Anweisung SET eingefügt werden, um eine Erstabfrage sicher zu stellen?
(laut FAQ-Gruppe "S7-1500 CPU 15xx -- S7-Programm erstellen -- Bausteine und Funktionen aufrufen" und Bestellnummern soll sich dieser Beitrag auf S7-1500 beziehen)

Also je länger ich diesen Siemens-Support-Beitrag lese, desto mehr fühle ich mich verarscht. :evil:

Daß der Beispielcode total sinnfrei ist und der Beispielcode auch überhaupt nicht zur zu erklärenden Problematik passt - OK, da ist dem Schreiber halt nichts richtiges eingefallen. Doch wenn dann auch noch angebliche Screenshots des TIA-Programmstatus gefakt werden, das verwirrt dann doch mächtig. (siehe Bild aus dem Siemens-Beitrag im Anhang)

Ich verstehe überhaupt nicht, wieso in dem als Beispiel gewählten Code an der Marke "n_OK:" ein SET kommen soll ("muss"). Ist der Compiler so buggy, das er ohne das SET kein Programm liefert, was dem dokumentierten Verhalten von SPB/JC entspricht?
Systemhandbuch: STEP 7 Professional V12.0 (01/2013) - Seite 3680 schrieb:
SPB: Springen bei VKE = 1
[...]
Die Anweisung "Springen bei VKE = 1" setzt sowohl bei erfüllter als auch bei nicht erfüllter Bedingung das VKE auf "1".
Systemhandbuch: STEP 7 Professional V12.0 (01/2013) - Seite 3567 schrieb:
SET: VKE auf 1 setzen

Mit der Anweisung "VKE auf 1 setzen" setzen Sie das aktuelle Verknüpfungsergebnis (VKE) auf den Signalzustand "1".
SET beeinflußt also nur das VKE - was anderes ist nicht dokumentiert.

Systemhandbuch: STEP 7 Professional V12.0 (01/2013)


Was nicht klar wird: Ist dieses Einfügen der SET-Operation nur eine Empfehlung an Programmierer die nicht wissen was sie tun ("Angst-SET") oder ist es ein Workarround wegen fehlerhafter Übersetzung des Compilers oder meckert echt der Compiler, wenn nach der Marke kein SET steht? MUSS das SET tatsächlich eingefügt werden?

Preisfrage: Muß nach der Zeile "End: NOP 0" nun auch zuerst ein SET kommen, bevor eine neue Verknüpfung beginnt? (schließlich wird ja auch zur Marke "End" gesprungen und das NOP beinflußt das VKE ja nicht)


Beitrags-ID:67519310 Datum:2013-03-14 schrieb:
Vorgehensweise im TIA Portal
[...]
Die Anweisung SET setzt das VKE und das Statusbit auf "1" und wird unabhängig von der Bedingung ausgeführt. Auch die Statusbits OR und /ER werden zurückgesetzt und somit beginnt nach dem SET-Befehl eine neue Verknüpfung.
Weiß der FAQ-Schreiber nicht, daß es laut Systemhandbuch zu TIA V12 Seite 2204 und laut dieser FAQ die Statusbits STA, OR und /ER bei S7-1500 überhaupt gar nicht gibt?!


Solche sinnfreien Werbeaussagen haben meines Erachtens nichts in einem technischen Support-Beitrag zu suchen:
Beitrags-ID:67519310 Datum:2013-03-14 schrieb:
Vorteile
  • Änderungen im AWL-Code können Sie mit übersichtlicher und mit weniger Aufwand durchführen.
  • Laufzeitfehler werden Ihnen bereits beim Übersetzen angezeigt.
Laufzeitfehler ... ja nee is klar ... super Compiler ;)
und weniger Aufwand :ROFLMAO:


Der Hinweis zur Security falls der Beispielcode in einer vernetzten SPS eingesetzt wird ist in diesem FAQ allerdings äußerst wichtig ...

Von welchem durchschnittlichen Intelligenzlevel eines TIA-Programmierers geht Siemens eigentlich aus?


Werden solche FAQ-Beiträge neuerdings von billig-Zeitarbeitern aus Textbausteinen in die Tastatur geklopft und wartet Siemens dann auf "die Reifung", bis irgendjemand mit Ahnung was richtiges draus macht?
Beitrags-ID:67519310 Datum:2013-03-14 schrieb:
Diskutieren Sie diesen FAQ
Sie haben eine andere Lösung oder eine andere Anwendung?
Sie kommen mit dieser Lösung nicht klar?

Diskutieren Sie diesen FAQ hier!

Ich glaube, diesen FAQ sollte man zu den Fragen an Siemens beim Forumtreffen hinzufügen.

Harald
 

Anhänge

  • STEP7_V12_Erstabfrage_SET-Befehl_02_d!.png
    STEP7_V12_Erstabfrage_SET-Befehl_02_d!.png
    15,5 KB · Aufrufe: 56
Zuviel Werbung?
-> Hier kostenlos registrieren
PS:
Beitrags-ID:67519310 Datum:2013-03-14 schrieb:
Vorgehensweise bei STEP 7 V5.x
[...]
Definieren Sie das Sprungziel in einer Verknüpfungskette (logische Einheit), [...] Unter Umständen geht die CPU in den Zustand STOP.
Um dieses Verhalten zu vermeiden, können Sie in Abhängigkeit des VKE (Verknüpfungsergebnis) die Verknüpfungskette mit einer Zuweisung beenden.
(Bild 01)
Allerdings kann es auch hier durch eine nicht strukturierte Programmierung durch den Anwender zu einem Programmabbruch kommen.
Warum die Verknüpfungskette nur "in Abhängigkeit des VKE" beenden, warum nicht unbedingt? :roll:
Was ist ein "Programmabbruch"? Ein CPU-STOP? Ausgelöst durch einen Sprung in eine Verknüpfungskette?
Oh mein Gott! :roll:

Harald
 
Man gewinnt immer mehr den Eindruck das die neuen Siemens Compilern
von hastig eingestellten Hilfsschülern ausprogrammiert werden.

Da war man über die letzten 15 Jahre froh eine Vernünftigkeit und Nachvollziehbarkeit des STEP7 zu haben
und muss jetzt erleben, das ARRAYS mit ungeraden Itemlängen zerwürfelt werden oder
irgendwelche abstrusen neuen Compilerregeln erfunden werden, die im man vom Classic nicht kennt und
die dort einfach nicht nötig waren.

Ich denke es wäre gut gewesen VOR der Schaffung des TIA-Portals erst einmal den Ist-Stand der
Classic-Welt zu erfassen, daraus ein Lastenheft für einen neuen Compiler zu erstellen und dann
deren Softwarequalität nach den V-Modell oder Spiralmodell zu überprüfen.
Aber ich fürchte, dass trotz Zertifizierung (ISO9001) da Defizite sind.
 
Das ist nicht schön und zeigt leider eine wirklich bedenkliche Strategie von Siemens (und Anderen), Produkte werden zu früh oder unausgereift auf den Markt gebracht, der Kunde wird nach und nach mit den neu entdeckten Fehlern konfrontiert, im besten Fall wird ihm der Fehler als besonderes "Schmankerl" verkauft. Mir dreht sich der Magen um, wenn ich daran denke, was alles so mit SPS gesteuert und geregelt wird. Dazu kommen ja noch die eigenen Fehler, die nie auszuschließen sind. Und all das, ohne Not, ohne wirklich unter Druck zu stehen, denn den Druck hat Siemens sich höchstens selbst gemacht. Wenn man bedenkt, wie schwierig es heutzutage manchmal ist einen Job zu ergattern (Assessment Center, Chefs, Personaler, BWL-er u.v.m.), dann frage ich mich immer wieder, wie bestimmte Leute an verantwortlichen Stellen eigentlich dorthin gekommen sind...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn man bedenkt, wie schwierig es heutzutage manchmal ist einen Job zu ergattern (Assessment Center, Chefs, Personaler, BWL-er u.v.m.), dann frage ich mich immer wieder, wie bestimmte Leute an verantwortlichen Stellen eigentlich dorthin gekommen sind...

Weil man ja angeblich keine besseren alternativen auftreieben kann..... ;)
 
da lobe ich mir unseren siemens verdreher :). er hat einen "spezialisten" angeschleift. dieser schaute sich an was/wie wir es machen und sagte klar: so lange sie nicht die neuen panels einsetzen wollen/müssen bleiben sie erstmal bei step7.
wenn ich so etwas hier lese....er hat recht. :ROFLMAO:
 
Hi

das mit dem SET verstehe ich auch nicht, aber schon bei Step7 V5 und den beiden alten CPU Reihen gab es bei Sprüngen in Verknüpfungsketten seltsame Unterschiede.

Die 416 hat ganz brav und ziemlich stur allerlei seltsame Sprünge in eine Folge von Logikbefehlen zugelassen und auch ausgeführt.

...
U a
U b
lab1: U c
U d
...

Du kannst auch in Klammerebenen rein und raus springen.

...
U(
...
SPB x
...
)
...
x: ...

Wenn er springt, dann hat man am Ende des Bausteins einen Eintrag zu viel auf de Klammerstack. War der 400 egal. :shock:

Die 319 hat mir so manches "Superkonstrukt" das ein Vorgänger hinterlassen hat abgelehnt. Einfach so beim Download. Das hat mich dann oft Stunden gekostet, bis ich verstand was hier für perverse Spielchen in AWL mit Erstabfragebit, OR-bit, Klammerbefehlen und VKE getrieben wurden. Aber jetzt geh mal hin zu deinem Chef und sag ihm: "Ey alda, was du da vor 5 Jahren programmiert hast ist ganz großer Scheiß" :rolleyes:

Das sowas bei der 1500 durch den Compiler abgelehnt wird und nicht erst beim Download ist deutlich besser als vorher. Die Sätze "Der Sprung auf Sprungmarken innerhalb von Verknüpfungsketten führt zu einem Übersetzungsfehler. Sprünge aus booleschen Verknüpfungsketten heraus oder in Verknüpfungsketten hinein sind nicht erlaubt." Sind das Beste auf der ganze Seite http://support.automation.siemens.com/WW/llisapi.dll?func=cslib.csinfo&lang=de&objid=67519310&caller=view. Der Rest, besonders die Beispiele bedürfen dringend einer Überarbeitung. Nur wo bekommt Siemens jetzt ein Beispiel her, das auf der einen Seite Sinn macht, auf der anderen Seite den Unsinn solcher Konstrukte zeigt. Die Leute die diese Webseiten schreiben, werden doch bestimmt nix selber programmieren :ROFLMAO:
 
Zurück
Oben