Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 4 von 4 ErsteErste ... 234
Ergebnis 31 bis 32 von 32

Thema: Wertübergabe eines UDT an einer Funktion in SCL

  1. #31
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.222
    Danke
    533
    Erhielt 2.697 Danke für 1.949 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Ich hatte das auch mal probiert, also einen Inputparameter für unterschiedliche Variablen nutzen. Leider geht das, wenn überhaupt nur mit Any, denn der Parametertyp kann nicht zur Laufzeit Bool, Int oder Real sein. Ich hatte gemeint irgendwann genau das aber mal bei einem Siemens-Baustein gesehen zu haben, fand diesen aber nicht mehr, der war wohl auch nicht in AWL oder SCL programmiert worden! Hab das dann so gelöst, daß ich dem Baustein 3 Eingänge verpaßt habe und ihm dann mit einem 4. Eingang mitgeteilt habe, welchen er nutzen soll. War auch nicht so doll, denn mit einem Output hat man dann evtl. wieder das selbe Problem.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  2. #32
    Hotsch ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.07.2007
    Beiträge
    147
    Danke
    6
    Erhielt 13 Danke für 13 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Nochmal als Erklärung was ich überhaupt bezweckt habe.
    Ich wollte mir ein einfaches Array-Handling basteln. Im Moment sieht das Programm so aus das ich fünf unterschiedliche IF Anweisungen hab und je nach dem Zustand der Variablen in meinem UDT wird die Entsprechende IF Anweisung aufgerufen und Daten werden innerhalb eines Arrays kopiert. Da ich dies mit mehren Arrays machen, werden die IF Anweisungen recht lang und blöd zu handeln. Nun war meine Idee, dass ich eine Funktion für jedes Array aufrufe. Dieser Funktion wird das UDT, sowie der allererste Array wert übergeben (z.B. MyArray[1]), außerdem noch weitere int Variablen die dann festlegen was kopiert werden soll (z.B. Index1 :=3, Index2:=6, daraus folgt dann MyArray[6]:=MyArray[3]). Mein Haupthindernis im Moment ist das ich den Inhalt auf dem der Anypointer zeigt, nicht vergleichen kann. Außerdem müsste ich dann noch die Adresse des Arrays je nach Index anpassen und dem Anypointer übergeben. Da der Umgang mit Pointern in Step7 meiner Meinung nach sehr zu wünschen übrig lässt, werden ich das Vorhaben wohl aufgeben. Da selbst wenn ich die Funktion irgendwie hin bekomme, sie wahrscheinlich so umfangreich und langsam ist das es nicht wirklich einen Vorteil bringt. Aber zumindest habe ich was daraus gelernt .

Ähnliche Themen

  1. Funktion eines Impulsformers
    Von BennyK im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 25.03.2013, 22:15
  2. Pointer als Rückgabewert einer Funktion
    Von kai86 im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 12.04.2010, 12:07
  3. OB1 mit Aufruf einer Funktion in SCL
    Von pinolino im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 29.04.2009, 17:18
  4. Länge eines String mit der LEN-Funktion auslesen
    Von baggerandy im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 10.04.2009, 16:13
  5. Alle gesetzten Merker einer Funktion zurücksetzen
    Von dominik_Thesis im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 25.11.2008, 13:07

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •