Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 31

Тема: Перезагрузка ПЛК110 во время сохранения на USB-флэш

  1. #1

    По умолчанию Перезагрузка ПЛК110 во время сохранения на USB-флэш

    День добрый.
    Прошу помочь разобраться в нестабильной работе сохранения данных. Прикрепляю простейший проект для ПЛК110-30 .
    Тупая запись либо "дозапись" данных на флэшку в конце концов приводит к подвисанию и перезагрузке. Если записывать данные каждые 30 секунд, то время зависонов растягивается на несколько часов. Если как в примере непрерывная запись , то зависает в течение 10-15 минут. Во время отладки контроллер не перезагружается сам , потому заметил, что любая функция выдает ASYNC_WORKING и больше никакого общения с флэшкой не происходит. Даже передёргивание флэшки не помогает. Она даже больше не моргает, значит ПЛК и не пытается её даже нумеровать.
    1)PLCInfo прошивка последняя. Таргет последний 3,12. Либы с сайта Овена. CoDeSys 2.3.9.40 16 апр 2013.
    PLC model MODEL PLC 110-30
    Binary VERSION 0.3.67 последняя прошивка
    Need Target version >= 3.10
    Compiled: 12:54:22 Feb 8 2017
    STM32 binary version 114
    MAC 6A:77:00:FF9:8E
    IP 192.168.1.2
    GATE 192.168.1.1
    MASK 255.255.255.0
    2)зависает на любой функции OwenFileOpenAsync,OwenFileWriteAsync,OwenFileClose Async. Но чаще всего на записи.
    3)Флэшку менял, форматировал. Проверял с файлами и без. Также пробовал на флэшке с двумя разделами. Никакого толка.
    4)Минимальное- максимальное время цикла контроллера менял - никакого толка. Было на форуме, что якобы общение с флэшкой может затянуться на секунду.
    5)Исполнение задачи = ПО ТАЙМЕРУ что 5мс что 50мс что 100мс никакого толка.Только растягивается чуток время. Исполнение задачи = СВОБОДНОЕ - аналогично. Время между перезагрузками хаотичное. Может отличаться в разы.
    6)Буфер который пишется выносил в GLOBAL. Выравнивание BYTE,WORD,DWORD - все бестолку. Писать что 80 байт что 2000 байт - аналогично.
    7)Все что выше было по библиотеке OWENLIBFILEASYNC. С SysLibFile всё выше не проверял. Но в таком же непрерывном цикле живет подольше, однако все равно что-то внутри контроллера зависает, флэшка отваливается и ватчдог перегружает его. Примерно вот с такой записью :
    2017. 6.10 10:53:31 # 0 KERNEL LOADED
    2017. 6.10 10:53:31 # 17 E PLC was reset by watchdog!
    2017. 6.10 10:53:32 # 14 PCL was reseting by watchdog
    2017. 6.10 10:53:32 # 3 M
    Last run module Id =446413050
    2017. 6.10 10:53:32 # 3 M Last post module Id =-1213219633
    2017. 6.10 10:53:32 # 3 M local_status =10001086
    8)Контроллер новый , неделю как от поставщика. Ничего к нему не подключено. Куплен специально для поиска причины.

    Подскажите как еще в бубен тут стучать ? За три дня фантазия иссякла.
    Вложения Вложения
    • Тип файла: rar Async.rar (14.5 Кб, Просмотров: 16)

  2. #2

    По умолчанию

    Здравствуйте, VanIvan.

    На текущей версии прошивки в некоторых случаях наблюдалось прекращение работы с USB накопителем. Попробуйте тестовую прошивку v0.3.68. В ней данная проблема была устранена.
    Инструкцию по смене встроенного ПО можно найти здесь: http://www.owen.ru/catalog/programmi...lk110/87310138
    Вложения Вложения

  3. #3

    По умолчанию

    С новой прошивкой с циклом записи 30 сек по 2600 байт протянул 6 часов. Ранее было не более 3,5. Стало лучше , но один чёрт проблема не ушла. Данный контроллер управляет вращением катушки в 9 тонн, выдает команды на управление гидравликой. Вот так прикол будет когда ПЛК грузанётся и сработает защита с зажимом тормоза на ходу. Вроде как промышленная техника, вроде стоит не бесплатно ,а сыпится на такой детсадовской проблеме. Самопальная плата с чановской бесплатной fs работает с любыми флэшкам неделями. И сделал её 10 лет назад.

    Вопрос - может есть способ кинуть команду линуксу на размонтирование/монтирование флэшки? Можно было бы с каким-то периодом это дело проводить. Или там падает у проца usb-контроллер так что вообще никак?

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    для постоянной записи, лучше иметь архивный сервер и "не напрягать" контроллер
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #5

    По умолчанию

    Хорошая отмазка.
    Купите пожалуйста для своего телефона еще один телефон. Достаньте SD-шку с вашего и всуньте во второй. Пусть один телефон у вас звонит, а все данные сохраняет и копирует со второго. И сетку организуйте между ними. Это же телефон - вот пусть он и звонит, а сохранением занимается другой телефон/устройство. Зачем "напрягать" телефон?
    Ахинея? ....

    Заметил еще один прикол. Иногда во время записи происходит подглюк и на пол секунды отрубаются все выходы и заново включаются. У меня релейные. Слышно как хлопают. То, что это происходит именно в момент записи на флэшку 100%. В версии прошивки v0.3.67. такого не было замечено ни разу.

  6. #6
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от VanIvan Посмотреть сообщение
    Хорошая отмазка.
    Купите пожалуйста для своего телефона еще один телефон.
    да как скажите, жмете денег на сервер, значит и флешки будете покупать что побюджетнее, а потом начнутся проблемы после поломки флешки, когда не возможно будет прочитать архив данных, что нельзя сказать о серверах, с их райдами и бекапами
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  7. #7

    По умолчанию

    Да так то оно так. Проблемы с флэшкой выяснятся после суток работы. И цена у неё пять копеек. Чуть что можно их туда ведро подкинуть. Для записи 18 чисел каждую секунду сойдет. Но когда контроллер в ребут уходит из-за этого, это совсем другой уровень проблемы. Черт бы с ним, пусть обрывал связь.

    Есть способ оставить состояние выходов на время перезагрузки ПЛК ? Можно всё через RETAIN обыграть, но ПЛК загружается все равно очень долго. Если бы в это время его релюшки остались в ранее установленном состоянии, то остальное худо-бедно еще можно разрешить и вопросы был бы снят.

  8. #8
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от VanIvan Посмотреть сообщение
    Да так то оно так. Проблемы с флэшкой выяснятся после суток работы. И цена у неё пять копеек. Чуть что можно их туда ведро подкинуть. Для записи 18 чисел каждую секунду сойдет. Но когда контроллер в ребут уходит из-за этого, это совсем другой уровень проблемы. Черт бы с ним, пусть обрывал связь.

    Есть способ оставить состояние выходов на время перезагрузки ПЛК ? Можно всё через RETAIN обыграть, но ПЛК загружается все равно очень долго. Если бы в это время его релюшки остались в ранее установленном состоянии, то остальное худо-бедно еще можно разрешить и вопросы был бы снят.
    я хоть и не через КДС посмотрел сейчас проект, только не вижу я там ни каих 18 чисел, вижу 2000 байт записываются, не вижу так же функционала для блокировки очередной записи, если вдруг не закончилась предыдущая. Т.ч. есть еще что оптимизировать со стороны пользовательской программы. А по поводу сохранения состояний выходов при перезагрузке можно даже не пытаться искать решение,через ретайн тем более
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  9. #9

    По умолчанию

    Зачем мне выкладывать сюда весь проект, если косячит даже элементарная запись? Каким образом можно блокировать очередную запись? С чего она может вообще начаться? Если функция уже выполнилась и выдала готовность ASYNC_DONE только тогда разрешен переход к следующему пункту. Если выдалось сообщение отличное от ASYNC_WORKING или ASYNC_DONE то переход на закрытие файла. От чего там не 18 чисел , а 2000? Очень просто 18 чисел по 4 байта за 30 секунд. В принципе повисает и от 80 байт записи и от 2000. Виснет даже на просто открытии файла.

    Попробовать отследить сообщения от функций отличные от ASYNC_WORKING или ASYNC_DONE ? Тогда какие действия предпринимать в случае ошибки? Какой функцией определить готовность системы к дальнейшим действиям? Когда виснуть может любая из функций. И как тогда объяснить повисон ПЛК в случае работы с SysLibFile ?

  10. #10
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от VanIvan Посмотреть сообщение
    От чего там не 18 чисел , а 2000? Очень просто 18 чисел по 4 байта за 30 секунд.
    я не понимаю в такой арифметике ровным счетом ни чего, 2000 байт Вы посылаете за один присест, регламентировать исполнение этой программы каждые 30 секунд я не увидел, есть код который повторяет циклично последовательность действий, логики закрыть файл, чтоб перейти к открытию этого же файла я не вижу, если каждый раз пишется новый файл, то возможно дело не в функции, а в файловой системе
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

Страница 1 из 4 123 ... ПоследняяПоследняя

Похожие темы

  1. Ответов: 13
    Последнее сообщение: 29.10.2018, 14:01
  2. Ответов: 13
    Последнее сообщение: 16.02.2018, 12:26
  3. ПЛК110(М02) ведение архива на USB флэш
    от Антон_Б в разделе ПЛК1хх [М02]
    Ответов: 9
    Последнее сообщение: 16.10.2016, 20:47
  4. ПЛК110 не сохраняет программу на флэш
    от Партизан в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 08.08.2011, 09:49

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •