
Сообщение от
Евгений Кислов
В PERSISTANT можно объявлять всё, что угодно, пока там хватает места (всего под RETAIN и PERSISTANT суммарно выделено чуть меньше 64 Кб).
Что вы называете "коротким" объявлением?
Спасибо.
Видимо перепутал с объявлениями массивов, когда поэлементно можно передавать начальные значения в строку, без необходимости писать каждый раз полное название структуры и элемента в ней.
Но не смог разобраться как передавать начальные значения
Сделал так:
Создал структуру:
Код:
TYPE CYCLE_TIMER :
STRUCT
xEnable: BOOL; (*Разрешение на работу*)
todStartTime: TOD; (*Время начала цикла*)
usiDuration: USINT; (*Длительность цикла*)
byDaysEnabled: BYTE; (*Дни включения цикла*)
usiDurationMin: USINT; (*Минимальная длительность цикла*)
usiDurationMax: USINT; (*Максимальная длительность цикла*)
tStopTime: TIME; (*Время окончания работы блока*)
END_STRUCT
END_TYPE
Объявил её в PersistentVars и передал ей начальные значения:
Код:
stWaterSypplyTimer: CYCLE_TIMER; (**)
stWaterSypplyTimer.todStartTime: TOD :=TOD#1:00:00; (*Время начала цикла водоподготовки*)
stWaterSypplyTimer.usiDuration: USINT :=10; (*Длительность цикла водоподготовки в часах*)
stWaterSypplyTimer.xEnable: BOOL :=TRUE; (*Разрешение на работу цикла водоподготовки*)
stWaterSypplyTimer.byDaysEnabled: BYTE :=2#0111_1111; (*Дни включения цикла водоподготовки младший бит понедельник старший воскресенье*)
stWaterSypplyTimer.usiDurationMin: USINT :=1;
stWaterSypplyTimer.usiDurationMax: USINT :=22;
В итоге кодсис ругается:
Код:
------ Компиляция : Приложение: Device.Application -------
типизировать код...
[WARNING] PLC200: Менеджер библиотек [Device: Plc Logic: Application]: C0100: Библиотека CmpTargetVisu не добавлена в Менеджер библиотек, либо не найдено корректной лицензии
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 34): C0373: Неиспользуемый путь экземпляра stPoolWaterTempSp.rSetPoint: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 35): C0373: Неиспользуемый путь экземпляра stPoolWaterTempSp.rHysteresys: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 36): C0373: Неиспользуемый путь экземпляра stPoolWaterTempSp.rAlarmLimitHi: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 37): C0373: Неиспользуемый путь экземпляра stPoolWaterTempSp.rAlarmLimitLo: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 6): C0373: Неиспользуемый путь экземпляра stWaterSypplyTimer.todStartTime: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 7): C0373: Неиспользуемый путь экземпляра stWaterSypplyTimer.usiDuration: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 8): C0373: Неиспользуемый путь экземпляра stWaterSypplyTimer.xEnable: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 9): C0373: Неиспользуемый путь экземпляра stWaterSypplyTimer.byDaysEnabled: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 10): C0373: Неиспользуемый путь экземпляра stWaterSypplyTimer.usiDurationMin: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 11): C0373: Неиспользуемый путь экземпляра stWaterSypplyTimer.usiDurationMax: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 21): C0373: Неиспользуемый путь экземпляра stPoolFilterBackwashTimer.xEnable: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 22): C0373: Неиспользуемый путь экземпляра stPoolFilterBackwashTimer.todStartTime: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 23): C0373: Неиспользуемый путь экземпляра stPoolFilterBackwashTimer.usiDuration: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 24): C0373: Неиспользуемый путь экземпляра stPoolFilterBackwashTimer.byDaysEnabled: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 25): C0373: Неиспользуемый путь экземпляра stPoolFilterBackwashTimer.usiDurationMin: переменная используется как плейсхолдер
[WARNING] PLC200: PersistentVars [Device: Plc Logic: Application](Строка 26): C0373: Неиспользуемый путь экземпляра stPoolFilterBackwashTimer.usiDurationMax: переменная используется как плейсхолдер
Не понимаю, как тогда правильно передавать начальные значения для элементов структуры?
Заранее спасибо.