Просмотр полной версии : Power Status в ПЛК110 не работает
Всем доброго дня.
Столкнулся с интересной вещью - не пропадает (всегда true) статус питания при обесточивании ПЛК.
Была написана простейшая программа, которая записывает несколько переменных в память при переходе Power Status из true в false.
На трех ПЛК110-30(60) она не работала, на ПЛК150 всё прошло успешно.
Кроме того при работе с ПЛК150 codesys выдаёт сообщения типа Power down switch to backup и power up (при снятии и подаче питающего напряжения соответственно), при работе с ПЛК110 таких сообщений не наблюдается.
Игры с временем цикла и временем работы на АКБ не дали результатов, прошивка одного из плк также не помогла.
Пример программы в приложении. Значения записанные вручную в modbus slave сохраняются, т.к. с АКБ всё в порядке.
В чем может быть причина?
Если меняли прошивку, надо по новой поставить таргеты и по новой же создать проект
Никто не пользуется этой фичей, или только у меня не работает? :)
Не уверен, что поможет... НО
Вместо F_TRIG1(CLK:= powstat, Q=> ); Напишите F_TRIG1(CLK:= powstat );
Все что написали в memo напишите в PLC_PRG, а memo удалите.
)
По поводу первого вашего предложения.
Я постоянно пользуюсь вставкой объектов через F2, и практически никогда не стираю неиспользуемые IO во вставляемых клише, ни разу проблем не замечал.
По поводу удаления подпрограмм - я не понимаю как это может глючить, вы ж не предлагаете писать несколько сотен кб быдлокода сплошняком в PLC_PRG? :)
я все же считаю, что дело в правильной установке таргетов после перепрошивки
судя по тому как используется триггер, использовать модуль статистики Вам и не обязательно, если это инициализация при старте, то достаточно обычной булевой переменной, которая в первом цикле работы меняет свое состояние,а в условии когда она имеет начальное состояние провести инициализацию
я все же считаю, что дело в правильной установке таргетов после перепрошивки
Не вижу связи. Было три контроллера, ни в одном битик питания не заработал. Я прошил один из контроллеров, не помогло.
После этого по вашему совету установил ещё раз таргеты, создал заново программу, опять не помогло.
А откуда вообще таргет знает прошивал я контроллер или нет (версия прошивки одна и та же, таргет 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
Тест со счетчиком показал, что значение бита не сбрасывается (т.е. счетчик не увеличился).
на основе чего проводили тест? Если это
снимаете питание. Ждете пару секунд, подаете обратно, подключаетесь к плк и смотрите чему у Вас равна переменная С, не получается ли так что ретайн просто не успевает записаться, подождите минут 10, а так таргеты имеет смысл переустановить, даже на те же самые
Спорягин Кирилл
26.02.2016, 13:32
10 минут я не ждал, но повторил эксперимент подождав минуты 2. Результат тот же.
Таргет переустанавливал сегодня утром на новый 3.09.
Спорягин Кирилл
02.03.2016, 14:29
Вопрос до сих пор не решен.
Что можно еще попробовать?
Вопрос до сих пор не решен.
Что можно еще попробовать?
а вот в этой теме решился 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-переменные сохранят свои значения?".
Владислав, можно подробнее.
Нашел в РЭ на ПЛК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)
Вопрос до сих пор не решен.
Что можно еще попробовать?
Меняйте "батарейку" аккумулятор -- у меня больше сотни плк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
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot