PDA

Просмотр полной версии : Несколько вопросов по ПЛК-154



Andy
25.01.2010, 18:14
Здравствуйте!

В процессе эксплуатации ПЛК появилось несколько вопросов:
1. При начальной загрузке загрузчик пишет про три сбойных сектора на диске. Игнорировать или надо переформатировать? На что может влиять?
2. По прошествии некоторого времени определенные переменные (состояние одного ФБ) начали хаотически меняться. Перепрошивка не спасала. Добавил перед этим ФБ еще один (пустышку) - помогло. С чем связано? Ошибки памяти?
3. Некоторое время не писался лог-файл из модуля Архиватор, плюс в это время были проблемы с часами. Кусок лога привожу:
---
2009.12.15 12:56:37 # 11 Power down Switch to backup
2009.12.15 12:56:41 # 11 Power down Backup power off
0. 0. 0 0: 0: 0 # 0 KERNEL LOADED
0. 0. 0 0: 0: 0 # 1 PLC STARTED
...
0. 0. 0 0: 0: 0 # 0 KERNEL LOADED
0. 0. 0 0: 0: 0 # 1 PLC STARTED
2010. 1.23 10: 0:54 # 0 KERNEL LOADED
2010. 1.23 10: 0:56 # 1 PLC STARTED
2010. 1.23 16: 0: 8 # 11 Power down Switch to backup
2010. 1.23 16: 0:10 # 11 Power down Backup power off
---
С чем это может быть связано? Температура не падала ниже -20.
4. Использую прошивку 2.03. Не улучшились ли средства Кодесиса для миграции на новые версии таргета? Уж очень много переменных сетевых, не хотелось бы ручками.
5. Вдогонку: пишу в архив одну переменную раз в минуту. Когда исчерпается ресурс флеш по записи? Длина файла ограниченная.
6. И еще: Вопрос с кнопкой Пуск и произвольным остановом так и не решен? У меня она прописана как ввод, но иногда (довольно редко) контроллер таки останавливается. В качестве интерфейса пользователя используется Кодесис, поэтому запустить его легко. Хочу уйти от Кодесиса на ПК пользователя; как тогда запускать ПЛК в таких случаях?

Заранее спасибо.

Филоненко Владислав
25.01.2010, 20:32
1. 3 сектора - не повод для паники.
2. Тут без проекта и описания ошибки ничего сказать нельзя
3. за 6 минут разряженный аккумулятор зарядится не успевает. Время заряда при +20 - 10 часов.
4. Если устраивает 2.03 - менять не стоит.
5. ресурс записи - 300 мил. раз при записи по 1 сектору (448 байт)
6. Опять-же, выложите проект. Проблема с остановкой возможна в 2-х случаях:
а) Нет модуля Button
б) Превышен размер конфигурации выше лицензионного или ошибки при работе с указателями

Andy
25.01.2010, 21:03
1. 3 сектора - не повод для паники.
2. Тут без проекта и описания ошибки ничего сказать нельзя
3. за 6 минут разряженный аккумулятор зарядится не успевает. Время заряда при +20 - 10 часов.
4. Если устраивает 2.03 - менять не стоит.
5. ресурс записи - 300 мил. раз при записи по 1 сектору (448 байт)
6. Опять-же, выложите проект. Проблема с остановкой возможна в 2-х случаях:
а) Нет модуля Button
б) Превышен размер конфигурации выше лицензионного или ошибки при работе с указателями

Спасибо за оперативность.
1. Т.е, форматировать не надо, сбойные блоки не будут использованы для записи?
2. Ошибка такого вида: на диаграмме SFC хаотически происходят переходы между состояниями: покидаются блоки без соблюдения условий, одновременно подсвечивается по два блока и т.д. Когда добавил пустышку, эта чехарда переместилась в нее, нужный блок заработал нормально. Я связываю это с участком памяти.
3. Я думал, что при подаче питания часы должны питаться от основного источника. Грустно, если не так: любит народ выключать шкаф. Однако он не выключался несколько дней, а больше месяца выпало из протокола. Незапись лога в это время связана с незарядом батареи же? С температурой внешней среды не связано?
5. Пишется, я надеюсь буферизованно? Тогда опасения снимаются.
6. Модуль Буттон добавлен, контроллер без ограничений по лицензии, указателей слвсем нет. Но в целом, это редкое явление (за год пару раз), не страшно. Но вопрос принудительного запуска без Кодесиса остается.

Еще раз спасибо за оперативность.

Филоненко Владислав
25.01.2010, 23:37
1. Конечно нет.
2. Проект все-же желателен.
3. Тут много неясного. А что с температурой?
5. Буферизация есть, но каждый акт записи должен быть завершен именно так как он есть. Если Вы пишите по 1 байту 512 раз - будет 512 записей. Если за раз 10 кБайт - запись будет скеширована.
6. А контроллер именно останавливался? И запись в логе есть?

Andy
26.01.2010, 10:49
1. Конечно нет.
2. Проект все-же желателен.
3. Тут много неясного. А что с температурой?
5. Буферизация есть, но каждый акт записи должен быть завершен именно так как он есть. Если Вы пишите по 1 байту 512 раз - будет 512 записей. Если за раз 10 кБайт - запись будет скеширована.
6. А контроллер именно останавливался? И запись в логе есть?

2. Не хотелось бы выкладывать, плюс у Вас скорей всего пойдет нормально: я ж говорил, при перемещении данных в памяти сбоил тот же участок, но занятый другими переменными.
3. Температура в цеху (и в шкафу) падала до -18.
5. Модуль архиватор пишет построчно примерно 20 байт (одна строка) в минуту. Я надеялся, что буферизуется хотя бы сектор флеш.
6. Записи в логе нет, это было весьма давно. Вопрос не в том, что останавливался, а в том, можно ли запустить. Например, прислали контроллер прошитый, но находящийся в состоянии Стоп на объект; можно ли его запустить без Кодесиса, если кнопка Пуск завязана на вход (модуль Буттон)?

Филоненко Владислав
26.01.2010, 11:08
5. 300 мил. записей раз в минуту - ваши внукам еще останется ресурса... :)
6. "прислали контроллер прошитый, но находящийся в состоянии Стоп на объект" - это как? При включении контроллер автоматически переходит в режим РАБОТА. В остановленном состоянии он может без питания на аккумуляторе простоять 10 минут максимум.

Andy
26.01.2010, 11:54
5. 300 мил. записей раз в минуту - ваши внукам еще останется ресурса... :)
6. "прислали контроллер прошитый, но находящийся в состоянии Стоп на объект" - это как? При включении контроллер автоматически переходит в режим РАБОТА. В остановленном состоянии он может без питания на аккумуляторе простоять 10 минут максимум.

6. А мне казалось, он сохраняет последний режим при выключении питания: если его выключили в режиме Стоп, то так он и включится. Или я ошибаюсь? Сам не помню, но сейчас проверю.
Проверил: после сброса кнопкой запускается, после выключения питания, нажатия сброса, включения питания не запускается, если был в Стопе. Батарею не разряжал, но подозреваю, что запустится.

Делаю вывод, что контроллер лучше держать включенным, выключая лишь при необходимости. Между выключениями необходимо выдерживать достаточно большое время. Проблематично при наладке :(

Филоненко Владислав
26.01.2010, 15:21
"Проверил: после сброса кнопкой запускается, после выключения питания, нажатия сброса, включения питания не запускается, если был в Стопе. Батарею не разряжал, но подозреваю, что запустится." - он просто не выключился еще. Кнопка Reset при работе от аккумулятора отключена.

Andy
26.01.2010, 15:38
Написано было в РЭ: для экономии батареи после отключения питания нажмите Сброс.

Кстати, на столе нормально работает, без странностей в SFC. То ли внешняя сеть влияет (7 МДВВ, 3 МВА, 3 МВУ, протокол Овен), то ли две термопары, то ли еще что-то. Придется смотреть на объекте...

Филоненко Владислав
26.01.2010, 23:35
2.
5. Модуль архиватор пишет построчно примерно 20 байт (одна строка) в минуту. Я надеялся, что буферизуется хотя бы сектор флеш.


От кеширования на уровне файловой системы отказались сознательно.
Все системные сервисы записи на диск оптимизированы под особенности файловой системы и в буферизации в пределах сектора просто не нуждаются.
С точки зрения пользователя ПЛК по своей сути не является прибором с большим потоком данных на диск. Выигрыша по производительности кеширование доступа по секторам не принесет (разве что в синтетических тестах). В то же время логика кеширования потребует больше вычислительных ресурсов и такая "сжатая в 1 сектор" запись неустойчивей к сбоям питания и гораздо труднее журналируется для восстановления.
Ресурса в 300 миллионов записей (это крайне осторожный взгляд на основе данных по самому устаревшему степпингу Flash-памяти), на наш взгляд, более чем достаточно для цикла жизни ПЛК.

Andy
27.01.2010, 10:36
С записью успокоили. А можно ли переместить сегмент данных в адресном пространстве? Чтоб проверить гипотезу о сбойном участке памяти? Я так понял, адрес сегмента данных нельзя задать.
И еще: что будет происходить с модулями ввода и вывода при температуре порядка -20? В РЭ написано, рабочий диапазон от +1. Будут ли они корректно отключаться (отключение выходов по таймауту прописано) или их поведение непредсказуемо? Могут ли они портить обмен по общей шине? Насколько критично именно "от +1"? Обогрев шкафа мы сделаем, но вопросы интересуют.

Филоненко Владислав
27.01.2010, 11:40
1. По температуре. ПЛК тестировали на работу и холодный пуск при -20. замечаний нет. +1 - из-за аккумулятора, на -20 он не выдает паспортной емкости.
2. Давайте e-mail, завтра пришлю программу для тестирования ОЗУ

Andy
27.01.2010, 12:30
agreat@mail.ru
Вопрос по температуре от +1 был по модулям МДВВ МВА МВУ

Филоненко Владислав
28.01.2010, 12:47
Выслал программу

Andy
28.01.2010, 14:01
Получил, спасибо. Правда, ПЛК уже отправили на объект как "не замеченный в сбоях на столе", проверю на нем позже. Погонял зато на другом, 150м. Который из тестов проверяет всю память? SDRAMFTS?

Филоненко Владислав
28.01.2010, 14:36
Они все, по разным алгоритмам для разных типов ошибок, как распайки, так и самой микросхемы