Ставил я их ) видимо импульс проходит настолько быстро, что не заметно. Поставлю tof и посмотрю. Спасибо
Доброе утро.
Прошу помощи по организации структур и правильному расположению.
есть набор данных:
---- Эти по идее должны быть persistent
rTempSetPoint
rTempHysteresis
rTempAlarmLimitHi
rTempAlarmLimitLo
----- А вот эти меняются
xAlarmOutOfRange
----- причём вот эту структуру очень удобно привязывать к физическому сходу, сразу объявляя 3 поля
ANALOG_SENSOR_VALUE
rValue REAL Измеренное значение
uiCycleTime UINT Циклическое время
eStatus ANALOG_SENSOR_ERRORS Код статуса входа
Сначала демал сделать:
TYPE TEMP_POINT EXTENDS ANALOG_SENSOR_VALUE :
STRUCT
rTempSetPoint
rTempHysteresis
rTempAlarmLimitHi
rTempAlarmLimitLo
xAlarmOutOfRange
END_STRUCT
END_TYPE
1) Но потом не понял можно ли как то из получившейся расширенной структуры вытащить структуру ANALOG_SENSOR_VALUE для привязки к физическим аналоговым входам. Чтобы не каждому каналу прописывать отдельную переменную, а сразу к 3, как это можно сделать если объявлять ANALOG_SENSOR_VALUE
2) Как лучше поступать с уставкой, гистерезисом и верхним/нижним пределом для каждого датчика?
Разделить на 2 отдельные структуры и запихать одну в персист? или объявлять в коде один раз?
Можно ли в персист сразу выдавать элементам структуры изначальные значения?
Последний раз редактировалось beatitas; 05.12.2023 в 13:02.
Откуда вы берёте вообще входы? С какого модуля ? Сколько модулей?
Чтобы потом поместить их в структуру
ANALOG_SENSOR_VALUE
rValue REAL Измеренное значение
uiCycleTime UINT Циклическое время
eStatus ANALOG_SENSOR_ERRORS Код статуса входа
Здравствуйте коллеги, вопрос такой: на ПЛК210 на дискретных входах висят сигналы(у меня аварийные), мне их нужно протестировать, как они в программе работают. Сигналы на TRUE, если я их фиксирую на FALSE, то через случайное время от 2 до 20 секунд они переходят на TRUE и потом опять на FALSE. Подскажите это нормально? Наверное через какое то количество циклов происходит самопроизвольный переход?Capture.PNG
1) Нет, так не получится. В состав TEMP_POINT входят только поля ANALOG_SENSOR_VALUE, а не ее экземпляр.
2) Как вам удобнее. Вы лучше знаете особенности своей задачи - если в целом проект не особо большой, то можно оставить одну структуру и объявлять ее экземпляры как PERSISTENT. Задать начальные значения полям структуры в этом случае можно.
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
СODESYS V3.5: Repository Archive V3.5 SP4 (необходим для старых СПК) / Раздел CDS V3.5 на сайте
Форум: Вопросы и ответы / Визуализация / Настройка обмена с другими устройствами
Web-панель ВП110 / Modbus-индикатор СМИ2-М
Telegram: @JuneSmellsLikeBlood | e-mail: e.kislov@owen.ru | oscat.ru | Как обратиться в техподдержку?
Как отлаживать ошибки | Отладка проектов в CODESYS V3.5 | XY problem | Как правильно задавать вопросы | AnyDesk
Входы с AI модулей MB210-101. Их в сети этого плк 5 штук. то есть до 40 сигналов. по факту скорее всего 27. Просто вентмашины на разных этажах поэтому отдельные модули.
Евгений, благодарю.
То есть при наличии всего 40 сигналов структуры можно целиком можно объявлять в Persistent, включая оперативные сигналы - заначения датчиков и ошибок?
но объявлять их можно только так
stPoolWaterTempSp: TEMP_POINT_SETTINGS; (*Уставка температуры воды в бассейне*)
stPoolWaterTempSp.rSetPoint: REAL :=28;
stPoolWaterTempSp.rHysteresys: REAL :=0.5;
stPoolWaterTempSp.rAlarmLimitHi: REAL :=30;
stPoolWaterTempSp.rAlarmLimitLo: REAL :=26;
"короткое" объявление работать не будет?