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

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

Thema: Probleme mit SFC15

  1. #1
    Registriert seit
    01.09.2008
    Beiträge
    46
    Danke
    8
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    betrifft unten gezeigten Code.Durch den Startbefehl wird der FU aktiv. Danach werden Steuerwort und Sollwert an den FU übertragen. Zusätzlich wird der FU mit der angegebenen Hardwareadresse gestartet. Das ganze wird über den SFC15 an den FU gesendet. Dieses genannte Beispiel wurde in den FB1 geschrieben. Sollte ich jetzt im FB1 weiter programmieren ensteht das totale durcheinander. Mir ist schon klar warum (durch die Angabe von Hardwareadressen). Mir ist aber nicht klar wie ich dies abändern soll!?!?
    Kann mir jemand einen Denkanstoss verabreiche.

    mfg breno

    Code:
          U     #bMessstelle1Aktiv          //Startbefehl für FU 
          =     #bStartFU
         
          L     W#16#47E
          T     #wSteuerwortFU              //db1.dbw 180
    
          L     #iStellgroesse              //normierte Stellgroesse 
          T     #wSollwertFU                //db1.dbw 182
    
          U     #bStartFU
          =     DB1.DBX  181.0              //FU wird gestartet
        
    //SFC 15 Prozessdaten schreiben
    
          CALL  "DPWR_DAT"
           LADDR  :=W#16#104                //Anfangsadresse FU (EA 260) in Hex codiert 
           RECORD :=P#DBX 180.0 BYTE 4      //Steuerwort und Sollwert werden an FU gesendet
           RET_VAL:=MW12                    //Fehlercode
    Zitieren Zitieren Probleme mit SFC15  

  2. #2
    Registriert seit
    30.01.2009
    Beiträge
    440
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard

    Hi,

    verstehe noch nicht die Problematik

    Gruß

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Zitat Zitat von breno Beitrag anzeigen
    Hallo,

    betrifft unten gezeigten Code.Durch den Startbefehl wird der FU aktiv. Danach werden Steuerwort und Sollwert an den FU übertragen. Zusätzlich wird der FU mit der angegebenen Hardwareadresse gestartet. Das ganze wird über den SFC15 an den FU gesendet. Dieses genannte Beispiel wurde in den FB1 geschrieben. Sollte ich jetzt im FB1 weiter programmieren ensteht das totale durcheinander. Mir ist schon klar warum (durch die Angabe von Hardwareadressen). Mir ist aber nicht klar wie ich dies abändern soll!?!?
    Kann mir jemand einen Denkanstoss verabreiche.

    mfg breno

    Code:
          U     #bMessstelle1Aktiv          //Startbefehl für FU 
          =     #bStartFU
         
          L     W#16#47E
          T     #wSteuerwortFU              //db1.dbw 180
    
          L     #iStellgroesse              //normierte Stellgroesse 
          T     #wSollwertFU                //db1.dbw 182
    
          U     #bStartFU
          =     DB1.DBX  181.0              //FU wird gestartet
        
    //SFC 15 Prozessdaten schreiben
    
          CALL  "DPWR_DAT"
           LADDR  :=W#16#104                //Anfangsadresse FU (EA 260) in Hex codiert 
           RECORD :=P#DBX 180.0 BYTE 4      //Steuerwort und Sollwert werden an FU gesendet
           RET_VAL:=MW12                    //Fehlercode

    Steuerwort und Sollwert überträgst du immer, die sind nicht VKE-Abhängig. Wenn sie nur bei Start übertragen werden sollen, dann mußt du sie umspringen bzw. etwas anderes eintragen, wenn Start False ist!

    PS: Irgendwie vermischt du im Code statische oder temporäre und direkte DB-Zugriffe (Instanz-DB???). Das ist zumindest nicht schön!
    Geändert von Ralle (25.05.2009 um 12:05 Uhr)
    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

  4. #4
    Registriert seit
    01.09.2008
    Beiträge
    46
    Danke
    8
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Kein Problem.Zu aller erst würd ich gern eine Variable für den Parameter RECORD anlegen/deklarieren.Bisher hab ich eine Hardwareadresse genommen, aber auf Dauer würd ich dies gern abändern.Da ist mein erstes Problem. Z.b. Keine Ahnung welcher Datentyp

    mfg breno

  5. #5
    Registriert seit
    01.09.2008
    Beiträge
    46
    Danke
    8
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Hallo Ralle ,

    genau diese Vermischung der statischen und des Instanz DB´s würd ich gerne abschaffen.Weiss nur nicht wie ich das machen soll das nacher mein Programm noch funktioniert. Wenn ich den Baustein erweitere bleiben die Instanz-Adressen so stehen und die statischen verändern sich d.h. danach funktioniert gar nichts mehr.

    mfg breno

  6. #6
    Registriert seit
    30.01.2009
    Beiträge
    440
    Danke
    25
    Erhielt 48 Danke für 44 Beiträge

    Standard

    Hi,

    warum willst du den Parameter RECORD variabel halten ?. Willst du deinen FB1 universell einsetzen und den SFC 15 somit nur einmal aufrufen ?
    Dann muss ja zusätzlich noch die LADDR variabel sein.
    Dann hast du mit dem Datenhandling mehr Arbeit als alles andere.
    Ich würde den SFC15 pro FU projketieren und mit den entsprechenden Daten versorgen, sonst geht schnell die Übersicht verloren und einen Vorteil sehe ich auch nicht.

    Gruß

  7. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    Hallo,
    Zitat Zitat von breno Beitrag anzeigen
    Dieses genannte Beispiel wurde in den FB1 geschrieben. Sollte ich jetzt im FB1 weiter programmieren ensteht das totale durcheinander. Mir ist schon klar warum (durch die Angabe von Hardwareadressen). Mir ist aber nicht klar wie ich dies abändern soll!?!?
    Kann mir jemand einen Denkanstoss verabreiche.
    Es muss kein "totales Durcheinander" geben.
    Ich hätte da 2 Vorschläge :

    1.) du baust dir zum Steuern deines Reglers einen FB. Dieser FB macht nichts anderes als den Regler zu steuern. Info's nach Aussen gibt er über die OUT-Schnittstelle heraus - Info's von Aussen erhält er über seine IN-Schnittstelle.

    2.)der Datenblock für den Regler kann eine Structur sein:
    Code:
    Steuer_Daten : struct
       Bits : struct
           hier die entsprechenden Steuerbits
       end_struct ;
       Sollwert_Drehzahl : INT ;
    end_struct ;
    auf diesen Datenblock kannst du einen Pointer bilden, den du dann an den SFC15 übergibst.
    Code:
         CALL  "DPWR_DAT"
           LADDR  :=W#16#104                //Anfangsadresse FU (EA 260) in Hex codiert 
           RECORD :=#Steuer_Daten
           RET_VAL:=MW12                    //Fehlercode
    Der Fehlercode muß dann natürlich auch ein symbolischer Bezeichner (ggf. aus dem TEMP-Bereich) des FB sein ...

    Gruß
    LL

  8. #8
    Registriert seit
    01.09.2008
    Beiträge
    46
    Danke
    8
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Dazu benötige ich doch einen neuen datenbaustein, das will ich eigentlich vermeiden. Gibt es denn nicht eine Möglichkeit Steuerwort und Sollwert zu einem geeigneten Format zu verschweissen und dieses dann an RECORD anzulegen?!?!

    Code:
          L     W#16#47E
          T     #wSteuerwortFU    //WORD
    
          L     #iStellgroesse              
          T     #wSollwertFU     //WORD
     
          CALL  "DPWR_DAT"
           LADDR  :=
           RECORD :=
           RET_VAL:=

  9. #9
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.220
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Du kannst die die von Larry beschriebene Struct auch im Temp- oder Stat-Bereich des FB anlegen.
    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

  10. #10
    Registriert seit
    01.09.2008
    Beiträge
    46
    Danke
    8
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hab bisher mit Struct noch nie geabeitet.
    Hab jetzt eine im STAT-Bereich angelegt und die dazugehörigen Komponenten.Wenn ich aber abspeichern will heisst es das ein STRUCT ohne Komponente nicht zulässig sei .Was mach ich denn falsch.Muss ich END_STRUCT eingeben oder etwas was ähmliches.

    mfg breno

Ähnliche Themen

  1. OB35 und Sfc15
    Von simon.s im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 11.03.2011, 16:42
  2. SFC15-Problem
    Von Reto im Forum Simatic
    Antworten: 28
    Letzter Beitrag: 08.02.2009, 00:04
  3. Sfc15
    Von blume_mercan im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 17.01.2008, 14:28
  4. SfC14 / SfC15
    Von Mujo im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 14.08.2007, 14:20
  5. SFC15 Probleme
    Von tomatensaft im Forum Feldbusse
    Antworten: 0
    Letzter Beitrag: 19.05.2007, 18:06

Lesezeichen

Berechtigungen

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