Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

"Universeller" Eingang für eine Funktion

kvoestel
2008-07-01
2008-07-01
  • kvoestel - 2008-07-01

    Hallo,

    ich suche nach einer Möglichkeit mit CodeSys 2.x einen „universellen“ Eingang zu programmieren.

    Was meine ich damit – z.B. eine Funktion mit einem Eingang, der je nach Programm mal int, mal real … sein kann. In der Funktion will ich dann unterschiedlichen Programmcode durchlaufen. (Warum? Klar ich könnte 10 Funktionen schreiben – aber so wäre es einfacher für mein eigentliches Problem.)

    Bei S7 würde ich einfach einen Pointer übergeben und diesen dann auf den Typ auswerten. So wie ich die Pointer bei CodeSys verstehe, geht das jedoch nicht. (Die Möglichkeit einen Pointer und zusätzlich einen Variablentyp zu übergeben habe ich mir schon überlegt, ein Automatismus wäre mir jedoch lieber.)

    Vielen Dank schon mal.

    Grüße

    Karl

     
  • J Schohaus - 2008-07-01

    Hallo

    So wie beschrieben gibt es dieses nicht.

    Wenn es nur um ein Eingang handelt ist es am besten Real zu verwenden.

    Wird an dem Eingang ein Variable Type INT,WORD,.. beschaltet so wird dieser wert von Codesys nach Real gewandelt.

    Hilft allerding nicht bei IN_OUT oder OUTPUT Variablen.

    Bei Codesys V3 wird alles besser !?

     
  • Anonymous - 2008-07-01

    Originally created by: Bernhard Werner

    Äh nein,

    im Moment ist das in Version 3 dasselbe. Ich verstehe schon das Problem, wenn man sowas wie ADD programmieren will dann bräuchte man sowas wie den Datentyp ANY_NUM.

    Wir haben uns schon ziemlich genau überlegt wie wir es machen wollen und sobald mal wieder ein bisschen Zeit bleibt wird das in Angriff genommen.

    Mit anderen Worten: das kann noch ein bisschen dauern.

    Bis dahin muss man mit Pointer und der Typklasse hantieren. Man kann einen Pointer auf jeden anderen Pointer zuweisen (unabhängig vom Basistyp). Damit bekommt man es eigentlich schon hin.

    Bernhard Werner

     

Log in to post a comment.