TIA Problem mit WORD_TO_BLOCK_DB in TIA S7-1517F-3 PN/DP

Hexmex

Level-2
Beiträge
52
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

kann mir jemand sagen, warum ein Baustein, der so wie er ist, in anderen Hardwarekonfigurationen problemlos läuft, nur in der S7-1500er habe ich damit Probleme beim Aufruf.
Der Befehl "WORD_TO_BLOCK_DB" wird im Code des Baustein rot unterringelt. Fahre ich mit dem Mauszeiger über den unterringelten Text, so erscheint die Meldung "Der Operand WORD_TO_BLOCK_DB ist nicht definiert."

Hier das Codebeispiel:

Code:
// Copy the Anypointer
#T_ptStep := #ptStep;

// Check ID
IF #T_AtptStep.ID <> w#16#10 THEN
    #FC_SEQ_Decode := -1;
    RETURN;
END_IF;

// Check DataType
IF #T_AtptStep.DataType <> w#16#2 THEN
    #FC_SEQ_Decode := -2;
    RETURN;
END_IF;

// Check MemoryType
IF #T_AtptStep.MemoryType <> w#16#84 THEN
    #FC_SEQ_Decode := -3;
    RETURN;
END_IF;

#FC_SEQ_Decode := 0;

// Calculate DBB No
#T_DBB_No := WORD_TO_INT(SHL(IN := BYTE_TO_WORD(#T_AtptStep.Offset2), N := 13) OR SHR(IN := #T_AtptStep.Offset, N := 3));

// Look for a Byte who is not Zero
FOR #T_i := 1 TO WORD_TO_INT(#T_AtptStep.Count) DO
    #T_Value := [COLOR=#ff0000]WORD_TO_BLOCK_DB[/COLOR](#T_AtptStep.DB_No).[COLOR=#ff0000]DB[/COLOR](#T_DBB_No + #T_i - 1);
    IF #T_Value <> 0 THEN
        FOR #T_i2 := 0 TO 7 DO
            IF (#T_Value AND INT_TO_BYTE(REAL_TO_INT(2 ** #T_i2))) <> 0 THEN
                #Step := ((#T_i - 1) * 8) + #T_i2 + 1;
                RETURN;
            END_IF;
        END_FOR;
    END_IF;
END_FOR;

#Step := 0;

Gehört der Befehl evtl. nicht zum Befehlssatz der Steuerung oder kann es dafür noch andere Gründe geben?
Falls es am Befehlssatz liegt, würde mich interessieren, ob es iwo für die jeweilige CPU eine Liste der verfügbaren Befehle gibt.

Schon mal danke für alle die sich meinem Thema annehmen!
MFG
 
Wurde bei Deinem TIA das Hilfesystem nicht mit installiert?
Laut diesem Hilfesystem gibt es die SCL-Anweisung WORD_TO_BLOCK_DB nur für S7-300, S7-400
siehe z.B. in der Hilfe > Index > WORD_TO > Explizite Konvertierung von WORD

Liste verfügbarer Befehle: SIMATIC S7-xxxx Vergleichsliste für Programmiersprachen
Die ganzen SCL-Konvertierungen xxx_TO_yyy sind da aber nicht detailliert aufgeführt --> "Weitere Informationen finden Sie im Informationssystem von STEP 7"

Harald
 
Zurück
Oben