1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | // tell it what datatype it should carry (which may NOT change during it's use), // provide a process value // // Example // MyProperty : FB_Property; // MyProperty.Key := "Property1"; // Choose a name (static) // MyProperty.Value := TRUE; // Provide a value. Any process value changes are detected and signaled for sending automaticaly, you don't have to do anything special! {attribute 'call_after_init'} itfPropertyOwner : IPropertyOwner; // attach to a Property Owner, like an IMetric END_VAR VAR_OUTPUT {attribute 'no_copy'} itfProperty : IProperty := THIS^; _NotifyThem : BOOL := FALSE; // TRUE if the Value is changed in regard of the previous stored value // IElement _itfPrev : IElement; _itfNext : IElement; _itfList : IList; //IValue _dataType : PropertyDataType := PropertyDataType.Unknown; _uLint : ULINT; _lReal : LREAL; _WSTRING : WSTRING(gc_sparkplug.supported_string_lengths); //BYTES VALUE IS NOT IMPLEMENTED IF THIS^.itfPropertyOwner <> 0 THEN itfPropertyOwner.RegisterProperty( THIS^ ); END_IF |