Показано с 1 по 10 из 41

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

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

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

    По умолчанию

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

    Чтобы приложить проект, надо в форме ответа нажать кнопку "Расширенный режим", а дальше в верхней панели кнопок выбрать кнопку со скрепкой:
    Attach-1.gif Attach-2.gif

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

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

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

  2. #2

    По умолчанию

    Цитата Сообщение от Cs-Cs Посмотреть сообщение
    Спасибо! А Windows какой версии?

    Чтобы приложить проект, надо в форме ответа нажать кнопку "Расширенный режим", а дальше в верхней панели кнопок выбрать кнопку со скрепкой:
    Attach-1.gif Attach-2.gif

    С чем сталкивался я:
    а) 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 часа когда я уже дома захотел его открыть.
    Вложения Вложения
    • Тип файла: pro PLC150.pro (121.0 Кб, Просмотров: 10)

  3. #3

    По умолчанию

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

  4. #4

    По умолчанию

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

  5. #5

    По умолчанию

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

  6. #6

    По умолчанию

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

Похожие темы

  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

Ваши права

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