# Standart / Normierungen



## Schnick und Schnack (7 Mai 2008)

Hallo zusammen

Wir sind gerade dabei, ein Konzept zu entwerfen, welches uns ermöglicht,  betriebsinterne Programmierstandarts bzw. Normen festzulegen. Sprich einheitliche Symbolik, Bausteinbibliothek, Kommentare usw.....
Dies hauptsächlich geltend für Step-7, WinCCflex, WinMod und extl CoDeSys.
Hat jemand schon Erfahrungen mit solchen Konzepten? Was macht Sinn, was gehört rein, wie detailiert soll es sein. Gibts evtl vorlagen?? Hab eine von Wito
evtl gibts ja noch was zum vergleichen.

Schonmal danke im Voraus

Gruss Anis


----------



## marlob (7 Mai 2008)

Zur Deklaration von symbolen gab es hier schon mal eine Diskussion


----------



## Schnick und Schnack (7 Mai 2008)

Danke für die Antwort.
Allerdings sind mir die Deklarationen bekannt. 
Um meine Frage zu präzisieren,  geht es mir hauptsächlich darum, wie ich eine solche Normierung angehe. Wie gesagt, was kommt rein, wie  detailiert solls sein usw.

Gruss Anis


----------



## marlob (7 Mai 2008)

Was gehört meiner Meinung nach in eine Standardisierung:
Also auf jeden Fall würde ich die Benennung der Symbole festlegen. Siehe dazu auch meinen vorherigen Beitrag.
Dann würde ich festlegen in welcher Programmiersprache programmiert werden soll. Da ihr CodeSys und Step7 benutzt, könnte man überlegen SCL/ST als Programmiersprache zu benutzen. Man könnte dann die Standardbausteine einmalig programmieren und in beiden Systemen (evtl. mit kleinen Anpassungen) benutzen.
Festlegen würde ich auch noch die Bennenung der Unterprogramme (FBs usw.)
und die Aufrufreihenfolge im Programm, so dass der Aufbau aller Programme gleich ist.
Mehr folgt später


----------



## Maxl (7 Mai 2008)

Üblicherweise umfassen solche Normierungen Dinge wie
- Nullmerker, Einsmerker, Null- und Einsmerker für Inbetriebnahmen (welche dann nach Fertigstellung komplett entfernt sein müssen)
- Taktmerker, Hand- und Automatikmerker des jeweiligen Aggregates
- ungefähre Programmaufteilung (z.B. pro Aggregat ein Bereich von 20 oder 50 FCs)
- Vordefinierte Schnittstellen (Bereichszeiger) für Bediengeräte
- Vorlagen zur Programmierung von Störmeldungen (Einteilung der Meldenummern, Vorlage-UDTs welche zur Deklaration von Meldungen verwendet werden)
- Bevorzugte Programmiersprache (z.B. FUP bevorzugt, alternativ AWL bei S7 bzw. ST bei IEC)
- ungefähre Richtlinie zur Verwendung der Symbolik (bei S7)
- Richtlinien zur Variablen-Deklaration bei IEC (z.B. _typ-Suffix bei Benutzerdefinierten Datentypen; GROSSSCHREIBUNG bei Konstanten, Präfix g_ bei globalen Variabeln usw.)
- welche Betriebsarten muss es geben
- DOs (z.B. dass Ausgänge zyklisch bearbeitet werden müssen, dass man sich bei Not-Aus nicht nur auf die HW-Abschaltung von Ausgängen verlassen sollte sondern solche Signale auch in die Absolute Freigabe von Ausgängen rein müssen)
- DO NOTs (z.B. für jeden Unsinn einen überdimensionierten Standard-FB zu schreiben, indiziert zu programmieren wenn unnötig, usw)
- welche Meldung müssen z.B. für einen FU programmiert werden

Ich kümmere mich bei uns genau um das Thema Normierung und habe die Erfahrung gemacht, dass man sowas nicht einfach aus dem Ärmel zaubern darf und kann. Viele Dinge in unserer Normierung haben sich einfach über die Jahre so ergeben und sind dann wieder vereinheitlicht worden. Aber zu tief darf man hier nicht regulieren, da man damit teilweise empfindliche Eingriffe in Kreativität der Programmierer macht.


Es schadet nicht, wenn man eine vernünftige Bausteinbibliothek mit einer ordentlichen Dokumentation (Anwendungsbeispiele, Inbetriebnahmeanleitungen usw.) hat. Diese sollte z.B. umfassen
- Ansteuerung von FU/Servoantrieben
- Schnittstellen zu diversen Peripheriegeräten
- häufig gebrachte Funktionen, für die S7 keine Funktionen zur Verfügung stellt, oder wo die fertigen Funktionen völlig überfrachtet sind (z.B. Datenblöcke vergleichen, lineare Skalierung)

Als sehr wichtig haben sich eine ordentliche Versionierung (aus der z.B. die Abwärtskompatibilität herauslesen lässt) erweisen und die Festlegung, dass nicht jeder in der Bibliothek wild herumnormieren kann, sondern sich max. 1 oder 2 Leute um die Pflege der Bibliothek kümmern.


Falls Du konkrete Fragen hast, kann ich dir ein paar Auszüge aus unserer Normierung zukommen lassen (Emailadresse per PN)


mfg Maxl


----------



## Schnick und Schnack (7 Mai 2008)

*super*

Geniale Antwort.
Vielen Dank. Werd mich gleich morgen früh nochmals mit dir in Verbindung setzen. Heute geht nix mer in die Denkerbse rein. War bei meiner Friseurin. Wenn das menschliche Gehirn einer FIFO Tabelle entspricht, ises morgen aus mit Programmieren, dafür kann ich euch alles erzählen was die Friseurin in den letzten 2 Wochen alles erlebt hat.
na dann, nochmals danke für den super Beitrag.

Bis morgen


gruss anis


----------



## OHGN (8 Mai 2008)

Maxl schrieb:


> ...
> Ich kümmere mich bei uns genau um das Thema Normierung und habe die Erfahrung gemacht, dass man sowas nicht einfach aus dem Ärmel zaubern darf und kann. Viele Dinge in unserer Normierung haben sich einfach über die Jahre so ergeben und sind dann wieder vereinheitlicht worden. Aber zu tief darf man hier nicht regulieren, da man damit teilweise empfindliche Eingriffe in Kreativität der Programmierer macht.
> .............


 
*ACK* .........


----------

