Hallo,
ich habe Probleme mit einem Code, ich schreibe an einem Standard FC der die IDB Adresse ausließt und in einer Liste einträgt ....
Die restlichen infos im #_modulInfoBuffer.IDB_Address( DB_Any) interessieren mich nicht ich möchte dort nur die IDB Adresse von der Variable IDB eintragen.
Probleme macht hier der Slicer Word zugriff, woran kann das liegen?
ich habe Probleme mit einem Code, ich schreibe an einem Standard FC der die IDB Adresse ausließt und in einer Liste einträgt ....
Die restlichen infos im #_modulInfoBuffer.IDB_Address( DB_Any) interessieren mich nicht ich möchte dort nur die IDB Adresse von der Variable IDB eintragen.
Probleme macht hier der Slicer Word zugriff, woran kann das liegen?
Code:
IF #InitialAktiv THEN
"Modul_SetInfo"(ModulInfo:=#BA.ModulInfo, IDB_Name:= WSTRING_TO_STRING(IN:= GetInstanceName(size:=0)), IDB:= #InitialAktiv );
END_IF;
Code:
//Init
#Modul_SetInfo := FALSE;
//
IF IS_ARRAY(OPERAND:= #ModulInfo) THEN
IF TypeOfElements(#ModulInfo) = SS_FunctionInfo THEN
#_size := UDINT_TO_INT(IN:= CountOfElements(#ModulInfo));
FOR #_index := #LOWER_SIZE TO #_size DO
#_retVal := MOVE_BLK_VARIANT(SRC:=#ModulInfo, COUNT:=#COPY_SIZE, SRC_INDEX:=#_index, DEST_INDEX:=0, DEST=>#_modulInfoBuffer);
IF #_retVal <>0 THEN // error ?
#Modul_SetInfo := FALSE;
RETURN;
END_IF;
IF #_modulInfoBuffer.IDB_Address = 0 AND #_modulInfoBuffer.Name = 'Null' THEN
#_modulInfoBuffer.Name := #IDB_Name;
#_modulInfoBuffer.IDB_Address.%W2 := #IDB.%W2;
IF #_retVal <>0 THEN // error ?
#Modul_SetInfo := FALSE;
RETURN;
END_IF;
#_retVal := MOVE_BLK_VARIANT(SRC:=#_modulInfoBuffer, COUNT:=#COPY_SIZE, SRC_INDEX:=1, DEST_INDEX:=#_index, DEST=>#ModulInfo);
IF #_retVal <>0 THEN // error ?
#Modul_SetInfo := FALSE;
RETURN;
END_IF;
END_IF;
END_FOR;
//All modul elements at home :)...
#Modul_SetInfo := TRUE;
END_IF;
END_IF;