Это продолжение поста #104 http://www.owen.ru/forum/showthread....l=1#post157834
Сообщение от
Николаев Андрей
Уже должна была быть.
Эта работа была на какое-то время оставлена.
Мы вернулись к ней снова в октябре.
Сейчас тесты уже должны закончится, и мы выложим.
Информация к размышлению, чтобы можно было более тщательно потестировать.
И так имею один ПЛК, который использую для отладки ПО.
Год назад обновил ему прошивку на 2.15.3 http://www.owen.ru/forum/showthread....l=1#post129096 после этого проблем с сохранением программы в этом ПЛК ни разу не возникало. Как правило в нем всегда имеется какая-либо программа. Например, что-то надо проверить на реальном железе, то заливаю программу в ПЛК и она остается в нем до следующего раза. ПЛК включается эпизодически и большее время находится в выключенном состоянии. И ни разу не было случаев потери программы.
Возможно существенным отличием является то, что в конфигурации ПЛК, который на злополучном объекте, имеется модуль Slave в котором примерно 340 регистров, а они по определению энергонезависимые и должны сохраняться на флеш при выключении питания. Каких-либо других Retain переменных в программе нет.
Только не говорите, что 340 регистров это много, ПЛК с индексом "М" -"В исполнении контроллера без ограничения размера памяти области ввода-вывода предустановленный размер памяти ввода-вывода равен 16 кбайт и может быть увеличен пользователем до 32 кбайт" -это заявлено изготовителем.
Скорей всего именно при выключении питания ПЛК, в момент сохранения Retain и Slave происходит порча файлов программы. Но почему?
ПЛК160 с прошивкой 2.15.3 имеет некоторые странности, проявляющиеся при выключении питания. Об этом чуть ниже.
А сейчас, маленькое отступление.
Так как мы в Белоруссии не празднуем Новый год 11 дней, а только 4 дня, то к работе я приступил уже 5 января. В моем тестовом ПЛК была программа, о которой я писал здесь http://www.owen.ru/forum/showthread....l=1#post156821
Включил ПЛК и панель, а время в ПЛК, после простоя в течении 6 суток, обнулилось.
Сама программа не пострадала. Судя по предыдущей части лога, время сбрасывалось и раньше. Просто я никогда не пользовался часами ПЛК и не замечал этого. Напряжение на аккумуляторе 4,18 В, правда измерил не сразу.
Попутный вопрос: -На сколько должно хватать полностью заряженного аккумулятора для нормального хода часов ПЛК?
Но про часы не главное, мне они пока не нужны.
Главное - странности при выключении ПЛК.
Если Вы думаете, что время работы ПЛК на аккумуляторе равно значению back-up working time в конфигурации, то это не так. На самом деле это время будет таким, какое показывает модуль статистики
В данном случае оно буде не 6 сек, а 4. Это можно видеть в файле log.txt............................................
2014.12.24 14:20:15 # 0 KERNEL LOADED
2014.12.24 14:20:15 # 1 PLC STARTED
2014.12.24 17: 2:16 # 11 Power down Switch to backup
2014.12.24 17: 2:20 # 11 Power down Backup power off
.................................................. ......................
При увеличении back-up working time, время работы в модуле статистики увеличивается не пропорционально этому значению
Теперь о других странностях прошивки 2.15.3
При выключении ПЛК вдруг на 20 секунд загорается индикатор "Связь", даже если все порты ПЛК не используются в программе и к ним ничего не подключено физически!!!
При этом, индикатор "Работа" гаснет через заданное время (см. модуль статистики), например через 4 сек. Самое интересное, что индикатор "Работа" затем кратковременно вспыхивает в момент погасания индикатора "Связь", т.е. через 20 сек после выключения питания. В оригинальной прошивке этих эффектов нет.
А теперь вопрос: -Что в этот момент делает ПЛК?
Ответ: - Через 20 секунд после выключения питания ПЛК пытается инициализировать флеш и запустить начальный загрузчик. Но не успевает это сделать полностью.
Сие явление можно увидеть в терминальном подключении, если после включения ПЛК не закрывать терминальную программу, а выключить ПЛК и подождать 20 сек.
Отсюда возникают несколько вопросов:
1. Так сколько же времени ПЛК работает на аккумуляторе после выключения питания? Варианты ответов:
а) в течение времени заданном параметром back-up working time;
б) в течение времени, которое показывает модуль статистики;
в) в течение 20 секунд после выключения питания, не зависимо от заданного в back-up working time;
2. В какой момент времени после выключения питания начинается сохранение на флеш Retain переменных и переменных из модуля Slave?
3. Зачем ПЛК через 20 сек после выключения пытается повторно инициализироваться?