easy-forum

Deutsch - Hardware => easyControl => Thema gestartet von: KressSwiss am November 07, 2006, 11:30:44 Vormittag

Titel: CoDeSys Bausteine
Beitrag von: KressSwiss am November 07, 2006, 11:30:44 Vormittag
Hallo Forum Freunde
Kürzlich habe ich ein Programm (Pumpensteuerung) für eine EC4P in CFC geschrieben. Dazu hätte ich einen simplen Stromstossschalter-Baustein benötigt, der beim Abschalten der Ansteuerung jeweils den Ausgang negiert. Diesen Baustein habe ich nirgends gefunden. So habe ich ihn mir selber gebaut und zwar mittels eines Zählers, der mit einem Ausschaltwischer aufwärts zählt und sich beim Sollwert von 2 selber rücksetzt.
Meine Frage: Gibt es diesen simplen Baustein nicht? Kennt jemand eine einfachere Lösung?
Bei der Easy geht das mit einem Ausschaltwischer kombiniert mit Stromstoss-Schalter.
Titel: Re: CoDeSys Bausteine
Beitrag von: DieterB am November 07, 2006, 13:43:30 Nachmittag
Hallo KressSwiss,
den Baustein gibt's so nicht. Aber es gibt eine einfachere Lösung. Sieh Dir mal das Beispiel an.
Titel: Re: CoDeSys Bausteine
Beitrag von: KressSwiss am November 07, 2006, 16:23:49 Nachmittag
Hallo DieterB
Wenn ich das richtig verstehe, hasst Du den Baustein "Eltako" seber kreiert. Das heisst, man baut sich den Baustein und kann diesen imer wieder verwenden. Richtig?
Gruss Hermann
Titel: Re: CoDeSys Bausteine
Beitrag von: DieterB am November 07, 2006, 16:28:21 Nachmittag
Hallo Herrmann,

richtig. Das ist ja das Schöne an dieser Art der Programmierung. Man kann in einer beliebigen IEC-Sprache Bausteine schreiben, und die immer wieder verwenden.

Viele Grüße
Dieter
Titel: Re: CoDeSys Bausteine
Beitrag von: KressSwiss am November 09, 2006, 20:06:55 Nachmittag
Hallo Dieter
Hab's probiert und kapiert :D  :D  :D
Zuerst habe ich eine OR-Verknüpfung in CFC als Hauptprogramm erstellt und anschliessend Unterprogramme in KOP, FUP, AWL und ST integriert. Das heisst, ein Easy-Anwender kann wie gewont in KOP programieren. Eine aufwendige Arithmetikverarbeitung beispielswerise kann separat als Unterprogramm in ST gelöst und integriert werden.

Links: Hauptprogramm in CFC mit integrierten UP's BAU1 bis BAU4
Rechts: 4 Unterprogramme (BAU1 - BAU4) in FUP, KOP, ST, AWL (Dargestellt in der Offline Simulation)

Ich sehe es kommen, mit EC4P und CoDeSys wird mancher Easy-Anwender zum Profi-Programmierer.
Gruss Hermann
Titel: Re: CoDeSys Bausteine
Beitrag von: DieterB am November 10, 2006, 08:24:22 Vormittag
Hallo Hermann,
super, wenn man jetzt noch den Unterschied zwischen den Bausteintypen  "Programm", "Funktionsblock" und "Funktion" verstanden hat, hat man schon einen großen Schritt getan.
Viele Grüße
Dieter
Titel: Re: CoDeSys Bausteine
Beitrag von: KressSwiss am November 10, 2006, 10:09:11 Vormittag
Zitat
wenn man jetzt noch den Unterschied zwischen den Bausteintypen  "Programm", "Funktionsblock" und "Funktion" verstanden hat, hat man schon einen großen Schritt getan
Hallo Dieter
Der Funktionsblock ist mir klar. Dies können zum Beispiel die Bausteine aus der Easy800.d.lib sein. (Anhang). Was Funktionen sind, bin ich mir nicht ganz so sicher.  ???  ???  ???

Gruss
Hermann
Titel: Re: CoDeSys Bausteine
Beitrag von: Knodelpa am November 10, 2006, 17:51:49 Nachmittag
Hallo Hermann,

ich versuche mal die Unterschiede zwischen Funktion und Funktionsblock zu erklären:

Funktion
Eine Funktion hat:
- in der Regel mehrere Eingänge
- nur einen Ausgang
- braucht intern keine Daten (daher erzeugt eine Funktion keine Variable (Instanz)

Beispiele: AND, OR, ADD, SUB, MUL, DIV, SHR, SHL.....

Funktionsblock (Funktionsbaustein)
Ein Funktionsblock hat:
- in der Regel mehrere Eingänge
- kann im Gegensatz zu der Funktion auch mehrere Ausgänge haben
- hat in der Regel Daten
  (Timer: abgelaufene Zeit, Zähler: aktueller Zählerstand, ...)
- daher braucht der Funktionsblock eine Variable (Instanz=Exemplar)

Beispiele: Timer, Zähler, Flankenauswertung, LS,....

Ich hoffe dies bringt etwas Licht ins Dunkel.

 :) ;) :D
Gruß Paul
 



Titel: Re: CoDeSys Bausteine
Beitrag von: KressSwiss am November 11, 2006, 10:39:17 Vormittag
Hallo Paul
Somit heisst das:
Funktionsblöcke kann ich selber erstellen, während Funktionen in der Software zur Verfügung gestellt werden. Das heisst, das Schtittschaltwerk ELTAKO von Dieter (weiter unten in Thema) ist ein Funktionsblock. Richtig?

Wenn ich mir in einem Programm Funktionsblöcke erstellt habe und diese in weiteren Programmen verwenden will, kann ich dann diese in einer eigenen xxx.lib ablegen? Das wäre doch sinvoll. Geht das?
Gruss Hermann
   
Titel: Re: CoDeSys Bausteine
Beitrag von: Knodelpa am November 11, 2006, 15:49:22 Nachmittag
Hallo Hermann,

du kannst Dir sowohl eigene Funktionen, als auch Funktionsblöcke selbst erstellen und diese dann bei Bedarf in einer eigenen LIB speichern.

Beim Eltako handelt es sich um einen Funktionsblock. Du erkennst es an den folgenden Merkmalen:
- der Funktionsblock hat Daten (muss sich den aktuellen Zustand des Ausgangs merken)
- in der Variablenliste existiert eine Instanz des Bausteins = fb_Stromstoss_Schalter
- der Baustein hat einen Namen (Name der Instanz = fb_Stromstoss_Schalter)

 :) ;) :D
Gruß Paul
Titel: Re: CoDeSys Bausteine
Beitrag von: KressSwiss am November 12, 2006, 12:09:16 Nachmittag
Hallo Paul
Hallo Dieter
Ich habe versucht, eine eigene FUNKTION zu kreieren. Sie besteht aus einer verschalteten OR und XOR. Nun habe ich das Problem dass bei den Eingängen und dem Ausgang eine "Variable" verlangt wird. Ich möchte aber, dass ich diese nach dem einfügen des Bausteines bestimmen kann. Wie mach ich das?
Gruss Hermann
 
Titel: Re: CoDeSys Bausteine
Beitrag von: DieterB am November 12, 2006, 12:48:17 Nachmittag
Hallo Herrmann,

ich habe mal ein kleines Beispielprojekt erstellt, in dem die wichtigsten Programmelemente PROGRAMM, FUNKTION und FUNKTIONSBAUSTEIN anhand einer simplen Applikation demonstriert werden. Zusätzlich wird da mit einer selbst erstellten Lib gearbeitet, die den bereits bekannten Eltako beinhaltet. Die Lib kann man mit easySoft-CoDeSys öffnen (Dateityp *.lib) und verändern / erweitern ... Das Programm und die Lib sind in dem angehängten Zipfile enthalten. Zum Übersetzen muss die Demo.lib im Bibliotheksmanager mit eingebunden werden. Das Projekt ist in ST erstellt, da das meine bevorzugte Programmiersprache ist.
Viele Grüße
Dieter
 
Titel: Re: CoDeSys Bausteine
Beitrag von: KressSwiss am November 12, 2006, 19:18:41 Nachmittag
Hallo Dieter
Danke für die Arbeit, die Du da geleistet has. Ich hab die Datei geholt und werde mich damit ernsthaft befassen.
Ich muss schon sagen, je mehr man weiss, umsomehr ist wieder unklar. Ich bin schon froh, dass ich die verschiedenen Programiersprachen anwenden kann. Ausser AS mit habe ich schon mit allen  Weiteren experimentiert.
Wie Du sagst, ST ist sicher die viesleitigste und somit zukunftweisende Sprache. Um nur die wichtigsten Ressourcen zu nutze braucht es aber einiges.
Es wäre zu wünschen, dass die Rubrik "Easy Control" im Forum lebendiger wird, um aus der "Erfahrung Anderer" zu lernen.
Gruss Hemann
Titel: Re: CoDeSys Bausteine
Beitrag von: DieterB am November 13, 2006, 07:32:46 Vormittag
Hallo Herrmann,

man lernt halt immer noch was dazu. Aber wenn beim Durcharbeiten weitere Fragen auftauchen stell sie einfach. Wie heißt es hier im Forum immer ? "Es gibt keine dummen Fragen !"
Viele Grüße
Dieter
Titel: Re: CoDeSys Bausteine
Beitrag von: DieterB am November 13, 2006, 09:55:42 Vormittag
Hallo Herrmann,

leider ist mir gestern beim Erzeugen der Demo.lib ein Fehler passiert. Die Lib läuft nur in der Simulation, aber nicht auf der realen EC4P.
Hier ist nochmal eine korrigierte Version.
Viele Grüße
Dieter
Titel: Re: CoDeSys Bausteine
Beitrag von: KressSwiss am November 15, 2006, 20:54:10 Nachmittag
Hallo Dieter
Danke, habs heruntergeladen. In der Zwischenzeit ist es mir nach hartnäckigem Üben gelungen, eine Verknüpfung in einen Funktionsbaustein (mit variablen Eingängen) zu integrieren. Na endlich wieder einmal ein Erfolgserlebnis.  :D ;D :D Tolle Sache, wenn man sich selber Funktionsblöcke bauen kann.
Gruss Hermann

links Verknüpfung, rechts Funktionsbaustein