PDA

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



VanIvan
10.06.2017, 12:28
День добрый.
Прошу помочь разобраться в нестабильной работе сохранения данных. Прикрепляю простейший проект для ПЛК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:FF:D9: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)Контроллер новый , неделю как от поставщика. Ничего к нему не подключено. Куплен специально для поиска причины.

Подскажите как еще в бубен тут стучать ? За три дня фантазия иссякла.

Евгений Багаев
10.06.2017, 13:08
Здравствуйте, VanIvan.

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

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

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

capzap
11.06.2017, 08:33
для постоянной записи, лучше иметь архивный сервер и "не напрягать" контроллер

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

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

capzap
11.06.2017, 10:53
Хорошая отмазка.
Купите пожалуйста для своего телефона еще один телефон.
да как скажите, жмете денег на сервер, значит и флешки будете покупать что побюджетнее, а потом начнутся проблемы после поломки флешки, когда не возможно будет прочитать архив данных, что нельзя сказать о серверах, с их райдами и бекапами

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

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

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

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

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

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

capzap
11.06.2017, 14:29
От чего там не 18 чисел , а 2000? Очень просто 18 чисел по 4 байта за 30 секунд.
я не понимаю в такой арифметике ровным счетом ни чего, 2000 байт Вы посылаете за один присест, регламентировать исполнение этой программы каждые 30 секунд я не увидел, есть код который повторяет циклично последовательность действий, логики закрыть файл, чтоб перейти к открытию этого же файла я не вижу, если каждый раз пишется новый файл, то возможно дело не в функции, а в файловой системе

VanIvan
11.06.2017, 18:36
Это тестовая программа, которая ложится в течение 10 минут полной перезагрузкой ПЛК. Это тупой цикл открытия записи и закрытия файла. Является кусочком проекта. Я его выделил отдельно, дабы показать в том числе и представителю Овена , что вот с помощью такого кода можно словить эту проблему с перезагрузкой.
Ну поставьте запись с частотой в 30 секунд. Перегрузится ПЛК в течение нескольких часов. Вы будете это смотреть и проверять? Потому и пишется он непрерывным циклом, чтоб вылетал быстрее.

Как еще разжевать, на кой чёрт я этот кусок кода сюда выложил? Это НЕ ПРОГРАММА! Это ТЕСТ на прочность ПЛК, при запуске которого вылетает в течение 15 минут в 100% случаях. Зачем сюда выкладывать хоть что-то еще, если даже три функции в цикле вызывают проблему??

Но прошивка 0.3.68 более живучая. Сейчас тестируется в цикле записи 30 секунд. Грузанулся пару раз через 6 и 8 часов. После этого 9 часов полет нормальный. Посмотрю что будет за сутки.

capzap
11.06.2017, 19:00
Это тестовая программа, которая ложится в течение 10 минут полной перезагрузкой ПЛК. Это тупой цикл открытия записи и закрытия файла. Является кусочком проекта. Я его выделил отдельно, дабы показать в том числе и представителю Овена , что вот с помощью такого кода можно словить эту проблему с перезагрузкой.
Ну поставьте запись с частотой в 30 секунд. Перегрузится ПЛК в течение нескольких часов. Вы будете это смотреть и проверять? Потому и пишется он непрерывным циклом, чтоб вылетал быстрее.

Как еще разжевать, на кой чёрт я этот кусок кода сюда выложил? Это НЕ ПРОГРАММА! Это ТЕСТ на прочность ПЛК, при запуске которого вылетает в течение 15 минут в 100% случаях. Зачем сюда выкладывать хоть что-то еще, если даже три функции в цикле вызывают проблему??

тест чего только, ну доказали что переполнение линейно времени создания дескриптора файла, так кто то здесь писал об этом и до Вас еще. Конечно легче всего сейчас говорить, подумавши, что это тест, до этого Вы писали что просто не весь код выложили. Откройте файл, а закрывайте его когда с плк питание снимется, все остальное время используйте только одну функцию, непосредственно записи, что в этом случае тоже перегружается плк? Это же не сложно 10 минут потратить

VanIvan
12.06.2017, 13:08
Откуда узнать, какая функция/последовательность вешает? Потому всё по примеру. Так бы везде и писали в руководстве, что открытие/закрытие файла производить только по необходимости. А то один ответ : словили перегруз ватчдогом - ищите косяк в своей проге.

По поводу закрытия файла : если флэшку достали и (не)вернули, а файл был открыт, по имеющемуся дескриптору использовать функцию OwenFileCloseAsync не имеет смысла. Применять следует OwenFileCloseAllOpenAsync. Иначе копятся открытые файлы.

Вот только новый вопрос. При смене флэшки на другую, файлы хоть и пишутся но в никуда. ПЛК просто убивает файловую систему второй флэшки. Каким образом перезапустить работу функций после смены флэшки на другую ?

p.s. чтоб закончить Ваш троллинг, проект это был или тест и прочий перевод стрелок, во вложении пару фоток. Увидите аналог в Евразии, сообщите пожалуйста. Допиливание сейчас происходит у заказчика. Каждый чих управляется ПЛК110-м. Чем предлагать серверы сбора данных, скажите каким образом заставить ПЛК работать с разными флэшкам не перегружая его. И чтоб он не портил FS.

capzap
12.06.2017, 14:51
я работаю с сименсом, у нас нет такого понятия втыкать флешки в контроллер для логирования.


Потому всё по примеругде же по примеру, сократили пару кейсов не в счет, но проверка на истинную отправку байт с заданным у Вас нет. Мне не интересны Ваши ситуации, тест/не тест, а что если флешка исчезнет, я с самого начала сказал складывать архивы в другом месте, тогда все Ваши ситуации исчезнут. Если такие уникальные, так и подходить надо грамотно, поставили сервер и удаленно смогли бы обслуживать контроллер, но Вам же скорее всего навар хочется получить за выезд, чем дополнительный комп поставить

VanIvan
12.06.2017, 16:10
У Вас 10 тыс ответов на этом форуме. Вы отвечаете чуть ли не в каждой теме.
И это форум Овен , а не Сименс. И Вы будете говорить , что работаете с Сименсами, а тут просто меценат? Только чтоб так постить в течение 6 лет надо не вылазить с этого форума.Не пишите ерунду. Лан, опять демагогия и увод разговора от темы: деньги, сервер, выезд, навар и тд... болобольство = оффтоп. Потеряются данные, не потеряются, какая Вам разница, свет пропал или флэшку дернули или этот ПЛКшник об стенку пнули.

Вы про какие-то проверки там пишете. Причем тут проверки? Если операционка отваливается от некоторого количества циклов открытия/закрытия файла, то тупо кривая реализация оси/usb-хоста/файловой системы. Для того я и накарябал две строчки кода, чтоб представитель Овена запустил прожку, словил момент остановки и посмотрев стэк вызовов нашел причину. Это дело десяти минут. Нет времени/желания/денег на её доработку - да не вопрос - напишите как не нарваться на этот косяк. Никто не против же. Никакой связи с тем, в каком проекте это будет использоваться нет.

Всё это никак не решает вопроса простейшей смены USB-флэшки в ПЛК110. После запуска по первой флэшке читаются mbr и pbr. После установки другой флэшки таблица разделов остается прежней. У ПЛКшника аж переглючивает что-то, что он релюшками хлопает. Вот и катает потом ось куда попало кроша всё на своём пути. Всё просто как пять копеек, без лишних соплей про навары и серверы. Решается пока только перезагрузкой ПЛК. Хорошо бы чтоб был другой способ.

capzap
12.06.2017, 16:50
Вам, какая разница что я тут делаю, может я библиотеки пишу. Свою позицию я высказал, как нужно вести логи и архивы. По коду я дал совет, что его надо дорабатывать, дабы избежать проблем, но Вы почему-то требуете от производителя устранить проблему пока Вы на объекте, Вы нормальный?

VanIvan
12.06.2017, 22:48
Я хоть и с Минска, но мои гаврики под моим же управлением сделали управление водоканалом в Москве только на комплектации Овен-а. Делаем дистанционные станции управления нефтегазовыми скважинами опять же только на комплектации Овен-а, попробовали РеаЛаба , а не Сименса или Омрона. Теперь вот новый проект в сверхсжатые сроки, опять же датчики, модули ввода, панели, контроллер только Овен-а. Блоки питания ставлю импортные. За три года взял тысяч на 30 баков товаров у Овен-а, у белорусов и у русских. Придерживаемся правила в ЗИП ложить 30% используемых блоков, но не менее одной штуки. Вот такой блин патриот , можете не верить.
Достаточно НОРМАЛЬНЫЙ для того, чтобы что-то просить от производителя?

А вы, являясь явно не последним человеком тут, тролите вторую страницу, пишете : "какая разница что я тут делаю" и "гнёте пальцы". Кто, на что учился в принципе... Везде так, каждая пипетка мечтает стать клизмой.

Просто подрываете веру в Овен-а.

ИМХО - лучше молчать, когда нечего сказать. ЗП все равно заплатят. :)

Хватит оффтоп. Ждемс новой прошивки. Спасибо за 0.3.68

capzap
13.06.2017, 06:16
Во первых прошивка за пару часов не делается, во вторых залить 95 бензин в москвич 412 и сказать производителю, смотрите я нашел баг, он не едет плюс к карме Вам не принесет, раз уж обнаружили, что с одним дескриптором остаётся решит проблему со сменой флешек, то почему не задумываться что происходит внутри контроллера когда функция записи возвращает меньшее число чем должно записаться, а Вы закрываете файл и кто тут пальцы гнет, заявляя что проверки не нужны, не вних дело. По поводу флешек, это наверное единственный случай когда о возрасте человека можно судить по выходу операционной системы виндовс,в семёрке есть механизмы чтоб безопасно достать флешку, но плк не семёрка, туда ни кто лишние килобайты кода вставлять не будет, неужели так трудно сообразить, что прежде чем достать надо при парковаться, т.е. закрыт файл

Филоненко Владислав
13.06.2017, 10:22
Откуда узнать, какая функция/последовательность вешает? Потому всё по примеру. Так бы везде и писали в руководстве, что открытие/закрытие файла производить только по необходимости. А то один ответ : словили перегруз ватчдогом - ищите косяк в своей проге.

По поводу закрытия файла : если флэшку достали и (не)вернули, а файл был открыт, по имеющемуся дескриптору использовать функцию OwenFileCloseAsync не имеет смысла. Применять следует OwenFileCloseAllOpenAsync. Иначе копятся открытые файлы.

Вот только новый вопрос. При смене флэшки на другую, файлы хоть и пишутся но в никуда. ПЛК просто убивает файловую систему второй флэшки. Каким образом перезапустить работу функций после смены флэшки на другую ?

p.s. чтоб закончить Ваш троллинг, проект это был или тест и прочий перевод стрелок, во вложении пару фоток. Увидите аналог в Евразии, сообщите пожалуйста. Допиливание сейчас происходит у заказчика. Каждый чих управляется ПЛК110-м. Чем предлагать серверы сбора данных, скажите каким образом заставить ПЛК работать с разными флэшкам не перегружая его. И чтоб он не портил FS.

В руководстве простыми черными русскими буквами написано: подключение/отключение периферии ТОЛЬКО при отключённом питании. Так что не нарушайте РЭ.
А нарушаете - страхуйтесь проверкой серийного номера флешки пред каждой операцией.
Серийники совпадают? - не покупайте китайское Г.

Филоненко Владислав
13.06.2017, 10:25
День добрый.
Прошу помочь разобраться в нестабильной работе сохранения данных. Прикрепляю простейший проект для ПЛК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:FF:D9: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)Контроллер новый , неделю как от поставщика. Ничего к нему не подключено. Куплен специально для поиска причины.

Подскажите как еще в бубен тут стучать ? За три дня фантазия иссякла.

Программа в корне неверна. Где проверка на возвращаемое функциями значение? ASYNC_DONE - признак завершения операции, результат операции тоже надо проверять и не пытаться записывать в неоткрытый файл, и т.п. вещи.

VanIvan
14.06.2017, 00:15
Думал, молчать, но только ради компании Овен так и быть напишу. Для тех , кто админит тут под прикрытием, читайте - полезно будет, чтоб потом не позориться. Ликбез.
1)Если баги есть в софтине контроллера, то полезно их исправлять, а не копить по году. Ваша прошивка компилится минут за десять. Хоть каждый день обновления кидай. Тока не надо там про тесты... Не утруждайте себя, не пишите про это. Все равно никто не поверит.
2)Про извлечение флэшки: Команда ATA-шная на прекращение общения. Сами не найдёте, как вернусь, обязательно помогу.
3)Про запрет подключения USB на горячую??? Вы о чем вообще? В 21-м веке, то . Разъемчик гляньте и разберитесь для чего пара длинных выводов.
4)По проверке работы ваших функций. А какой , простите , в этом смысл? Дальше чего делать то? Игде почитать, про то , что закрытие файла в SysLibFile периодически падает с ошибкой. Правда файл всё же закрывает. А то ваш "правильный" пример, увы умалчивает в десяти строчках, а что же делать если функция работает не так. Назревает вопрос, а где функция ребута процесса работы с USB? Ведь ни одной нет.
5)В основном проекте проверки есть. Толку то. Падает прошивка 0,3,67 не от этого, а от кривой реализации FS в ПЛК. Спросите у программера своего, пусть он вам растолкует. Сколько уже про проверки можно писать. Вы тестили прожку , которая в корне не верна? А в курсе что вешается даже с действующим дескриптором? Какая запись в закрытый файл? А откуда тогда номер дескриптора остался? Это значит другой баг? А почему ПЛК вешается на функции открытия файла то? Ну такую уже муть пишете...
6)Главное "е-нумерация" по USB в ПЛК с заменой флэшки происходит, а MBR и PBR повторно прочитать не может. Причем даже если форматнуть старую флэшку берёт. Тут косяк на поверхности. Ёлки да в бесплатной FS даже есть функция закрытия FS. В вашей нет что ли? Косяк то вообще детский. Там две строчки поправить программеру.Или вот кто-то тут библиотеки пишет, можно ввести туда такую функцию.
7)Время то время 01,01,1980 это что такое? Не писал уже, ну ладно. Год уже прошел, пора уже. Кому мелочи, а у кого-то и вопросы возникает по такому поводу.

Вы лучше скажите когда выйдет новая прошивка. Про баги и так всё ясно, что исправлять никто не будет.
А то вот два новых проекта на колесах и чет ну никак не прикалывает заставлять глушить водителя машину, чтоб USB флэшку поставить. Ну потому что в руководстве к ПЛК кто-то так решил, ну и никак иначе. Есть свет в конце туннеля? Или троллить будете до бесконечности? Банально захотел водитель два раза снять список ошибок на флэшку.

Филоненко Владислав
14.06.2017, 07:54
1. Баги и так правятся. Но мы не можем исправить баги в программе пользователя. А было бы хорошо.
2. Да ну, а мы и не знали... Вот только кто-то забывает эту команду послать, закрыв файлы... И тут ПЛК прозревает будущее и за 5 мс до вынимания флешки сам всё делает. лепота.
2а. Статика тоже АТА командой снимается с тушки пользователя? Это промПЛК, а не планшетик. А наши пользователи все ходят а астатической обуви по спецполам. Вот прям все 0,01%.
3. Опять же статика. И логика. К управляющему ПЛК во время работы даже подходить не рекомендуется. и шкаф открывать. Хочется оперативного доступа к архивам - делайте его на RAM-диске и по TFTP из уютного офиса считывайте. Или по GetWay утилитой. А ПЛК должен быть в запертом шкафу.
4. 5. Интересно, врач сказал пейте таблетки (0.3.68), пациент таблеток не пьёт (0.3.67) и жалуется, что всё еще болеет. Ну и что тут сделаешь?
6. Да, если файл не закрыть и сменить флешку - то "внезапно" будут проблемы. Извините, что мы не предусмотрели защиту от детей, котов и псевдопрограммистов. Может и сделаем, раз такие проблемы возникли.
7. И как же функция работы с флешкой реализована у конкурентов? А, никак не реализована? Как же так, наверное они так страхуются от внезапного удаления флешки...

capzap
14.06.2017, 07:57
Думал, молчать, но только ради компании Овен так и быть напишу. Для тех , кто админит тут под прикрытием, читайте - полезно будет, чтоб потом не позориться. Ликбез.
1)Если баги есть в софтине контроллера, то полезно их исправлять, а не копить по году. Ваша прошивка компилится минут за десять. Хоть каждый день обновления кидай. Тока не надо там про тесты... Не утруждайте себя, не пишите про это. Все равно никто не поверит.
2)Про извлечение флэшки: Команда ATA-шная на прекращение общения. Сами не найдёте, как вернусь, обязательно помогу.
3)Про запрет подключения USB на горячую??? Вы о чем вообще? В 21-м веке, то . Разъемчик гляньте и разберитесь для чего пара длинных выводов.
4)По проверке работы ваших функций. А какой , простите , в этом смысл? Дальше чего делать то? Игде почитать, про то , что закрытие файла в SysLibFile периодически падает с ошибкой. Правда файл всё же закрывает. А то ваш "правильный" пример, увы умалчивает в десяти строчках, а что же делать если функция работает не так. Назревает вопрос, а где функция ребута процесса работы с USB? Ведь ни одной нет.
5)В основном проекте проверки есть. Толку то. Падает прошивка 0,3,67 не от этого, а от кривой реализации FS в ПЛК. Спросите у программера своего, пусть он вам растолкует. Сколько уже про проверки можно писать. Вы тестили прожку , которая в корне не верна? А в курсе что вешается даже с действующим дескриптором? Какая запись в закрытый файл? А откуда тогда номер дескриптора остался? Это значит другой баг? А почему ПЛК вешается на функции открытия файла то? Ну такую уже муть пишете...
6)Главное "е-нумерация" по USB в ПЛК с заменой флэшки происходит, а MBR и PBR повторно прочитать не может. Причем даже если форматнуть старую флэшку берёт. Тут косяк на поверхности. Ёлки да в бесплатной FS даже есть функция закрытия FS. В вашей нет что ли? Косяк то вообще детский. Там две строчки поправить программеру.Или вот кто-то тут библиотеки пишет, можно ввести туда такую функцию.
7)Время то время 01,01,1980 это что такое? Не писал уже, ну ладно. Год уже прошел, пора уже. Кому мелочи, а у кого-то и вопросы возникает по такому поводу.

Вы лучше скажите когда выйдет новая прошивка. Про баги и так всё ясно, что исправлять никто не будет.
А то вот два новых проекта на колесах и чет ну никак не прикалывает заставлять глушить водителя машину, чтоб USB флэшку поставить. Ну потому что в руководстве к ПЛК кто-то так решил, ну и никак иначе. Есть свет в конце туннеля? Или троллить будете до бесконечности? Банально захотел водитель два раза снять список ошибок на флэшку.

1) баги надо устранять, только они нразве найдены, кто то кроме Вас обращается по поводу перегрузки плк при записи архивов?
2) не забыли что перед Вами контроллер, лишний код не привествуется, его задача обеспечивать главный цикл а не плюшки по пиреферии
3) ну может в руководстве и появилось упоминание про выключение питания, чтобы не решать пункт 2
4) по внутреннему устройству функций и их количеству это к S3 Software
5) зачем тестит прожку если и на взгляд видно что она неработоспособна и вынесет мозги плк?
6) не забыли что перед Вами контроллер, пост №3 этой темы, цитата:"может есть способ кинуть команду линуксу на размонтирование/монтирование флэшки". Вы СЕРЬЕЗНО!? Думаете там линукс?
7) У сименса время с 1990 года начинается, вот вобще отморозки

VanIvan
14.06.2017, 09:32
1) какие архивы? хххххде у вас там они хранятся? Сколько там RAM-то? Что там вообще сохранить можно? А дальше куда эти данные девать? Влепили в СПК207-й зачем-то суперконденсаторы. Сами не знаете зачем. Тут тоже SDRAM-ка хоть минут пять жила бы. Тогда небольшой есть смысл в этих мизерных объемах что-то хранить.
1,1)Один из вас чушь написал - я ему ответил про винду. Теперь второй прочитал и не разобравшись еще одну чушь написал. Ну да ладно. Объясняю, так как мелкосерийно выпускаю устройства типа регистратора аналоговых, дискретных сигналов с экранчиком. И первый десяток устройств делал с сохранением во флэшку сразу. Потом, правда ,пошло всё через буфер NAND. Так как косяки и правда есть, если на флэшу катать. А причина тут кроется в том, что она скотина сразу не пишет в свою NAND. Буферит и не скидывает. Так вот этой АТА-шной командой можно её поторопить. Становится гораздо лучше, но вопроса всё же не снимает. В общем, про винду и безопасное извлечение не я начал. Потому и пишу какой есть способ улучшить. Опять же с пометкой - что ничего не гарантируется.
2)при чем тут статика? О какой статике можно говорить когда софт кривой? Про неё вообще писать нынче не стоит, так как контроллер положить статикой это надо наверно линии до памяти завернуть через блок питания и по корпусу пару раз обернут + шокер. Решается фильтриком на USB + USBLC6. Может уже стоит, не знаю. Единственное воздействие, которое может быть - 1)это плохое питание 2)криво разведённая плата 3)всё что излучает - рации, телефоны(при удачном стечении и правда сносит мозх).
4,5) так разве я говорил сразу про 0,3,68 ? Это мне её позже дали. А вы все пишете и пишете. 0,3,68 кстати тоже ложится. Но последовал второму дельному совету из всего этого балагана ,разведённого вами, сделал запись без закрытия файла. Потом тупо закрывать CloseAll. Так как функция закрытия файла по старому дескриптору в корне не верна.Она и не работает. Удивительно, что это еще не вешает контроллер. Дальше тестить просто нет желания новую прошивку. Толку то?
6) Если вы до линукса не дошли, так это еще проще. Файловую систему купить дорого? Не дороже чем предлагать мне поставить сервер в подвижную технику типа трактора )))) Дайте копейку ChaN-у и возьмите нормальную FS( если следовать правилам комм использования). Там уже отлажено всё годами. На электрониксе отлажено всё уже и разжевано тысячу раз.Там же помогут и по аналогам. Я уверен, что стэки просто продаются.
7)Реализация FS тому виной. Сименс не показатель. Одна комплектующая база там говорит о том, что мягко говоря "не в волне". У вас же развивающаяся компания. Должны быть в тренде.
8)Если файл не закрыть и сменить флэшку это в КОРНЕ не правильно. Но ведь ваш же человек это и посоветовал, посты почитайте. И при всей кривости удержания открытого файла всё время - это единственный 100%-й работоспособный вариант. И все работает пока флэшка используется та, которую первый раз после включения подключили. ОЧЕНЬ ПРОШУ ВАС ПРОЧИТАТЬ ПОСЛЕДНЕЕ ПРЕДЛОЖЕНИЕ НЕСКОЛЬКО РАЗ. А то еще сто раз будете перефразировать и одно и тоже писать.
9)С таким раскладом и правда решение добавлять сервер сбора данных, на кольцевом буфере с энергонезависимой памятью. Вопрос, зачем тогда ПЛК нужен? Собирать десять процов, на каждую "рюшечку" по одному.
10)Последнее , и давайте закончим балаган. Игнорите мои вопросы. Раз с прошивкой ПЛК ничего не ясно, после долгого забвения СПК207 появился. Там тот же стек FS используется или ужо линукс? В принципе могу взять на тест, но всё же. Когда их покупал "до забвения" вопроса записи на флэшку не стояло, а все возникшие вопросы разрешились поисками на форуме.

Филоненко Владислав
15.06.2017, 08:01
Закрывать файл после удаления флешки и жаловаться на то, что не закрывается - это 5!

Места под разумный архив там много, 5-6 мВ Flash и 256 кбайт ОЗУ на RAM-диске, самое то оперативно получать архивы. Или на 1 ПЛК весь Газпром сидит?
Добавьте кнопку отключить флешку в программе и все будет хорошо.

capzap
15.06.2017, 08:14
Не дороже чем предлагать мне поставить сервер в подвижную технику типа трактора ))))
до предложения использовать сервер где то говорилось о подвижной технике? Представляете для таких случаев есть сервера не на базе ПК, а например такие (http://www.owen.ru/catalog/modul_sbora_dannih_oven_msd200/opisanie)
Но нет же вместо этого пошел какой то стеб про два телефона, а тут ржание, что ему фигню подсовывают

VanIvan
15.06.2017, 08:40
Закрывать файл после удаления флешки и жаловаться на то, что не закрывается - это 5!

Места под разумный архив там много, 5-6 мВ Flash и 256 кбайт ОЗУ на RAM-диске, самое то оперативно получать архивы. Или на 1 ПЛК весь Газпром сидит?
Добавьте кнопку отключить флешку в программе и все будет хорошо.

1)Кнопку добавил. Какой смысл? Питание отключили и конэц. У вас в отношении флэшки никакого закрытия нет. Сколько тестил отключение без закрытия файла - ничего не портится. У вас оно формальное. Хотя в нормальной FS удерживать открытым файл - это прямая дорога к порче файловой на флэшке. За это хоть спасибо.
2)5-6 флэша которые убиваются? И сколько протянет такой кольцевой буфер с циклом записи 12 мегабайт в сутки? Плюс сохранение данных нужно за последний месяц. К чему это прикрутить? Бред короче.
3)Закрывать дескриптор на удаенной флэшке я и не говорил что хорошо. И не жалуюсь. Просто удаление всех дескрипторов-то работает. А вроде как должны копиться открытые файлы. Но раз удаление всех дескрипторов работает - это спасает. Еще бы сделали простую функцию перегрузки FS и было бы вообще хорошо. За неделю переговоров на этом форуме уже десять раз косяк бы исправили. Больше болобольства. И можно было бы флэшки без перезапуска менять.

capzap
15.06.2017, 09:28
1)Кнопку добавил. Какой смысл? Питание отключили и конэц.
есть так же системные события, модуль статистики наконец, в котором по отключению питания можно проделать все те операции, которые выполняется по нажатию кнопки, в чем проблема то

Филоненко Владислав
15.06.2017, 09:39
12 мБайт в сутки - это ни о чем. по сути это 2 перезаписи каждой страницы flash в сутки. Если не писать по 1 байту, а нормальными кусками по 2-4 кБайта.
Ресурс перезаписей как минимум 10000 на страницу, вот и считайте - 5 тыс. дней. >10 лет.

P.S. 12МБайт в сутки - это что Вы с таким объёмом делаете то?

Филоненко Владислав
15.06.2017, 09:58
Кнопка нужна для вынимания флешки. без выключения. Но с выключением лучше. Еще лучше выключение делать софтверным - через размыкание реле, удерживающее питание.

Включаем долгим нажатием на кнопку включения, ПЛК запускается, замыкает реле (параллельное кнопке включения).
При выключении нажимаем кнопку в программе (DI-какое нибудь), дожидаемся конца записи,закрываем все файлы, архиваторы и т.п., ждем 3 сек и размыкаем реле

VanIvan
15.06.2017, 18:19
Делать надо только через программное размыкание реле + бэкап питания на минуту на конденсаторах или аккумчике. Включение через долгое удержание это шило, делать надо простейшее реле времени, секунд 20-30 удержание реле после подачи питания. Дальше подхватит.
Опять же отключение нужно проводить через проверку продолжительности пропадания питания. Так как к примеру запуск ДВС дает сильную просадку.
Писать данные (по опытам) нужно блоком , разделив его на мелкие части. Меньше вероятность запороть файловую в случае чего. Положено 0,3,68 это и так ясно.

Данные пишутся до 40-50 параметров в сек float. Бывает меньше. Формат файла свой. Менять его нельзя. Посмотрю ваш сервер архивации. Что он может.

По поводу использования встроенной flash ПЛК - софт проверяет на убитые блоки? Там NAND ? У них часть блоков умерла с завода. Часть блоков умирает при последнем стирании. Часть умирает на какой-нить странице в процессе записи. По поводу 10тыс записей это только микрону и самсунгу снится. Во вложении фотка - умерла самсунговская. Красным убитые блоки. Вернули месяц назад. Проработала пол года. Покупали на компэле. Умирает память не скопом, а постепенно и с разной скоростью.

Вот под новый проект нам для чтения аварийной ситуации самое оно. Данных мало, считывать будут редко. Хранить во flash , читать по требованию на USB флэшку.