
Сообщение от
Валенок
Обычный указатель как?
Имеете ввиду POINTER?
Вот, например тот же:
Код:
TYPE SOLENOID_VALVE : //соленодный клапан
STRUCT
wsTitle : WSTRING;
xRun : BOOL; //команда открыть/закрыть э/м клапана
xWork : BOOL; //ответ э/м клапана "открыт/закрыт"
xLocal : BOOL; //местный
xBlock : BOOL; //блокировка
xAlarm : BOOL; //авария клапана
fbModeControl : MODE_CONTROL;
ptRetain : REFERENCE TO SV_SETTINGS;
// Визуализация
sVisuPictureID : STRING := 'SolenoidValveCloseNC';
END_STRUCT
END_TYPE
К нему идет вот такая ptRetain:
Код:
TYPE SV_SETTINGS : //энергонезависимые уставки
STRUCT RETAIN PERSISTENT
rTimeMaxOpen : REAL := 3; //максимальное время открытия, сек
rTimeMaxClose : REAL := 3; //максимальное время закрытия, сек
usiMode : USINT := 0; //режим (0-ручной, 1-авто, 2-наладочный)
eNormalState : NORMAL_STATE := NORMAL_STATE.NC; //нормальное состояние (0-NC, 1-NO)
END_STRUCT
END_TYPE
Экземпляры:
Код:
astGVS : ARRAY[c_iStartNumGVS..c_iEndNumGVS] OF SOLENOID_VALVE; //клапана соленоидные
astGVS_Ret : ARRAY[c_iStartNumGVS..c_iEndNumGVS] OF SV_SETTINGS; //клапана соленоидные
В инициализации добавлена ссыылка:
Код:
astGVS[i].ptRetain REF= astGVS_Ret[i];