Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя
Показано с 31 по 40 из 41

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

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

    По умолчанию

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

  2. #32

    По умолчанию

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

  3. #33

    По умолчанию

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

  4. #34

    По умолчанию

    Цитата Сообщение от Илья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

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

    По умолчанию

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

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

  6. #36

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Илья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 в этот момент проглючит - она и его поломает. Но пусть будет.
    Хорошо,спасибо вам большое за всю помощь,буду сидеть мучиться и что-то пытаться делать.

  7. #37

    По умолчанию

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

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

  8. #38

    По умолчанию краш проекта после "синего экрана"

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

  9. #39

    По умолчанию

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

  10. #40
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,314

    По умолчанию

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

Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя

Похожие темы

  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

Ваши права

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