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

Page 4 of 4 FirstFirst ... 234
Results 31 to 32 of 32

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

  1. #31
    Join Date
    27.05.2004
    Location
    Thüringen/Berlin
    Posts
    13,805
    Danke
    746
    Erhielt 3,127 Danke für 2,231 Beiträge

    Default


    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 is offline Erfahrener Benutzer
    Themenstarter
    Join Date
    04.07.2007
    Posts
    149
    Danke
    6
    Erhielt 13 Danke für 13 Beiträge

    Default


    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 .

Similar Threads

  1. Step 7 Auslesen des Inhaltes eines UDT-Poiners mit SCL
    By SPS-Totalizer in forum Simatic
    Replies: 11
    Last Post: 30.10.2018, 18:01
  2. TIA Idee für SCL Funktion zum Koieren von UDT-Blöcken gesucht
    By S7_Programmer in forum Simatic
    Replies: 4
    Last Post: 02.03.2017, 10:05
  3. Step 7 SCL Zugriff auf Teil eines UDT
    By dentech in forum Simatic
    Replies: 12
    Last Post: 16.01.2017, 10:55
  4. Replies: 12
    Last Post: 30.10.2013, 23:35
  5. OB1 mit Aufruf einer Funktion in SCL
    By pinolino in forum Simatic
    Replies: 3
    Last Post: 29.04.2009, 17:18

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •