Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 21 по 30 из 41

Тема: Codesys 2v3 ломает проекты

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    По умолчанию

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

  2. #2

    По умолчанию

    Цитата Сообщение от Илья2282 Посмотреть сообщение
    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 в этот момент проглючит - она и его поломает. Но пусть будет.
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  3. #3

    По умолчанию

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

  4. #4

    По умолчанию

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

  5. #5

    По умолчанию

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

  6. #6

    По умолчанию

    Цитата Сообщение от In_Da_Cher_A Посмотреть сообщение
    и кстати, кдс, при открытии файла проекта, в папке, где лежит файл, создаёт кучку служебных файлов.
    чисто теоретически, отсутствие этих файлов никак не должно влиять на последующее повторное открытие файла проекта,
    но было бы интересно посмотреть - у автора в папке этого проекта, кдс сделал что-то или нет?
    Он сделалал доп. файлы.Как я понял он эти доп. файлы делает не сразу,а только после того как проект более менее будет написан.

  7. #7

    По умолчанию

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

    В общем, получается, что мы пришли к:
    * Всё проявляется после включения-выключения компьютера с файлом, с которым работали последний раз.
    * CodeSys не при чём
    * Нужна система бэкапов после каждого мало-мальского изменения. И это является хорошим тоном
    Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте. © Steve McConnell
    Мой рабочий блог со статьями про щиты и автоматику ОВЕН - Cs-Cs.Net | Почта: Info@Cs-Cs.Net | Канал в ТГ @CsCsNetLab

  8. #8

    По умолчанию

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

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

  9. #9

    По умолчанию

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

  10. #10

    По умолчанию

    Цитата Сообщение от IVM Посмотреть сообщение
    Поставь CoDeSys на другой ПК с путем установки по умолчанию.
    Ок,спасибо,так и сделаю.

Страница 3 из 4 ПерваяПервая 1234 ПоследняяПоследняя

Похожие темы

  1. Наши проекты
    от Николаев Андрей в разделе Наши проекты
    Ответов: 199
    Последнее сообщение: 01.02.2024, 15:39
  2. Проекты с использованием OwenCloud
    от krollcbas в разделе Облачный сервис OwenCloud
    Ответов: 7
    Последнее сообщение: 20.08.2019, 11:24
  3. Быстрые проекты
    от krollcbas в разделе Трёп (Курилка)
    Ответов: 25
    Последнее сообщение: 18.10.2017, 08:38
  4. Реализованые проекты на 5684
    от BabinVA в разделе Модус 5684-0
    Ответов: 37
    Последнее сообщение: 24.12.2014, 09:12
  5. Проекты ЖКХ, котельные
    от kucherik в разделе Наши проекты
    Ответов: 45
    Последнее сообщение: 10.12.2014, 16:21

Ваши права

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