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

Ergebnis 1 bis 6 von 6

Thema: Bitmeldungen KPT 600

  1. #1
    Registriert seit
    20.01.2009
    Beiträge
    30
    Danke
    5
    Erhielt 2 Danke für 1 Beitrag

    Unglücklich


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich habe ein Problem mit dem Bitmeldungen beim KPT 600 es werden nur die ersten 10 Bitmeldungen ausgegeben.
    zum Aufbau ich habe einen DB mit einer Array Länge von 4 angelegt das heist es müssten 32 Meldebits und 32 Quittierbits an das OP übertragen werden.Die Ansteuerung der Bits funktioniert aber am OP werden wie gesagt nur die ersten 10 Meldungen angezeit.
    Ist das KPT 600 hier so eingeschrenkt das man nicht mehr Meldungen übertragen kann?
    Ich habe es auch schon versucht die Array´s aufzuteilen aber auch ohne erfolg.
    Gibt es betimmte Reihenfolgen auf die mann achten mus?
    Kann mir bitte jemand helfen?

    Gruß Mcop2001de
    Zitieren Zitieren Bitmeldungen KPT 600  

  2. #2
    Registriert seit
    06.10.2009
    Ort
    NRW
    Beiträge
    1.572
    Danke
    63
    Erhielt 259 Danke für 219 Beiträge

    Standard

    Ohne nachlesen zu müssen kann ich Dir garantieren, dass das KTP600 mehr Meldungen kann.
    Sind die Triggerbits wirklich gesetzt?
    Stimmt die Zuordnung Triggerbit <-> Meldung?
    Reihenfolge muss man nicht beachten. Außer Vertauschung von Highbyte und Lowbyte gibt es auch keine Stolperfallen.
    Meine Motivation läuft nackig mit einem Cocktail über eine Wiese.

  3. #3
    Registriert seit
    20.01.2009
    Beiträge
    30
    Danke
    5
    Erhielt 2 Danke für 1 Beitrag

    Standard

    Hallo Tigerente1974

    Habe den Fehler eben gefunden.
    Irgendwie wird der DB Aufruf nicht für den gesamten Baustein benutzt.
    Wenn ich so alle 10 Meldungen eine mit dem DB direkt verbinde klappt es.
    Wenn ich den FC wie Folgt progammiere

    Code:
    UNCTION "Meldungen" : VOID
    TITLE =
    AUTHOR : 'M.Möller'
    NAME : Meldunge
    VERSION : 0.1
    
    VAR_INPUT
      Meldungsdb : BLOCK_DB ; 
    END_VAR
    VAR_TEMP
      Meldung1 : BOOL ; 
      Meldung2 : BOOL ; 
      Meldung3 : BOOL ; 
      Meldung4 : BOOL ; 
      Meldung5 : BOOL ; 
      Meldung6 : BOOL ; 
      Meldung7 : BOOL ; 
      Meldung8 : BOOL ; 
      Meldung9 : BOOL ; 
      Meldung10 : BOOL ; 
      Meldung11 : BOOL ; 
      Meldung12 : BOOL ; 
      Meldung13 : BOOL ; 
      Meldung14 : BOOL ; 
      Meldung15 : BOOL ; 
      Meldung16 : BOOL ; 
      Meldung17 : BOOL ; 
      Meldung18 : BOOL ; 
      Meldung19 : BOOL ; 
      Meldung20 : BOOL ; 
      Meldung21 : BOOL ; 
      Meldung22 : BOOL ; 
      Meldung23 : BOOL ; 
      Meldung24 : BOOL ; 
      Meldung25 : BOOL ; 
      Meldung26 : BOOL ; 
      Meldung27 : BOOL ; 
      Meldung28 : BOOL ; 
      Meldung29 : BOOL ; 
      Meldung30 : BOOL ; 
      Meldung31 : BOOL ; 
      Meldung32 : BOOL ; 
      Quittierbit1 : BOOL ; 
      Quittierbit2 : BOOL ; 
      Quittierbit3 : BOOL ; 
      Quittierbit4 : BOOL ; 
      Quittierbit5 : BOOL ; 
      Quittierbit6 : BOOL ; 
      Quittierbit7 : BOOL ; 
      Quittierbit8 : BOOL ; 
      Quittierbit9 : BOOL ; 
      Quittierbit10 : BOOL ; 
      Quittierbit11 : BOOL ; 
      Quittierbit12 : BOOL ; 
      Quittierbit13 : BOOL ; 
      Quittierbit14 : BOOL ; 
      Quittierbit15 : BOOL ; 
      Quittierbit16 : BOOL ; 
      Quittierbit17 : BOOL ; 
      Quittierbit18 : BOOL ; 
      Quittierbit19 : BOOL ; 
      Quittierbit20 : BOOL ; 
      Quittierbit21 : BOOL ; 
      Quittierbit22 : BOOL ; 
      Quittierbit23 : BOOL ; 
      Quittierbit24 : BOOL ; 
      Quittierbit25 : BOOL ; 
      Quittierbit26 : BOOL ; 
      Quittierbit27 : BOOL ; 
      Quittierbit28 : BOOL ; 
      Quittierbit29 : BOOL ; 
      Quittierbit30 : BOOL ; 
      Quittierbit31 : BOOL ; 
      Quittierbit32 : BOOL ; 
    END_VAR
    BEGIN
    NETWORK
    TITLE =
          AUF   #Meldungsdb; 
    NETWORK
    TITLE =Meldung 1
    //Notaus hat Ausgelöst
          UN    "Notausrelais"; 
          =     DBX    1.0; 
    NETWORK
    TITLE =Meldunge 2
    //Türnotaus hat Ausgelöst
          U     "Tür Notausrelais"; 
          =     DBX    1.1; 
    NETWORK
    TITLE =Meldunge 3
    //Notaus Tür 1
          UN    "Tür 1 Notaus"; 
          =     DBX    1.2; 
    NETWORK
    TITLE =Meldunge 4
    //Notaus Tür 2
          UN    "Tür 2 Notaus"; 
          =     DBX    1.3; 
    NETWORK
    TITLE =Meldunge 5
    //Notaus Tür 3
          UN    "Tür 3 Notaus"; 
          =     DBX    1.4; 
    NETWORK
    TITLE =Meldunge 6
    //Plug zu lang
          U     "Plug zu Lang"; 
          =     DBX    1.5; 
    NETWORK
    TITLE =Meldunge 7
    //Plug zu kurz
          U     "Plug zu kurz"; 
          =     DBX    1.6; 
    NETWORK
    TITLE =Meldunge 8
    //Motorschutz Servo
          UN    "Motorschutz Servo"; 
          =     DBX    1.7; 
    NETWORK
    TITLE =Meldunge 9
    //Motorschutz Auslaufband
          UN    "Motorschutz Auslaufband"; 
          =     DBX    0.0; 
    NETWORK
    TITLE =Meldunge 10
    //Störung Servomotor
          U     "Axis_TVB+MDI_TLG110".pos.RD_PZD_POSBETR.ZSW1.Stoerung_wirksam; 
          =     DBX    0.1; 
    NETWORK
    TITLE =Meldunge 11
    //Störung Plugstation
          U     "Meldung 1"; 
          =     DBX    0.2; 
    NETWORK
    TITLE =Meldunge 12
    //Auslaufband Voll
          U     "Auslaufband"; 
          =     DB3.DBX    0.3; 
    NETWORK
    TITLE =Meldunge 13
    //Keine Dosen am Einlauf
          UN    "Einlaufband"; 
          =     DBX    0.4; 
    NETWORK
    TITLE =Meldunge 14
    //Keine Dosen auf Vereinzelungsband
          UN    "Überlauf"; 
          =     DBX    0.5; 
    NETWORK
    TITLE =Meldunge 15
    //Keine Dose an Überlauf
          UN    "Vereinzelungsband"; 
          =     DBX    0.6; 
    NETWORK
    TITLE =Meldunge 16
    //Schlepfehler Servo
          U     "Axis_TVB+MDI_TLG110".pos.RD_PZD_POSBETR.ZSW1.Kein_Schleppfehler; 
         =     DB3.DBX    0.7; 
    NETWORK
    TITLE =Meldunge 17
    //Störung Frequenzumrichter Vereinzelungsband
          UN    "Motorschutz EInlaufband"; 
          =     DBX    3.0; 
    NETWORK
    TITLE =Meldunge 18
    //Dose nicht entnommen
          U     "Plug schlecht"; 
          U     "Dose Messung Vorhanden"; 
          U     "Start"; 
          =     DBX    3.1; 
    NETWORK
    TITLE =Meldung 19
          U     #Meldung19; 
          =     DBX    3.2; 
    NETWORK
    TITLE =Meldung 20
          U     #Meldung20; 
          =     DBX    3.3; 
    NETWORK
    TITLE =Meldung 21
          U     #Meldung21; 
          =     DBX    3.4; 
    NETWORK
    TITLE =Meldung 22
          U     #Meldung22; 
          =     DBX    3.5; 
    NETWORK
    TITLE =Meldung 23
          U     #Meldung23; 
          =     DBX    3.6; 
    NETWORK
    TITLE =Meldung 24
          U     #Meldung24; 
          =     DBX    3.7; 
    NETWORK
    TITLE =Meldung 25
          U     #Meldung25; 
          =     DBX    2.0; 
    NETWORK
    TITLE =Meldung 26
          UN    #Meldung26; 
          =     DBX    2.1; 
    NETWORK
    TITLE =Meldunge 27
          U     #Meldung27; 
          =     DBX    2.2; 
    NETWORK
    TITLE =Meldunge 28
          U     #Meldung28; 
          =     DBX    2.3; 
    NETWORK
    TITLE =Meldunge 29
          U     #Meldung29; 
          =     DBX    2.4; 
    NETWORK
    TITLE =Meldunge 30
          U     #Meldung30; 
          =     DBX    2.5; 
    NETWORK
    TITLE =Meldunge 31
          U     #Meldung31; 
          =     DBX    2.6; 
    NETWORK
    TITLE =Meldunge 32
          U     #Meldung32; 
          =     DBX    2.7; 
    NETWORK
    TITLE =Quittierbit 1
    //Notaus hat Ausgelöst
          U     "Notausrelais"; 
          U     "Restetschalter"; 
          =     DBX    5.0; 
    NETWORK
    TITLE =Quittierbit 2
    //Türnotaus hat Ausgelöst
          UN    "Tür Notausrelais"; 
          U     "Restetschalter"; 
          =     DBX    5.1; 
    NETWORK
    TITLE =Quittierbit 3
    //Notaus Tür 1
          U     "Tür 1 Notaus"; 
          U     "Restetschalter"; 
          =     DBX    5.2; 
    NETWORK
    TITLE =Quittierbit 4
    //Notaus Tür 2
          U     "Tür 2 Notaus"; 
          U     "Restetschalter"; 
          =     DBX    5.3; 
    NETWORK
    TITLE =Quittierbit 5
    //Notaus Tür 3
          U     "Tür 3 Notaus"; 
          U     "Restetschalter"; 
          =     DBX    5.4; 
    NETWORK
    TITLE =Quittierbit 6
    //Plug zu lang
          UN    "Plug zu Lang"; 
          =     DBX    5.5; 
    NETWORK
    TITLE =Quittierbit 7
    //Plug zu kurz
          UN    "Plug zu kurz"; 
          =     DBX    5.6; 
    NETWORK
    TITLE =Quittierbit 8
    //Motorschutz Servo
          U     "Motorschutz Servo"; 
          U     "Restetschalter"; 
          =     DBX    5.7; 
    NETWORK
    TITLE =Quittierbit 9
    //Motorschutz Auslaufband
          U     "Motorschutz Auslaufband"; 
          U     "Restetschalter"; 
          =     DBX    4.0; 
    NETWORK
    TITLE =Quittierbit 10
    //Störung Servomotor
          UN    "Axis_TVB+MDI_TLG110".pos.RD_PZD_POSBETR.ZSW1.Stoerung_wirksam; 
          U     "Restetschalter"; 
          =     DBX    4.1; 
    NETWORK
    TITLE =Quittierbit 11
    //Störung Plugstation
          U     "Restetschalter"; 
          =     DBX    4.2; 
    NETWORK
    TITLE =Quittierbit 12
    //Auslaufband Voll
          U     "Auslaufband"; 
          =     DBX    4.3; 
    NETWORK
    TITLE =Quittierbit 13
    //Keine Dosen am Einlauf
          U     "Einlaufband"; 
          =     DBX    4.4; 
    NETWORK
    TITLE =Quittierbit 14
    //Keine Dosen auf Vereinzelungsband
          U     "Vereinzelungsband"; 
          =     DBX    4.5; 
    NETWORK
    TITLE =Quittierbit 15
    //Keine Dose an Überlauf
          U     "Überlauf"; 
          =     DBX    4.6; 
    NETWORK
    TITLE =Quittierbit 16
    //Schleppfehler Servo
          UN    "Axis_TVB+MDI_TLG110".pos.RD_PZD_POSBETR.ZSW1.Kein_Schleppfehler; 
          U     "Restetschalter"; 
          =     DBX    4.7; 
    NETWORK
    TITLE =Quittierbit 17
    //Störung Frequenzumrichter Vereinzelungsband
          U     #Quittierbit17; 
          =     DBX    7.0; 
    NETWORK
    TITLE =Quittierbit 18
    //Dose nicht entnommen
          U     "Plug schlecht"; 
          UN    "Dose Messung Vorhanden"; 
          U     "Start"; 
          =     DBX    7.1; 
    NETWORK
    TITLE =Quittierbit 19
          U     #Quittierbit19; 
          =     DBX    7.2; 
    NETWORK
    TITLE =Quittierbit 20
          U     #Quittierbit20; 
          =     DBX    7.3; 
    NETWORK
    TITLE =Quittierbit 21
          U     #Quittierbit21; 
          =     DBX    7.4; 
    NETWORK
    TITLE =Quittierbit 22
          U     #Quittierbit22; 
          =     DBX    7.5; 
    NETWORK
    TITLE =Quittierbit 23
          U     #Quittierbit23; 
          =     DBX    7.6; 
    NETWORK
    TITLE =Quittierbit 24
          U     #Quittierbit24; 
          =     DBX    7.7; 
    NETWORK
    TITLE =Quittierbit 25
          U     #Quittierbit25; 
          =     DBX    6.0; 
    NETWORK
    TITLE =Quittierbit 26
          U     #Quittierbit26; 
          =     DBX    6.1; 
    NETWORK
    TITLE =Quittierbit 27
          U     #Quittierbit27; 
          =     DBX    6.2; 
    NETWORK
    TITLE =Quittierbit 28
          U     #Quittierbit28; 
          =     DBX    6.3; 
    NETWORK
    TITLE =Quittierbit 29
          U     #Quittierbit29; 
          =     DBX    6.4; 
    NETWORK
    TITLE =Quittierbit 30
          U     #Quittierbit30; 
          =     DBX    6.5; 
    NETWORK
    TITLE =Quittierbit 31
          U     #Quittierbit31; 
          =     DBX    6.6; 
    NETWORK
    TITLE =Quittierbit 32
          U     #Quittierbit32; 
          =     DBX    6.7; 
    END_FUNCTION
    Warum muss ich denn den DB nochmas Aufrufen?

    Mcop2001de

  4. #4
    Registriert seit
    13.10.2007
    Beiträge
    12.038
    Danke
    2.790
    Erhielt 3.273 Danke für 2.159 Beiträge

    Standard

    Hallo Mcop,
    das du deinen 'DB' noch einmal neu aufschlagen musst, scheint daran zu liegen weil du zwischenzeitlich
    einen anderen DB aufrufst.
    Code:
    TITLE =Meldunge 10
    //Störung Servomotor
          U     "Axis_TVB+MDI_TLG110".pos.RD_PZD_POSBETR.ZSW1.Stoerung_wirksam; 
          =     DBX    0.1;
    Da dein FC ja nur normalen Programmablauf als Inhalt hat, brauchst du deine DB ja garnicht über die
    Bausteinschnittstelle übergeben und machst nur Vollqualifizierte Zugriffe auf deine Variablen.

    Code:
    =     DB3.DBX    0.3
    Wenn du deinen DB3 noch einen Symbolnamen gibst, ist das Programm auch besser zu lesen.

    Was ich nicht verstehe, warum du auf deine Temp.-Variablen 'Meldung.XY' zugreifst, ohne diese
    vorher zugewiesen zu haben. Ich glaube da besteht noch ein verständnisproblem deinerseits, beschreib
    doch mal was du mit diesen Variablen erreichen möchtest.
    Geändert von rostiger Nagel (13.11.2011 um 13:17 Uhr)

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

    Mcop2001de (13.11.2011)

  6. #5
    Registriert seit
    15.01.2005
    Ort
    In der Mitte zwischen Bayreuth/Weiden
    Beiträge
    6.735
    Danke
    321
    Erhielt 1.523 Danke für 1.283 Beiträge

    Cool

    Jedes mal, wenn du Daten aus einem anderen DB als deinen Meldungs-DB öffnest, MUSST du deinen MeldungsDB erneut öffnen.

    z.B.
    Code:
          U     "Axis_TVB+MDI_TLG110".pos.RD_PZD_POSBETR.ZSW1.Stoerung_wirksam;       
          =     DBX    0.1;
    Hier beschreibst du nun also DBX0.1 im DB "Axis_TVB+MDI_TLG110"

    Weil der Befehl U "Axis_TVB+MDI_TLG110".pos.RD_PZD_POSBETR.ZSW1.Stoerung_wirksam;
    in
    Code:
    AUF ""Axis_TVB+MDI_TLG110"
    U DBX Irgendwas
    zerfällt, und du somit für die folgenden Zeilen eben den "falschen" DB benutzt.

    Ebenso ist es Käse den Meldebits TEMP-Variablen zuzuweisen, da wäre es noch besser die freien Meldebits gar nicht zu benutzten, oder denen wenigstens vernünftig ein LOW zuweisen (z.B. mit CLR)
    weil du sonst relativ sicher davon ausgehen kannst, das deine vermeintlich freien Meldebits immer mal sporadisch ansprechen werden.

    Edit: Helmut war zwar schneller, aber inhaltlich waren wir uns voll einig

    Mfg
    Manuel
    Geändert von MSB (13.11.2011 um 13:22 Uhr)
    Warum denn einfach, wenn man auch Siemens einsetzen kann!

    Wer die grundlegenden Freiheiten aufgibt, um vorübergehend ein wenig Sicherheit zu bekommen, verdient weder Freiheit noch Sicherheit (B. Franklin).

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

    Mcop2001de (13.11.2011)

  8. #6
    Registriert seit
    20.01.2009
    Beiträge
    30
    Danke
    5
    Erhielt 2 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die Schnellen Antworten

    Die Variablen habe ich nur Testweise Angelegt die kommen jetzt wieder Raus und es kommen die richtigen Zuweisungen .

    Danke nochmals

    Mcop2001de

Ähnliche Themen

  1. Bitmeldungen
    Von settelma im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 14.06.2011, 20:21
  2. quittieren von Bitmeldungen
    Von Kala Schnikov im Forum HMI
    Antworten: 2
    Letzter Beitrag: 05.08.2009, 12:48
  3. Bitmeldungen erstellen
    Von Felse im Forum HMI
    Antworten: 2
    Letzter Beitrag: 23.02.2009, 18:40
  4. HMI PRO Bitmeldungen
    Von sps-concept im Forum HMI
    Antworten: 0
    Letzter Beitrag: 18.12.2007, 20:14
  5. Bitmeldungen
    Von northwind im Forum HMI
    Antworten: 3
    Letzter Beitrag: 05.09.2006, 21:03

Stichworte

Lesezeichen

Berechtigungen

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