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

Ergebnis 1 bis 7 von 7

Thema: SCL Word in beliebeigen UDT kopieren

  1. #1
    Registriert seit
    23.04.2008
    Beiträge
    44
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Forum,

    ich möchte mir eine kleine Funktion basteln, die ein beliebiges Eingangswort in einen beliebigen UDT-Eintrag (in Wortgrösse) eines DBs kopiert. Und die Spitze wäre - wenn ich den UDT-NAMEN als Parameter mit eingeben könnte um die Sicht des Ausgangs auf den bestimmten UDT-TYP zu begrenzen.
    Geht so etwas???
    Meine Vorstellung...
    Code:
    VAR_INPUT
        UDT_NAME : ????;
        IN_WORD : WORD;
    END_VAR
    VAR_OUTPUT
        OUT_UDT : UDT_NAME;    
    END_VAR   
    OUT_UDT := als ??? (IN_WORD);
    Ich habe keine Ahnung als was ich den Ausgang deklarieren sollte.
    Zitieren Zitieren SCL Word in beliebeigen UDT kopieren  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.786
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Das geht so wie du es vorhast leider nicht.

    Wenn du als IN-Parameter einen UDT hast, dann muß dieser UDT dem SCL-Compiler beim Erstellen des FB (oder FC) bekannt sein. Ein beliebiger UDT als IN geht also nicht. Da der UDT als Pointer auf die Struktur übergeben wird muss natürlich auch dein "OUT-UDT" in Wirklichkeit ein IN-Parameter sein, da du ja die Adresse übergibst, an die geschrieben werden soll.

    Gruß
    LL

  3. #3
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.786
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    Nachsatz :

    Im Ümkehrschluss geht natürlich dann folgendes :
    Der Aufbau deines UDT ist dem FB (oder FC) bekannt. Dann kannst du zunächst mal den Code erstellen. Wenn du den UDT-Inhalt dann in ein WORD kopieren willst (weil der UDT diese Größe hat), dann geht das ganz einfach mit einer AT-Sicht auf dienen UDT ... also
    Code:
    Eingangs_UDT : UDT100 ;
    word_Eingangs_UDT AT Eingangs_UDT : WORD ;
    Die "künstliche" Variable "word_Eingangs_UDT" (wobei der Name hier natürlich beliebig ist) beinhaltet jetzt das, was in der Übergabe seht ...

    Die AT-Sicht ist allerdings nur eine Möglichkeit für Variablen gleicher Breite ...

  4. #4
    Registriert seit
    23.04.2008
    Beiträge
    44
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ...das ist ärgerlich. Schade.

    Die Frage hatte folgenden Grund: Ich möchte meinem Kunden und dessen Service in allen Bausteinen die für ihn relevat sind, einen Code in FUB hinterlassen. Nun muss ich ein (z.B. Status-) Wort in ein OPC-DB kopieren das ein UDT vom Typ WORD enthält. Leider kann der Befehl MOVE das nicht.

    Vielleicht doch noch ne Idee??

    Danke

    d4o

  5. #5
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.786
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard

    ... wenn es dir um das blosse Umkopieren geht ...

    Es gibt manchmal so Dinge, die gehen halt nicht in FUP - in AWL könntest du das ohne Weiteres machen und ich glaube nicht, dass das Ganze dadurch unübersichtlich wird. Ich versuche es "meinen" Leuten auch immer mundgerecht zu bauen, aber manchmal geht es halt nicht ...

  6. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    dinner4one (01.06.2008)

  7. #6
    Registriert seit
    23.04.2008
    Beiträge
    44
    Danke
    11
    Erhielt 0 Danke für 0 Beiträge

    Rotes Gesicht

    Tja, das ist richtig. Aber in diesem Falle hat der Verfahrensmann des Kunden mit einem Pflichtenheft geglänzt das monatelange Arbeit enthält. Somit gehe ich davon aus das Er und auch gewisse andere "wichtige" Personen Wert darauf legen ein Produkt zu erhalten das ihren Vorstellungen entspricht. Daher habe ich mir mit der strikten Trennung des Programmablaufes in FUB für Kunde und x-was für meine eigenen Funktionen, nicht unbedingt einen Gefallen getan.

    Gruß

    d4o

  8. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.786
    Danke
    398
    Erhielt 2.414 Danke für 2.010 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wieviele verschieden belegte UDT's hast du denn ?
    Prinzipiell kannst du das UDT_to_WORD (und umgekehrt) ja wie in meinem Nachsatz beschrieben machen. Der Compiler muß ja nur den Aufbau des UDT kennen ... Wenn es nicht so viele verschiedene sind, dann ist das doch lösbar ...

Ähnliche Themen

  1. Allen Bradley Word in Bool-Array kopieren
    Von mazoellner im Forum Sonstige Steuerungen
    Antworten: 14
    Letzter Beitrag: 11.07.2011, 09:50
  2. Word to Real
    Von Gosi01 im Forum Programmierstrategien
    Antworten: 8
    Letzter Beitrag: 23.05.2011, 13:47
  3. Antworten: 5
    Letzter Beitrag: 30.06.2010, 14:23
  4. Word auflösen
    Von holgermaik im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 25.02.2010, 10:10
  5. Bit im Word abfragen
    Von johnij im Forum HMI
    Antworten: 15
    Letzter Beitrag: 09.06.2008, 13:33

Lesezeichen

Berechtigungen

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