Добрый день!
Собственно проблема. RETAIN стандартным способом работать отказывается, через костыль, в виде сохранения по времени - работает. Особо стандартным сохранением не пользуюсь, просто так, для справки.
Прошивка 1.0.4
Вид для печати
Добрый день!
Собственно проблема. RETAIN стандартным способом работать отказывается, через костыль, в виде сохранения по времени - работает. Особо стандартным сохранением не пользуюсь, просто так, для справки.
Прошивка 1.0.4
Здравствуйте.
Обновите прошивку до v1.0.5. Либо на v1.0.4 вручную активируйте режим записи по событию. Для этого в ПЛК-браузер сначала введите команду SetCyclicMode 100, перезагрузите ПЛК, а затем введите команду SetCyclicMode 0.
Руководство по работе с Retain-переменными
Скачать и посмотреть историю изменений по ссылке: https://www.owen.ru/forum/showthread.php?t=31023
Добрый день! Пишу программу теплосчетчика с использованием ФБ HEAT_METER из библиотеки oscat building и ФБ FLOW_METER из библиотеки oscat basic. В этих ФБ счетчик литров и счетчик тепла (джоули) в виде переменной IN_OUT находятся с левой стороны ФБ. Туда пишется значение, и туда же можно записать свое значение, обнулить счетчик. Эти данные мне необходимо сохранять как retain в энергонезависимой памяти. В счетчике расходомера переменная имеет тип данных UDINT, и прекрасно сохраняется после обесточивание, а в счетчике тепла переменная имеет тип данных REAL и обнуляется что бы я не делал. Переменные в коде находятся после "VAR RETAIN PERSISTENT"
Прошивка последняя, 1.0.06
Кстати, ПЛК старой версии автоматически (без каких-либо доп. действий со стороны пользователя) сохраняли все переменные объявленные в Modbus Slave, M02 так может?
MikeF
Да. Проверено в железе. Только следует учитывать, что перезалив программы или сброс переключателем на ПЛК обнуляет все данные.
WELL
Ответил в другой теме.
У меня почему-то не сохраняет, но свежие прошивки я ещё не пробовал.
Переключатель никак на работу не влияет, в любом положении исполняет программу, возможно его нужно объявлять в конфигурации, не изучал ещё.
Вроде как для того, что бы сбросить ПЛК, его необходимо включить с прижатым переключателем в положении "Сброс".
Не сохранять может по причине перезаписи в эти регистры из других мест программы.
MikeF
Вероятно имелось в виду "Создание загрузочного проекта", BootProject.
Да, иногда на форумах трудно общаться :)
Я понимаю что это опечатка.
Интересно к чему он это написал (думаю что относительно переключателя).
На ПЛК первого поколения, кстати говоря, рекомендовалось кнопку старта добавлять в конфиг во избежание глюков с произвольной остановкой.
Здесь если я её добавлю, но не буду использовать в программе, она потеряет своё действие описанное в руководстве?
Дабы шаловливыми руками кто не дернул её и не остановил конвейер.
На старых ПЛК я самолично ловил этот глюк. На новых такой проблемы не наблюдалось, и необходимости назначать\конфигурировать не было.
Мы долго не могли отловить этот глюк с кнопкой, пока у меня не появился очередной ПЛК, при прохождении рядом с которым определённого человека кнопка срабатывала :)
Оказалось, что если её слишком сильно нажать пружинка в ней ослабляется и возможны на редких экземплярах ложные срабатывания от вибраций.
А по поводу вопросов топикстартёра - retain работают только вместе с BootProject и тумблером в Start.
Я бы вообще хотел отключить этот переключатель, нужно просто добавить его в конфигурацию?
Проверил ещё раз. В Modbus slave не сохраняются данные, объявленные как retain сохраняются.
Прошивка старая, версия не совсем понятна, т.к. сейчас совсем другая нумерация https://www.owen.ru/forum/showthread.php?t=31023
У меня вот:
PLC model MODEL PLC 110-60
Binary VERSION 0.3.67
Need Target version >= 3.10
Compiled: 13:05:36 Feb 8 2017
STM32 binary version 114
Таргет 3.11.
Выключатель кстати добавлен в конфигурацию, возвращает 1, значит в положении Работа.
Я не объявляю специально как ретайн. Просто создаю переменную в конфиге в МодбасСлейв и всё. На версии прошивок вообще не обращал внимания.Цитата:
В Modbus slave не сохраняются данные, объявленные как retain сохраняются.
А что используется в качестве мастера?
Так и я не объявляю, создал одну retain переменную для проверки, сохраняется при перезагрузке, нет проблем. В modbus slave переменные не сохраняется.
Мастером является панель оператора, OPC или другое удаленное устройство опроса если есть.
На старых контроллерах это работало, здесь нет.
Нет, полностью его никогда нельзя было отключить. И в M02 он уже выведен в конфигурацию.
Просто у тумблера нет проблемы со случайными нажатиями.
Хотя, у одного клиента тумблера "самопроизвольно" переключались внутри закрытых шкафов. Даже прессформу поменяли, добавил по бокам губы для защиты тумблера.
Помогло :)
ИП320 не в первый раз использую, вроде раньше не перетирала.
Да и это какой-то космический сценарий. Панель стоит работает, потом внезапно самопроизвольно затирает адресное пространство, как её продавать такую :)
Создал отдельный slave к которому ничего не подключено. Та же история, не сохраняет, reset из-под codesys удаленно делаю.
Странно. У меня сейчас в разработке как раз связка ПЛК110+ИП320, таких глюков не замечено. Да и ранее не замечал. С СП307 работал по такой же схеме, нет проблем. Когда экспериментировал, делал панель слейвом, то да всё терялось.
Может не так поняли друг друга. Я имею ввиду: Онлайн->Cброс.
Как я уже писал выше, специально объявленная для тестов retain переменная при этом сбросе сохраняется.
А в Modbus slave нет, хотя, как также написано выше, к этому порту с отдельным тестовым модбасом вообще ничего не подключено.
Всё правильно. При любом сбросе ПЛК регистры модбас обнуляются.
Да, и это абсолютно правильное и ожидаемое поведение.
И при аппаратном сбросе по любой причине retain будет взят из предыдущей копии (если она была)
Ладно, а почему при пропадании питания в модбасе так же всё обнуляется? Речь то об этом, должно сохранятся судя по ПЛК первой версии.
Ну, бут конечно есть, без него даже и не посмотришь сохранилось у тебя что-то или нет :)
С панелью пока не могу экспериментировать, всё приходится делать удаленно, если только в конце месяца смогу проверить.
ИП320 не часто использовали, но например Delta серии DOP в таком режиме никогда модбас не обнуляли при подаче питания.
Вы хотите сказать что ИП320 при старте берет и по всем адресам (сколько регистров 100, 1500?) отправляет команду записи, это мягко скажем странное поведение.