Manfred Stangl
Level-1
- Beiträge
- 944
- Reaktionspunkte
- 174
-> 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
So, nun deklariere ich anstatt Block_DB einen DB_Any, aber dann mag er den rot markierten Teil nicht mehr:
Kann mir jemand helfen?
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 := [COLOR=#ff0000]Message_DB.DX[i, j] ;[/COLOR]
IF actual_bit THEN
Common_Alarm := true ;
END_IF ;
END_FOR ;
END_FOR ;
// -----------------------------------------------------------------------------------------------------------------------
END_FUNCTION
// -----------------------------------------------------------------------------------------------------------------------
Kann mir jemand helfen?