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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Eingangsbereich in FB einlesen

  1. #1
    Registriert seit
    04.05.2009
    Beiträge
    55
    Danke
    11
    Erhielt 5 Danke für 5 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo an alle USER im Forum,

    ich möchte einen Eingangsbereich von 5 Byte komplett in einem Zug in einen FB einlesen.
    Die Aufsplittung möchte ich dann im FB machen wollen.

    Hintergrund ist die Vermeidung von einer "großen" Anzahl von "Eingangsbeinchen" am FB.
    Hat jemend von Euch evtl. eine Idee dazu (Code)?

    Vielen Dank im Voraus für die Hilfe.

    pretender2009
    Zitieren Zitieren Eingangsbereich in FB einlesen  

  2. #2
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    direkt geht das nicht.
    entweder anyzeiger übergeben oder die startadresse übergeben.

    z.b.
    Code:
    l #start
    sld 3
    lar1
    l eb[ar1,#p0.0]
    t mb 0
    l eb[ar1,#p1.0]
    t mb 1
    usw
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    pretender2009 (27.05.2011)

  4. #3
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard

    Hilft dir vielleicht UDT weiter?
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

  5. Folgender Benutzer sagt Danke zu Nordischerjung für den nützlichen Beitrag:

    pretender2009 (28.05.2011)

  6. #4
    Registriert seit
    03.03.2009
    Beiträge
    17
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Anbei ein weiterer lösungsvorschlag.

    SFC20 zum Kopieren vom Eingangsbereich in einen UDT eines InstanzDB.

    Der udt muss die gleiche länge des Eingangsbereich haben !!

    Anschließend kann man sehr bequem auf die Daten zugreifen.

    Hoffe es Hilft !?
    Angehängte Grafiken Angehängte Grafiken
    Siemens,Wago,Beckhoff,Turck,Codesys,SQL,C,VB,VBA,
    Zitieren Zitieren Oder SO  

  7. Folgender Benutzer sagt Danke zu PLEL für den nützlichen Beitrag:

    pretender2009 (28.05.2011)

  8. #5
    Registriert seit
    04.05.2009
    Beiträge
    55
    Danke
    11
    Erhielt 5 Danke für 5 Beiträge

    Standard

    Hallo,

    der Lösungsvorschlag mit dem UDT und SFC20 interessiert mich.
    Was muss darin geädert werden, wenn ich PEW einlesen will?

    pretender2009
    Geändert von pretender2009 (27.05.2011 um 14:05 Uhr)

  9. #6
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    wenn du es mit der sfc20 machen willst brauchst du einen anyzeiger.
    da du das variabel gestallten willst musst du dir den selbst zusammenstellen

    wie das geht steht hier
    http://www.sps-forum.de/showthread.php?t=12923
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  10. #7
    Registriert seit
    03.03.2009
    Beiträge
    17
    Danke
    0
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Leider kann man den SFC 20 nicht für PEW´s nutzen.

    http://support.automation.siemens.co...ard&viewreg=WW
    Siemens,Wago,Beckhoff,Turck,Codesys,SQL,C,VB,VBA,
    Zitieren Zitieren sorry  

  11. #8
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.862
    Danke
    78
    Erhielt 805 Danke für 548 Beiträge

    Standard

    stimmt. auf das pew hatte ich nicht geachtet.

    hatte mir da mal selbst was für geschrieben
    Angehängte Dateien Angehängte Dateien
    Geändert von volker (10.06.2011 um 09:21 Uhr)
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation
    Zitieren Zitieren dp_read.AWL.txt  

  12. Folgender Benutzer sagt Danke zu volker für den nützlichen Beitrag:

    ThomasMaulwurf (21.07.2015)

  13. #9
    Registriert seit
    25.02.2015
    Beiträge
    38
    Danke
    6
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Falls irgendwann wer Interesse dran haben sollte - ich habe deinen wunderbaren FC noch mit einem eigenen Wunsch / einer Lösung von Harald ( SFC14 - LADDR mit PEW beschalten ) modifiziert.

    Für PEB-Adresse:

    Code:
          L     P##PEB_Adr                  //Adresse des FC-IN-Parameters IN_PEW (Typ POINTER)
          LAR1  
          L     D [AR1,P#2.0]               //Speicherbereich + Adresse aus dem POINTER
          LAR1                                   //AKKU1-L in Word-Variable
    ... Damit kann man bei der PEB Adresse direkt "PEBxyz" oder auch "PEWxyz" verschalten und bekommt's damit in die Querverweise.

    (Hoffe damit hab ich - Anfänger - nix kaputtgespielt. Auf den ersten Blick läuft's jut)

  14. #10
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.636
    Danke
    786
    Erhielt 654 Danke für 497 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Man könnte das auch so machen.
    Code:
    FUNCTION PERIN : VOID
    
    
    TITLE = 'Kopiere Peripherie in DB'
    //
    // Der Baustein nimmt die Erste Adresse eines PERIPHERIEWORTES und kopiert dieses und alle folgenden
    // der Reihe nach auf den Zielbereich der an RECORD angehängt ist. Die Menge wird vom Pointer an RECORD festgelegt
    // Die Hardwareadressen müssen alle aneinanderliegen.
    VERSION : '1.0'
    AUTHOR  : VoR
    NAME    : name
    FAMILY  : family
    
    
    VAR_INPUT
      PER_IN : INT; // erste Pripherieadresse länge wird durch Anypointer an RECORD bestimmt
    END_VAR
    
    
    VAR_IN_OUT
      RECORD : ANY;
    END_VAR
    
    
    VAR_TEMP
    laufvariable : INT;
      zwischenany : ANY;
        Recording AT zwischenany : STRUCT
            SyntaxID : BYTE;
            Datentyp : BYTE;
            Laenge : INT;
            db_Nummer : WORD;
            BytePointer : DWORD;
            END_STRUCT;
    END_VAR
        
        zwischenany := RECORD;
        
        FOR laufvariable := 0 TO (Recording.Laenge - 1) BY 1 DO
          WORD_TO_BLOCK_DB(Recording.db_Nummer).DB[(DWORD_TO_INT(SHR(IN := SHL(IN := Recording.BytePointer, N := 8), N := 11)) + laufvariable)]
           := EB[(PER_IN + laufvariable)];
        END_FOR;
    
    
    END_FUNCTION
    Am Any kann man z.B. einen UDT anlegen der die Länge vorgibt. Das ganze Konstrukt kann natürlich auch Teil eines FBs sein. Ich würde es aber als einzelne Funktion belassen und im gewünschten FB/FC aufrufen. Das funktioniert halt für den Peripheriebereich. Dafür muss halt eine Schlaufe abgearbeitet werden was vermutlich mehr Zeit kostet als es mit einem SFC20 würde.

    Ich hab den aber nicht gemacht das ich den Eingangsbereich in der Referenz habe. Ich wollte speziell darauf verzichten dass ich z.B. einem Eingangswort ein Symbol geben muss. Im Anbetracht von TIA z.B.
    Das heisst es wird nur die erste Byteadresse in Integer angegeben.

    mfG René
    Geändert von vollmi (21.07.2015 um 13:32 Uhr)

Ähnliche Themen

  1. XML Einlesen
    Von Bensen83 im Forum HMI
    Antworten: 2
    Letzter Beitrag: 09.08.2011, 22:17
  2. PEW und DBW im FB einlesen
    Von Prickelpit im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 28.10.2010, 22:07
  3. 4-20mA einlesen
    Von faktorX@list.ru im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 21.05.2007, 23:06
  4. S5t# einlesen
    Von Dustin im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 12.10.2006, 22:24
  5. Analowerte einlesen
    Von Regeldas im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 05.10.2006, 22:02

Lesezeichen

Berechtigungen

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