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

Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 35

Thema: FC aufruf klappt nicht

  1. #11
    janoro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2014
    Beiträge
    29
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn ich den in/out des FC als int deklariere, kann ich doch aber kein db. dbb dran schreiben, weil ich einen Datentyp Konflikt habe.
    Was muss ich denn dann verwenden?

  2. #12
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Ein INT DBx.DBWy

  3. #13
    janoro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2014
    Beiträge
    29
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So ich habe nun den in/out als Int deklariert und ein dbx.dbw verwendet allerdings habe ich weiterhin das gleiche Problem. Wenn mir jemand dazu ein paar gute Quellen zum nachlesen nennen könnte, würde ich mich da auch erstmal schlau lesen.

    Hier nochmal der neue Code für den addierer:

    MW1

    U #Durchfluss_nio
    SPBNB _001
    L #DB_Addieren
    L1
    +I
    T #DB_Addieren
    _001: Nop 0

  4. #14
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Sie habe noch ein In - out bool nodig fur ein flankmerker. Und in code

    Verstuurd vanaf mijn GT-I9301I met Tapatalk

  5. #15
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Und code
    U durchflusch_nio
    FP flankmerker
    SPBN _001
    uzw

    Verstuurd vanaf mijn GT-I9301I met Tapatalk

  6. #16
    janoro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2014
    Beiträge
    29
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für den tipp mit dem Flankenmerker geht es jetzt.

  7. #17
    Registriert seit
    22.11.2006
    Ort
    CH
    Beiträge
    3.618
    Danke
    776
    Erhielt 646 Danke für 492 Beiträge

    Standard

    Wie hast du den flankenmerker deklariert?


    Sent from my iPhone using Tapatalk

  8. #18
    janoro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2014
    Beiträge
    29
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Ich habe ihn als in/out variable als bool eingestellt.
    Ich frage mich nur ob ich jetzt 20 flankenmerker brauche?

  9. #19
    Registriert seit
    24.10.2007
    Ort
    Niederlande
    Beiträge
    673
    Danke
    22
    Erhielt 143 Danke für 135 Beiträge

    Standard

    Ja merker oder dbx

    Verstuurd vanaf mijn GT-I9301I met Tapatalk

  10. #20
    janoro ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    16.08.2014
    Beiträge
    29
    Danke
    5
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo zusammen,
    ich habe mich jetzt mit den ganzen tipps mal hingesetzt und vor mich hinprogrammiert.
    Hier mal das Ergebnis.
    Gibt es vielleicht einen Trick wie ich die Fehlermeldungen aus dem DB ins HMI bekomme oder muss ich die alle einzeln abtippen?

    Vielen Dank

    Code:
    DATA_BLOCK DB 1
    TITLE =
    VERSION : 0.1
    
    
      STRUCT     
       Kreislauf_links : STRUCT     
        Zaehlen : ARRAY  [1 .. 20 ] OF WORD ;    
        Fehler : ARRAY  [1 .. 20 ] OF BOOL ;    
        Flanken : ARRAY  [1 .. 20 ] OF BOOL ;    
       END_STRUCT ;    
       Kreislauf_rechts : STRUCT     
        Zaehlen : ARRAY  [1 .. 20 ] OF WORD ;    
        Fehler : ARRAY  [1 .. 20 ] OF BOOL ;    
        Flanken : ARRAY  [1 .. 20 ] OF BOOL ;    
       END_STRUCT ;    
      END_STRUCT ;    
    BEGIN
       Kreislauf_links.Zaehlen[1] := W#16#0; 
       Kreislauf_links.Zaehlen[2] := W#16#0; 
       Kreislauf_links.Zaehlen[3] := W#16#0; 
       Kreislauf_links.Zaehlen[4] := W#16#0; 
       Kreislauf_links.Zaehlen[5] := W#16#0; 
       Kreislauf_links.Zaehlen[6] := W#16#0; 
       Kreislauf_links.Zaehlen[7] := W#16#0; 
       Kreislauf_links.Zaehlen[8] := W#16#0; 
       Kreislauf_links.Zaehlen[9] := W#16#0; 
       Kreislauf_links.Zaehlen[10] := W#16#0; 
       Kreislauf_links.Zaehlen[11] := W#16#0; 
       Kreislauf_links.Zaehlen[12] := W#16#0; 
       Kreislauf_links.Zaehlen[13] := W#16#0; 
       Kreislauf_links.Zaehlen[14] := W#16#0; 
       Kreislauf_links.Zaehlen[15] := W#16#0; 
       Kreislauf_links.Zaehlen[16] := W#16#0; 
       Kreislauf_links.Zaehlen[17] := W#16#0; 
       Kreislauf_links.Zaehlen[18] := W#16#0; 
       Kreislauf_links.Zaehlen[19] := W#16#0; 
       Kreislauf_links.Zaehlen[20] := W#16#0; 
       Kreislauf_links.Fehler[1] := FALSE; 
       Kreislauf_links.Fehler[2] := FALSE; 
       Kreislauf_links.Fehler[3] := FALSE; 
       Kreislauf_links.Fehler[4] := FALSE; 
       Kreislauf_links.Fehler[5] := FALSE; 
       Kreislauf_links.Fehler[6] := FALSE; 
       Kreislauf_links.Fehler[7] := FALSE; 
       Kreislauf_links.Fehler[8] := FALSE; 
       Kreislauf_links.Fehler[9] := FALSE; 
       Kreislauf_links.Fehler[10] := FALSE; 
       Kreislauf_links.Fehler[11] := FALSE; 
       Kreislauf_links.Fehler[12] := FALSE; 
       Kreislauf_links.Fehler[13] := FALSE; 
       Kreislauf_links.Fehler[14] := FALSE; 
       Kreislauf_links.Fehler[15] := FALSE; 
       Kreislauf_links.Fehler[16] := FALSE; 
       Kreislauf_links.Fehler[17] := FALSE; 
       Kreislauf_links.Fehler[18] := FALSE; 
       Kreislauf_links.Fehler[19] := FALSE; 
       Kreislauf_links.Fehler[20] := FALSE; 
       Kreislauf_links.Flanken[1] := FALSE; 
       Kreislauf_links.Flanken[2] := FALSE; 
       Kreislauf_links.Flanken[3] := FALSE; 
       Kreislauf_links.Flanken[4] := FALSE; 
       Kreislauf_links.Flanken[5] := FALSE; 
       Kreislauf_links.Flanken[6] := FALSE; 
       Kreislauf_links.Flanken[7] := FALSE; 
       Kreislauf_links.Flanken[8] := FALSE; 
       Kreislauf_links.Flanken[9] := FALSE; 
       Kreislauf_links.Flanken[10] := FALSE; 
       Kreislauf_links.Flanken[11] := FALSE; 
       Kreislauf_links.Flanken[12] := FALSE; 
       Kreislauf_links.Flanken[13] := FALSE; 
       Kreislauf_links.Flanken[14] := FALSE; 
       Kreislauf_links.Flanken[15] := FALSE; 
       Kreislauf_links.Flanken[16] := FALSE; 
       Kreislauf_links.Flanken[17] := FALSE; 
       Kreislauf_links.Flanken[18] := FALSE; 
       Kreislauf_links.Flanken[19] := FALSE; 
       Kreislauf_links.Flanken[20] := FALSE; 
       Kreislauf_rechts.Zaehlen[1] := W#16#0; 
       Kreislauf_rechts.Zaehlen[2] := W#16#0; 
       Kreislauf_rechts.Zaehlen[3] := W#16#0; 
       Kreislauf_rechts.Zaehlen[4] := W#16#0; 
       Kreislauf_rechts.Zaehlen[5] := W#16#0; 
       Kreislauf_rechts.Zaehlen[6] := W#16#0; 
       Kreislauf_rechts.Zaehlen[7] := W#16#0; 
       Kreislauf_rechts.Zaehlen[8] := W#16#0; 
       Kreislauf_rechts.Zaehlen[9] := W#16#0; 
       Kreislauf_rechts.Zaehlen[10] := W#16#0; 
       Kreislauf_rechts.Zaehlen[11] := W#16#0; 
       Kreislauf_rechts.Zaehlen[12] := W#16#0; 
       Kreislauf_rechts.Zaehlen[13] := W#16#0; 
       Kreislauf_rechts.Zaehlen[14] := W#16#0; 
       Kreislauf_rechts.Zaehlen[15] := W#16#0; 
       Kreislauf_rechts.Zaehlen[16] := W#16#0; 
       Kreislauf_rechts.Zaehlen[17] := W#16#0; 
       Kreislauf_rechts.Zaehlen[18] := W#16#0; 
       Kreislauf_rechts.Zaehlen[19] := W#16#0; 
       Kreislauf_rechts.Zaehlen[20] := W#16#0; 
       Kreislauf_rechts.Fehler[1] := FALSE; 
       Kreislauf_rechts.Fehler[2] := FALSE; 
       Kreislauf_rechts.Fehler[3] := FALSE; 
       Kreislauf_rechts.Fehler[4] := FALSE; 
       Kreislauf_rechts.Fehler[5] := FALSE; 
       Kreislauf_rechts.Fehler[6] := FALSE; 
       Kreislauf_rechts.Fehler[7] := FALSE; 
       Kreislauf_rechts.Fehler[8] := FALSE; 
       Kreislauf_rechts.Fehler[9] := FALSE; 
       Kreislauf_rechts.Fehler[10] := FALSE; 
       Kreislauf_rechts.Fehler[11] := FALSE; 
       Kreislauf_rechts.Fehler[12] := FALSE; 
       Kreislauf_rechts.Fehler[13] := FALSE; 
       Kreislauf_rechts.Fehler[14] := FALSE; 
       Kreislauf_rechts.Fehler[15] := FALSE; 
       Kreislauf_rechts.Fehler[16] := FALSE; 
       Kreislauf_rechts.Fehler[17] := FALSE; 
       Kreislauf_rechts.Fehler[18] := FALSE; 
       Kreislauf_rechts.Fehler[19] := FALSE; 
       Kreislauf_rechts.Fehler[20] := FALSE; 
       Kreislauf_rechts.Flanken[1] := FALSE; 
       Kreislauf_rechts.Flanken[2] := FALSE; 
       Kreislauf_rechts.Flanken[3] := FALSE; 
       Kreislauf_rechts.Flanken[4] := FALSE; 
       Kreislauf_rechts.Flanken[5] := FALSE; 
       Kreislauf_rechts.Flanken[6] := FALSE; 
       Kreislauf_rechts.Flanken[7] := FALSE; 
       Kreislauf_rechts.Flanken[8] := FALSE; 
       Kreislauf_rechts.Flanken[9] := FALSE; 
       Kreislauf_rechts.Flanken[10] := FALSE; 
       Kreislauf_rechts.Flanken[11] := FALSE; 
       Kreislauf_rechts.Flanken[12] := FALSE; 
       Kreislauf_rechts.Flanken[13] := FALSE; 
       Kreislauf_rechts.Flanken[14] := FALSE; 
       Kreislauf_rechts.Flanken[15] := FALSE; 
       Kreislauf_rechts.Flanken[16] := FALSE; 
       Kreislauf_rechts.Flanken[17] := FALSE; 
       Kreislauf_rechts.Flanken[18] := FALSE; 
       Kreislauf_rechts.Flanken[19] := FALSE; 
       Kreislauf_rechts.Flanken[20] := FALSE; 
    END_DATA_BLOCK
    
    FUNCTION "WK_Störung" : VOID
    TITLE =
    VERSION : 0.1
    
    
    VAR_INPUT
      Durchfluss_nio : BOOL ;    
      Durchfluss_io : BOOL ;    
    END_VAR
    VAR_OUTPUT
      Fehler : BOOL ;    
      Ventil_auf : BOOL ;    
    END_VAR
    VAR_IN_OUT
      DB_Zaehlen : WORD ;    
      FlankeP : BOOL ;    
    END_VAR
    BEGIN
    NETWORK
    TITLE =Addiert +1 wenn Durchfluss nio 
    
          U     #Durchfluss_nio; 
          FP    #FlankeP; 
          SPBNB _001; 
          L     #DB_Zaehlen; 
          L     1; 
          +I    ; 
          T     #DB_Zaehlen; 
    _001: NOP   0; 
    NETWORK
    TITLE =Wenn 3x nio = Fehlermeldung
    
          L     #DB_Zaehlen; 
          L     3; 
          >=I   ; 
          =     #Fehler; 
    NETWORK
    TITLE =Fehlerzähler auf 0
    //Wenn der Durchfluss wieder io ist wird der Zähler auf 0 gesetzt
          U     #Durchfluss_io; 
          SPBNB _002; 
          L     0; 
          T     #DB_Zaehlen; 
    _002: NOP   0; 
    NETWORK
    TITLE =Wenn 3x Fehler = Taktstopp
    //Wenn 3x kein Durchfluss da war kommt der Taktstop 
    //M2000.1 wird der Taktstopmerker
          U     #Fehler; 
          =     M   2000.0; 
    NETWORK
    TITLE =Ventil testen
    //M2000.1 kommt vom HMI zum Durchflusstest
          U     M   2000.1; 
          U     #Fehler; 
          =     #Ventil_auf; 
    END_FUNCTION

Ähnliche Themen

  1. S5 Verbindung mit PG klappt nicht
    Von dpd80 im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 10.03.2017, 07:31
  2. DINT TO DWORD klappt nicht
    Von Carsten77 im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 11.04.2011, 15:48
  3. Antworten: 35
    Letzter Beitrag: 14.09.2010, 14:16
  4. S7Graph-Simultanverzweigung klappt nicht
    Von Wassermann im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 25.07.2006, 17:25
  5. AWL klappt, FUP nicht ...
    Von fbeine im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 01.09.2005, 11:42

Lesezeichen

Berechtigungen

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