PDA

Просмотр полной версии : Codesys 2v3 ломает проекты



Илья2282
17.01.2023, 01:18
Здравствуйте, помогите пожалуйста решить проблему. Я написал уже два проекта в Codesys, и каждый из них Codesys испортил выдавая такую ошибку. Я пишу проект,сохраняю его и закрываю, открываю его через день и выдает эту ошибку. Проект больше никак не получается открыть, данные потеряны. У меня вопрос, можно ли как-то восстановить проект или извлечь из него данные? 65202

ferret_maybe
17.01.2023, 07:00
Носитель на ошибки проверяли?

kondor3000
17.01.2023, 08:37
Здравствуйте, помогите пожалуйста решить проблему. Я написал уже два проекта в Codesys, и каждый из них Codesys испортил выдавая такую ошибку. Я пишу проект,сохраняю его и закрываю, открываю его через день и выдает эту ошибку. Проект больше никак не получается открыть, данные потеряны. У меня вопрос, можно ли как-то восстановить проект или извлечь из него данные? 65202

Интересно как вы его писали? Весь проект за 1 день? Раньше проекты открывались? Проверить просто, создаёте проект, задаёте 1 переменную или ; сохраняете и пробуете открыть снова. Лично я сохраняю проект в день раз по 10.
А по теме, у вас возможно криво встал Codesys 2.3. Возможно поэтому и открыть проект не получается.

Codesys 2.3.9.41 лучше скачать на сайте Овен.https://owen.ru/product/codesys_v2
Биб-ки и таргеты переустановить пакетами. Скачать там же.
И сразу соедините комп с ПЛК по изернет, USB (Debag 232) глючит часто.

Cs-Cs
17.01.2023, 10:55
...и БЭКАПЫ! ВСЕГДА, ВСЕГДА НАДО ДЕЛАТЬ БЭКАПЫ!
И лучше делать их программами (или своими скриптами), которые сохраняют старые версии файлов. Ну, буквально, по такому алгоритму:
* Все проекты хранить подпапках общей папки ("Projects\Заказ такой-то")
* Написать скрипт, который копирует всю папку, переименовывая её по текущей дате и времени в английском формате (например, Projects-2023-01-17-10-50-04)
* Запускать его после каждых значимых изменений в проекте.

Я использую старую программу KLS Backup 2013 (писал пост про неё у себя (https://cs-cs.net/soft-kls-backup-archivarius-3000)).
Она умеет сохранять старые верси файлов, причём только изменённых. Вот так:
65205 65206

Блин, ну где культура работы над проектами? Где?!!
Что имеем - то не ценим, потеряши - плачем?!

melky
17.01.2023, 13:57
Без таргетов и библиотек проект откроется, не надо ля-ля... Отругается по другому поводу, но не так.

Илья2282
17.01.2023, 23:47
Носитель на ошибки проверяли?
Не совсем понимаю о чём речь,проверить на ошибки ПЛК?Нет, ПЛК не проверял.

Илья2282
17.01.2023, 23:54
Интересно как вы его писали? Весь проект за 1 день? Раньше проекты открывались? Проверить просто, создаёте проект, задаёте 1 переменную или ; сохраняете и пробуете открыть снова. Лично я сохраняю проект в день раз по 10.
А по теме, у вас возможно криво встал Codesys 2.3. Возможно поэтому и открыть проект не получается.

Codesys 2.3.9.41 лучше скачать на сайте Овен.https://owen.ru/product/codesys_v2
Биб-ки и таргеты переустановить пакетами. Скачать там же.
И сразу соедините комп с ПЛК по изернет, USB (Debag 232) глючит часто.

1)Да проект за день, дальше дописывал бы его по необходимости.
2)Раньше проекты открывались и открываются сейчас, просто Codesys иногда ломает проект в котором ты работал последним.
3)Я сохраняю по 50 раз,но толку от этого если он потом не открывается вообще из-за эиой ошибки.
4)"Библиотеки и таргеты в библиотеке не по умолчанию?"Что вы имеете ввиду под этим? Мне проект сохранять в директории по умолчанию?
5)Я и скачивал Codesys с сайта Овен, поэтому я на этом форуме вопрос и задаю.
6)Подключался по Ethernet

Илья2282
18.01.2023, 00:03
...и БЭКАПЫ! ВСЕГДА, ВСЕГДА НАДО ДЕЛАТЬ БЭКАПЫ!
И лучше делать их программами (или своими скриптами), которые сохраняют старые версии файлов. Ну, буквально, по такому алгоритму:
* Все проекты хранить подпапках общей папки ("Projects\Заказ такой-то")
* Написать скрипт, который копирует всю папку, переименовывая её по текущей дате и времени в английском формате (например, Projects-2023-01-17-10-50-04)
* Запускать его после каждых значимых изменений в проекте.

Я использую старую программу KLS Backup 2013 (писал пост про неё у себя (https://cs-cs.net/soft-kls-backup-archivarius-3000)).
Она умеет сохранять старые верси файлов, причём только изменённых. Вот так:
65205 65206

Блин, ну где культура работы над проектами? Где?!!
Что имеем - то не ценим, потеряши - плачем?!
Я не настолько продвинутый пользователь,работаю с Codesys в первый раз,про скрипты и дополнительные программы мне идея не приходила.Да,как вариант только придумал иметь запасную копию проекта на флешке.Но не знаю поможет ли,вообще не ожидал что Codesys будет уничтожать проекты.

Илья2282
18.01.2023, 00:04
А сам проект то где ?

Не понял вопроса.Мне сломанный проект нужно скинуть?

Илья2282
18.01.2023, 00:06
Без таргетов и библиотек проект откроется, не надо ля-ля... Отругается по другому поводу, но не так.

Я если честно вообще без понятия, в первый раз с Codesys работаю и не ожидал от него таких закидонов.

In_Da_Cher_A
18.01.2023, 00:06
вы всё делаете правильно, но плохой кодесис вам гадит.
Виновата в ваших проблемах компания Овен, ведь это у неё вы скачали плохую программу.
тысячи других пользователей, скачавших кдс на сайте ОВЕН , застыли в недоумении - что они делают не так, почему у них всё работает

Илья2282
18.01.2023, 00:08
вы всё делаете правильно, но плохой кодесис вам гадит.
Виновата в ваших проблемах компания Овен, ведь это у неё вы скачали плохую программу.
тысячи других пользователей, скачавших кдс на сайте ОВЕН , застыли в недоумении - что они делают не так, почему у них всё работает

Спасибо за комментарий,очень помогло,что-то ещё?А то я что-то не понимаю к чему это всё было написано.

In_Da_Cher_A
18.01.2023, 00:50
я что-то не понимаю к чему это всё было написано.я тоже что-то не понимаю к чему вот это было написано

2)Раньше проекты открывались и открываются сейчас, просто Codesys иногда ломает проект в котором ты работал последним.
то есть какое-то время назад - всё работало. И сейчас работает. Но иногда перестаёт работать. и Виноват - КДС?
Л- логика, как говорится.

melky
18.01.2023, 09:26
У вас проблема с CodeSys, возможно установился криво, или вообще проблема в системе.
Вот пример открытия чем было и что было под рукой. TwinCat2 (он же CodeSys для ПЛК Beckhoff) а программа от ПЛК 63 Овен, да, ругается на конфигурацию ПЛК, да, ругается на отсутствие библиотек, но при этом открывает программу...

То же самое будет делать и чистый CodeSys без таргетов и отсутствующих библиотек, отругается, но откроет...

ferret_maybe
18.01.2023, 12:12
Не совсем понимаю о чём речь,проверить на ошибки ПЛК?Нет, ПЛК не проверял.
зачем ПЛК у вас может проблемы на вашем компе, диск поврежден, проблемы с ОЗУ....Вообще правильно было бы назвать версию ОС, какую CoDeSys поставили, чтобы могли исключить версию програмной несовместимости(у кого-то возможно работает в такой связке).

Cs-Cs
18.01.2023, 13:01
Мы ругаемся на отсутствие описаний:
1. В какую папку и на каком диске установлен CodeSys?
2. В какой папке (или на каком носителе) сохраняются проекты? Папка сетевая или локальная?
3. Комп личный или копоративный? Есть ли у компа бесперебойное питание или нет?
4. Выложите нам сюда хоть один повреждённый файл проекта. Хочется его в HEX/ASCII посмотреть на предмет того, что повредилось (например, повреждён заголовок, или файл обрезан по длине, или забит нулями)
5. С какими правами происходит работа над проектами? Какие права доступа к папке, где установлена CodeSys и к папке, где хранятся файлы проектов?
6. Каким образом происходит сохранение проекта:
а) Жмётся "Сохранить" (в том числе и несколько раз во время разработки проекта), а потом программа закрывается
б) Программа закрывается и на вопрос "Сохранить изменения" даётся ответ "Да" (это плохой вариант: вкупе с сетевой папкой он с вероятностью 70% даст повреждение файла из-за особенности работы виндовского SMB: он может не успеть всё записать в файл, хотя это бред)
7. Где результаты теста: "Создать пустой проект - Сохранить тем же способом, как и рабочие проекты - Открыть"?

Потому народ и стебётся, что информации нет, а все рассуждения идут на уровне "Бабка на лавке сказала что это может быть от того что вчера стена слезами плакала и на горе чорт смеялси"

Илья2282
19.01.2023, 00:12
зачем ПЛК у вас может проблемы на вашем компе, диск поврежден, проблемы с ОЗУ....Вообще правильно было бы назвать версию ОС, какую CoDeSys поставили, чтобы могли исключить версию програмной несовместимости(у кого-то возможно работает в такой связке).

Ааааа,понятно,ну на счёт компа тогда вообще без понятия,вроде нормально всё работает.ОС-лицензионная WINDOWS 10.Codesys-2.3.9 русифицированный с сайта ОВЕН.

Илья2282
19.01.2023, 00:13
У вас проблема с CodeSys, возможно установился криво, или вообще проблема в системе.
Вот пример открытия чем было и что было под рукой. TwinCat2 (он же CodeSys для ПЛК Beckhoff) а программа от ПЛК 63 Овен, да, ругается на конфигурацию ПЛК, да, ругается на отсутствие библиотек, но при этом открывает программу...

То же самое будет делать и чистый CodeSys без таргетов и отсутствующих библиотек, отругается, но откроет...

Понял,спасибо, попробую переустановить,может поможет.Но в моём случае проект не открывается напрочь,после его поломки его уже ни как не получается открыть.Выдаёт ошибку как на моём скриншоте и всё.

Илья2282
19.01.2023, 00:32
Мы ругаемся на отсутствие описаний:
1. В какую папку и на каком диске установлен CodeSys?
2. В какой папке (или на каком носителе) сохраняются проекты? Папка сетевая или локальная?
3. Комп личный или копоративный? Есть ли у компа бесперебойное питание или нет?
4. Выложите нам сюда хоть один повреждённый файл проекта. Хочется его в HEX/ASCII посмотреть на предмет того, что повредилось (например, повреждён заголовок, или файл обрезан по длине, или забит нулями)
5. С какими правами происходит работа над проектами? Какие права доступа к папке, где установлена CodeSys и к папке, где хранятся файлы проектов?
6. Каким образом происходит сохранение проекта:
а) Жмётся "Сохранить" (в том числе и несколько раз во время разработки проекта), а потом программа закрывается
б) Программа закрывается и на вопрос "Сохранить изменения" даётся ответ "Да" (это плохой вариант: вкупе с сетевой папкой он с вероятностью 70% даст повреждение файла из-за особенности работы виндовского SMB: он может не успеть всё записать в файл, хотя это бред)
7. Где результаты теста: "Создать пустой проект - Сохранить тем же способом, как и рабочие проекты - Открыть"?

Потому народ и стебётся, что информации нет, а все рассуждения идут на уровне "Бабка на лавке сказала что это может быть от того что вчера стена слезами плакала и на горе чорт смеялси"

1)Диск С, сделал отдельную папку с названием Codesys
2)Проекты сохраняются в папке на рабочем столе.Папка локальная.
3)Компьютер личный,это ноутбук.
4)Ок,прикреплю файл,но я и так могу сказать что он полностью забит нулями,я открыл его через архиватор и увидел одни нули.(P.S. Я не смог прикрепить файл,так как я не знаю как тут это сделать.)
5)Обычные права,не администратора.
6)Жал сохранить и закрывал программу.
7)65237 Вот результаты,этому проекту уже 3 недели и он почему-то открывается,а другой намного больший о котором я веду речь почему-то перестал открываться.

kondor3000
19.01.2023, 11:07
Для нормальной работы всех служб и директорий по умолчанию программу CoDeSys V2.3 надо ставить по пути C:\Program Files\3S Software\CoDeSys V2.3.
Это путь по умолчанию. Возможно в этом и проблема у вас.
А так же возможно некорректное сохранение последних проектов.

In_Da_Cher_A
19.01.2023, 12:39
и кстати, кдс, при открытии файла проекта, в папке, где лежит файл, создаёт кучку служебных файлов.
чисто теоретически, отсутствие этих файлов никак не должно влиять на последующее повторное открытие файла проекта,
но было бы интересно посмотреть - у автора в папке этого проекта, кдс сделал что-то или нет?

Cs-Cs
19.01.2023, 12:54
1)Диск С, сделал отдельную папку с названием Codesys
2)Проекты сохраняются в папке на рабочем столе.Папка локальная.
3)Компьютер личный,это ноутбук.
4)Ок,прикреплю файл,но я и так могу сказать что он полностью забит нулями,я открыл его через архиватор и увидел одни нули.(P.S. Я не смог прикрепить файл,так как я не знаю как тут это сделать.)
5)Обычные права,не администратора.
6)Жал сохранить и закрывал программу.
7)65237 Вот результаты,этому проекту уже 3 недели и он почему-то открывается,а другой намного больший о котором я веду речь почему-то перестал открываться.

Спасибо! А Windows какой версии?

Чтобы приложить проект, надо в форме ответа нажать кнопку "Расширенный режим", а дальше в верхней панели кнопок выбрать кнопку со скрепкой:
65243 65244

С чем сталкивался я:
а) Win7/10/11 не всегда любят папки в корне диска C. К примеру, если 1Ску 7.7 поставить в папку типа C:\DataBase (на название пофиг), то файловые операции из кода программы (открыть файл, прочитать, записать) недоступны. На другом диске - нет проблем.
б) Есть какая-то идиотская версия, что в новых виндах за диском C следит какой-нибудь ЗащитникСистемы, Антивирус или прочие служебные программы, которые портят данные.
в) У меня CodeSys тоже установлена в нестандартную папку (и таргету тоже) - это не влияет.
г) Ну и есть версия, что именно в самом проекте что-то такое происходит, от чего сама среда глючит (супер-сложная схема в CFC, которую никто никогда не рисовал так, или что-то подобное).

Хочется глянуть на проект.

И ещё и ещё и ещё... и ещё-ещё раз напоминаю: все разработчики обязаны иметь резервные копии, которые создаются после каждого стабильного изменения! Чтобы делать так:
* Сделал копию того, что работало
* Внёс изменения
* Проверил что работает, открывается, всё ОК
* Сделал НОВУЮ копию
...и так дале.
Те, кто пользуется глючным OwenLogic 2.0, сейчас это хорошо понимают.

Илья2282
20.01.2023, 01:23
Для нормальной работы всех служб и директорий по умолчанию программу CoDeSys V2.3 надо ставить по пути C:\Program Files\3S Software\CoDeSys V2.3.
Это путь по умолчанию. Возможно в этом и проблема у вас.
А так же возможно некорректное сохранение последних проектов.

Ок,перенес его в путь по умолчанию.

Илья2282
20.01.2023, 01:27
и кстати, кдс, при открытии файла проекта, в папке, где лежит файл, создаёт кучку служебных файлов.
чисто теоретически, отсутствие этих файлов никак не должно влиять на последующее повторное открытие файла проекта,
но было бы интересно посмотреть - у автора в папке этого проекта, кдс сделал что-то или нет?

Он сделалал доп. файлы.Как я понял он эти доп. файлы делает не сразу,а только после того как проект более менее будет написан.

Илья2282
20.01.2023, 01:55
Спасибо! А Windows какой версии?

Чтобы приложить проект, надо в форме ответа нажать кнопку "Расширенный режим", а дальше в верхней панели кнопок выбрать кнопку со скрепкой:
65243 65244

С чем сталкивался я:
а) Win7/10/11 не всегда любят папки в корне диска C. К примеру, если 1Ску 7.7 поставить в папку типа C:\DataBase (на название пофиг), то файловые операции из кода программы (открыть файл, прочитать, записать) недоступны. На другом диске - нет проблем.
б) Есть какая-то идиотская версия, что в новых виндах за диском C следит какой-нибудь ЗащитникСистемы, Антивирус или прочие служебные программы, которые портят данные.
в) У меня CodeSys тоже установлена в нестандартную папку (и таргету тоже) - это не влияет.
г) Ну и есть версия, что именно в самом проекте что-то такое происходит, от чего сама среда глючит (супер-сложная схема в CFC, которую никто никогда не рисовал так, или что-то подобное).

Хочется глянуть на проект.

И ещё и ещё и ещё... и ещё-ещё раз напоминаю: все разработчики обязаны иметь резервные копии, которые создаются после каждого стабильного изменения! Чтобы делать так:
* Сделал копию того, что работало
* Внёс изменения
* Проверил что работает, открывается, всё ОК
* Сделал НОВУЮ копию
...и так дале.
Те, кто пользуется глючным OwenLogic 2.0, сейчас это хорошо понимают.
1)Операционная система Windows 10
2)Спасибо, проект по вашей инструкции прикрепил.
3)С копиями вот проблема.Потому что там такая беда,Codesys у меня эти проекты не сразу портитит, у него там прям как отложенный эффект. История с последним испорченным проектом была такая:Я в институте сидел 6 часов и за это время успел набросать кое какую программу,сохранил её и выключил ноутбук.Потом включил его обратно чтобы проверить всё ли нормально с проектом, проект открылся всё нормально работало (делал все эти проверки специально так как у меня до этого уже был испорченный проект который я писал 4 дня и я искал версию почему проекты портятся). Через 3 часа приезжаю домой, открываю Codesys чтобы продолжить работу и всё, проект сломан как и предыдущий до него, выдаёт ошибку скриншот которой я скидывал. Причём сломало конкретно именно этот проект который я 6 часов сделал, параллельно с ним я в институте за 15 минут накидал ещё два и они оказались совершенно целы и они вон до сих пор работают, я вам скидывал "Вложение 65237" это скриншот из одного из них. Ну и если делать выводы то по итогу получается что Codesys мне проект сломал не сразу как я из него вышел и ноутбук выключил, потому что я включил его обратно и всё работало, а аж через 3 часа когда я уже дома захотел его открыть.

1exan
20.01.2023, 05:09
1)Операционная система Windows 10
2)Спасибо, проект по вашей инструкции прикрепил.
3)С копиями вот проблема.Потому что там такая беда,Codesys у меня эти проекты не сразу портитит, у него там прям как отложенный эффект. История с последним испорченным проектом была такая:Я в институте сидел 6 часов и за это время успел набросать кое какую программу,сохранил её и выключил ноутбук.Потом включил его обратно чтобы проверить всё ли нормально с проектом, проект открылся всё нормально работало (делал все эти проверки специально так как у меня до этого уже был испорченный проект который я писал 4 дня и я искал версию почему проекты портятся). Через 3 часа приезжаю домой, открываю Codesys чтобы продолжить работу и всё, проект сломан как и предыдущий до него, выдаёт ошибку скриншот которой я скидывал. Причём сломало конкретно именно этот проект который я 6 часов сделал, параллельно с ним я в институте за 15 минут накидал ещё два и они оказались совершенно целы и они вон до сих пор работают, я вам скидывал "Вложение 65237" это скриншот из одного из них. Ну и если делать выводы то по итогу получается что Codesys мне проект сломал не сразу как я из него вышел и ноутбук выключил, потому что я включил его обратно и всё работало, а аж через 3 часа когда я уже дома захотел его открыть.

У меня была похожая проблема, но с внешним HDD. Если подключить диск к ОТКЛЮЧЕННОМУ ноутбуку, который находится в спящем режиме и включить ноутбук, то иногда происходит как-бы "наложение" той информации о содержании диска, что была в памяти ноутбука с текущим состоянием диска. В результате файлы, имена которых не изменялись (а содержимое поменялось), могут быть повреждены, а вот новые файлы не затрагиваются.
Попробуйте каждый раз сохранять проект с новым именем, или делайте новую копию файла проекта ПЕРЕД отключением питания ноутбука. Ну и как вариант, ещё и копию на флешку.

Cs-Cs
20.01.2023, 10:32
Илья2282 Всё чётко: причину следует искать в Windows. CodeSys тут не при чём вообще прям никак, потому что файл оказался нужного размера, но весь заполнен 0x00. Данных там НИКАКИХ нет.
С таким может чудить:
* Как 1exan говорит, всякие внешние диски и прочие херни
* Спящий режим (НЕ гибернация), в который по умолчанию новые винды могут пытаться выключаться. В нём кое-какие программы и подсистемы Windows пытаются работать, а CodeSys имеет настройку автосохранения проекта каждые ХХ минут.
* Просто Windows 10/11. На Хабре куча статей вида "Новое обновление винды ломает звук" и так далее.

В общем, получается, что мы пришли к:
* Всё проявляется после включения-выключения компьютера с файлом, с которым работали последний раз.
* CodeSys не при чём
* Нужна система бэкапов после каждого мало-мальского изменения. И это является хорошим тоном

Илья2282
21.01.2023, 12:39
У меня была похожая проблема, но с внешним HDD. Если подключить диск к ОТКЛЮЧЕННОМУ ноутбуку, который находится в спящем режиме и включить ноутбук, то иногда происходит как-бы "наложение" той информации о содержании диска, что была в памяти ноутбука с текущим состоянием диска. В результате файлы, имена которых не изменялись (а содержимое поменялось), могут быть повреждены, а вот новые файлы не затрагиваются.
Попробуйте каждый раз сохранять проект с новым именем, или делайте новую копию файла проекта ПЕРЕД отключением питания ноутбука. Ну и как вариант, ещё и копию на флешку.

Я понял,спасибо,да у меня это как-то тоже связано похоже с отключением и включением ноутбука,но только у меня проект на системной папке хранится.А вам получается помогло менять имена файла и делать резервные копии,проект перестал ломаться?

Илья2282
21.01.2023, 12:54
Илья2282 Всё чётко: причину следует искать в Windows. CodeSys тут не при чём вообще прям никак, потому что файл оказался нужного размера, но весь заполнен 0x00. Данных там НИКАКИХ нет.
С таким может чудить:
* Как 1exan говорит, всякие внешние диски и прочие херни
* Спящий режим (НЕ гибернация), в который по умолчанию новые винды могут пытаться выключаться. В нём кое-какие программы и подсистемы Windows пытаются работать, а CodeSys имеет настройку автосохранения проекта каждые ХХ минут.
* Просто Windows 10/11. На Хабре куча статей вида "Новое обновление винды ломает звук" и так далее.

В общем, получается, что мы пришли к:
* Всё проявляется после включения-выключения компьютера с файлом, с которым работали последний раз.
* CodeSys не при чём
* Нужна система бэкапов после каждого мало-мальского изменения. И это является хорошим тоном
Спасибо.
1)Можете пожалуйста пояснить про "файл оказался нужного размера"?Имете ввиду что он 125 кб весит?
2)Да,нули я тоже видел и что там ничего кроме них теперь нет.
3)Получается этот проект уже можно выкинуть в помойку и его никак не починить/не восстановить?
4)А вот вы пишете про проблему спящего режима Windows,что вы имеете ввиду,я немного не понял.Мне может автосохранение CodeSys вырубить?
5)Ну да проявляется после включения-выключения, буду пробовать делать 500 миллионов копий может поможет и их трогать он не будет.

IVM
21.01.2023, 14:06
Поставь CoDeSys на другой ПК с путем установки по умолчанию.

melky
21.01.2023, 18:30
Илья2282 проверьте режим гибернации или сна в настройках ноута. Например у меня настроено не отключаться, когда закрываю крышку при подключенном питании. Использую для доступа к своему ноуту с работы. Если у вас типа того и когда вы приезжаете домой, а ноут все это время работал и вырубился по питанию, то наверное так и будет, сохранить не успел и все....

Илья2282
22.01.2023, 12:32
Поставь CoDeSys на другой ПК с путем установки по умолчанию.
Ок,спасибо,так и сделаю.

Илья2282
22.01.2023, 12:42
Илья2282 проверьте режим гибернации или сна в настройках ноута. Например у меня настроено не отключаться, когда закрываю крышку при подключенном питании. Использую для доступа к своему ноуту с работы. Если у вас типа того и когда вы приезжаете домой, а ноут все это время работал и вырубился по питанию, то наверное так и будет, сохранить не успел и все....
Я понял,хорошо,спасибо большое.

Cs-Cs
23.01.2023, 11:14
1)Операционная система Windows 10
2)Спасибо, проект по вашей инструкции прикрепил.
3)С копиями вот проблема.Потому что там такая беда,Codesys у меня эти проекты не сразу портитит, у него там прям как отложенный эффект. История с последним испорченным проектом была такая:Я в институте сидел 6 часов и за это время успел набросать кое какую программу,сохранил её и выключил ноутбук.Потом включил его обратно чтобы проверить всё ли нормально с проектом, проект открылся всё нормально работало (делал все эти проверки специально так как у меня до этого уже был испорченный проект который я писал 4 дня и я искал версию почему проекты портятся). Через 3 часа приезжаю домой, открываю Codesys чтобы продолжить работу и всё, проект сломан как и предыдущий до него, выдаёт ошибку скриншот которой я скидывал. Причём сломало конкретно именно этот проект который я 6 часов сделал, параллельно с ним я в институте за 15 минут накидал ещё два и они оказались совершенно целы и они вон до сих пор работают, я вам скидывал "Вложение 65237" это скриншот из одного из них. Ну и если делать выводы то по итогу получается что Codesys мне проект сломал не сразу как я из него вышел и ноутбук выключил, потому что я включил его обратно и всё работало, а аж через 3 часа когда я уже дома захотел его открыть.
Илья2282 Ну, обычно проект в CodeSys занимает 100-200 кб, если он средней нафаршированности и около 300-400 кб, если там дофига всего. Вот эмпирически размер проекта в 150 кб верный. Я хотел увидеть, есть ли какие-то явные отличия в размере. Ну, образно, файл станет в 0, 10, 512 кб и так далее.
Восстановить - никак. Файл заполнен нулями. Весь. Ничего там нет. Размер правильный, а внутри - нули.

И... зная работу WinAPI (а все программы через него обращаются к Windows, файлам и прочему) и файловой системы NTFS (которая поддерживает журналирование операций - то есть при сбое записи на диск по журналу операций может восстановить саму себя в некоторых пределах), можно предположить следующее развитие событий (это - версия, которую надо доказать, а не принимать на веру):
а) CodeSys хочет сохранить проект (автоматически или ещё как-то). Для чего использует вызов функции WinAPI CreateFileEx с флагами создания нового файла.
б) Пишет в этот файл данные и закрывает его, как обычно.
в) Файловая система NTFS журналирует эти операции (данные НЕ журналируются: журналируется состояние файлов на диске): "Ага... создали файл... записали. Размер файла - 150 кб, дата-время такие-то, запись завершена".
г) Постепенно эта информация начинает записываться на диск (на диски инфа пишется через буферы операционной системы, чтобы ускорить работу программ: сначала инфа попадает в буфер, а потом уже записывается на физический диск)
д) В этот момент что-то происходит с питанием Windows и по какой-то причине она принудительно выключается и данные записаться не успевают. Обычно, если Windows выключается не принудительно, то все буферы данных физически записываются на диск (Flush).
е) После следующего включения Windows файловая система видит незавершённую транзакцию в журнале операций и восстанавливает целостность самой себя (это НЕ "Проверка диска" - это именно внутренняя работа NTFS). Восстановление может происходит следующим образом:
* Если транзакция "Создали файл - записали - закрыли" завершена, то файл останется на диске, но будет заполнен нулями
* Если та же транзакция не завершена - то файла не будет вообще.

Я сталкивался с повреждением файлов в двух случаях (везде была операция с файлами - файл записывался программной или копировался с диска на диск):
а) Синий экран. Получал или файл нужного размера с нулями внутри (как у тебя) или файл нулевого размера.
б) Неожиданное отключение питания компа (когда это был не ноут, а обычный комп без UPS и пропадало 230V сети)

Стоит знать про режимы работы винды (для размышления):
* Завершение работы: программы корректно завершаются, все данные записываются на диск, на оперативную память - пофиг (содержимое не сохраняется, так как питание компа отключается)
* Гибернация: программы останавливатся, аппаратные устройства (Дисплей, USB) отключаются, все данные и содержимое оперативной памяти записываются на диск (и он отключается после завершения всех транзакций записи) и питание компьютера полностью отключается. Потом всё восстанавливается как было. Это самый надёжный режим выключения компа, если хочется продолжить работу с того же места!
* Спящий режим и его вариации: отключаются аппаратные устройства, данные сбрасываются на диск (Flush) и диск тоже отключается. А вот содержимое оперативной памяти и работа программ НЕ останавливается! Они могут работать в фоновом режиме и что-то делать.
Этот режим похож на блокировку экрана на смартфонах: экран погашен, а все приложения работают как обычно.
Современные винды (Win10/11) почему-то стараются даже при выключении компа кнопкой превратить его в планшет и держать его в именно этом режиме. "Они убили файлы. Сволочи!" ©
(Тут Melky был прав, да-да, это редкий случай)

На этом мои мысли кончились. Рекомедации:
а) Настроить ноут так, чтобы при нажатии кнопки питания ВСЕГДА включался режим гибернации. Если ноут надо будет перезагрузить целиком - то делать это через Пуск - Завершение работы / Перезагрузка.
б) Обязательно найти софт для бэкапа каждой версии файла и проекта. Я использую старый KLS Backup 2013 из торрентов, про который писал обзор.
Приучить себя к тому, чтобы периодически запускать резервирование: в момент важных изменений (написал FB - забэкапил, отладил FB - забэкапил) и после завершения работы над проектом. Дожидаться успешного завершения резервирования. Конкретно в KLS Backup есть режим на выбор: Выключить / Сон / Гибернация после окончания работы программы.
То есть, если надо закончить работу и вырубить комп - запускаем бэкап, ставим "Гибернация после завершения заданий бэкапа" - и дожидаемся, когда комп вырубится.
CodeSys (версий 2 и 3) имеет классную особенность: в тот момент, когда она сам не сохраняет проект, файл проекта доступен для чтения. То есть, можно его бэкапить, не закрывая среду разработки.
в) Включить в CodeSys в настройках создание бэкапов проекта. Это может и не помочь, так как бэкап создаётся той же записью в файл, и, если NTFS в этот момент проглючит - она и его поломает. Но пусть будет.

melky
23.01.2023, 11:38
Cs-Cs начиная с Windows 8 система не выключается как мы привыкли раньше, это легко проверить, если подключиться по SNMP и смотреть время жизни до и после перезагрузки ПК. Чтобы действительно выключить компьютер, а не гебернировать его, есть специальная команда, или делать выключение с зажатой кнопкой, толи шифт толи еще что, не помню уже....

Когда нарвался первый раз, был удивлен. Это сделано для ускорения загрузки ОС...

Илья2282
28.01.2023, 17:16
Илья2282 Ну, обычно проект в CodeSys занимает 100-200 кб, если он средней нафаршированности и около 300-400 кб, если там дофига всего. Вот эмпирически размер проекта в 150 кб верный. Я хотел увидеть, есть ли какие-то явные отличия в размере. Ну, образно, файл станет в 0, 10, 512 кб и так далее.
Восстановить - никак. Файл заполнен нулями. Весь. Ничего там нет. Размер правильный, а внутри - нули.

И... зная работу WinAPI (а все программы через него обращаются к Windows, файлам и прочему) и файловой системы NTFS (которая поддерживает журналирование операций - то есть при сбое записи на диск по журналу операций может восстановить саму себя в некоторых пределах), можно предположить следующее развитие событий (это - версия, которую надо доказать, а не принимать на веру):
а) CodeSys хочет сохранить проект (автоматически или ещё как-то). Для чего использует вызов функции WinAPI CreateFileEx с флагами создания нового файла.
б) Пишет в этот файл данные и закрывает его, как обычно.
в) Файловая система NTFS журналирует эти операции (данные НЕ журналируются: журналируется состояние файлов на диске): "Ага... создали файл... записали. Размер файла - 150 кб, дата-время такие-то, запись завершена".
г) Постепенно эта информация начинает записываться на диск (на диски инфа пишется через буферы операционной системы, чтобы ускорить работу программ: сначала инфа попадает в буфер, а потом уже записывается на физический диск)
д) В этот момент что-то происходит с питанием Windows и по какой-то причине она принудительно выключается и данные записаться не успевают. Обычно, если Windows выключается не принудительно, то все буферы данных физически записываются на диск (Flush).
е) После следующего включения Windows файловая система видит незавершённую транзакцию в журнале операций и восстанавливает целостность самой себя (это НЕ "Проверка диска" - это именно внутренняя работа NTFS). Восстановление может происходит следующим образом:
* Если транзакция "Создали файл - записали - закрыли" завершена, то файл останется на диске, но будет заполнен нулями
* Если та же транзакция не завершена - то файла не будет вообще.

Я сталкивался с повреждением файлов в двух случаях (везде была операция с файлами - файл записывался программной или копировался с диска на диск):
а) Синий экран. Получал или файл нужного размера с нулями внутри (как у тебя) или файл нулевого размера.
б) Неожиданное отключение питания компа (когда это был не ноут, а обычный комп без UPS и пропадало 230V сети)

Стоит знать про режимы работы винды (для размышления):
* Завершение работы: программы корректно завершаются, все данные записываются на диск, на оперативную память - пофиг (содержимое не сохраняется, так как питание компа отключается)
* Гибернация: программы останавливатся, аппаратные устройства (Дисплей, USB) отключаются, все данные и содержимое оперативной памяти записываются на диск (и он отключается после завершения всех транзакций записи) и питание компьютера полностью отключается. Потом всё восстанавливается как было. Это самый надёжный режим выключения компа, если хочется продолжить работу с того же места!
* Спящий режим и его вариации: отключаются аппаратные устройства, данные сбрасываются на диск (Flush) и диск тоже отключается. А вот содержимое оперативной памяти и работа программ НЕ останавливается! Они могут работать в фоновом режиме и что-то делать.
Этот режим похож на блокировку экрана на смартфонах: экран погашен, а все приложения работают как обычно.
Современные винды (Win10/11) почему-то стараются даже при выключении компа кнопкой превратить его в планшет и держать его в именно этом режиме. "Они убили файлы. Сволочи!" ©
(Тут Melky был прав, да-да, это редкий случай)

На этом мои мысли кончились. Рекомедации:
а) Настроить ноут так, чтобы при нажатии кнопки питания ВСЕГДА включался режим гибернации. Если ноут надо будет перезагрузить целиком - то делать это через Пуск - Завершение работы / Перезагрузка.
б) Обязательно найти софт для бэкапа каждой версии файла и проекта. Я использую старый KLS Backup 2013 из торрентов, про который писал обзор.
Приучить себя к тому, чтобы периодически запускать резервирование: в момент важных изменений (написал FB - забэкапил, отладил FB - забэкапил) и после завершения работы над проектом. Дожидаться успешного завершения резервирования. Конкретно в KLS Backup есть режим на выбор: Выключить / Сон / Гибернация после окончания работы программы.
То есть, если надо закончить работу и вырубить комп - запускаем бэкап, ставим "Гибернация после завершения заданий бэкапа" - и дожидаемся, когда комп вырубится.
CodeSys (версий 2 и 3) имеет классную особенность: в тот момент, когда она сам не сохраняет проект, файл проекта доступен для чтения. То есть, можно его бэкапить, не закрывая среду разработки.
в) Включить в CodeSys в настройках создание бэкапов проекта. Это может и не помочь, так как бэкап создаётся той же записью в файл, и, если NTFS в этот момент проглючит - она и его поломает. Но пусть будет.

Хорошо,спасибо вам большое за всю помощь,буду сидеть мучиться и что-то пытаться делать.

Илья2282
28.01.2023, 17:17
Cs-Cs начиная с Windows 8 система не выключается как мы привыкли раньше, это легко проверить, если подключиться по SNMP и смотреть время жизни до и после перезагрузки ПК. Чтобы действительно выключить компьютер, а не гебернировать его, есть специальная команда, или делать выключение с зажатой кнопкой, толи шифт толи еще что, не помню уже....

Когда нарвался первый раз, был удивлен. Это сделано для ускорения загрузки ОС...

Да,похоже на то.

dimaverick
21.02.2023, 08:00
Добрый день. Во время работы в codesys2.3 вылетел экран смерти, после перезагрузки проект уже не открывается, выходит аналогичная ошибка "невозможно открыть проект/библиотеку(ошибка в файле)". Подскажите пожалуйста, есть ли какие-нибудь программные средства чтоб выдернуть код хотя бы?!?!
Автосохранение каждые 10 мин установлено, но галочка резервная копия не стояла. Приложу копию проекта на всякий.

Cs-Cs
21.02.2023, 08:05
dimaverick НЕТ! В файле одни нули (в смысле, файл ПОЛНОСТЬЮ ПУСТ)! А значит причина повреждения - та же, как и у Илья2282.
Бэкапы, бэкапы, бэкапы и ещё и ещё раз бэкапы! Какого же фига многие так не ценят свою работу?

Валенок
21.02.2023, 08:18
Не парьтесь, до бекапов доходят сами через неделю сурка

Cs-Cs
21.02.2023, 08:29
Валенок Напишу про это у себя в посте на сайте =))