PDA

Просмотр полной версии : Power Status в ПЛК110 не работает



MikeF
27.02.2014, 07:17
Всем доброго дня.

Столкнулся с интересной вещью - не пропадает (всегда true) статус питания при обесточивании ПЛК.
Была написана простейшая программа, которая записывает несколько переменных в память при переходе Power Status из true в false.
На трех ПЛК110-30(60) она не работала, на ПЛК150 всё прошло успешно.
Кроме того при работе с ПЛК150 codesys выдаёт сообщения типа Power down switch to backup и power up (при снятии и подаче питающего напряжения соответственно), при работе с ПЛК110 таких сообщений не наблюдается.
Игры с временем цикла и временем работы на АКБ не дали результатов, прошивка одного из плк также не помогла.
Пример программы в приложении. Значения записанные вручную в modbus slave сохраняются, т.к. с АКБ всё в порядке.

В чем может быть причина?

capzap
27.02.2014, 07:39
Если меняли прошивку, надо по новой поставить таргеты и по новой же создать проект

MikeF
27.02.2014, 08:07
Сделал, не помогает.

MikeF
28.02.2014, 05:32
Никто не пользуется этой фичей, или только у меня не работает? :)

lazy
28.02.2014, 09:11
Не уверен, что поможет... НО
Вместо F_TRIG1(CLK:= powstat, Q=> ); Напишите F_TRIG1(CLK:= powstat );
Все что написали в memo напишите в PLC_PRG, а memo удалите.
)

MikeF
28.02.2014, 19:28
По поводу первого вашего предложения.
Я постоянно пользуюсь вставкой объектов через F2, и практически никогда не стираю неиспользуемые IO во вставляемых клише, ни разу проблем не замечал.
По поводу удаления подпрограмм - я не понимаю как это может глючить, вы ж не предлагаете писать несколько сотен кб быдлокода сплошняком в PLC_PRG? :)

capzap
01.03.2014, 12:10
я все же считаю, что дело в правильной установке таргетов после перепрошивки
судя по тому как используется триггер, использовать модуль статистики Вам и не обязательно, если это инициализация при старте, то достаточно обычной булевой переменной, которая в первом цикле работы меняет свое состояние,а в условии когда она имеет начальное состояние провести инициализацию

MikeF
01.03.2014, 12:58
я все же считаю, что дело в правильной установке таргетов после перепрошивки
Не вижу связи. Было три контроллера, ни в одном битик питания не заработал. Я прошил один из контроллеров, не помогло.
После этого по вашему совету установил ещё раз таргеты, создал заново программу, опять не помогло.
А откуда вообще таргет знает прошивал я контроллер или нет (версия прошивки одна и та же, таргет 2.10 поддерживает прошивки как 2.14 так и 2.10)? Зачем их устанавливать после прошивки контроллера заново? И что значит правильная установка, есть какая-то хитрость?

судя по тому как используется триггер, использовать модуль статистики Вам и не обязательно, если это инициализация при старте, то достаточно обычной булевой переменной, которая в первом цикле работы меняет свое состояние,а в условии когда она имеет начальное состояние провести инициализацию
Не совсем так, если б была инициализация при старте, то я бы использовал R_TRIG, а у меня F_TRIG для отслеживания момента выключения питания и записи переменной состояния в память для последующего использования при старте.
На данный момент пришлось использовать дискретный сигнал с БП, работает...

Спорягин Кирилл
25.02.2016, 19:16
Добрый день, форумчане.
У меня также возникла проблема с тем, что бит Power Status не сбрасывается в 0 при съеме питания с контроллера. Данная проблема уже имеет решение?

Евгений Дударев
26.02.2016, 10:11
Добрый день, форумчане.
У меня также возникла проблема с тем, что бит Power Status не сбрасывается в 0 при съеме питания с контроллера. Данная проблема уже имеет решение?

Попробуйте проверить такое условие:
if pow_stat =0 then c:=c+1; (*увеличим счетчик*)
end_if

"С" объявите как retain word. Подключитесь к плк, создание загрузочного проекта, проверьте что с=0. Далее отключаетесь, снимаете питание. Ждете пару секунд, подаете обратно, подключаетесь к плк и смотрите чему у Вас равна переменная С. Можно попробовать такую проверку

Филоненко Владислав
26.02.2016, 10:29
Таргеты поменяйте на поновее.

Спорягин Кирилл
26.02.2016, 11:52
Добрый день, коллеги. Спасибо за рекомендации.
Тест со счетчиком показал, что значение бита не сбрасывается (т.е. счетчик не увеличился).
Поставил последную версию target файла, скачанную сегодня утром с сайта (версия 3.09). Результат не изменился. Бит питания не сбрасывается.
Или версия target файла должна быть не последней, а соответствовать требуемой прошивке? Прошивка требует версию 3.07, как я понимаю (см. рисунок).
22858

capzap
26.02.2016, 13:11
Тест со счетчиком показал, что значение бита не сбрасывается (т.е. счетчик не увеличился).
на основе чего проводили тест? Если это
снимаете питание. Ждете пару секунд, подаете обратно, подключаетесь к плк и смотрите чему у Вас равна переменная С, не получается ли так что ретайн просто не успевает записаться, подождите минут 10, а так таргеты имеет смысл переустановить, даже на те же самые

Спорягин Кирилл
26.02.2016, 13:32
10 минут я не ждал, но повторил эксперимент подождав минуты 2. Результат тот же.
Таргет переустанавливал сегодня утром на новый 3.09.

Спорягин Кирилл
02.03.2016, 14:29
Вопрос до сих пор не решен.
Что можно еще попробовать?

capzap
02.03.2016, 14:54
Вопрос до сих пор не решен.
Что можно еще попробовать?

а вот в этой теме решился http://www.owen.ru/forum/showthread.php?t=11369

Филоненко Владислав
03.03.2016, 08:40
В М01/М02 нет аккумулятора и ПЛК не работает при выкл. питания. Поэтому бит выставляется, но уже не обрабатывается программой

Спорягин Кирилл
03.03.2016, 11:35
В М01/М02 нет аккумулятора и ПЛК не работает при выкл. питания. Поэтому бит выставляется, но уже не обрабатывается программой

Владислав, можно подробнее.
Нашел в РЭ на ПЛК110 М02 раздел "3.6 Батарея". Там, действительно, сказано следующее: "Батарея используется только для питания часов реального времени. При отключении питания контроллер сохраняет промежуточные результаты и выключается."
В аналогичном РЭ на ПЛК110 предыдущей модификации в разделе "3.6 Аккумулятор" сказано другое: "Аккумулятор, используемый для питания часов реального времени, дополнительно является источником аварийного питания микропроцессора контроллера."
При этом есть различия и в таблице 2.1. Для ПЛК110 М02 не указан тип энергонезависимой памяти, сказано только, что ее размер 6 Мб. Зато указан тип Retain-памяти:"16 кБ (MRAM)".
Для ПЛК110 объем и тип энергонезависимой памяти указан как: " 4 Мб (DataFlash)". Но не указан тип Retain-памяти. Сказано только, что: "не более 16 Кб".

Вопрос в следующем. Т.е. аккумулятор в предыдущей модификации не использовался для сохранения переменных в retain-памяти? Или изменилась идеология сохранения и тип retain-памяти?
Вопрос по-другому: "Я могу быть уверен, что retain-переменные сохранят свои значения?".

petera
03.03.2016, 12:26
Владислав, можно подробнее.
Нашел в РЭ на ПЛК110 М02 раздел "3.6 Батарея". Там, действительно, сказано следующее: "Батарея используется только для питания часов реального времени. При отключении питания контроллер сохраняет промежуточные результаты и выключается."
В аналогичном РЭ на ПЛК110 предыдущей модификации в разделе "3.6 Аккумулятор" сказано другое: "Аккумулятор, используемый для питания часов реального времени, дополнительно является источником аварийного питания микропроцессора контроллера."
При этом есть различия и в таблице 2.1. Для ПЛК110 М02 не указан тип энергонезависимой памяти, сказано только, что ее размер 6 Мб. Зато указан тип Retain-памяти:"16 кБ (MRAM)".
Для ПЛК110 объем и тип энергонезависимой памяти указан как: " 4 Мб (DataFlash)". Но не указан тип Retain-памяти. Сказано только, что: "не более 16 Кб".

Вопрос в следующем. Т.е. аккумулятор в предыдущей модификации не использовался для сохранения переменных в retain-памяти? Или изменилась идеология сохранения и тип retain-памяти?
Вопрос по-другому: "Я могу быть уверен, что retain-переменные сохранят свои значения?".
Изменилась технология

Магниторезистивная оперативная память (MRAM — англ. magnetoresistive random-access memory) — запоминающее устройство с произвольным доступом, которое хранит информацию при помощи магнитных моментов, а не электрических зарядов.

Важнейшее преимущество этого типа памяти — энергонезависимость, то есть способность сохранять записанную информацию (например, программные контексты задач в системе и состояние всей системы) при отсутствии внешнего питания.
Магниторезистивная оперативная память (https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D0%B3%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D 0%B5%D0%B7%D0%B8%D1%81%D1%82%D0%B8%D0%B2%D0%BD%D0% B0%D1%8F_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%B 8%D0%B2%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D0%BC%D1%8F %D1%82%D1%8C)

nalnik
05.03.2016, 15:47
Вопрос до сих пор не решен.
Что можно еще попробовать?

Меняйте "батарейку" аккумулятор -- у меня больше сотни плк150 - убил бы этих "придумщиков"

Rednaxel
12.01.2018, 09:33
Вопрос до сих пор не решен.
Что можно еще попробовать?

Похожая задача. Экспериментировал на ПЛК 110-30 [M02]-24.
Подтверждаю: при пропадании питания Power Status не сбрасывается, как ожидалось.
Предложенные на форуме варианты, включая обновление прошивки и таргетов эффекта не дали

Дополнительно выяснилось следующее:

Аккумулятора в этой модели нет и без питания контроллер не способен продержаться на секунды, но мой БП 24В с минимумом нагрузки держится секунду-полторы, что может ввести в заблуждение ;-);
Retain сохраняется мгновенно, никаких минут ждать не нужно;
Польза от Power Status все-таки есть, поскольку при загрузке после отключения он переходит из FALSE в TRUE и спокойно обрабатывается в программе.

Сергей Лысов
12.01.2018, 16:14
Похожая задача. Экспериментировал на ПЛК 110-30 [M02]-24.
Подтверждаю: при пропадании питания Power Status не сбрасывается, как ожидалось.


На контроллерах ПЛК110 М02 переменная Power Status не обрабатывается контроллером после снятия питания.
В будущей версии таргета Power Status будет убран.



Дополнительно выяснилось следующее:

Аккумулятора в этой модели нет и без питания контроллер не способен продержаться на секунды, но мой БП 24В с минимумом нагрузки держится секунду-полторы, что может ввести в заблуждение ;-);


В ПЛК110 М02 действительно нет аккумулятора. Внутри установлена батарейка CR2032 для часов реального времени. Контроллер выключается, если снять питание.
35069