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

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

Thema: ANY Variable am SFC20

  1. #1
    Registriert seit
    20.05.2008
    Ort
    Attendorn
    Beiträge
    40
    Danke
    1
    Erhielt 7 Danke für 4 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Ihr guten Programmierer,

    Ich möchte ein TP177B als Diagnose Tool für die Stösselspanner Programmieren.
    Da wir mehrere Pressen haben, möchte ich mir ein FB anlegen und von Presse zu Presse verknüpfen.
    Der dazugehörige DB wird vom TP beeinflusst (Ventil zurücksetzten bzw. setzten) zwecks verdrehter Spanner.

    Nun bekomme ich die ANY Variable nicht an dem SFC20 ohne ein Fehler zu haben.

    Ich möchte eine ANY Variable benutzen um nicht 10 Ventile, 30 Signale von den Spanner und 10 Fehler Merker an FB zu haben.

    Code:
    OB1
    CALL FB200, DB200
         Freigabe : E0.0
         Stösselspanner_Ventiele : P#DB84.DBX258.4 BOOL 10
    Code:
    FB200
    INPUT : Freigabe : BOOL
    INOUT : Stösselspanner_Ventiele : ANY
    STAT : V_Spanner_01 : BOOL
    …..
    STAT : V_Spanner_10: BOOL
    TEMP : RET_SFC20_1 : INT
    TEMP : RET_SFC20_2 : INT
     
    U #Freigabe
    SPBN M01
    CALL SFC20
         SRCBLK := #Stösselspanner_Ventile  
         RET_VAL := #RET_SFC20_1
         DSTBLK := P#L 12.0 BOOL 10  //Local_Daten vom DB STAT Block
     
    …..  // TP177B
     
    CALL SFC20
         SRCBLK := P#L 12.0 BOOL 10  //Local_Daten vom DB STAT Block
         RET_VAL := #RET_SFC20_1
         DSTBLK := #Stösselspanner_Ventile
     
    M01 : BE
    Was hab ich Falsch gemacht, bin Instandhalter mit SPS Kenntnisse.

    MfG
    Thomas
    Zitieren Zitieren ANY Variable am SFC20  

  2. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Einen Any welche an einem IN Parameter anliegt kannst du nicht direkt an einen FC weitergeben, du musst dir einen Temporären ANY in den Lokaldaten anlegen:

    ANY_LOK in Lokaldaten ab L0.0

    Code:
    L    P##Stösselspanner_Ventile  
    L    D [AR1,P#0.0]
    T    LD0
    L    D [AR1,P#4.0]
    T    LD4
    L    D [AR1,P#8.0]
    T    LW8
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten
    Zitieren Zitieren Jo..  

  3. #3
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    natürlich hat auch der jochen recht, aber ventile != ventiele ...mag an der stelle dann auch noch vermerkt sein
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  4. #4
    Registriert seit
    20.05.2008
    Ort
    Attendorn
    Beiträge
    40
    Danke
    1
    Erhielt 7 Danke für 4 Beiträge

    Standard

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Einen Any welche an einem IN Parameter anliegt kannst du nicht direkt an einen FC weitergeben, du musst dir einen Temporären ANY in den Lokaldaten anlegen:

    ANY_LOK in Lokaldaten ab L0.0

    Code:
    L    P##Stösselspanner_Ventile  
    L    D [AR1,P#0.0]
    T    LD0
    L    D [AR1,P#4.0]
    T    LD4
    L    D [AR1,P#8.0]
    T    LW8
    SRY SRY , Ventile , hab schon geändert.

    So. habe eine TEMP Variable vom Typ ANY angelegt ab L0.0
    Sobalt die Zeile L D[AR1,P#0.0] abgearbeitet wird, geht die CPU auf STOP

    MfG
    Thomas
    Angehängte Grafiken Angehängte Grafiken
    Geändert von bit_schubser (30.11.2010 um 01:16 Uhr)

  5. #5
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Zitat Zitat von Jochen Kühner Beitrag anzeigen
    Code:
    L    P##Stösselspanner_Ventile  
    L    D [AR1,P#0.0]
    T    LD0
    L    D [AR1,P#4.0]
    T    LD4
    L    D [AR1,P#8.0]
    T    LW8
    Da fehlt noch ein LAR1:

    Code:
    L    P##Stösselspanner_Ventile 
    LAR1 
    L    D [AR1,P#0.0]
    T    LD0
    L    D [AR1,P#4.0]
    T    LD4
    L    D [AR1,P#8.0]
    T    LW8
    Gruß Kai

  6. #6
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Alternativ kannst Du auch beim Kopieren des ANY-Zeigers aus dem IN-Bereich in den TEMP-Bereich des FB zusätzlich zum Adressregister
    AR1 mit dem Adressregister AR2 arbeiten. Du brauchst dann nicht mehr direkt mit den Lokaldaten arbeiten.

    Siehe dazu das folgende Programmbeispiel:

    http://www.sps-forum.de/showpost.php...37&postcount=5

    http://www.sps-forum.de/showpost.php...38&postcount=6

    Gruß Kai

  7. #7
    Registriert seit
    30.03.2005
    Beiträge
    2.096
    Danke
    0
    Erhielt 673 Danke für 541 Beiträge

    Standard

    Nachtrag:

    1. Multiinstanzfähige FBs

    STEP 7 verwendet bei multiinstanzfähigen FBs das Adressregister AR2 als Basisadressregister für die Instanzdaten.

    Wenn man in einem multiinstanzfähigen FB das Adressregister AR2 verwenden will, muss man den Inhalt vorher retten und nach der
    Verwendung wiederherstellen.

    In dem Bereich, in dem man mit dem Adressregister AR2 arbeitet, darf man keinen Zugriff auf Bausteinparameter oder statische
    Lokaldaten pogrammieren.

    2. Nicht multiinstanzfähige FBs

    STEP 7 verwendet bei nicht multiinstanzfähigen FB das Adressregister AR2 nicht.

    Bei einem nicht multiinstanzfähigen FB muss in den Eigenschaften des FB der Haken bei Multiinstanzfähigkeit entfernt werden.

    In meinem obigen Programmbeispiel habe ich einen nicht multiinstanzfähigen FB verwendet.

    Gruß Kai
    Angehängte Grafiken Angehängte Grafiken

  8. #8
    Registriert seit
    27.08.2003
    Ort
    Schweitenkirchen
    Beiträge
    472
    Danke
    101
    Erhielt 73 Danke für 59 Beiträge

    Standard

    Ist das AR2 retten ein muss, oder gehörts eher zum guten Stil?

    Bin mir grad nicht sicher, aber bei uns laufen meines Wissens einige viele Bausteine als MI und würd mich nicht erinnern darin derartiges gefunden zu haben.

    Bin aber erst wieder in 2 Wochen in der Arbeit, kann leider jetz nicht nachsehen.
    Wenn ich einen meiner Finger in eines deiner Nasenlöcher stecke, haben wir beide nen Finger in der Nase

  9. #9
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    das hat Kai doch wirklich sehr schön geschrieben ...
    Zitat Zitat von Kai Beitrag anzeigen
    Wenn man in einem multiinstanzfähigen FB das Adressregister AR2 verwenden will, muss man den Inhalt vorher retten und nach der
    Verwendung wiederherstellen.
    Begründung :
    Es könnte ja immerhin sein, dass der Aufrufer (des Multi-FB's) "sein AR2" gerne Zwecks weiterer Verwendung wieder zurück hätte ...

    Gruß
    Larry

  10. #10
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Kai Beitrag anzeigen
    Da fehlt noch ein LAR1:
    Uuuups... Wohl vergessen...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

Ähnliche Themen

  1. Problem mit sfc20
    Von gustave im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 13.09.2010, 21:02
  2. Kopierfunktion SFC20
    Von Sesssko im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 13.09.2010, 10:07
  3. Sfc20
    Von stricky im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 22.01.2010, 20:59
  4. Probleme mit SFC20
    Von Mangokind im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 20.03.2009, 19:50
  5. Sfc20
    Von bresner1 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 15.07.2008, 12:06

Lesezeichen

Berechtigungen

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