# Programmierstil / schöner programmieren?



## D4K!ZZ4 (24 Oktober 2011)

Hallo Leute,

da ich ja grade wieder anfange in die SPS Programmierung einzusteigen würde ich mich freuen wenn ihr mir ein paar Tipps geben könntet wie ich mein Programm schöner machen könnte.

Schöner im Sinne von Resourcen sparend etc.

Über ein paar grundlegende Tipps würde ich mich sehr freuen.

Vielen Dank schon mal.

Gruß Chris


----------



## Lupo (25 Oktober 2011)

Schön und Resourcen sparen ist schon ein Widerspruch !
Ein schönes Programm ist deshalb schön, weil es gut dokumentiert und somit gut verständlich und nachvollziehbar ist. Man kann bei ihm relativ schnell die Zusammenhänge erkennen. Dies läßt sich nach meiner Erfahrung idR nicht mit knappen, Resourcen sparenden, Programmcode verwirklichen.

Wo soll der Zug also hinfahren ?


----------



## Approx (25 Oktober 2011)

Deine Frage ist hier schon zig mal durchgekaut worden und meist endet alles im SV.
Schon bei einfachen, und grundlegenden Dingen wie das Bilden der statischen globalen VKE-Merker gibt es Diskussionen.
Dann sind da die Verfechter der jeweiligen Programmiersprache KOP/FUP/AWL/SCL... 

Hier mal meine Meinung zum "sauberen" Programmieren ("schön" klingt irgendwie tuckig):

Keine Codetrickserei mit indirekter Adressierung, nur um auf "dicke Hose" zu machen, wenns auch einfach geht - an die Instandhalter denken!
Symboltabelle komplett, d.h. keine Operanden unter den Referenzdatenliste "Operanden ohne Symbol"
Nicht verwendete Operanden möglichst aus der Symboltabelle entfernen - schlank und gut!
Eingänge für die Sensorik durchgängig benennen, z.B. im Kommentar "Endschalter", "Grenztaster" oder "Efektor" - dann lässt's sich später gut Filtern
Gut finde ich auch den Zusatz "=0" und "=1" für Öffner bzw. Schliesserkontakte.
Aussagekräftige Netzwerküberschriften
Erst überlegen, dann programmieren - Strukturen erstellen (UDT, FB, Struct usw - das macht das Leben hinterher leichter
keine direkten Zugriffe auf Lokaldaten ala U #L 0.1 - wenn mal etwas nachgefrickelt wird, dann fangen die Probleme an.
keine globalen Zugriffe auf Instanzen - ist meine persönliche Meinung - wird hier im Forum aber kontrovers diskutiert
keine meterlangen AWL-Netzwerke - an die Instandhalter denken
binäre Logiken in SCL nachzubilden finde ich gelinde gesagt auch nicht Instandhalterfreundlich
SCL-Bausteine ohne Quellen als AWL-Salat abzuliefert wird von mir nicht abgenommen.
Funktionen kapseln und Anlagenteile per Multiinstanz zusammenfassen - macht das Programm übersichtlich. Z.B. 20x Motor-FB im Multi-FB "Rollengang xy". Ist aber auch so ein Thema wo viel drüber gestritten wird.
zum Abschuss freigegeben...


P.S.: Recourcensparen? Immer gerne, aber die S5-Zeiten sind eigentlich vorbei. 
Approx


----------



## Larry Laffer (25 Oktober 2011)

... ich hätte da auch noch einen ...

Wenn man durch sein eigenes Programm, 6 Monate nachdem man es in Betrieb genommen hat, noch durch steigt dann ist es gut.

Ansonsten :  siehe Oben - damit ist m.E. das Wesentliche gesagt ...


----------



## Ralle (25 Oktober 2011)

Approx schrieb:


> Deine Frage ist hier schon zig mal durchgekaut worden und meist endet alles im SV.
> [*]Funktionen kapseln und Anlagenteile per Multiinstanz zusammenfassen - macht das Programm übersichtlich. Z.B. 20x Motor-FB im Multi-FB "Rollengang xy". Ist aber auch so ein Thema wo viel drüber gestritten wird.
> [/LIST]zum Abschuss freigegeben...
> 
> ...



Yep, das mit dem SV stimmt.

Bei Multiinstanzen bin ich inzwischen immer skeptischer geworden, ich halte das für einen ganz üblen Irrweg, den Siemens einigen Programmierern damit ermöglicht hat. Ich hab gerade ein Programm am Wickel, da ist alles, bis hin zur Schrittkette in einer Multiinstanz je Station verpackt, ich denke mal, Schachtelungstiefe 4-5. Das ist unwartbar, unänderbar, Suchfunktionen (Querverweis) über Alles kann man komplett vergessen. Da sind wir dann auch schon bei der kontroversen Diskussion. Es ist schon interessant, wie ein an sich ganz gutes Strukturelement (Multiinstanz), durch fehlende Unterstützung (Keinerlei Querverweis möglich) und übertriebenen Einsatz (große Schachtelungstiefe, keine einzige Globalvariable, alles in der Multiinzstanz) zu einem Ärgernis pervertiert. Also Vorsicht und Augenmaß beim Einsatz, das gilt für viele Möglichkeiten, die Steuerungen so bieten.

PS: Leider gilt das Augenmaß auch für den Einsatz von struct und udt, da Siemens hier durch die mangelnde Querverweisunterstützung fuchtbar geschlampt hat.


----------



## rostiger Nagel (25 Oktober 2011)

naja die verwendung von Multiinstanzen würde ich nicht so verteufeln, genauso
auch den zugriff auf Adressregister. Mal eben einen IEC-Timer oder Zähler in den
Bausteinkopf, finde ich schon sehr Praktisch und garnicht unübersichtlich.

Schlechte Programme kann mann man auch schreiben, wenn nur Merker und
Global DB's verwendet werden. Alles eine Frage des Stils.

Ein Zugriff auf Instanzen des FB's sind doch mit der Suche oder Gehe zu Methode
zu finden und Außerhalb des FB's sollte dann ein Vollqualifizierte Zugriff verwendet
werden.


----------



## Ralle (25 Oktober 2011)

rostiger Nagel schrieb:


> Ein Zugriff auf Instanzen des FB's sind doch mit der Suche oder Gehe zu Methode
> zu finden und Außerhalb des FB's sollte dann ein Vollqualifizierte Zugriff verwendet
> werden.



Jawohl!  Und dann noch ein paar Struct und UDT direkt als IN und OUT an den FB anlegen, dann ist nichts mehr zu finden, glaub mir, das wird zum großen Ratespiel für Dritte. Deswegen sag ich ja, mit Augenmaß verwenden und dann kann man damit schöne Dinge tun. IEC-Timer in der Multiinstanz, genau da sind sie richtig eingesetzt, werden ja auch außerhalb nicht benötig.

PS: Du weißt, für die vollqualifizierten Zugriffe auf IDB hau ich dich!


----------



## vierlagig (25 Oktober 2011)

Ralle schrieb:


> Jawohl!  Und dann noch ein paar Struct und UDT direkt als IN und OUT an den FB anlegen, dann ist nichts mehr zu finden, glaub mir, das wird zum großen Ratespiel für Dritte. Deswegen sag ich ja, mit Augenmaß verwenden und dann kann man damit schöne Dinge tun. IEC-Timer in der Multiinstanz, genau da sind sie richtig eingesetzt, werden ja auch außerhalb nicht benötig.
> 
> PS: Du weißt, für die vollqualifizierten Zugriffe auf IDB hau ich dich!



die gesamte struktur einer station in einem instanzdb und die "multiinstanzen" mit UC aufgerufen ... genial!


----------



## Larry Laffer (25 Oktober 2011)

@Ralle:
Du weißt schon, dass du jetzt mit der SV-Geschichte anfängst ... 

Was die Multi-Instanzen etc. angeht :
Wenn ich einen FB (oder SFB) in einen anderen FB einlagere mußt ich die Funktion des eingelagerten Bausteins isoliert betrachten und vor Allem betrachten können. Siehe z.B. die MI-Timer - hier ist es vollkommen egal, wie die innen drin funktionieren. Kann ich sie nicht isoliert betrachten, so hast du Recht. 

Gruß
Larry


----------



## rostiger Nagel (25 Oktober 2011)

Ralle schrieb:


> PS: Du weißt, für die vollqualifizierten Zugriffe auf IDB hau ich dich!



Endschuldigung ich hab mich schlecht ausgedrückt!

GDB - Vollqualifizierzt
IDB - Disqualifiziert


----------



## Perfektionist (25 Oktober 2011)

bei der Instanziererei bin ich bislang bei Tiefe 3 angekommen. Wenn ich mal die Mutter als Tiefe 1 betrachte. Und da finde ich bislang nichts unübersichtlich, nichts unwartbar, nichts unauffindbar. Weil gekapselt, keine Querzugriffe, weil eben "sauber" programmiert. Ausser dass bei mir die HMI direkt in die Multis reinpoken dartf 

Verwendungsstellen finden? Strg-Umschalt-f und Strg-Umschalt-b sind meine Freunde ...


----------



## Deltal (25 Oktober 2011)

Einen Fehler, den ich leider oft mache ist, dass man sich vorhher wirklich ein durchgängiges Konzept ausdenkt. Eventuell sogar mit einfachen Ablaufdiagrammen etc. Manche Programme habe ich wohl dreimal neu angefangen weil mit es mit dem ausgedachten System nicht aufging.

Und dabei auch Gedanken machen, welche Variablen soll Global verwendet werden, was soll ich in die multiinstanz "abschieben". Z.B. einen Flankenmerker oder Timer brauche ich mmn nicht global deklarieren.

Kommentare sind wichtig, aber wenn du in einem Netzwerk ein paar Bitabfragen machst, muss man dazu keine Seite Netzwerkkommentare schreiben.
Machst du eine etwas schwierigere Berechnung, dann macht es mehr sinn drei vier Zeilen über das Netzwerk zu schreiben, als hinter jede Zeile "und hier nehme ich das mal zehn und wandle in real" zu pinnen.
Ich denke ein Kommentar sollte erklären warum an dieser Stelle diese Aktion gemacht wird und nicht wie die Aktion im Detail aussieht.


----------



## Aventinus (25 Oktober 2011)

Ich sehe das änhlich, man kann alles irgendwie übertreiben.

Ob das ewige Bitverknüpfungen in SCL sind oder 10 geschachtelte Multiinstanzen. Schuld hat in beiden Fällen nicht das Werkzeug sonder der Anwender. Mit einem gesunden Augenmaß ist beides sinnvoll einzusetzen.


----------



## Ralle (25 Oktober 2011)

vierlagig schrieb:


> die gesamte struktur einer station in einem instanzdb und die "multiinstanzen" mit UC aufgerufen ... genial!



Du solltest den TE doch lieber gesondert auf deine Signatur aufmerksam machen, sonst nimmt der dich noch ernst! 

@Larry
Klar weiß ich das, aber was solls, lieber gleich als später.


----------



## D4K!ZZ4 (26 Oktober 2011)

Huch, 

mit soviel resonanz hab ich jetzt nicht gerechnet 

Das ein oder andere Nützliche ist auf jeden Fall dabei 

Vielen Dank schon mal bis hier.

Natürlich bin ich für jeden weitern Tipp Dankbar.

Gruß Chris


----------



## Perfektionist (26 Oktober 2011)

D4K!ZZ4 schrieb:


> Huch, mit soviel resonanz hab ich jetzt nicht gerechnet


Wenn Du mal in der Forensuche den Suchbegriff "Programmierstil" eingibst, dann weisst Du, warum da so viel Resonanz kommt. Vor allem, wenn man bedenkt, dass das Thema zwischenzeitlich deutlich ruhte, aber sich immer und immer wieder von neuem entfachen lässt. Wenn ich mir mal so die Suchergebnisse vor Augen führe ...

http://www.sps-forum.de/search.php?searchid=5756692


----------



## Approx (26 Oktober 2011)

D4K!ZZ4 schrieb:


> Natürlich bin ich für jeden weitern Tipp Dankbar.
> Gruß Chris


 
Dann solltest Du wenigstens die Frage im Post #2 beantworten...
Willst Du "schööööön" (im Sinne von "sauber") programmieren, oder einen Weltrekord im Resourcensparen aufstellen? Wobei bei Letzterem heutzutage wirklich die Grundlage fehlt - es sei denn man will uralte Anlagen aufbohren, ohne Geld in die Hand zu nehmen.

Approx


----------



## D4K!ZZ4 (26 Oktober 2011)

Hi,

ich denk schon eher an sauber.

Also Regeln für die lesbarkeit.

Oder einfach Sachen die häufig zu Fehler führen können und als schlampig gelten vermeiden. Solche Sachen eben.

Gruß Chris


----------



## Tigerente1974 (27 Oktober 2011)

Approx schrieb:


> Deine Frage ist hier schon zig mal durchgekaut worden und meist endet alles im SV.
> Schon bei einfachen, und grundlegenden Dingen wie das Bilden der statischen globalen VKE-Merker gibt es Diskussionen.
> Dann sind da die Verfechter der jeweiligen Programmiersprache KOP/FUP/AWL/SCL...
> 
> ...



Damit wurde m.E. schon alles gesagt. Und wenn von "Instandhaltern" gesprochen wird: Nicht nur "Instandhalter" kommen ins Straucheln, wenn ein "Profi" die Möglichkeiten ausreizt...


----------



## Perfektionist (27 Oktober 2011)

wenn hier schon wieder von "Instandhaltern" gesprochen wird:

Instandhalter müssen in der Lage sein, einen Backup und einen Restore durchführen zu können. Am Programm selbst ist normalerweise nichts instand zu halten, sodenn es vernünftig geschrieben ist. Und wenn dem Instler mein Code nicht passt, warum muss ich das dann coden, nicht er?


----------



## Tigerente1974 (27 Oktober 2011)

Perfektionist schrieb:


> wenn hier schon wieder von "Instandhaltern" gesprochen wird:
> 
> Instandhalter müssen in der Lage sein, einen Backup und einen Restore durchführen zu können. Am Programm selbst ist normalerweise nichts instand zu halten, sodenn es vernünftig geschrieben ist. Und wenn dem Instler mein Code nicht passt, warum muss ich das dann coden, nicht er?



Da sollte wohl eine Fallunterscheidung gemacht werden.

Fall 1:
Es gibt sicher Maschinen, deren Programm -wenn überhaupt- nur durch den Hersteller geändert werden sollte.

Fall 2:
Genauso gibt es aber Maschinen, die nach Bedarf innerhalb gewisser Grenzen umgebaut werden. Demnach wird der Käufer ins Pflichtenheft schreiben, dass das Programm übergeben werden muss. Und dann wird ein Instandhalter in den Genuss kommen, mal eine weitere Abfrage ins Programm zu integrieren oder ähnliches.

Fall 2 ist sicher nicht praxisfern. Ich will damit auch nicht sagen, dass jeder Programmierer damit gehalten sein soll nur noch mit UND/ODER zu proggen.
Trotzdem sollte man sich nicht einen Programmierstil angewöhnen, der einen selbst fast unersetzlich macht.


----------



## Perfektionist (27 Oktober 2011)

Hihi, auch hier muss man Fall 1 und Fall 2 unterscheiden: einer für alle und alle für einen.

Aber es ist ein schönes Gefühl, unabhängig zu sein. Und auch ein schönes Gefühl, nicht wirklich gebraucht zu werden.

Aber entmenscheln wir uns ruhig. Und fressen dann Psychopharmaka, um diese Härte und Kälte aushalten zu können. Wenn uns dann kein Kollege mehr fehlt, sondern dieser einfach nur ersetzt wurde ...


----------



## Larry Laffer (27 Oktober 2011)

... da wir jetzt ja nun (ENDLICH) bei dem von Ralle schon angekündigten SV (Schwanzvergleich) angekommen sind :

- es gibt auch Hersteller, die am Besten keine Programme schreiben sollten (nicht einmal welche mit nur UND und ODER)
- es gibt auch Instandhalter, die selbst wenn die im Prinzip programmieren können, die Programme von Anderen (und hier ganz gleich von wem) nur mit einer Kneifzange anfassen.

Ich denke, wir belassen das Ganze mal bei der von Approx so treffend formulierten Kern-Aussage, denn ,,, man kann immer und überall ein Haar in der Suppe finden !

Gruß
Larry


----------



## Tigerente1974 (27 Oktober 2011)

*ACK*

Kann man so stehen lassen.


----------



## Approx (27 Oktober 2011)

*#koppschüttel#*



Perfektionist schrieb:


> Instandhalter müssen in der Lage sein, einen Backup und einen Restore durchführen zu können. Am Programm selbst ist normalerweise nichts instand zu halten, sodenn es vernünftig geschrieben ist. Und wenn dem Instler mein Code nicht passt, warum muss ich das dann coden, nicht er?


Diese Aussage deute ich mal als herablassende Provokation in Richtung Instis, denn so welt-, und wirklichkeitsfremd kann heutzutage kein Automatisierer mehr sein. 

Belassen wir es dabei. 

Approx


----------



## Perfektionist (27 Oktober 2011)

Larry Laffer schrieb:


> Ich denke, wir belassen das Ganze mal bei der von Approx so treffend formulierten Kern-Aussage, denn ,,, man kann immer und überall ein Haar in der Suppe finden !


Konflikte sind dazu da, ausgetragen zu werden. Und das geht mit ausdiskutieren, nicht mit ausschweigen.

Mag sein, dass ich ein wenig streitsüchtiger bin als andere, mag sein, dass ich überspitzter formuliere ...

Nur: mit so unscharf pauschal formulierten Aussagen wie: "auch der Instler soll verstehen, was ich da progge", kommen wir hier nicht weiter. Entweder ich arbeite bei der Programmentwicklung eng mit dem Instler zusammen oder die Programmentwicklung ist an mich persönlich delegiert. Entweder der Instler ist dann mit mir unersetzlich oder wir sind beide beliebig. Soll der Shareholder entscheiden, wie er es haben will ...


----------



## Perfektionist (27 Oktober 2011)

Approx schrieb:


> herablassende Provokation in Richtung Instis


Entschuldigung, ich hab den Begriff Instandhalter falsch verstanden:
http://de.wikipedia.org/wiki/Maintainer

ich war davon ausgegangen, dass ein Instandhalter sich um die ordnungsgemäße Funktion der Maschine kümmert, nicht dass er die Maschine weiterentwickelt (was er ja aus Garantiegründen ja manchmal garnicht darf).


----------



## Approx (27 Oktober 2011)

Stichwort "Shareholder" und "Maintainer"

Gibts eigentlich schon Bullshit-Bingo für Foren?

Approx


----------



## Larry Laffer (27 Oktober 2011)

Perfektionist schrieb:


> ... ich war davon ausgegangen, dass ein Instandhalter sich um die ordnungsgemäße Funktion der Maschine kümmert, nicht dass er die Maschine weiterentwickelt (was er ja aus Garantiegründen ja manchmal garnicht darf).


 
Vielleicht einmal so herum :
Ich war auch mal eine lange Zeit Instandhalter (eigentlich bin ich es auch heute noch zu gut 40%). Aus der Zeit weiß ich, dass wir in dem Betrieb (großer Produktions-Betrieb) so diverse Sachen (allerdings hauptsächlich Programm- und Visutechnisch) oft sehr viel besser und auch störungsfreier selbst hinbekommen haben als die (ach so hoch-qualifizierten) Lieferanden, die es eigentlch tag-täglich machen. Der wesentliche Unterschied, der mir damals so aufgefallen ist ist, dass die Lieferanden meißt nur "ihre Maschine (oder Anlage)" sehen und nicht über den Tellerrand schauen.

Ich würde mal sagen, dass ich, wenn ich für meinen eigenen Betrieb arbeite, in der Erstellung von Programmen und Funktionalitäten sehr viel risikofreudiger bin/ sein darf, als jemand, der wegen einer übersehenen Kleinigkeit dann gleich um den halben Erdball fliegen darf - ich bin in max. 10 Minuten an jedem meiner "Pflegefälle" ...

Gruß
Larry


----------



## Tigerente1974 (27 Oktober 2011)

Ohne jetzt den SV machen zu wollen. Vernünftig diskutieren kann man das ja auch 
Dazu gehören nach meiner Ansicht keine Spitzfindigkeiten über Begriffe. Das können meinetwegen die machen, die unbedingt rauskriegen müssen wer den Längeren hat...

Mein Werdegang ist ähnlich wie der von LL. Als Elektriker angefangen, dann mal vorsichtig das PG benutzt und mit etwas mehr Erfahrung dann immer mehr gemacht.

Ich denke auch, dass viele aufgrund des Werdegangs nicht über den Tellerrand geschaut haben. Und damit meine ich Instandhalter wie Programmierer.


----------



## ge_org (27 Oktober 2011)

Hi,
ich bin eigentlich auch Instandhalter (obwohl mein Chef diesen Ausdruck vermeidet), meine Arbeitszeit wird ca. 25% für Anlagen mit SPS verwendet, dabei handelt es sich um kleine Anlagen mit max. 64 Eingängen und Ausgängen, 2 Servoachsen (elektr. bzw. hydraulisch), ein paar analoge Eingänge, Visu.
1. Ich brauche kein FUP -- AWL oder SCL/ST tut es auch!
2. Wenn FUP/KOP/AWL verwendet wird, will ich kleine Netzwerke, eine UND-Verknüpfung wo ich fünf Seiten scrollen muss (ja,ja ich habe eine Scheisskleinenmonitorundbinschassaugad aber das ist nicht das eigentliche Problem) halte ich für nicht akzeptabel!
3. Ich will im Fehlerfall nicht mit dem Laptop zur Anlage-->der Programmierer soll die Fehler auf der Visu ausgeben, dann brauche ich nicht mal zur Anlage!
4. AEG ist für mich das A&O (Ausschalten, Einschalten, Geht), es ist mir scheissegal wenn Schrittkette A im Schritt 10 auf Schrittkette B wartet, die eigentlich irgendwo ist weil sie glaubt Schrittkette A sei erst bei 8, wenn ich ausschalte dann fahre ich die Anlage in Grundstellung und AUS!
(Bin deswegen im Urlaub in die Firma gefahren)
5. XOR wird zuwenig oft verwendet (ganz egal welche Sprache!)
6. Bei SCL/ST wird "If" inflationär behandelt, ich glaub irgendwer (Zottel?)hat vor ein paar Jahren sehr gute Tips (für mich jedenfalls) gegeben wie guter Code auszusehen hat.
7. Zu 99% liegt der Fehler beim Benutzer der Anlage, Beispiel gefällig:
Anruf: Anlage funktioniert nicht, sofort kommen!
Ich: Scheisse was kann es da haben, komme zur Anlage, verdammt Display tot, verdammt Schrauber tot,                , der Arsch hat nicht gemerkt, dass der Hauptschalter AUS ist!

Georg

P.S.: Meine Anlagen sind alle gebraucht übernommen worden, die Anlagen teilw. aus dem Jahr 2001 bis 2007, funktionieren (trotz ihrer Macken) problemlos, die Codes sehe ich mir nur an, damit ich verstehen kann warum sie nicht funktionieren. Das einzige was ich an den Anlagen kritisieren kann, ist, dass sich die Programmierer und die Mechaniker während der Jahre nicht weiterentwickelt haben!


----------



## Approx (28 Oktober 2011)

Zu Punkt 7 habe ich auch einen aktuellen Schwank aus dieser Woche; Thema Fremdfirmen-User (dauerhaft) auf unserem Gelände:
Chef gibt mir den Auftrag "Schau mal nach dem Touchpanel-PC, der soll ständig irgendwelche Fehlermeldungen ausgeben!" Hintergrund: handelt sich um einen WinCC-Client (kein Flex), den ich neulich erst aufgestellt hatte.
Vor Ort die Windoof-Ereignisanzeige durchforstet, in den WinCC-Logfiles herumgesucht - kein Fehler festzustellen. Hab mir dann den MA der Fremdfirma gegriffen und ausgefragt. Er meinte eigentlich die Fehlermeldungen im Alarm Logging.... Hatte meinem Chef aber erzählt, der Rechner bringt Fehler...

So erzeugt man Blindleistung. 
Approx

PS: @Larry #29: gleicher Werdegang und Prozentsatz würde ich sagen. Warscheinlicher Unterschied: ich bin stationär tätig...;-)


----------



## Larry Laffer (30 Oktober 2011)

Approx schrieb:


> @Larry #29: gleicher Werdegang und Prozentsatz würde ich sagen. Warscheinlicher Unterschied: ich bin stationär tätig...;-)


 
Was heißt denn "stationär tätig" ?
Wenn du damit meinst "ich muss nicht reisen", so gilt das auch für mich. Meine Anlagen verteilen sich über eine überschaubare Halle und nach ca. 200m Strecke habe ich jede meiner Anlagen erreicht ...

Gruß
Larry


----------



## Perfektionist (30 Oktober 2011)

stationär tätig war ich auch schon 

so vom Bürosessel aus auf der 600km entfernt stehenden Anlage ...


----------



## Approx (30 Oktober 2011)

Larry Laffer schrieb:


> Was heißt denn "stationär tätig" ?
> Wenn du damit meinst "ich muss nicht reisen", so gilt das auch für mich. Meine Anlagen verteilen sich über eine überschaubare Halle und nach ca. 200m Strecke habe ich jede meiner Anlagen erreicht ...
> 
> Gruß
> Larry


Jup, habe gedacht ich bin einer der Wenigen, die feste Örtlichkeiten haben - was in unserer Branche aber auch selten ist. Nadenn, ich nehme alles zurück und behaupte das Gegenteil!  Die Anlagen, die ich betreue, liegen sogar weiter als 200m auseinander auf unserem Werksgelände... 

@Perfektionist: "mstsc /console" ist unser aller Freund... 

Approx


----------



## StructuredTrash (31 Oktober 2011)

Na, dann oute ich mich auch mal als "stationärer" SPS-Programmierer, der in einer überschaubaren kleinen heilen Welt werkelt. Ich hatte bislang auch gedacht, damit eher ein Ausnahmefall zu sein.

Aber zum Thema:


ge_org schrieb:


> Hi,
> ich bin eigentlich auch Instandhalter (obwohl mein Chef diesen Ausdruck  vermeidet), meine Arbeitszeit wird ca. 25% für Anlagen mit SPS  verwendet, dabei handelt es sich um kleine Anlagen mit max. 64 Eingängen  und Ausgängen, 2 Servoachsen (elektr. bzw. hydraulisch), ein paar  analoge Eingänge, Visu.
> 1. Ich brauche kein FUP -- AWL oder SCL/ST tut es auch!
> 2. Wenn FUP/KOP/AWL verwendet wird, will ich kleine Netzwerke, eine  UND-Verknüpfung wo ich fünf Seiten scrollen muss (ja,ja ich habe eine  Scheisskleinenmonitorundbinschassaugad aber das ist nicht das  eigentliche Problem) halte ich für nicht akzeptabel!
> ...


Zu 1. Das finde ich sehr gut. Ich musste mir erst vor Kurzem in einem anderen Thread den Vorwurf der Diskriminierung gefallen lassen, weil ich gefragt habe, warum ein Instandhalter sich nicht mit Hochsprachen beschäftigen braucht. Ich finde es eher diskriminierend, dem Instandhalter die Fähigkeit dazu abzusprechen.
Zu 2. Finde ich auch. Heute hat man doch genug Speicherplatz, um Zwischenergebnisse in Hilfsmerkern zu speichern. Aber bitte keine sogenannten "Schmiermerker", die im Programm mehrfach zu diesem Zweck benutzt werden.
Zu 3. Da ich selbst nicht nur Programmierer, sondern auch Instandhalter bin, lege ich darauf auch grossen Wert.
Zu 4. Das ist wünschenswert, aber sicher nicht bei jeder Anlage möglich. Und auch der Konstrukteur muss da mitspielen. Ich drehe mir oft genug die Achse ab, um bei einer Grundstellungsfahrt evtl. noch in der Maschine befindliches Material loszuwerden.
Zu 5. Ich liebe XOR, muss mir aber auch manchmal vorwerfen lassen, meinen Code damit unverständlich zu machen. Scheint wirklich eine sehr exotische Verknüpfung zu sein.
Zu 6. "IF THEN ELSE" ist nun einmal die Stärke von ST, die man auch nutzen sollte. "CASE OF" ist in vielen Fällen zwar eine übersichtliche Alternative, funktioniert aber nur mit Konstanten. Bei einer grossen "IF THEN"-Verschachtelungstiefe kann man das Ganze aber durch den Einsatz von Unterprogrammen übersichtlicher machen.
Zu 7. Stimmt. Ein eigener Thread mit solchen Begebenheiten würde dem "Fun zum Feierabend" wohl in küzester Zeit ernsthaft Konkurrenz machen.


----------

