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

BECKHOFF Сохранение переменной в энергонезависимой памяти

Закрыто

Автор темы
shnur-ik
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 31 дек 2016, 00:25
Имя: Ильин Александр
Благодарил (а): 3 раза

BECKHOFF Сохранение переменной в энергонезависимой памяти

Сообщение shnur-ik »

Помогите новичку разобраться. Есть CX9000. Программа на ST. Необходимо, чтобы переменная MessProzent1 сохранялась при выключении.
Вот то, что я попытался наваять.

Код: Выделить всё

...
MessProzent_SAVE    :FB_WritePresistentData;
END_VAR
VAR PERSISTENT
MessProzent1: UNIT;
END_VAR

Код: Выделить всё

...
IF kalibkanal=1 AND BCDZ1 THEN MessProzent1:= DWORD_TO_UNIT (32768*100/Sonde_Becken_1); END_IF;
....
MessProzent_SAVE  (
NETID:=' ',
PORT:=801,
START:=BCDZ1);
Т.е. при нажатии на кнопку "BCDZ1" происходит калибровка датчика и переменная MessProzent1 должна сохраниться. Но ничего не сохраняется. Вопросы:
1. Куда она сохраняется на ПК или на ПЛК?
2. Какой порт должен быть? (я взял из PlcSetings (Target) Load/Store Retain Data)
Прошу сильно не пинать и наставить новичка на путь истинный.

Ryzhij
почётный участник форума
почётный участник форума
Сообщения: 5631
Зарегистрирован: 07 окт 2011, 09:12
Имя: Гаско Вячеслав Эриевич
Страна: Россия
город/регион: Рязань
Благодарил (а): 600 раз
Поблагодарили: 756 раз

BECKHOFF Сохранение переменной в энергонезависимой памяти

Сообщение Ryzhij »

А если в условии вместо AND операцию OR поставить, то сохраняется по кнопке? ;)
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)

Автор темы
shnur-ik
здесь недавно
здесь недавно
Сообщения: 2
Зарегистрирован: 31 дек 2016, 00:25
Имя: Ильин Александр
Благодарил (а): 3 раза

BECKHOFF Сохранение переменной в энергонезависимой памяти

Сообщение shnur-ik »

Я подставил ip ПЛК

Код: Выделить всё

NETID:='192.168.1.10.1.1',
теперь сохраняется, но только один раз. Т.е. если перезагрузить переменная сохраняется, если перезагрузить ещё раз, не нажимая кнопку, переменная обнуляется.

Dotarev
знаток Eplan
знаток Eplan
Сообщения: 260
Зарегистрирован: 12 июн 2014, 06:17
Имя: Мишкин Иван
Страна: Россия
город/регион: Самара
Благодарил (а): 16 раз
Поблагодарили: 70 раз

BECKHOFF Сохранение переменной в энергонезависимой памяти

Сообщение Dotarev »

1. По умолчанию, переменные сохраняются в файлы:
bootdrive:\TwinCat\Boot\TCPLC_R_x.wbp - retain variables;
bootdrive:\TwinCat\Boot\TCPLC_T_x.wbp - persistent variables.
Сохранение производится (по умолчанию) при завершении работы TwinCat ("shutting TwinCAT down"). При старте PLC программы TwinCat производит попытку чтения этих файлов. Если чтение удачно, переменные инициализируются данными из файлов. Наличие/отсутствие ошибок можно проконтролировать через поле bootDataFlags структуры SystemInfo (гуглить "bootDataFlags twincat").
2.
shnur-ik писал(а): :FB_WritePresistentData;
Думаю, в программе у Вас всё же FB_WritePersistentData. Вызывать блок необходимо только если требуется немедленное сохранение в файл. С NetId Вы разобрались, PORT указали правильно, если только PLC программу запускаете дефолтно - как первый процесс. Но функциональный блок срабатывает по "переднему фронту" сигнала START ("The function block is activated by a positive edge at this input."). Это значит, что перед вызовом FB_WritePersistentData с параметром START=True необходимо один или несколько раз вызвать FB_WritePersistentData с параметром START = False (возможно, в предыдущих PLC циклах). Проверьте, изменяет ли свое значение BCDZ1. Убедитесь, что в программе не может быть случая "нештатного" вызова блока FB_WritePersistentData с параметром START=True (т.е. в момент времени, когда MessProzent1 ещё не калибрована).
3. На всякий случай, проверьте батарейку CR2032 - она под крышкой между Ethernet коннекторами.

Dotarev
знаток Eplan
знаток Eplan
Сообщения: 260
Зарегистрирован: 12 июн 2014, 06:17
Имя: Мишкин Иван
Страна: Россия
город/регион: Самара
Благодарил (а): 16 раз
Поблагодарили: 70 раз

BECKHOFF Сохранение переменной в энергонезависимой памяти

Сообщение Dotarev »

Кстати, имейте в виду, что в большинстве контроллеров Beckhoff (в т.с. CX9000) имеется также "The Non-Volatile Random Access Memory (usualy called by its acronym NOVRAM, NV-RAM or NOV-RAM)". NVRAM chip имеет ROM, RAM и конденсатор. Во время работы запись производится в RAM, а при пропадании напряжения питания за счет энергии, запасенной в конденсаторе, производится запись содержимого RAM в ROM. Таким образом, становится допустимым перезаписывать переменные в сохраняемую память хоть каждый цикл без риска преждевременного выхода из строя FLASH памяти контроллера. Задействовать данную область памяти можно через System Manager - привязкой переменных в NOV/DP-RAM.

7Fobos
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 17 янв 2018, 21:22
Имя: 7Фобос
Страна: Россия
Благодарил (а): 1 раз

BECKHOFF Сохранение переменной в энергонезависимой памяти

Сообщение 7Fobos »

Dotarev писал(а): 23 янв 2017, 09:59 Кстати, имейте в виду, что в большинстве контроллеров Beckhoff (в т.с. CX9000) имеется также "The Non-Volatile Random Access Memory (usualy called by its acronym NOVRAM, NV-RAM or NOV-RAM)". NVRAM chip имеет ROM, RAM и конденсатор. Во время работы запись производится в RAM, а при пропадании напряжения питания за счет энергии, запасенной в конденсаторе, производится запись содержимого RAM в ROM. Таким образом, становится допустимым перезаписывать переменные в сохраняемую память хоть каждый цикл без риска преждевременного выхода из строя FLASH памяти контроллера. Задействовать данную область памяти можно через System Manager - привязкой переменных в NOV/DP-RAM.
Не могли бы вы рассказать об этом поподробнее? В простейшем случае, допустим мне нужно сохранять в энергонезависимой памяти значение булевой переменной. Я создал в NOV-DP\RAM, в разделе Input переменную типа bit и привязал к ней свою булевую переменную, но далее я не мог менять значение этой переменной из программы (видимо потому, что ее значение постоянно обновлялось из входной переменной). Далее я попытался привязать ее к выходной переменой в NOV-DP\RAM, после этого появилась возможность менять ее значение из программы, но при этом значение ее не сохраняется при отключении питания.

Dotarev
знаток Eplan
знаток Eplan
Сообщения: 260
Зарегистрирован: 12 июн 2014, 06:17
Имя: Мишкин Иван
Страна: Россия
город/регион: Самара
Благодарил (а): 16 раз
Поблагодарили: 70 раз

BECKHOFF Сохранение переменной в энергонезависимой памяти

Сообщение Dotarev »

7Fobos писал(а): 13 мар 2018, 09:54 Не могли бы вы рассказать об этом поподробнее?
Без обид. Судя по ошибкам, Вам показан Петров. Программируемые контроллеры. Практическое применение языков стандарта МЭК 61131-3. Затем, по мере набивания шишек, Beckhoff Information System (в свободном доступе на сайте производителя).
<Offtop>Обучение в профильном ВУЗе, по крайней мере ближайшем ко мне географически, помогает мало. Правда, очное обучение дает много свободного времени, которое некоторые тратят на пиво, а некоторые... на самообразование. Самообразование наше всё! </Offtop>

7Fobos
здесь недавно
здесь недавно
Сообщения: 5
Зарегистрирован: 17 янв 2018, 21:22
Имя: 7Фобос
Страна: Россия
Благодарил (а): 1 раз

BECKHOFF Сохранение переменной в энергонезависимой памяти

Сообщение 7Fobos »

неужели произведя всего несколько действий, я совершил такое огромное количество ошибок? ))

Отправлено спустя 1 минуту 56 секунд:
За книгу спасибо, а на Beckhoff Information System я был, но к сожалению не разобрался..

Отправлено спустя 15 минут 49 секунд:
Про использование NOV-DP-RAM в Twincat 3 там написано очень доступно, но меня интересует twincat 2, и полезной мне информации по этой части я просто не нашел

Dotarev
знаток Eplan
знаток Eplan
Сообщения: 260
Зарегистрирован: 12 июн 2014, 06:17
Имя: Мишкин Иван
Страна: Россия
город/регион: Самара
Благодарил (а): 16 раз
Поблагодарили: 70 раз

BECKHOFF Сохранение переменной в энергонезависимой памяти

Сообщение Dotarev »

7Fobos писал(а): 14 мар 2018, 09:34 но меня интересует twincat 2
Beckhoff Information System, Search->Generic NOV-RAM
Закрыто

Вернуться в «Beckhoff»