Добрый день.
Прошу прощения за наверное делитанский вопрос.
Это мой первый проект на этих контроллерах - конкретно на контроллере Q003UDE и среда программирования GX2. И в общем все понятно и не вызывает задруднений - GX2 мне показался очень похожим на CoDeSys2.3.
Но не как не вкурю работу с Retain переменными. Если для битовых переменных почти все понятно - тут есть Latch Relay, то с переменными байтовыми у меня ступор - почему то в контроллерах этой серии нет сохраняемых при снятии питания переменных как класса. Мне не нужно каких то специальных применений - нужно в общем то обычное действие:
Задать начальное значение параметра - ну пусть это будет например уставка скорости 80%, далее заливаю в контроллер и он начинает работать с этим значением уставки, далее я меняю уставку например с панели оператора или программно в самом ПЛК например на 90%- новая уставка сохраняется в этой переменной и после снятия и подачи питания это значение сохраняется.
В общем наверное самая простая задача - и например на ПЛК Сименс S7-1500 или ПЛК160 от Овен, да даже на программируемом реле ПР200 это все делается элементарно - это то с чем я много работал. Но тут...
В общем я пока для себя понял что могу использовать файловые регистры, начальную инициализацию их делать с проверкой наверное какого-то маркера первого включения ПЛК после загрузки проекта - в общем на мой взгляд костыли какие-то.
У меня большие сомнения что я правильно курю мануал - и вероятно есть простое решение.
Возможно кто то может поделиться простым примером или хотя бы намекнет правильно ли я мыслю.
Через неделю у меня появиться резервный ПЛК и на нем я конечно попробую все доступные методы сохранения значений - но пока время есть хочется подготовиться и разобраться в этом.
Приложу на всякий случай настройки распределения памяти для этого контроллера - может натыкаете меня туда лицом ))
С уважением.
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Контроллеры Mitsubishi Melsec Q работа с retain переменными
Модераторы: Глоб.модераторы, специалисты по PLC
-
- здесь недавно
- Сообщения: 29
- Зарегистрирован: 08 янв 2016, 23:01
- Имя: Чумакин Григорий Сергеевич
- Страна: Россия
- город/регион: Алтай-Сахалин
- Благодарил (а): 4 раза
- Поблагодарили: 2 раза
Контроллеры Mitsubishi Melsec Q работа с retain переменными
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- не первый раз у нас
- Сообщения: 395
- Зарегистрирован: 06 фев 2020, 16:09
- Имя: Андрей
- город/регион: Екатеринбург
- Поблагодарили: 69 раз
Контроллеры Mitsubishi Melsec Q работа с retain переменными
Но ведь "Latch (power failure latch) range L0 to 8191 (default)
Latch range can be set for B, F, V, T, ST, C, D, and W. (Setting by parameters)"
И вон, у вас есть D - Data register (один байт), а не D - extended data . Задаёте сколько ячеек, от 0 до 10000 будут энергонезависимые и всё.
У FX как и дельты - энергонезависимые начинались с определенного числа. А вы еще и таблицу переменных используете, то подсказать не могу как там (хотя внизу видно, что VAR_RETAIN используется 0).
Latch range can be set for B, F, V, T, ST, C, D, and W. (Setting by parameters)"
И вон, у вас есть D - Data register (один байт), а не D - extended data . Задаёте сколько ячеек, от 0 до 10000 будут энергонезависимые и всё.
У FX как и дельты - энергонезависимые начинались с определенного числа. А вы еще и таблицу переменных используете, то подсказать не могу как там (хотя внизу видно, что VAR_RETAIN используется 0).
-
- здесь недавно
- Сообщения: 29
- Зарегистрирован: 08 янв 2016, 23:01
- Имя: Чумакин Григорий Сергеевич
- Страна: Россия
- город/регион: Алтай-Сахалин
- Благодарил (а): 4 раза
- Поблагодарили: 2 раза
Контроллеры Mitsubishi Melsec Q работа с retain переменными
Andreyit день добрый - вот почемуто мне это не попалось на глаза:
Все теперь встало на место. Спасибо!
Ну вот насмешил публику.
Тогда остается вопрос по начальной инициализации - если использовать Device Initial Value - то я так понимаю инициализация будет происходить начальными значениями при каждом старте ПЛК. А как сделать чтобы только один раз при загрузке проекта - а далее при последующих включениях уже использовались сохраненные значения.
Ну вот например в кодесис я пишу так:
VAR_GLOBAL RETAIN PERSISTENT
(*for PLC_WEIGHT*)
rScaleInputForceHWmin : REAL:= 0; (*минимум входного сигнала датчика*)
rScaleInputForceHWmax : REAL := 1; (*максимум входного сигнала датчика*)
rScaleOutputForceHWmin : REAL := 0; (*минимум входного сигнала датчика в кг*)
rScaleOutputForceHWmax : REAL := 24473; (*максимум входного сигнала датчика в кг*)
rHWFactor : REAL := 1; (*коэффициент подмешивания сигнала*)
А я решил что только для битовых типа L такое работает.
Все теперь встало на место. Спасибо!
Ну вот насмешил публику.
Тогда остается вопрос по начальной инициализации - если использовать Device Initial Value - то я так понимаю инициализация будет происходить начальными значениями при каждом старте ПЛК. А как сделать чтобы только один раз при загрузке проекта - а далее при последующих включениях уже использовались сохраненные значения.
Ну вот например в кодесис я пишу так:
VAR_GLOBAL RETAIN PERSISTENT
(*for PLC_WEIGHT*)
rScaleInputForceHWmin : REAL:= 0; (*минимум входного сигнала датчика*)
rScaleInputForceHWmax : REAL := 1; (*максимум входного сигнала датчика*)
rScaleOutputForceHWmin : REAL := 0; (*минимум входного сигнала датчика в кг*)
rScaleOutputForceHWmax : REAL := 24473; (*максимум входного сигнала датчика в кг*)
rHWFactor : REAL := 1; (*коэффициент подмешивания сигнала*)
-
- не первый раз у нас
- Сообщения: 395
- Зарегистрирован: 06 фев 2020, 16:09
- Имя: Андрей
- город/регион: Екатеринбург
- Поблагодарили: 69 раз
Контроллеры Mitsubishi Melsec Q работа с retain переменными
Простейший костыль, в виде условия проверки (сравнения), что число не ушло за границы определенной области, и включение\выключение маркера? (Тогда Device Initial Value вообще нельзя использовать.) Может что-то из системных маркеров есть (кроме SM402)? Их там много больше чем в FX.
И принудительный сброс на заводские все равно должен быть.
И принудительный сброс на заводские все равно должен быть.
-
- здесь недавно
- Сообщения: 29
- Зарегистрирован: 08 янв 2016, 23:01
- Имя: Чумакин Григорий Сергеевич
- Страна: Россия
- город/регион: Алтай-Сахалин
- Благодарил (а): 4 раза
- Поблагодарили: 2 раза
Контроллеры Mitsubishi Melsec Q работа с retain переменными
День добрый всем. Напишу сюда вдруг кому надо будет. Сделал программный модуль инициализации с проверкой переменной защелки что это первая прошивка либо сброшена память защелок. На Q03UDE проверил на реальном контроллере - меня все устраивает. Device Initial Value не использовал - не удобно - ненаглядно, для меня по крайней мере. В общем вот так оставил: