TIA-Portal > Negative Systemeigenschaften > Wunsch- / Verbesserungsliste

Zuviel Werbung?
-> Hier kostenlos registrieren
Bezug: Mein Vorschlag war:
Editor-Verhalten bei KOP/FUP/AWL
Das Netzwerk-Handling sollte gegenüber S7 verbessert werden:

1. Sprung auf Netzwerk (z.B. 5) also : Step7 : <CTL E> -> 5 sollte auf Netzwerk 5 landen, nicht auf Netzwerk 4,5
Also: Beginn des Ziel-Netzwerks oben, nicht in der Mitte.

2. Falls ein Sprung auf ein Netzwerk eine Netzwerk-Nummer enthält, die es im Baustein nicht gibt, sollte auf das letzte Netzwerk gesprungen werden. Eine Fehlermeldung schadet nichts, aber der Sprung an's Ende wäre sinnvoll.

3. die <PAGE UP> <PAGE DOWN> - Tasten sollten netzwerk-orientiert blättern, d.h. ein Netzwerk vorwärts / rückwärts mit Netzwerk-Beginn oben.

ausführliche Begründung #92


Ein Werkzeug sollte man auch bedienen können.
Wenn ich eine Seite runter will, dann will ich im Programmcode nicht im Netzwerk.
Die Grenze auf ein Netzwerk legen ist sinnlos und vermutlich allein dein Wunsch.
Es sollte die allgemeine Bedienergonomie von WIn$ beibehalten werden und nicht noch mehr Eigensinn von BigS hier rein. :ROFLMAO:
bike

Sehe ich anders:
das "hauptsächlich_einheitlich"-Axiom unterstütze ich für beliebige Programme im Wesentlichen auch, allerdings nicht für Profi-Werkzeuge:
Die sollten an ihrer Funktion ausgerichtet sein.
Ich habe SCL ganz bewusst ausgenommen, denn bei Hochsprachen macht ein Netzwerk-Bezug sicherlich keinen Sinn.

Unabhängig davon Bitte um Abstimmung (s.u.).

Gruss Werner
 
Mein Vorschlag war:
1. Trotz Zeitstempelkonflikt bzw. unterschiedlichen Formatinformationen muss Beobachten möglich sein.
2. Trotz Zeitstempelkonflikt bzw. unterschiedlichen Formatinformationen muss "Laden ins PG" möglich sein, ohne die im PG vorhandenen Variablennamen und Komentare zu überschreiben/ zerstören.
3. Es muss möglich sein, das Format von Datenbereichen (offline) in DBs zu ändern ohne deren Inhalt zu zerstören.
4. Es muss möglich sein, eine neue Format-Definition ins AG zu übertragen ohne die Aktualwerte dabei zu ändern.


Wie soll das denn gemacht werden?
Wenn ein bool definiert ist und in der PLC steht an dieser Stelle eine real?

bike

Zielsetzung: Es geht vorrangig um Änderungen an laufenden Maschinen / Anlagen.
Dazu habe ich in dem Artikel #91 schon einiges geschrieben.

In der PLC stehen letztendlich nur Werte.
Ich denke, es wird auch bei vielen anderen Kollegen so sein, dass sie dort, wo sie erwarten, dass noch was kommen könnte,
einfach mal Platz freihalten:
G01T01 :struct
temp : Real; // Temperatur
res_04 : ARRAY[4..99] OF BYTE.
END_STRUCT

Wenn man diese Reserve nun (teilweise ?) auflöst, z.B:
G01T01 :struct
temp : Real; // Temperatur
P_T1_ein : REAL // Beruhigung P-T1 Glied Eingang
P_T1_aus : REAL // Beruhigung P-T1 Glied Ausgang
res_04 : ARRAY[12..99] OF BYTE.
END_STRUCT

dann bleibt, von den 8 betroffenen Bytes abgesehen, alles andere unverändert, aber der ganze DB kann nicht mehr beobachtet werden.

Es wäre durchaus möglich, für die differierenden Bytes das Format z.B. rot anzuzeigen und das Beobachtungsformat auswählbar zu machen.
(Die Erfahrung zeigt: Software ist schreibbar!)

Das ein brachiales Überschreiben eines DB in AG zu unerwünschten Effekten führen kann, ist sicherlich für alle selbsterklärend.

Gruss Werner
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mein Vorschlag war
Einbau Netzwerk-lokaler Labels
Es sollte zwischen Netzwerk-lokalen und Baustein-globalen Labeln unterschieden werden können.
Es sollten in verschiedenen Netzwerken gleiche Labelnamen möglich sein, solange sie lokal sind.


So ein Schmarrn, wer möchte sich beim Suchen in einem fremden Programm noch zusätzlich auseinandersetzen, ob ein Label nur im Netzwerk oder im Baustein gültig ist? :confused:


bike

Aktuell ?
Du, natürlich!

Nach der Umsetzung meines Vorschlags:
Der Compiler!
Er soll Dir mitteilen: "Hier brauchst Du nur im aktuellen Netzwerk nach Sprüngen zu suchen", bzw. " Vorsicht, es erfolgt auch ein Sprung von ausserhalb des aktuellen Netzwerks."

Schade, dass Du die vorherige Diskussion mit Helmut_von_der_Reparatur und jd_otter nicht gelesen hast.

Noch eine (nicht auf bike gerichtete, sondern allgemeine ) Randbemerkung:
Mir ist schon klar, dass ich mich bei einigen meiner Artikel scheinbar als S5-Nostalgiker oute, habe aber selbst den Eindruck, dass mittlerweile auch eine Menge S7-Nostalgiker unterwegs sind, die alles ablehnen, was sie von Step7 nicht kennen.

Ich denke, bei der heutigen und zukünftigen Prozessorleistung steht uns das Beste aus beiden Lagern zu.

Denkt nicht so konservativ :)

Gruss Werner
 
Zuletzt bearbeitet:
Aktuell ?
Du, natürlich!

Das verstehe ich nicht.
Aber das ist relativ egal.

Wenn dir klar ist wie Compiler funktioniert müsst dir klar sein, dass es so wie es willst nie gehen kann.

Wenn eine "reserve" Variable verwendet wird, ist diese im Programmcode auch definiert.
Woher soll der Compiler wissen, dass dies ein Variable ist, die in Form, Farbe, Aussehen und Größe problemlos geändert werden kann? :confused:
Wenn man sich vernünftige, strukturierte Programmierung angewöhnt hat, passiert so etwas eigentlich weniger.

Wenn du diese Problem hast mit dem Programmieren, solltest du dir ernsthaft Gedanken machen, ob du nicht etwas falsch machst.

Denn wenn du in die Verlegenheit kommst, andere PLC zu programmieren, dann gute Nacht Deutschland.


bike
 
Das verstehe ich nicht.
Aber das ist relativ egal.

Wenn dir klar ist wie Compiler funktioniert müsst dir klar sein, dass es so wie es willst nie gehen kann.

Wenn eine "reserve" Variable verwendet wird, ist diese im Programmcode auch definiert.
Woher soll der Compiler wissen, dass dies ein Variable ist, die in Form, Farbe, Aussehen und Größe problemlos geändert werden kann? :confused:
Wenn man sich vernünftige, strukturierte Programmierung angewöhnt hat, passiert so etwas eigentlich weniger.

Wenn du diese Problem hast mit dem Programmieren, solltest du dir ernsthaft Gedanken machen, ob du nicht etwas falsch machst.

Denn wenn du in die Verlegenheit kommst, andere PLC zu programmieren, dann gute Nacht Deutschland.


bike


  1. Dein Zitat bezog sich auf einen anderen Themenbereich.
  2. Dein Kommentar ist für jeden, der mal Compiler gebaut hat, bzw. an Prototyp-Maschinen mit sich ständig ändernden Vorgaben bzw. richtig grossen Anlagen, die bereits produzieren, an denen aber noch rumgebaut wird, selbsterklärend.
  3. Jetzt wissen wir ja, wer sich richtig auskennt.
    Daher ist (trotz mir) Deutschland noch nicht verloren.

Ich bedanke mich für den technisch fundierten und objektiven Beitrag.

Werner
 
Zuviel Werbung?
-> Hier kostenlos registrieren
@Bike:
Die Sache mit der Struktur-Änderung kann ich als Wunsch verstehen. Ich muß gestehen, dass ich mich über etwas Ähnliches auch schon mal geärgert habe. Ich habe auch schon mal Platzhalter durch "richtige Variablen" ersetzt.

@Heisch:
Die Sache mit den Labels ist für mich so allerdings nicht nachvollziehbar. Entweder ich beziehe sie auch ein Netzwerk oder auf den Baustein. Ich würde hier aber auch "auf den Baustein" favourisieren. Ein Misch-Masch ist m.E. nicht sinnvoll.
Ich weiß aber, dass es "in der guten alten S5-Zeit" noch Netzwerkbezogen machbar war - das haben wir doch aber hinter uns ... oder ???

Gruß
Larry
 
@Heisch:
Die Sache mit den Labels ist für mich so allerdings nicht nachvollziehbar. Entweder ich beziehe sie auch ein Netzwerk oder auf den Baustein. Ich würde hier aber auch "auf den Baustein" favourisieren. Ein Misch-Masch ist m.E. nicht sinnvoll.
Ich weiß aber, dass es "in der guten alten S5-Zeit" noch Netzwerkbezogen machbar war - das haben wir doch aber hinter uns ... oder ???

Gruß
Larry

Hallo Larry,
ich will die Baustein-globalen Label nicht abschaffen! Das wird aus meinem Ursprungsartikel (Nummer 94 in diesem Thread) vielleicht nicht deutlich.

Es geht auch nicht darum, den Programmierer zu gängeln, im Gegenteil.
Bei vernünftiger Realisierung bekommt der Programmierer, der nicht gezielt lokale Labels benutzen will, davon garnix mit.

Dazukommen sollen lediglich lokale labels.
gewünschte Zusatzeigenschaften:
1. gleicher Label-Name in unterschiedlichen Netzwerken möglich.
2. entweder die globalen oder die lokalen Labels, welche, das ist mir gleich, sollen eine zusätzliche Kennzeichnung erhalten. Das kann der Compiler machen oder der Programmierer festlegen, oder der Compiler kann per Knopfdruck die Labels entsprechend kennzeichnen... da bin ich flexibel.
(Das ist compiler-technisch ein Klacks, glaub's mir, ich habe schon mehr als einen geschrieben, auch wenn es den Untergang Deutschlands einleitet :)

Dadurch ergeben sich folgende Vorteile
aus 1.: entsprechend aufgebaute Netzwerke können einfach kopiert werden, ohne sich um neue Labelnamen kümmern zu müssen. (siehe Beispiel im Artikel 94, sowie Folgeartikel von jd_otter und Helmut_von_der_Reparatur)
aus 2.: An Hand der Label-Darstellung sieht man sofort, ob es nur in diesem Netzwerk als Zieladresse genutzt wird oder aber auch aus anderen Netzwerken angesprungen wird. Das ist IMHO gerade bei fremden Programmen sehr hilfreich. (Denk mal an die Glaubensdiskussion, die Ende der 70er getobt hat: IF THEN ELSE gegen GOTO <label> , Spagetticode! )

Bei KOP/FUP/AWL hängen wir noch am Label, da wäre maschinelle Unterstützung sinnvoll und an Hand der aktuellen Prozessorleistung auch problemlos machbar. (bei der Programmierumgebung vernünftige Programmierung und Programmiersprachen vorausgesetzt. )


Gruss

Werner
 
Dein Kommentar ist für jeden, der mal Compiler gebaut hat, bzw. an Prototyp-Maschinen mit sich ständig ändernden Vorgaben bzw. richtig grossen Anlagen, die bereits produzieren, an denen aber noch rumgebaut wird, selbsterklärend

Ich programmiere regelmäßig Prototypen.
Doch ich bin der Meinung, dass viele Probleme sich vermeiden lassen, wenn am Anfang mehr Zeit für das Design des Programms und den notwendigen Schnittstellen, auch innerhalb eines Programms, verwenden würde.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Tetris Musik

Das die Super Software immer auf sich warten lässt würde ich mir zur überbrücken immer wieder Musik einlagen wünschen.

Jetzt mal ehrlich habe ein einziges Projekt mit den Müll machen müssen und ich weiß eins wenn es so weiter geht mit der Software wird das nix.
 
hi orion
kannst du das auch ein bisschen konkretisieren? wenn du ein projekt mit der v11 gemacht hast gibts ja sicher ein paar probleme und wuensche... oder wollen wir hier den thread nur mit polemik fuellen ;)
 
Das die Super Software immer auf sich warten lässt würde ich mir zur überbrücken immer wieder Musik einlagen wünschen.

Jetzt mal ehrlich habe ein einziges Projekt mit den Müll machen müssen und ich weiß eins wenn es so weiter geht mit der Software wird das nix.

Du hast innerhalb von fast 1,5 Jahren nur ein Projekt mit einer S7-1200 gemacht?

Dabei ging es dir doch gut von der Hand, wie du hier schon hier am 24.02.2010 geschrieben hast:

http://www.sps-forum.de/showpost.php?p=245368&postcount=4

icon1.gif
S7-1200 und LibNoDave Run
Hallo,
so ich habe mit LibNoDave eine Verbindung auf eine S7-1200 herstellen können.
Als Protokoll habe ich das Iso/TCP CPU benutzt.
Rack=0
CPU Slot=0
Lesen von Merkern war kein Problem. Einzige Einschränkung die mir aufgefallen ist beim lesen von DB`s die nur Symbolisch adressierbar sind. Deklariert man ein DB als Absolut (nur Symbolisch aus) ist es kein Problem auf den zur lesen und zur schreiben.
Ebenfalls habe ich die Kommunikation zwischen ein KTP400 und einer S7-1200 mitgeschnitten.
Als anhang ist ein kleiner mitschnitt. Es wird das Merker Byte 1 gelesen von den KTP. Es ist schon etwas merkwürdig aber die Parameter Länge beträgt 18 Byte. Ein Standard anfrage mit LibNoDave oder TP177B beträgt nur 14 Byte.????
Meines erachten liest das KTP direkt den Speicherbild der CPU. Das würde auch erklären weshalb es auch auf DB`s zugreifen kann welche nur Symbolisch adressierbar sind.
Desweitern ist es mir aufgefallen das wenn ein neuer Tag in der CPU zugewisen wurde z.B. MW10=Tag1 und man möchte diesen auf den KTP anzeigen und Übeträgt nicht das SPS Programm sondern nur das HMI Programm, so kann das KTP nicht auf diese Adresse zugreifen.
Wenn das alles solch ein Käse ist, wäre Zeit genug gewesen das hier konstruktiv zu posten. :rolleyes:

Frank
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry, war'ne Weile Offline, daher hier etwas verspätet meine Meinung.

Editor-Verhalten bei KOP/FUP/AWL
Das Netzwerk-Handling sollte gegenüber S7 verbessert werden:

1. Sprung auf Netzwerk (z.B. 5) also : Step7 : <CTL E> -> 5 sollte auf Netzwerk 5 landen, nicht auf Netzwerk 4,5
Also: Beginn des Ziel-Netzwerks oben, nicht in der Mitte.

2. Falls ein Sprung auf ein Netzwerk eine Netzwerk-Nummer enthält, die es im Baustein nicht gibt, sollte auf das letzte Netzwerk gesprungen werden. Eine Fehlermeldung schadet nichts, aber der Sprung an's Ende wäre sinnvoll.

3. die <PAGE UP> <PAGE DOWN> - Tasten sollten netzwerk-orientiert blättern, d.h. ein Netzwerk vorwärts / rückwärts mit Netzwerk-Beginn oben.

Ein Werkzeug sollte man auch bedienen können.
Wenn ich eine Seite runter will, dann will ich im Programmcode nicht im Netzwerk.
Die Grenze auf ein Netzwerk legen ist sinnlos und vermutlich allein dein Wunsch.

Das glaube ich nicht. Zumindest sehe ich sehr wohl was der Werner meint und kann das nur unterstützen. Ich bin viel mehr Tastatur-orientiert als Maus-orientiert, und es wäre m.E. nach mehr als ein nettes Feature wenn Siemens sich diesbezüglich mal die Mühe machen würde auf eine ordentliche Ergonomie zu achten.


Es sollte die allgemeine Bedienergonomie von WIn$ beibehalten werden und nicht noch mehr Eigensinn von BigS hier rein. :ROFLMAO:

Damit bin ich übrigens genauso einverstanden. Es gibt unter WIN$ eine bestimmte Bedienphilosophie. Man kann die für gut halten oder nicht, aber es wäre mehr als sinnvoll dies so zu implementieren wo es geht. Es leuchtet nicht wirklich ein, dass eine bestimmte Funktion die, sagen wir, z.B. in Office auf eine bestimmte Art erledigt wird, in Step7 bzw. dem TIA Portal plötzlich auf eine andere Art erledigt werden muss.
 
Damit bin ich übrigens genauso einverstanden. Es gibt unter WIN$ eine bestimmte Bedienphilosophie. Man kann die für gut halten oder nicht, aber es wäre mehr als sinnvoll dies so zu implementieren wo es geht. Es leuchtet nicht wirklich ein, dass eine bestimmte Funktion die, sagen wir, z.B. in Office auf eine bestimmte Art erledigt wird, in Step7 bzw. dem TIA Portal plötzlich auf eine andere Art erledigt werden muss.

Das geschieht doch bei Win$ regelmäßig.
Wenn ich mir die Bedienung von den letzten 5 Versionen von Office anschaue, dann ändert sich jedesmal viel. Und nicht immer zum bessern.

Das Thema von wegen Netzwerkgrenze, das ist eine persönliche Endscheidung.
Was antwortest du jemanden, der Maus orientiert arbeitet?


Daher: was ist schon Standard, wenn sich niemand daran hält?


bike
 
Ist eigentlich jemanden aufgefallen das es in TIA selber keine Möglichkeit mehr
gibt ein Projekt zu packen, wieder ein Rückschritt zu Step 7 Old Style. Anstatt
den Zipper so zu gestalten, das ein Projekt mal per E-Mail zu einen Kollegen
schicken zu können, der in 'Sankt-Nirgendwo' ein wenig Unterstützung braucht,
wurde da auch wieder nicht dran gedacht.

Im übrigen ist TIA immer noch viel zu langsam, die Software läuft trotz
SP1 immer noch mit angezogener Handbremse.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... Es gibt unter WIN$ eine bestimmte Bedienphilosophie. ..

Die Art der Bedienphilosophie ist egal, Hauptsache gut gemacht.

Zeigt mir zwei Systeme verschiedener Hersteller die ähnlich zueinander sind.
Selbst die alten STEP7 - Clones halten wenig von der Microsoft Ur-Philosophie.

Es gibt so viele verschiedene Programmiersysteme.
Es wäre schlimm, wenn diese alle gleich wären.

Frank
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Die Art der Bedienphilosophie ist egal, Hauptsache gut gemacht.

Damit wäre ich einverstanden, wenn das Bedienkonzept dann auch durchgängig im ganzen Programm ist. Leider ist das bei Step7 v5.5 auch nicht der Fall (und auch nie gewesen). Vom TIA Portal habe ich noch zu wenig gesehen, als dass ich darüber eine Meinung haben könnte.
 
Querverweise

*Querverweise sollten aus einem geöffnetem Datenbausteinfenster über die Reiter Info->Querverweise zur Verfügung gestellt werden wie unter den PLC-Variablen. (gleich wie in den PLC-Variablen

*Wenn man vom DB eine Querverweisliste erstellt werden keine Querverweise unter einem dem ersten struct angezeigt.


*Ebenfalls sollte in den Querverweislisten überlappende zugriffe sofort angezeigt werden und nicht über den umweg übers Kontextmenü.

Gruß
steuerung
 
Zurück
Oben