Funktion in PLC_PRG einfügen macht mir Probleme

Anonymous
2006-01-12
2006-01-12
  • Anonymous - 2006-01-12

    Originally created by: Gast

    Hallo!

    Zum Einstieg in CoDeSys habe ich mir relativ schwere Literatur besorgt.

    "Automatisiern mit SPS" von Wellenreuther/Zastrow

    Schon bei den ersten Programm gab es ein bis jetzt unlösbares Problem!

    Ich möchte wie in dem Buch vorgegeben eine Funktion erstellen.

    Diese Funktion hat 4 Eingangsvariablen (S1 bis S4)

    Als Ausgangsvariablen sollen P1, P2 und H1 fungieren.

    Der Buchautor erstellt die Funktion mit Fup und das PLC mit CFC.

    Ich möchte gerne alles mit Fup lösen, da mit CFC nicht geläufig ist.

    Mein Problem ist folgendes:

    Die Funktion ist programmiert und kann auch im PLC aufgerufen werden.

    Es werden aber lediglich die 4 Eingänge gezeigt, nicht aber die gewünschten Ausgänge.

    Ich habe jetzt einige Zeit mit Datentypen und Strukturen rumprobiert, aber ich komme auf keine funktionieren Lösung.

    (Aufgabe 2.2 Siloentleehrung, Seite 12, die CoDeSys-Lösungen sind downloadbar)

    Ich hoffe auf Hilfe,

    Gruß Cody!

     
  • Anonymous - 2006-01-12

    Originally created by: joohrte

    Handelt es sich um eine Funktion die du Programmieren willst ?

    Bei einer Funktion gibt es nur einen Rückgabewert !

    Es müsste allerdings beim übersetzen eine Fehlermeldung kommen.

    Als Funktionsblock sollte die Aufgabe lösbar sein.

    Wenn Probleme vieleicht Projekt anhängen !

     
  • Cody - 2006-01-12

    joohrte hat geschrieben:
    Handelt es sich um eine Funktion die du Programmieren willst ?
    Bei einer Funktion gibt es nur einen Rückgabewert !
    Es müsste allerdings beim übersetzen eine Fehlermeldung kommen.
    Als Funktionsblock sollte die Aufgabe lösbar sein.
    Wenn Probleme vieleicht Projekt anhängen !

    Dank erstmal für die Antwort.

    Nun muss ich da aber nochmals nachhacken.

    Ist denn nicht der Unterschied zwischen Funktion und Funktionsblock der, das eine Funktion keine Daten speichern kann, sprich keine eigene Speicherbereich hat und damit intern keine Daten vorhalten kann, während ein Funktionsblock einen eigenen Speicherbereich zu Verfügung hat, um Daten zu speichern.

    Die Aufgabe, die ich lösen möchte, muss nun keine eigene Daten in der Funktion speichern, deshalb erscheint mir die Lösung irgendwie unverständlich.

    Es sei denn, CoDeSys hat diesbezüglich eine andere Einteilung/Zuordnung.

    Ich hänge mal mein Programm (2_2.pro) an, wobei es zwar mittlerweile Fehlerlos, aber nicht funktionstüchtig ist. Ich hänge zusätzlich mal die Musterlösung (2_2_2.pro)des Autors mit an.

    Gruß Cody

    CoSy_2_2.rar [7.26 KiB]

     
  • Anonymous - 2006-01-12

    Originally created by: joohrte

    Grundsätzlich hast Du Recht mit der Einschränkung das nur ein Wert zurückgeben wird.

    Dieses kann wie in dein Beispiel auch eine Struktur mit mehreren Variablen sein.

    Was aber nicht so Übersichtlich aussieht.

    Vergleicht man einen FC von Siemens kommt ein Programm dieses am nächsten.

    Bei einem Programm kannst Du Eingangs-Ausgangsvariablen anlegen und benötigst keine Instanz.

    Ich hab ein Programm als Beispiel angehängt wie ich dieses lösen würde.

    joohrte.rar [2.25 KiB]

     
  • Anonymous - 2006-01-12

    Originally created by: Gast

    joohrte hat geschrieben:
    Grundsätzlich hast Du Recht mit der Einschränkung das nur ein Wert zurückgeben wird.
    Dieses kann wie in dein Beispiel auch eine Struktur mit mehreren Variablen sein.
    Was aber nicht so Übersichtlich aussieht.
    Vergleicht man einen FC von Siemens kommt ein Programm dieses am nächsten.
    Bei einem Programm kannst Du Eingangs-Ausgangsvariablen anlegen und benötigst keine Instanz.
    Ich hab ein Programm als Beispiel angehängt wie ich dieses lösen würde.

    Danke dir!

    Das ist eine Lösung, die ich Praktikabel finde, auch weil Sie verständlicher ist, als die andere Version mit Funktionen bzw. Funktionsblöcken!

    Gruß Cody

     

Log in to post a comment.