Programm übersichtlicher gestalten

Servernexus

Level-1
Beiträge
260
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus, ich habe mal eine wahrscheinlich dumme Frage?
Kann man eigentlich ein sehr umfangreiches Programm im Simaticmanager übersichtlicher gestalten. z.B. durch anlegen von mehreren Programmteilen, also aufteilen in die einzelnen Anlagenteile? Ich hoffe Ihr wisst was ich meine.
 
NEIN!!!
Wenn ein Programm einmal in die CPU geladen wurde, dann darf man unter KEINEN UMSTÄNDEN jemals irgendetwas ändern!!!
:ROFLMAO::ROFLMAO:
Nee - Spaß beiseite. Es ist natürlich möglich, ein vorhandenes Programm neu zu strukturieren. Ist halt immer eine Frage des Aufwandes, den man treiben will/möchte. Der Eine gliedert lieber nach Anlagenteile, der Andere lieber nach Örtlichkeiten, wieder Andere gliedern in Funktionen usw. Da streiten sich die Geister... Aber ein strukturiertes Programm ist immer besser, als ein 'Spagetti'-Programm.

Gruß Approx
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Antwort : JA !
Auf jeden Fall ...! Man kann auf jeden Fall ein SPS-Programm übersichtlich und verständlich gestalten. Allerdings - was man als übersichtlich und verständlich empfindet ist von Person zu Person u.U. unterschiedlich.

Gruß
Larry
 
Antwort : JA !
Auf jeden Fall ...! Man kann auf jeden Fall ein SPS-Programm übersichtlich und verständlich gestalten. Allerdings - was man als übersichtlich und verständlich empfindet ist von Person zu Person u.U. unterschiedlich.

Gruß
Larry

Na ja ich habe ein Programm mit sagen wir mal 3 großen Anlagenteilen, eine CPU, Wenn man da nun einen Baustein sucht dann scrollt man schon ne weile. Das Programm ist noch nicht im Einsatz, wird gerade aufgebaut. Wäre schon schön wenn man für jeden der 3 Anlagenteile und vielleicht noch für den allgemeinen Teil eine Aufgliederung hätte, aber wie kann man so etwas denn grundsätzlich machen? Einfach neues S7 Programm rein ist ja nicht möglich, oder? Eine gewisse Gliederung habe ich ja schon, z.B der erste Anlagenteil geht ab Bereich 200, der zweite ab Bereich 300.
 
Zuletzt bearbeitet:
Siehe dazu auf jeden Fall den Beitrag von Approx.

Gegen die Sache mit den vielen Bausteinen kommt man z.B. durch die Baustein-Nummerierung an. Beispiel :
FC und/oder FB 100 = Sektion 1
FC und/oder FB 101 .. 199 = Unterstation von Sektion 1
usw.
FC und/oder FB900 und folgende = allgemeine Bausteine für Berechnungen etc.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Servernexus.

Jo, Programme übersichtlicher schreiben, das schönste Thema eines Instandhalters.

Ich als Instandhalter schlage mich Tag ein Tag aus durch unterschiedliche Programmstile.

Die einen schreiben alles in EIN AWL Netzwerk, die anderen das gesamte Programm in SCL.
Beides ist in meinen Augen mist, da wir von der Instandhaltung zwar Programme lesen können,
aber mal ehrlich wer kann sich montags morgens mit dem dicken Schädel vom Wochenende
durch so schöne Programme lesen wie:
Code:
[COLOR=#222222][FONT=Verdana]U([/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]U([/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]...[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana])[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]O[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]U([/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]...[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana])[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]…[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana])[/FONT][/COLOR]

Also denkt doch immer mal daran, dass nicht nur der Programmierer, sonder auch die Instandhalter, das lesen können sollte, um die Stillstandszeit kurz zu halten.

- kurze Netzwerke, die AUCH in FUB darstellbar sind (NOP 0) nicht vergessen
- vernünftige Netzwerk Überschriften / Titel
- Variabeln in Landessprache


Mit freundlichen Gruß
Thomas
 
Zusätzlich zu den Nummernbereichen von FC und DB ist es sinnvoll, klare und ähnliche symbole für die Bausteine zu vergeben. Somit kann man die Bausteinliste auch nach Namen sortieren und hat, selbst wenn die Nummern kreuz und quer sind, alles im überblick:

z.B.

FC_Entnahme_ANA // Analogwerte für Bereich Entnahme
FC_Entnahme_Strg // Steuerung für Bereich Entnahme
FC_Entnahme_Stör // ...

So ähnlich mache ich (viele andere auch) das immer und fahre damit eigentlich gut. Empfehlenswert ist auch, für FCs die Datenbausteine benutzen, dieselben Nummern(bereiche) zu verwenden wie die dazugehörigen DB.
 
Code:
[COLOR=#222222][FONT=Verdana]U([/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]U([/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]...[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana])[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]O[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]U([/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]...[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana])[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]…[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana])[/FONT][/COLOR]

Wenn du sowas in Fup darstellen willst, gibt das vermutlich 20 Seiten Fup. Viel spass beim online Beobachten.

- kurze Netzwerke, die AUCH in FUB darstellbar sind (NOP 0) nicht vergessen
- vernünftige Netzwerk Überschriften / Titel
- Variabeln in Landessprache

Kurze Netzwerke können sinnvoll sein. Sie werden aber dann sinnlos wenn man nur um das Netzwerk kurz zu halten über 100 Schmiermerker geht welche unnötig wären.

mfG René
 
Zuviel Werbung?
-> Hier kostenlos registrieren
- Variabeln in Landessprache

Nö, das mache ich nicht.

Schonmal an den Export gedacht. Das wäre ja noch schöner, wenn zwei gleiche Maschine nach Spanien und nach Norwegen geliefert werden.

Dann soll ich einmal in spanisch und einmal in norwegisch programmieren, obwohl es die gleiche Maschine ist?

Darum hat sich der Standard "Englisch" gebildet, damit Programme international lesbar sind.
Das mache ich natürlich auch bei Sondermaschinen, die in D stehen werden. Weil da auch Programmschnipsel von anderen Maschinen drin stecken.

Da bin ich bockig. Und das ist so in Fachkreisen anerkannt.

Aber in einem möchte ich auch eine Lanze für die Instanthalter brechen:
Das ist zwar schön, dass Instanthalter Programme lesen und interpretieren können. Aber wenn die Fehlermeldungen des HMI nicht ausreichen, um die Stilltandszeiten zu verkürzen, dann hat der Programmierer in meinen Augen Bockmist gebaut.

"Anlage steht ohne (konkrete) Meldung (, die das Problem eindeutig beschreibt)" ist in meinen Augen ein absolutes NoGo.
 
Zuletzt bearbeitet:
Hallo Servernexus.

Jo, Programme übersichtlicher schreiben, das schönste Thema eines Instandhalters.

Ich als Instandhalter schlage mich Tag ein Tag aus durch unterschiedliche Programmstile.

Die einen schreiben alles in EIN AWL Netzwerk, die anderen das gesamte Programm in SCL.
Beides ist in meinen Augen mist, da wir von der Instandhaltung zwar Programme lesen können,
aber mal ehrlich wer kann sich montags morgens mit dem dicken Schädel vom Wochenende
durch so schöne Programme lesen wie:
Code:
[COLOR=#222222][FONT=Verdana]U([/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]U([/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]...[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana])[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]O[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]U([/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]...[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana])[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana]…[/FONT][/COLOR]
[COLOR=#222222][FONT=Verdana])[/FONT][/COLOR]

Also denkt doch immer mal daran, dass nicht nur der Programmierer, sonder auch die Instandhalter, das lesen können sollte, um die Stillstandszeit kurz zu halten.

- kurze Netzwerke, die AUCH in FUB darstellbar sind (NOP 0) nicht vergessen
- vernünftige Netzwerk Überschriften / Titel
- Variabeln in Landessprache


Mit freundlichen Gruß
Thomas

Ich bin froh dass ich die Wahl zwischen AWL, FUP, Graph und SCL hab. Ich möchte mal sehen wie du in FUP zweidimensionale Felder handelst. Macht ja auch keinen Sinn. Es ist aber genauso unsinnig, krampfhaft alles in SCL zu programmieren. Für jedes Thema die richtige Darstellung:

Bitverknüpfungen -> FUP
Berechnungen für Sollwerte u.ä. -> AWL
Schrittketten -> Graph
Datengeschubse -> SCL

und schon sind alle glücklich...
 
Nö, das mache ich nicht.

Schonmal an den Export gedacht. Das wäre ja noch schöner, wenn zwei gleiche Maschine nach Spanien und nach Norwegen geliefert werden.

Dann soll ich einmal in spanisch und einmal in norwegisch programmieren, obwohl es die gleiche Maschine ist?

Darum hat sich der Standard "Englisch" gebildet, damit Programme international lesbar sind.
Das mache ich natürlich auch bei Sondermaschinen, die in D stehen werden. Weil da auch Programmschnipsel von anderen Maschinen drin stecken.

Da bin ich bockig. Und das ist so in Fachkreisen anerkannt.

Aber in einem möchte ich auch eine Lanze für die Instanthalter brechen:
Das ist zwar schön, dass Instanthalter Programme lesen und interpretieren können. Aber wenn die Fehlermeldungen des HMI nicht ausreichen, um die Stilltandszeiten zu verkürzen, dann hat der Programmierer in meinen Augen Bockmist gebaut.

"Anlage steht ohne (konkrete) Meldung (, die das Problem eindeutig beschreibt)" ist in meinen Augen ein absolutes NoGo.

Hi, ok mit Englisch würde ich mich auch zufrieden geben,
wenns ausgeschriben ist und nicht als Abkürzung. (naja, max länge der Variable)

Unsere Anlagen sind von diverse Hersteller unter anderem z.B:
Arisa Pressen natürlich alles in Spanisch,
MW-Presse, in deutsch, aber nur AWL und über das DOS-Fenster erreichbar. (alte Generation)
Bandanlage aus Italien, naja was soll ich schreiben, halt Italienisch.

Jetzt kommt es, haben natürlich auch Spanische Mitarbeiter, die ich mir mal zur Maschine hinzugeholt hab,
und siehe da, selbst die konnten mir nicht einmal die Spanischen Variabeln, übersetzten.
(außer links rechts, vorne hinten, beim Transfer)

Dann ne schöne Anlage von Nothelfer, alles in AWL und zudem noch Ellen lange Netzwerke, die ersten 10 Zeilen lassen sich beobachten und der rest ist halt dunkel,
muss mir jedes mal die E,A,M,DBX'e in die Zeile unten einfügen (Variabeln Steuern o.s.ä.) da die CPU an der Leistungsgrenze ist, so ne CPU mit int. OP.

Ist halt so wie es immer ist, jeder hat seine eigenen Vorstellung vom übersichtlichen Programmieren.
( Springe Liste "SPL"; via Vergleichen "==I" oder doch besser Schrittmerker "S/R" alles halt ne ansichtssache)


Bitte versteht mich nicht falsch, ich bin kein Haubberuflicher Programmierer,
ich muss nur jedes mal, mit dem was sich der Programmierer da gedacht hat, auseinander setzen.


Mit freundlichen Gruß
Thomas


Edit:
@ Aventinus post

nee an zweidimenonales hab ich via SPS noch nicht dran gedacht, kenne es halt nur via ARRYS

aber deine Aussage:
Bitverknüpfungen -> FUP
Berechnungen für Sollwerte u.ä. -> AWL
Schrittketten -> Graph
Datengeschubse -> SCL
gefält mir besser als mein Beitrag.
obwol ich Schrittketten, wens kleine einfache sind FUP vorziehen würde.

MfG
Thomas
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Zusätzlich zu den Nummernbereichen von FC und DB ist es sinnvoll, klare und ähnliche symbole für die Bausteine zu vergeben. Somit kann man die Bausteinliste auch nach Namen sortieren und hat, selbst wenn die Nummern kreuz und quer sind, alles im überblick:

z.B.

FC_Entnahme_ANA // Analogwerte für Bereich Entnahme
FC_Entnahme_Strg // Steuerung für Bereich Entnahme
FC_Entnahme_Stör // ...

So ähnlich mache ich (viele andere auch) das immer und fahre damit eigentlich gut. Empfehlenswert ist auch, für FCs die Datenbausteine benutzen, dieselben Nummern(bereiche) zu verwenden wie die dazugehörigen DB.

Danke das war ne tolle Idee, ich habe die einzelnen Bausteine der Anlagenteile noch mit einer vorangehenden Nummer versehen und nun habe ich alles beieinander.
 
Zurück
Oben