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

Ergebnis 1 bis 3 von 3

Thema: Block_DB bei einer 1200er

  1. #1
    Registriert seit
    21.12.2006
    Ort
    Wiener Neustadt
    Beiträge
    931
    Danke
    154
    Erhielt 169 Danke für 127 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Guten Morgen Kollegen!

    TIA V12
    CPU 1212

    Ich hab bei einer 300er den unten stehenden Code für eine Summenstörmeldung geschrieben. Unter anderem den Meldungs DB als Input Block_DB.
    Jetzt kann die 1200er aber keinen Block_DB sondern nur DB_ANY
    Zitat aus der TIA Portal Hilfe:
    DB_ANY UINT Identifikation (Nummer) eines beliebigen DBs
    .
    So, nun deklariere ich anstatt Block_DB einen DB_Any, aber dann mag er den rot markierten Teil nicht mehr:

    Code:
    FUNCTION FC95 : VOID             // check if 1 bit true
    TITLE   = '"Common Alarm"'       // check if 1 bit true
    AUTHOR  : 'MS'
    VERSION : '2.0'                  // 18.11.2011
    //KNOW_HOW_PROTECT
       
    // --------------------------------------------------------------------------------------
    //    Baustein-Parameter
    // --------------------------------------------------------------------------------------
    VAR_INPUT
      Reset             : BOOL ;        // Reset Commomn_Alarm
      Message_DB        : BLOCK_DB ;    // Number of DB where the messages are generated
      Alarm_begin       : INT ;         // DB_Word where the messages are starting
      Alarm_end         : INT ;         // DB_Word where the messages are ending
    END_VAR
    VAR_IN_OUT
      Common_Alarm      : BOOL ;        // Common Alarm of the area
    END_VAR
    VAR_OUTPUT
    END_VAR
    VAR_TEMP
      Length            : INT ;         // Length of the area in the DB
      actual_bit        : BOOL ;        // Actual bit of searching
      i                 : INT ;         // loop variable
      j                 : INT ;         // loop variable
    END_VAR  
    // -----------------------------------------------------------------------------------------------------------------------
    BEGIN
    // -----------------------------------------------------------------------------------------------------------------------
    Length := Alarm_end - Alarm_begin ;
            
    IF Reset THEN
        Common_Alarm := false ;
    END_IF ;
            
    FOR i := Alarm_begin TO Alarm_end BY 1 DO 
        FOR j := 0 TO 15 BY 1 DO
            actual_bit := Message_DB.DX[i, j] ;
            IF actual_bit THEN 
                Common_Alarm := true ;
            END_IF ;
        END_FOR ;
    END_FOR ;
    // -----------------------------------------------------------------------------------------------------------------------
    END_FUNCTION
    // -----------------------------------------------------------------------------------------------------------------------
    Kann mir jemand helfen?
    Gruß
    M

    Handbook not read error...
    Klare Frage - klare Antwort
    Zitieren Zitieren Block_DB bei einer 1200er  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.227
    Danke
    534
    Erhielt 2.698 Danke für 1.950 Beiträge

    Standard

    1. MessageDB mal als "DB_Any" deklarieren.
    2. Die Zeile mit actual_bit= ersetzen durch:

    #actual_bit:=PEEK_BOOL(area:=16#84, dbNumber:=#Message_DB, byteOffset:=#i, bitOffset:=#j);

    Das übersetzt der Compiler zumindest mal.
    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

  3. Folgende 3 Benutzer sagen Danke zu Ralle für den nützlichen Beitrag:

    hucki (10.01.2014),Manfred Stangl (10.01.2014),van (18.01.2015)

  4. #3
    Avatar von Manfred Stangl
    Manfred Stangl ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    21.12.2006
    Ort
    Wiener Neustadt
    Beiträge
    931
    Danke
    154
    Erhielt 169 Danke für 127 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Also auf peek_bool wäre ich wahrscheinlich nie gekommen.
    TIA hat deine Version als in Ordnung befunden.

    DANKE!
    Gruß
    M

    Handbook not read error...
    Klare Frage - klare Antwort

Ähnliche Themen

  1. Antworten: 9
    Letzter Beitrag: 28.08.2013, 08:27
  2. Antworten: 3
    Letzter Beitrag: 05.04.2012, 06:38
  3. Hilfe: seltsames Verhalten einer 1200er...
    Von monaco86 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 10.03.2012, 14:46
  4. Zugriffschutz bei der 1200er?
    Von slk230-power im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 22.01.2011, 15:13
  5. BLOCK_DB
    Von Lazarus™ im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 16.09.2005, 09:54

Lesezeichen

Berechtigungen

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