# Aufbau von Programmen und Mischkultur



## Outrider (27 Juli 2012)

Moin,
 mich interessiert wie ihr eure Programme aufbaut hinsichtlich Darstellung in AWL, FUP, KOP.
 Ich programmiere überwiegend in KOP soweit es möglich ist. Wenn dann aber Sprünge erforderlich sind gehe ich auf AWL über.
 So kommt es häufig vor dass ich in einem FC beide Darstellungsformen habe.
 Ist so was akzeptabel oder sollte man sich bemühen eine Form anzuwenden.
 Grüße


----------



## ducati (27 Juli 2012)

Grafisch (KOP,FUP,CFC...) hat schon einige Vorteile bei der Überscihtlichkeit/Verständlichkeit der Programme. Leider lassen sich nicht alle Dinge (z.B. auch analoge Berechnungen) ordenlich grafisch programmieren und es wird eine weitere Sprache (AWL, SCL,...) notwendig. Wenn dann noch Schrittketten dazukommen, hat man schnell noch die 3. "Programmiersprache" (Graph, HighGraph, SFC,...)

Also sofern wird sich eine Mischform nicht vermeiden lassen. 

Wenn dann noch verschiedenen Programmierer dran sind und die Anlage über lägere Zeit gewachsen ist, ist das Chaos oft perfekt.

Bei der Kombination KOP und AWL hätte ich keine Bedenken.

Was ich als wirklich gut empfinde ist: schreiben von FBs in SCL und verschalten der FBs in CFC. Das macht Spass... CFC hat da deutliche Vorteile gegenüber FUP.

Gruß.


----------



## Perfektionist (30 Juli 2012)

Ich schreibe durchgängig AWL. Mit TIA-Portal werde ich voraussichtlich auf SCL/ST übergehen.

was gegen KOP spricht: das ist früheren, realen Relaisschaltungen nachempfunden, die heute so nicht mehr existieren

was gegen FUP spricht: auch dies ist eine nur noch virtuell existierende Technik aus Zeiten, als man Gatterschaltungen baute.

was gegen AWL spricht: heute proggt doch jeder vernünftige Mensch auf uControllern in Hochsprache.

was dann gleichzeitig für SCL/ST spricht. Pascal gab es noch vor allem anderen, demnach ist es wohl die beständigste Art, Programmieraufgaben in einer allgemeinverständlichen Form zu lösen. 

wobei ich bei allgemeinverständlich meine, dass C zu kryptisch ist, um allgemeinverständlich zu sein.


----------



## ducati (30 Juli 2012)

und was für CFC spricht: eine sehr einfache Art, Bausteine übersichtlich zu verschalten, es werden keine Zwischenvariablen benötigt, die zugehörigen Datenbausteine der FBs können einfach vorbelegt werden.

Gruß.


----------



## Blockmove (30 Juli 2012)

Ich halts da viel pragmatischer:
Für jede Aufgabe das geeignete Werkzeug:

Betriebsarten, Freigaben, Verknüpfungen: KOP / FUP
Schrittketten: KOP / FUP /GRAPH
Berechnungen, Typdaten: AWL, SCL

Gruß
Dieter


----------



## rostiger Nagel (30 Juli 2012)

Und es gibt Anwendungen wo nur FUP erlaubt ist und auch seinen Sinn hat.
Bei der Verwendung von Safty Steuerungen, etwas anderes zu verwenden
kann unübersichtlich werden und dann auch gefährlich.


----------



## PinkPanther32 (30 Juli 2012)

Na und was man nicht vergessen sollte sind die Kundenwünsche!
will der kunde alles nach möglichkeit in KOP haben und was halt nicht geht in AWL. Wird man schlecht was gegen sagen können.


----------



## Perfektionist (31 Juli 2012)

rostiger Nagel schrieb:


> Und es gibt Anwendungen wo nur FUP erlaubt ist und auch seinen Sinn hat.


konkret was?




rostiger Nagel schrieb:


> Bei der Verwendung von Safty Steuerungen, etwas anderes zu verwenden
> kann unübersichtlich werden und dann auch gefährlich.


es gibt keine Programmiersprache, die per se übersichtlich ist. Es gibt immer jemanden, der als Künstler etwas so hinbekommt, dass ein anderer es nicht begreift (oder auch nur nicht begreifen will).


----------



## Blockmove (31 Juli 2012)

Perfektionist schrieb:


> konkret was?



Nimm mal z.B. Grundstellung- oder Startbedingungen oder dergleichen. Eben die "klassischen" Verknüpfungen.
Hierbei ist KOP oder FUP deutlich übersichtlicher als SCL / ST. Das wird dir jeder Instandhalter bestätigen.

Gruß
Dieter


----------



## rostiger Nagel (31 Juli 2012)

Hallo Perfekter,
für dich nochmal FUP macht konkret bei Sicherheitstechnik Sinn und einer 
der Gründe warum es dort genommen werden soll, ist die Übersichtlichkeit.

Hast du es jetzt verstanden was ich in Beitrag Nr #8 mitteilen wollte?


----------



## Blockmove (31 Juli 2012)

rostiger Nagel schrieb:


> für dich nochmal FUP macht konkret bei Sicherheitstechnik Sinn und einer
> der Gründe warum es dort genommen werden soll, ist die Übersichtlichkeit.



Wobei die Übersichtlichkeit stark vom Hersteller / Produkt abhängt.
Ich hab letztes Jahr eine diesbezügliche Diskussion mit Siemens über die Software zum 3RK3 gehabt.
Bei komplexer Sicherheitstechnik (knapp 30 Seiten) ist es nämlich vorbei mit Übersichtlichkeit. Hier ist Pilz PNOZmulti deutlich überlegen.

Aber generell gebe ich dir recht. Alle grafischen Sprachen haben nach wie vor ihre Daseinsberechtigung.
Ich vergelich das immer mit den Autoarmaturen. Digitale Tachos haben die Analogen auch nicht verdrängt 

Gruß
Dieter


----------



## hucki (31 Juli 2012)

Blockmove schrieb:


> ...
> Für jede Aufgabe das geeignete Werkzeug:
> ...


Kann ich nur unterstützen.
Ich nehm' doch für die Suppe auch nicht die Gabel, nur weil's eleganter aussieht.





Perfektionist schrieb:


> ...
> was gegen KOP spricht: das ist früheren, realen Relaisschaltungen nachempfunden, die heute so nicht mehr existieren
> ...


Ich kann da nur als Elektriker sprechen: 
Schaltpläne muss ich jeden Tag lesen und deshalb fällt mir KOP so leicht, wie einen deutschen Text zu lesen.
Ich kann AWL, aber ich benutz' es nicht jeden Tag und ist für mich deshalb wie ein englischer Text - lesen kann ich fließend, verstehen dauert ein wenig länger.
Und Digitale Gatter hatte ich mal vor langer Zeit. Deshalb ist FUP wie russischer Text (hatte 8 Jahre Russisch vor 20 Jahren in der Schule) - lesen geht holprig, verstehen dauert ewig bis gar nicht.


Auch wenn's die "Riesen"-Relaisschaltungen vlt. nicht mehr gibt, Schaltplan lesen gehört m.M.n immer noch zu den Grundlagen des Elektriker-Jobs. Und ist damit auch Berechtigung für KOP.


----------



## Perfektionist (31 Juli 2012)

Blockmove schrieb:


> Digitale Tachos haben die Analogen auch nicht verdrängt


verdrängt zwar nicht - ich nutze jedoch intensiv den digitalen Tacho in meiner MFA (VW), meine GRA ist ausschliesslich digital.

in meinen Panels ist nirgens ein Drehknopf zu finden, bestenfalls mal eine grafische Darstellung einer Soll- oder Istposition. Spätestens am Telefon rede ich jedoch digital darüber, oder macht da jemand eine Foto-MMS, wenn er seine momentane Reisegeschwindigkeit seiner Frau mitteilen will? also Handy raus aus der Freisprech, aufn Tacho halten und...?

Es soll ja Bücher geben, die ohne Bilder auskommen. Comics, die ohne Sprechblasen auskommen, sind eher selten. Und die Symbole in einer graphischen Programmiersprache sind seiter immer in Worte und nicht als Bilder gefasst. Sodenn wirklich Symbole verwendet werden. Macht ja auch nicht jeder...


----------



## Perfektionist (31 Juli 2012)

hucki schrieb:


> Ich nehm' doch für die Suppe auch nicht die Gabel, ...


Es gibt Menschen, die für ihre Glasnudelsuppe Stäbchen für geeignet halten.




hucki schrieb:


> Auch wenn's die "Riesen"-Relaisschaltungen vlt. nicht mehr gibt, ...


ja wo denn? Es gibt ja bald nirgens nichteinmal mehr eine Notauskette - wo ist also die Notwendigkeit geblieben, eine Reihenschaltung digitaler Kontakte verstehen zu müssen? Ausser, wenn mal eine Leitung bricht?


----------



## rostiger Nagel (31 Juli 2012)

Ich kann ja eigentlich nur AWL, aber ich kann schon verstehen das es Leute gibt
die KOP oder FUP besser verstehen, ich respektiere deren Wunsch das ein Programm,
in ihrer Augen verständlicher Sprache dargestellt wird und würde ihnen nicht eine andere
aufzwingen wollen. Trotzdem werde ich nicht darauf eingehen und bleibe bei AWL.


----------



## hucki (31 Juli 2012)

Perfektionist schrieb:


> Es gibt Menschen, die für ihre Glasnudelsuppe Stäbchen für geeignet halten.
> ...


Nehmen die nicht auch 'n Löffel (der fast wie'n Holzschuh aussieht)? Oder wollen die abnehmen?





Perfektionist schrieb:


> ...
> ja wo denn? ...


Ich bin mir ziemlich sicher, das ich das Wort "nicht" verwendet habe:


hucki schrieb:


> ...
> Auch wenn's die "Riesen"-Relaisschaltungen vlt. *nicht* mehr gibt, ...





Und für kleinere Sachen bevorzuge ich auch heute noch Relais'.
Man muss ja nicht immer gleich mit Kanonen auf Spatzen schießen.


----------



## hucki (31 Juli 2012)

rostiger Nagel schrieb:


> Ich kann ja eigentlich nur AWL, aber ich kann schon verstehen das es Leute gibt die KOP oder FUP besser verstehen, ich respektiere deren Wunsch das ein Programm, in ihrer Augen verständlicher Sprache dargestellt wird und würde ihnen nicht eine andere aufzwingen wollen. Trotzdem werde ich nicht darauf eingehen und bleibe bei AWL.


Wenn Du das programmierst, find' ich das OK.

Man soll mir nur zugestehen (PS: so wie Du), das meine Programme halt so sind, wie sie ich und meine Umgebung am Besten lesen können.

Mir würde auch nicht einfallen, FUP zu verteufeln, nur weil's mir nicht liegt.


Halt eben so:


Blockmove schrieb:


> ... Für jede Aufgabe das geeignete Werkzeug ...





PS: Warum trennt denn das Board immer das Zitat von RN, selbst wenn ich die Trennung wieder raus lösche?
PPS: Neuschreiben hat geholfen, aber das kann ja nicht immer die Lösung sein.


----------



## Blockmove (31 Juli 2012)

Perfektionist schrieb:


> in meinen Panels ist nirgens ein Drehknopf zu finden, bestenfalls mal eine grafische Darstellung einer Soll- oder Istposition.



Ja wie jetzt?
Du benutzt - so wie es aussieht - womöglich grafische Panels?
Und jetzt sag nur nicht, dass du gar so Dinge wie Schaltflächen verwendest?
Schließlich ist eine Schaltfläche ja nur die Nachbildung eines mechanischen Schalters.

Ich hätte jetzt schon erwartet, dass du ein VT100-Terminal an deinen Anlagen verbaust. 
Zum Starten der Anlage muss dann der Benutzer vielleicht schreiben:


```
Steuerung := TRUE;
Betriebsart := "Manuell";
Grundstellungfahrt := TRUE;
Betriebsart := "Automatik";
Start := TRUE;
```

Gruß
Dieter


----------



## SoftMachine (1 August 2012)

hucki schrieb:


> PS: *Warum trennt denn das Board immer das Zitat von RN*, selbst wenn ich die Trennung wieder raus lösche?
> PPS: Neuschreiben hat geholfen, aber das kann ja nicht immer die Lösung sein.



RN  ist hier halt eine (die) Institution   

Grüsse, auch an RN !


----------



## hucki (1 August 2012)

SoftMachine schrieb:


> RN  ist hier halt eine (die) Institution
> ...


Und weil er 'ne Institution ist, wird er zerlegt?

Bitte zitiert mich nicht mehr, sonst werd' ich gar gevierteilt.


----------



## SoftMachine (1 August 2012)

hucki schrieb:


> ... sonst werd' ich gar gevierteilt.



ge_4_teilt ... 

auweia, das hatten wir hier schon mal ...


----------



## Tigerente1974 (1 August 2012)

Wie geil! Gibt es nicht schon genug threads zu diesem Thema? Offensichtlich nicht...


----------



## Paule (2 August 2012)

Tigerente1974 schrieb:


> Wie geil! Gibt es nicht schon genug threads zu diesem Thema? Offensichtlich nicht...


Aber es ist der erste Thread um die verschiedenen Programmiersprachen, bei dem nicht die Instandhalter den Kopf dafür hinheben müssen, das die Programmierer ihre Programme lieber in KOP oder FUP schreiben.


----------



## Perfektionist (2 August 2012)

Du meinst jetzt, dass die Instandhalter die Rechtfertigung für KOP/FUP sind?


----------



## Paule (2 August 2012)

Perfektionist schrieb:


> Du meinst jetzt, dass die Instandhalter die Rechtfertigung für KOP/FUP sind?


So wurde es in dutzenden Threads zu diesem Thema proklamiert.


----------



## Tigerente1974 (2 August 2012)

Für mich ging die Diskussion wieder in die Richtung, ob es "die einzige und wahrhaftige" Programmiersprache gibt oder doch ein Mix (bezogen auf den Anwendungsfall) die bessere Wahl ist. Dabei finde ich es jetzt auch erstmal unerheblich, ob es nun der Instandhalter, der Kunde oder sonstwer ist, der für eine bestimmte Programmiersprache seinen Arm hebt.


----------



## Lipperlandstern (2 August 2012)

Ich hatte jetzt eine Kunden da stand KOP (in diesem Fall Ladder) im Pflichtenheft. Da ich eh gerne rumKOPpe habe ich mich zu 90% dran gehalten.


----------



## rostiger Nagel (2 August 2012)

Lipperlandstern schrieb:


> Ich hatte jetzt eine Kunden da stand KOP (in diesem Fall Ladder) im Pflichtenheft. Da ich eh gerne rumKOPpe habe ich mich zu 90% dran gehalten.



[vom_Kunde_zu_Lilastern]
Hmm...wenn du mein pflichtenheft meinst, da steht das niemals drin. Wenn ich es 
Vergessen habe zu schreiben, ich hätte gerne AWL.
[/vom_Kunde_zu_Lilastern]


----------



## Majestic_1987 (13 August 2012)

Ich finde, eine Programmiersprache gehört entsprechend der Aufgabe ausgewählt. Ich finde, dass jemand, der sich SPS-Programmierer oder Automatisierungstechniker nennt, alle Programmiersprachen der IEC61131-3 zu beherrschen hat. Und wenn ein Kunde FUP wünscht, damit die Instandhaltung das Programm lesen kann, ist das - meiner Meinung nach - ein legitimer Wunsch. Kunde ist König.

BTW: Ich programmiere am liebsten ST oder CFC sowie FUP, finde mit den dreien kommt man aus. Auf ner CoDeSys-Steuerung hat AWL m.M.n. keinen Vorteil gegenüber ST, dafür allerdings etliche Nachteile für die Wartung. In Step7 ist der SCL-Editor allerdings ne Zumutung...


----------



## Perfektionist (13 August 2012)

Majestic_1987 schrieb:


> Ich finde, dass jemand, der sich SPS-Programmierer oder Automatisierungstechniker nennt, alle Programmiersprachen der IEC61131-3 zu beherrschen hat.


Gilt das auch für Instler? Dann wäre es doch das allereinfachste, sich endlich mal auf SCL/ST zu einigen. Und irgendein beliebiges Produkt, das Schrittketten für Siemens, Rockwell, ... in SCL/ST übersetzt. Wozu diese Vielfalt? Warum sich nicht auf das Wesentliche konzentrieren?


----------



## Ralle (13 August 2012)

Perfektionist schrieb:


> Gilt das auch für Instler? Dann wäre es doch das allereinfachste, sich endlich mal auf SCL/ST zu einigen. Und irgendein beliebiges Produkt, das Schrittketten für Siemens, Rockwell, ... in SCL/ST übersetzt. Wozu diese Vielfalt? Warum sich nicht auf das Wesentliche konzentrieren?



Weil es nun mal sehr unterschiedliche Anwendungsfälle gibt, meine ich. Ich hab schon für unterschiedliche Branchen programmiert, alles nur in SCL/ST hatte ich auch schon dabei. Das ist aber in manchen Fällen, wenn viele Logikverknüpfungen (Handlingsysteme, z. Bsp. Freigaben für Fahrwerke mit mehreren Vertikalachsen und Stationen im Eingriff) fast genauso unübersichtlich wie AWL. Wenn man solche Netzwerke KOP/FUP't, dann wir das lesbar uns macht auch Sinn. Leider kann man das aber nicht in einem Baustein mischen und das ist echt schade. Chemieanlagen sind wieder eine ganz andere Sache, da würde ich z.Bsp. eher SCL/ST wählen.


----------



## Aventinus (13 August 2012)

Perfektionist schrieb:


> ... Wozu diese Vielfalt? Warum sich nicht auf das Wesentliche konzentrieren?



Ich bin der Meinung, wenn man eine Bitverknüpfung von einer Hand voll UND und ODER gemischt programmieren muss ist das doch in FUP oder KOP wesentlich übersichtlicher und schneller zu verstehen (egal ob Instandhalter oder Vollzeitprogger) als drei bis vier Klammerebenen in AWL oder SCL/ST zu zerdröseln.
Andersrum schaukle ich Felder lieber indiziert mit SCL/ST als indirekt adressiert mit AWL oder gar jeden Zugriff einzeln in FUP / KOP porgammiert.

Jede Darstellungsart hat seine Vor- und Nachteile und somit seine Berechtigung.

Persönliche Vorlieben sind selbstverständlich immer Vorhanden und auch legitim, haben aber auch irgendwo ihre Grenzen.

Der eine meint, bei einem Array [1..3] of Int sofort zu SCL gehen zu müssen, dem anderen sind 10 Zugriffe in FUP noch nicht lästig.


----------



## phil87 (16 August 2012)

Ich programmiere fast immer in ST. hatte noch nie das bedürfniss was anderes zu programmieren....


----------

