1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Сохранить базу данных в память CPU

ПЛК SIMATIC (S7-200, S7-1200, S7-300, S7-400, S7-1500, ET200)
Ответить

Автор темы
obo_ru
здесь недавно
здесь недавно
Сообщения: 9
Зарегистрирован: 30 ноя 2017, 10:06
Имя: Алексей

Сохранить базу данных в память CPU

Сообщение obo_ru »

Добрый день! Подскажите, пожалуйста, как сохранить в память CPU (6ES7214-1HG40-0XB0) показания инкрементального энкодера. Данные энкодера записываются в DB. При выкл. и вкл. контроллера данные уходят в исходное значение Start value.
Флэш карта отсутствует.
Заранее спасибо.

misha_os
осмотрелся
осмотрелся
Сообщения: 131
Зарегистрирован: 03 фев 2011, 13:54
Имя: Михаил
Страна: Россия
город/регион: Ульяновск
Поблагодарили: 16 раз

Сохранить базу данных в память CPU

Сообщение misha_os »

Посмотрите на поле "Retain" (установить галочку) в FB для этого DB или в GDB.

Автор темы
obo_ru
здесь недавно
здесь недавно
Сообщения: 9
Зарегистрирован: 30 ноя 2017, 10:06
Имя: Алексей

Сохранить базу данных в память CPU

Сообщение obo_ru »

misha_os писал(а): 21 янв 2020, 09:30 Посмотрите на поле "Retain" (установить галочку) в FB для этого DB или в GDB.
Я установил галочку в "Enable download without reinitialization for retentive tags". Но это не помогает, все равно значения уходят. Может нужно указать в окошке Retentive memory reserve размер bytes?

misha_os
осмотрелся
осмотрелся
Сообщения: 131
Зарегистрирован: 03 фев 2011, 13:54
Имя: Михаил
Страна: Россия
город/регион: Ульяновск
Поблагодарили: 16 раз

Сохранить базу данных в память CPU

Сообщение misha_os »

Не в свойствах DB. Откройте FB, если DB создается от FB или откройте DB если он Global и смотрите столбец "Retain" для данной переменной (установить галочку).

Автор темы
obo_ru
здесь недавно
здесь недавно
Сообщения: 9
Зарегистрирован: 30 ноя 2017, 10:06
Имя: Алексей

Сохранить базу данных в память CPU

Сообщение obo_ru »

misha_os писал(а): 21 янв 2020, 10:01 Не в свойствах DB. Откройте FB, если DB создается от FB или откройте DB если он Global и смотрите столбец "Retain" для данной переменной (установить галочку).
Галочку в GDB retain установил, тоже не помогает.

v0v
не первый раз у нас
не первый раз у нас
Сообщения: 343
Зарегистрирован: 12 дек 2018, 14:47
Имя: Влад
Благодарил (а): 1 раз
Поблагодарили: 44 раза

Сохранить базу данных в память CPU

Сообщение v0v »

Инкрементный энкодер при включении питания устанавливается в "0" (HOME позиция потом в рабочую иногда одно и тоже). Если вы хотите запомнить последнее значение до выключения питания то соответственно написать программу, что бы в DB после включения питания не было передачи (имхо)

misha_os
осмотрелся
осмотрелся
Сообщения: 131
Зарегистрирован: 03 фев 2011, 13:54
Имя: Михаил
Страна: Россия
город/регион: Ульяновск
Поблагодарили: 16 раз

Сохранить базу данных в память CPU

Сообщение misha_os »

См тогда логику, как формируется переменная.
Eсли данной переменной GDB всегда присваивается значение от энкодера, то переменная и будет всегда ему равна, после reset или off/on CPU будет равно начальному значению энкодера, т.е. 0 для инкрементального энкодера. Делайте, например, инициализацию начальных значений при включении CPU в OB100. Вам по алгоритму в ППО виднее.

Автор темы
obo_ru
здесь недавно
здесь недавно
Сообщения: 9
Зарегистрирован: 30 ноя 2017, 10:06
Имя: Алексей

Сохранить базу данных в память CPU

Сообщение obo_ru »

Сигналы А и В настроены через быстрый счетчик CTRL_HSC. От переменной ID1000 перемещаю в GDB. Может сам счетчик устанавливает GDB в исходное значение? https://yadi.sk/i/M0p4YR6Zmmmefw
https://yadi.sk/i/M0p4YR6Zmmmefw

misha_os
осмотрелся
осмотрелся
Сообщения: 131
Зарегистрирован: 03 фев 2011, 13:54
Имя: Михаил
Страна: Россия
город/регион: Ульяновск
Поблагодарили: 16 раз

Сохранить базу данных в память CPU

Сообщение misha_os »

Вы сами и ответили на свой вопрос, не может, а устанавливает. Соответственно вводите дельту значение которое будет сохраняться в памяти CPU.
Самое простое:
1. GDB.Name - текущее значение с включенным свойством "Retain";
2. GDB.Delta - значение смещения с включенным свойством "Retain";
3. ID1000 - текущее значение от энкодера;
3. GDB.Name := ID1000 + GDB.Delta;
4. GDB.Delta := 0 - по какому либо условию, когда надо установить значение от энкодера без смещения;
5. GDB.Delta := GDB.Name - прописать в OB100.
Ответить

Вернуться в «Simatic TIA Portal»