- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь и здесь, а студентам - обязательно здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Сохранить базу данных в память CPU
-
- здесь недавно
- Сообщения: 9
- Зарегистрирован: 30 ноя 2017, 10:06
- Имя: Алексей
Сохранить базу данных в память CPU
Добрый день! Подскажите, пожалуйста, как сохранить в память CPU (6ES7214-1HG40-0XB0) показания инкрементального энкодера. Данные энкодера записываются в DB. При выкл. и вкл. контроллера данные уходят в исходное значение Start value.
Флэш карта отсутствует.
Заранее спасибо.
Флэш карта отсутствует.
Заранее спасибо.
-
- осмотрелся
- Сообщения: 131
- Зарегистрирован: 03 фев 2011, 13:54
- Имя: Михаил
- Страна: Россия
- город/регион: Ульяновск
- Поблагодарили: 16 раз
Сохранить базу данных в память CPU
Посмотрите на поле "Retain" (установить галочку) в FB для этого DB или в GDB.
-
- здесь недавно
- Сообщения: 9
- Зарегистрирован: 30 ноя 2017, 10:06
- Имя: Алексей
Сохранить базу данных в память CPU
Я установил галочку в "Enable download without reinitialization for retentive tags". Но это не помогает, все равно значения уходят. Может нужно указать в окошке Retentive memory reserve размер bytes?
-
- осмотрелся
- Сообщения: 131
- Зарегистрирован: 03 фев 2011, 13:54
- Имя: Михаил
- Страна: Россия
- город/регион: Ульяновск
- Поблагодарили: 16 раз
Сохранить базу данных в память CPU
Не в свойствах DB. Откройте FB, если DB создается от FB или откройте DB если он Global и смотрите столбец "Retain" для данной переменной (установить галочку).
-
- здесь недавно
- Сообщения: 9
- Зарегистрирован: 30 ноя 2017, 10:06
- Имя: Алексей
-
- не первый раз у нас
- Сообщения: 343
- Зарегистрирован: 12 дек 2018, 14:47
- Имя: Влад
- Благодарил (а): 1 раз
- Поблагодарили: 44 раза
Сохранить базу данных в память CPU
Инкрементный энкодер при включении питания устанавливается в "0" (HOME позиция потом в рабочую иногда одно и тоже). Если вы хотите запомнить последнее значение до выключения питания то соответственно написать программу, что бы в DB после включения питания не было передачи (имхо)
-
- осмотрелся
- Сообщения: 131
- Зарегистрирован: 03 фев 2011, 13:54
- Имя: Михаил
- Страна: Россия
- город/регион: Ульяновск
- Поблагодарили: 16 раз
Сохранить базу данных в память CPU
См тогда логику, как формируется переменная.
Eсли данной переменной GDB всегда присваивается значение от энкодера, то переменная и будет всегда ему равна, после reset или off/on CPU будет равно начальному значению энкодера, т.е. 0 для инкрементального энкодера. Делайте, например, инициализацию начальных значений при включении CPU в OB100. Вам по алгоритму в ППО виднее.
Eсли данной переменной GDB всегда присваивается значение от энкодера, то переменная и будет всегда ему равна, после reset или off/on CPU будет равно начальному значению энкодера, т.е. 0 для инкрементального энкодера. Делайте, например, инициализацию начальных значений при включении CPU в OB100. Вам по алгоритму в ППО виднее.
-
- здесь недавно
- Сообщения: 9
- Зарегистрирован: 30 ноя 2017, 10:06
- Имя: Алексей
Сохранить базу данных в память CPU
Сигналы А и В настроены через быстрый счетчик CTRL_HSC. От переменной ID1000 перемещаю в GDB. Может сам счетчик устанавливает GDB в исходное значение? https://yadi.sk/i/M0p4YR6Zmmmefw
https://yadi.sk/i/M0p4YR6Zmmmefw
https://yadi.sk/i/M0p4YR6Zmmmefw
-
- осмотрелся
- Сообщения: 131
- Зарегистрирован: 03 фев 2011, 13:54
- Имя: Михаил
- Страна: Россия
- город/регион: Ульяновск
- Поблагодарили: 16 раз
Сохранить базу данных в память CPU
Вы сами и ответили на свой вопрос, не может, а устанавливает. Соответственно вводите дельту значение которое будет сохраняться в памяти 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.
Самое простое:
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.