Iterators ¶ Iterators for simple iterating through the ObjectDictionary of a slave. ObjectIterator (FunctionBlock) Current (Property) MoveNext (Method) ObjectDictionary (Property) Reset (Method) SubObjectIterator (FunctionBlock) Current (Property) MoveNext (Method) Object (Property) Reset (Method)
ObjectIterator (FB) ¶ FUNCTION_BLOCK ObjectIterator IMPLEMENTS IObjectIterator Helps to iterate through the objects of an ObjectDictionary. For using this iterator property ObjectIterator.ObjectDictionary must be set to the IObjectDictionary interface. This interface can be retrieved from the CANopenDevice instance. After setting the Object Dictionary interface the iterator points in front of the first element of the Object Dictionary (==> property ObjectIterator.Current is 0). The iterator can be moved to the next element by calling the ObjectIterator.MoveNext method. If ObjectIterator.MoveNext returns TRUE the object can be retrieved by calling Property ObjectIterator.Current . The iterator can be set back in front of the first element by calling ObjectIterator.Reset . Example Following example iterates through all objects in an Object Dictionary an increments a counter. METHOD CountObjects VAR_INPUT END_VAR VAR_OUTPUT udiObjectCount : UDINT ; udiSubObjCount : UDINT ; END_VAR VAR ObjIterator : _3SCSS.ObjectIterator ; SubObjIterator : _3SCSS.SubObjectIterator ; itfCurObj : _3SCSS.IODObject ; itfCurSubObj : _3SCSS.IODSubObject ; END_VAR //Link Object Iterator to Object Dictionary ObjIterator.ObjectDictionary := _itfOD ; //Go through all objects WHILE ObjIterator.MoveNext () DO itfCurObj := ObjIterator.Current ; //Note: No NULL check necessary here because MoveNext returned TRUE. udiObjectCount := udiObjectCount + 1 ; //Link SubObjIterator with current Object SubObjIterator.Object := itfCurObj ; //Go through all SubObjects WHILE SubObjIterator.MoveNext () DO itfCurSubObj := SubObjIterator.Current ; udiSubObjCount := udiSubObjCount + 1 ; END_WHILE END_WHILE Properties: Current ObjectDictionary Methods: MoveNext Reset Structure: Current (Property) MoveNext (Method) ObjectDictionary (Property) Reset (Method)
ObjectIterator.Current (PROP) ¶ PROPERTY Current : IODObject Gets the object where the iterator points to.
Storage (FB) ¶ FUNCTION_BLOCK Storage IMPLEMENTS STO.IStorage2 Properties: StorageEncoding StorageIsReadOnly StorageLockingState StorageNumOfTables StorageSchemaVersion StorageUserVersion StorageVersion Methods: StorageClear StorageClose StorageGetMetrics StorageGetPath StorageOpenFile StorageReorg TableOpen TransactionBegin UtilityGetCurrentDateAndTime UtilityRandomness StorageGetIndexId StorageGetTableId Structure: IStorage2 StorageGetIndexId (Method) StorageGetTableId (Method) StorageClear (Method) StorageClose (Method) StorageEncoding (Property) StorageGetMetrics (Method) StorageGetPath (Method) StorageIsReadOnly (Property) StorageLockingState (Property) StorageNumOfTables (Property) StorageOpenFile (Method) StorageReorg (Method) StorageSchemaVersion (Property) StorageUserVersion (Property) StorageVersion (Property) TableOpen (Method) TransactionBegin (Method) UtilityGetCurrentDateAndTime (Method) UtilityRandomness (Method)
IStorage2 ¶ StorageGetIndexId (Method) StorageGetTableId (Method)
Storage.StorageClear (METH) ¶ METHOD StorageClear : STO.ERROR InOut: Scope Name Type Return StorageClear STO.ERROR
Storage.StorageClose (METH) ¶ METHOD StorageClose : STO.ERROR InOut: Scope Name Type Return StorageClose STO.ERROR
Storage.StorageEncoding (PROP) ¶ PROPERTY StorageEncoding : STO.ENCODING
Storage.StorageGetMetrics (METH) ¶ METHOD StorageGetMetrics : STO.ERROR InOut: Scope Name Type Return StorageGetMetrics STO.ERROR Inout mMetrics STO.METRICS
Storage.StorageGetPath (METH) ¶ METHOD StorageGetPath : STO.ERROR InOut: Scope Name Type Return StorageGetPath STO.ERROR Inout sPath CAA.FILENAME