Programmieren einer eigenen Bibliothek B&R

StefanPl

Level-1
Beiträge
10
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Forum-Kollegen.

Ich habe die Aufgabe bekommen eine interne Bibliothek zu schreiben. Da ich eher aus der Embedded-Programmierung komme, würde ich gern eure Meinung hören.

Meine Aufgabe besteht darin eine Bibliothek für den internen Gebrauch zu schreiben (wir fangen damit komplett neu an). In diese Bibliothek sollen alle Objekte kommen
die bei uns eingesetzt werden. z.B ein Motor, ein Motor mit FU, 2Wege-Ventile, 3Wege-Ventile, usw. Jedes Objekt kommt in einen eigenen Funktionsbaustein.
Nun meine Frage:
Ist es sinnvoll die "Inputs" bzw "Outputs" zu passenden Strukturen zusammen zu fügen (z.B. eine Struktur CMD --> Start, Stop, Drehzahl,...) oder sollten diese nur als Variablen
dem FB übergeben werden.

Was meint Ihr?

LG
 
Wir haben bei uns in der Firma auch angefangen, Funktionen, die immer wieder gebraucht werden in Bibliotheken zu verpacken.

Was uns aber im Laufe der Zeit immer wieder begegnet ist, ist die Tatsache, dass man versuchen sollte KEINE Eierlegendewollmilchsau zu programmieren. Oftmals packt man immer mehr Funktionen in einen Baustein rein, die später keiner mehr braucht.

Hier sollte man versuchen, die Funktionsbausteine klein und übersichtlich zu halten. Allerdings auch mit Fokus darauf, dass die einzelnen Teile gut miteinander kombinierbar sind. Was bringt dir ein Baustein, der 20 Funktionen hat, wenn du nur eine davon brauchst und der mit nix mehr gescheit zusammenarbeitet.

Die Parameterübergabe haben wir entweder über Strukturen gelöst oder aber die Variablen direkt übergeben. Kam halt ganz darauf an, was der Baustein machen sollte und wie komplex er ist. Ist Geschmackssache. Ich persönlich arbeite auch gerne mit Strukturen, das finde ich persönlich übersichtlicher.

Es gibt kein allgemein gültiges Rezept. Was wichtig ist: mach dir bevor du anfängst zu Programmieren lange genug Gedanken darüber für was der Baustein gut sein soll und wie die Umsetzung am sinnvollsten ist. WIr haben mitlerweile eine Bibliothek, die uns erlaubt das Grundgerüst eines Programms mehr oder weniger in einer halben Stunde zusammen zu klicken. Spart Zeit, aber man sollte auch nicht vergessen, dass die Entwicklung einer Bibliothek eine Menge Zeit und Aufwand in der Pflege bedeutet.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich habe mir für unsere Anlagen auch Bausteine überlegt. So funktionierts:

1. FB verwenden
2. Bildbausteine verwenden passend zu deinen FB´s Schnittstelle über UDT.
3. Schnittstelle von z.B. Zylinder FB zu HMI, Auto (Schrittkette), Fehler, Betriebsart, Ein- und Ausgänge, Verriegelung, Freigaben
Schnittstelle Auto SK UDT: FahreInAS, FahreInGS, BinInAS, BinInGS
Schnittstelle HMI UDT: Button GS/AS; UDT Button: Gedrückt, Farbe, Bedeinbarkeit
Schnittstelle Fehler UDT: Plausibilität, LaufzeitGS, LaufzeitAS, KeineFreigabe,....
Übergabe als ganzen UDT (rein/Rauskopieren) weniger Fehler & schneller, an Reserve denken speziell zur Visu
4. IEC Timer verwenden
5. UDT´s verwenden.
6. Allen Schnickschnack weglassen
7. Große Maschinen/Anlagenteile in Gruppen unterteilen
8. Vorgabe der FB- FC nummern
9. Symbolisch Programmieren
10. Grundstellungsfahrt
11. Alles zum HMI über Schnittstellen DB
12. Möglichst ein Stil für alles z.B. für InPut Betriebsart immer "iBetriebsart" verwenden (hört sich jetzt logisch an ist aber nicht immer ganz so einfach), ähnlicher Aufbau der Bausteine z.B. für Zylinder und Motoren
13. Lieber etwas mehr Tipparbeit und dafür Lesbare, verständliche Programme
14. Kommentare


Fazit: mit jedem Projekt hast du weniger Fehler und wirst schneller und besser. Es wird einfacher Programme zu ändern und warten wenn eine klare Strukktur vorliegt

Überleg dir einige Tage wie du dein Programm aufbaust. Wenn du die ersten Projekte damit gemacht hast wirst du trotzdem was ändern.
 
Zuletzt bearbeitet:
Mich würden hier auch mal UML, Viso, ... Schaubilder interessieren wie ihr Eure Programme aufbaut! und was für Bausteine Ihr habt.
 
Zuletzt bearbeitet:
Die wichtigsten Empfehlungen aus dem Programmierleitfaden:


  • Optimierte Bausteine verwenden - Kapitel 2.6 Optimierte Bausteine
  • Programm übersichtlich und strukturiert gliedern - Kapitel 3.2 Programmbausteine
  • Anweisungen als Multiinstanz einsetzen (TON, TOF ..) - Kapitel 3.2.5 Multiinstanzen
  • Bausteine wiederverwendbar programmieren - Kapitel 3.2.8 Wiederverwendbarkeit von Bausteinen
  • Symbolisch programmieren - Kapitel 3.6 Symbolische Adressierung
  • Bei Hantierung von Daten mit ARRAY arbeiten – Kapitel 3.6.2 Datentyp ARRAY und indirekte Feldzugriffe
  • PLC-Datentypen erstellen – Kapitel 3.6.3 Datentyp STRUCT und PLC-Datentypen
  • Bibliotheken zur Ablage von Programmelementen nutzen – Kapitel 3.7 Bibliotheken
  • Keine Merker, sondern globale Datenbausteine – Kapitel 4.2 Keine Merker, sondern globale Datenbausteine



Ich würde mich freuen wenn Ihr Beispiele zu diesen Punkten bringen würdet.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Stefan,

ich habe mir auch eine interne Bib. für meine HLK-Projekte angelegt, sehe das aber ganz pragmatisch.
Ist meine eigene Bib, also muss ich sie auch verstehen. Bausteine bekommen für mich verständliche Namen, ebenso die Ein- und Ausgänge, und vor allen in meiner Muttersprache :ROFLMAO:.

Ich habe mich eigentlich noch nie um irgendwelche Programmierleitfaden geschert, wird ja nur durch uns genutzt, und ist auf uns zugeschnitten und man "gewöhnt " sich drann.
Aber wie Hardy schreibt ist und wird eine unendliche Geschichte.

Ich würde die Geschichte auf Eure Belange auslegen , Ihr müsst damit arbeiten und damit zurechtkommen.

Ich habe die meisten Fb´s in CFC, finde das perönlich übersichtlicher, einfacher , seh ich mal direkt wo es klemmt.

Stelle nachher noch Beispiele ein.

mc161
 
Hi,

Bilder eines momentanen Projektes, MSR noch bischen chaotisch , fahre verschiedene Versuche, Verbrauchermarkt mit bedarfsgeführter (CO2) Lüftungsanlage, dezentrale Heizung/Kühlung, Nutzung WRG, Fernüberwachung, Auswertungen, usw.

Eins ist der momentane Stand eines Lufterhitzers, wird noch ein bischen gepimpt. Dann eine Filterüberwachung Zu- und Abluft im Teststadium und der fertige Fb in meiner Lib.

Das entgültige Programm mit den neuen eingeflossenen Fb`s wird am Wochenende fertig und dann in die Steuerung geladen.


Anhang anzeigen Fb_Fueb_Analog.pdfAnhang anzeigen Anfang.pdfAnhang anzeigen Filter_Test.pdf
 
Es gibt kein allgemein gültiges Rezept. Was wichtig ist: mach dir bevor du anfängst zu Programmieren lange genug Gedanken darüber für was der Baustein gut sein soll und wie die Umsetzung am sinnvollsten ist.

Jo. 3 Ausrufezeichen. Auf jeden Fall vor der Programmierung detailliert aufschreiben, was die Bausteine machen sollen. Alle Eingänge/Ausgänge definieren, wie soll die Visu aussehen bzw. die Anbindung erfolgen.

Man kann auch Bibliotheken kaufen. Evtl. ist das auch ne Option.

- Siemens Industrie Library*
- Siemens PTE-Bibliothek
- Siemens PCS7 APL-Bibliothek*
- AGU Smart Library Sm@rtlib*
- Actemium Controlmatic MFL-Bibliothek
- Siemens Beispielbausteine für WinCC und Step7 BST-Bibliothek*

* Die würd ich mir auf jeden Fall vorher mal anschauen und evtl. als Demo mal ausprobieren um sich Anregungen zu holen.

Ach ja, für welche SPS soll das eigentlich sein, in welcher Programmiersprache? Evtl. ist bei Siemens 300/400 auch CFC ne Überlegung wert.

Gruß.

PS: seh grad B&R, also kannst Du die meisten Hinweise zu Siemens schonmal ignorieren... Und ausserdem ist der Thread schon nen halbes Jahr alt... ich bin echt Urlaubsreif...
 
Zuletzt bearbeitet:
Zurück
Oben