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

Ergebnis 1 bis 7 von 7

Thema: PEW; PAW indirekt Adressieren

  1. #1
    Registriert seit
    06.09.2003
    Beiträge
    52
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren

    Hallo Männer von Flanke,
    ich habe da ein kleines Problem und weis nicht wie ich es lösen soll.
    Aber erst mal von Anfang an.
    Ich möchte einen Standartbaustein (FB) schreiben der mir das Leben mit einem FU leichter macht. Der FU liefert drei Zustandswörter und benötigt drei Steuerwörter. Die Adressen könnten also z.B. PEW256; PEW258; PEW260; PAW256; PAW258; PAW260 lauten.
    In der Deklaration vom FB möchte ich aber nur die Basisadresse eingeben also z.B. 256. Den Rest soll sich der FB dann selber zusammenreimen.
    Die ganze Sache muss so möglich sein, ich habe so etwas schon mal bei anderen Bausteinen gesehen. Die Basisadresse wird dabei als INT hinterlegt, wie das dann aber weiter geht weiß ich nicht, der Baustein war geschützt.
    Also, weiß jemand wie es weitergeht?
    Zitieren Zitieren PEW; PAW indirekt Adressieren  

  2. #2
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    ich habe mir da letztens einen standartbaustein für einen mm430 geschrieben
    parametriert auf typ ppo1, also 2 pzd, 4 pkw. es reicht die anfangsadresse zu wissen. die übertragung von/an den fu erfolgt über sfc 14/15. dort gibt man nur die anfangsadresse an und die länge in bytes.

    die von mir geschriebenen standartbausteine für den mm4xx findest du auf meiner hp (sind allerdings auch geschützt).

    was für einen fu hast du?

    einen auszug aus dem baustein kann ich erst morgen posten da ich hier z.Z. kein s7 zur hand habe
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #3
    Registriert seit
    19.06.2003
    Beiträge
    197
    Danke
    10
    Erhielt 17 Danke für 13 Beiträge

    Standard

    Hallo casius
    Die Aufgabe lässt sich gut mit Registerindirekter Adressierung lösen.


    Code:
          L     #Basisadresse               //z.B. INT-Wert 256
          SLD   3
          LAR1                              //Akku1 mit Byteadresse in AR1 laden (P#256.0)
    
          L     PEW [AR1,P#0.0]             //PEW256
          L     PEW [AR1,P#2.0]             //PEW258
          L     PEW [AR1,P#4.0]             //PEW260
    
          T     PAW [AR1,P#0.0]             //PAW256
          T     PAW [AR1,P#2.0]             //PAW258
          T     PAW [AR1,P#4.0]             //PAW260
    Gruss Martin

  4. #4
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    Zitat Zitat von volker
    einen auszug aus dem baustein kann ich erst morgen posten da ich hier z.Z. kein s7 zur hand habe
    Code:
    baustein pzd:
    dekl:
    in:PZD_Addr	INT		PZD Anfangsadresse in Dez
    temp:PZD_Addr_temp	WORD		PZD Anfangsadresse in Hex	
    
          L     #PZD_Addr
          T     #PZD_Addr_temp
    
    //MM4 PZD lesen/schreiben
    //Zustandswort lesen
          CALL  SFC   14
           LADDR  :=#PZD_Addr_temp
           RET_VAL:=#Ret_Val_SFC14
           RECORD :=P#DBX 22.0 BYTE 4
    
    //Steuerwort schreiben
          CALL  SFC   15
           LADDR  :=#PZD_Addr_temp
           RECORD :=P#DBX 8.0 BYTE 4
           RET_VAL:=#Ret_Val_SFC15
    //-------------------------------------------------------
    baustein pkw:
    dekl:
    in: PKW_Addr	INT		PKW Anfangsadresse in Dez
    temp:PKW_Addr_temp	WORD		PKW Anfangsadresse in Hex	
    
    	
          L     #PKW_Addr
          T     #PKW_Addr_temp
    
    
    //MM4 PKW lesen / schreiben
    //lesen
          CALL  SFC   14
           LADDR  :=#PKW_Addr_temp
           RET_VAL:=#Ret_Val_SFC14
           RECORD :=P#DBX 12.0 BYTE 8
    
    
    //schreiben
          CALL  SFC   15
           LADDR  :=#PKW_Addr_temp
           RECORD :=P#DBX 0.0 BYTE 8
           RET_VAL:=#Ret_Val_SFC15
    ich hoffe das hilft dir weiter
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  5. #5
    casius ist offline Benutzer
    Themenstarter
    Registriert seit
    06.09.2003
    Beiträge
    52
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Danke für eure Hilfe, ohne euch währe ich noch lange nicht auf den Trichter gekommen, dass man das Integer einfach nur verschieben muss damit es ein Pointer wird.
    Die Idee mit den SFC’s ist auch nicht schlecht, ich habe mich aber dagegen entschieden damit der Baustein möglichst ohne weitere Bausteine auskommt, trotzdem noch mal danke.

  6. #6
    Registriert seit
    01.02.2008
    Beiträge
    93
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Forum

    ich weiß der Post ist ALT aber das ist mein Problem und wurde hir auch schon gelößt.
    Das problem was ich damit habe ist das ich das so nicht eingeben kann weil ich nicht weiß wie
    step 7 sagt mir
    den teil in rot

    L PEW [AR1,P#0.0] //PEW256
    L PEW [AR1,P#2.0] //PEW258
    L PEW [AR1,P#4.0] //PEW260

    T PAW [AR1,P#0.0] //PAW256
    T PAW [AR1,P#2.0] //PAW258
    T PAW [AR1,P#4.0] //PAW260



    mit der Meldung Sytaxfehler bei Buchstabe ''&'' nach '' ''

    was muss ich da machen.

    möchte einen FU auslesen mit 5.5 und das währe mein Lösungsansatz

    Danke für die Hilfe
    ------------------------------------------------------------------------------------
    Ein Danke schadet niemanden spornt aber an


    Wer Rechtschreibfehler findet soll diese behalten....

  7. #7
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    einen pointer schreibt man so
    l pew [ar1,p#0.0]
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

Ähnliche Themen

  1. SCL indirekt Adressieren
    Von Nafura im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 19.05.2011, 21:42
  2. UDT Indirekt Adressieren
    Von EULANER im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 14.11.2010, 19:30
  3. SFC 20 indirekt adressieren
    Von drmicha im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 19.10.2009, 09:24
  4. Typ Struct Indirekt adressieren
    Von Jordy im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 23.01.2008, 10:11
  5. ANY-Pointer indirekt adressieren
    Von Anonymous im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 14.02.2004, 15:41

Lesezeichen

Berechtigungen

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