Показано с 1 по 9 из 9

Тема: Как избавится от автозапуска программы?

  1. #1

    По умолчанию Как избавится от автозапуска программы?

    Добрый день.
    подскажите, как запретить автоматический запуск программы?
    постоянно перегружается из-за ошибки в программе. как выйти из этой ситуации кроме перешивки?

    default_prg записываемая в контроллер после данных это boot project?
    галочка Create boot project не установлена.
    прилагаю лог загрузки контроллера. можно сказать из-за чего происходит перезагрузка? (ватчдог? )
    и еще, там есть какая то ошибка в начале разбора конфигурации. что это?
    Вложения Вложения

  2. #2

    По умолчанию

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

  3. #3

    По умолчанию

    про пуск понятно. а все таки, default.prg записываемая в последнюю очередь это что, программа для автозапуска?

    причину нашел тогда. это присваивание переменной dword значения
    16#1 0000 0000. где то у вас ошибка в прошивке.. посмотрите.. должен просто присвоиться 0 в этом случае. а тут такие фатальные последствия...

  4. #4

    По умолчанию

    Какие могут быть ошибки в прошивке, если Вы пытаетесь записать 5 байт в 4-х байтовую переменную? Как повёл себя компилятор CoDeSys в этом случае - не знаю.

  5. #5

    По умолчанию

    я не пытаюсь скопировать область памяти 5 байт в выделенные 4. оператор присваивания должен корректно обрабатывать входные значения.
    компилятор Кодесис насколько я знаю не генерирует машинный код. операция присваивания выполняется исполняющей системой в контроллере?
    просто при выполнении такого на PLCWinNT все работает, присваивается 0 как положено.

  6. #6

    По умолчанию

    Компилятор Вы не знаете - он генерит бинарный код. На то и компилятор!
    А архитектуры Intel и ARM отличаются, однако...

  7. #7

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    Компилятор Вы не знаете - он генерит бинарный код. На то и компилятор!
    А архитектуры Intel и ARM отличаются, однако...
    Не всякий компилятор генерит машинный код.. пример .NET.
    Т.е. компилятор кодесис генерит непосредственно машинный код на основе таргета? Я думал что в промежуточный код, одинаковый для всех платформ.
    Видел тему просто здесь, в которой объясняли на что идет память контроллера. Там под исполняющую систему кодесис отводилось не один мб. Тогда интересно что делает исполняющая система, если в контроллер пишется уже исполняемый код.
    Это я из любопытства, тот пример не более чем пример, думал может Вам интересно будет.

  8. #8

    По умолчанию

    Цитата Сообщение от Аркадий Посмотреть сообщение
    Т.е. компилятор кодесис генерит непосредственно машинный код на основе таргета?
    Да.
    Цитата Сообщение от Аркадий Посмотреть сообщение
    Я думал что в промежуточный код, одинаковый для всех платформ.
    Нет. В конкурирующих МЭК системах применяется такой подход. Но это сразу замедляет выполнение в 10 раз. CoDeSys изначально был ориентирован на машиностроительные компании. Для них скорость выполнения прикладного ПО очень важна.
    Цитата Сообщение от Аркадий Посмотреть сообщение
    Тогда интересно что делает исполняющая система, если в контроллер пишется уже исполняемый код.
    Такое название сложилось исторически. Исполняющая система делает тоже, что и ОС в компьютере (загрузка, управление задачами, поддержка оборудования, файловой системы, TCP/IP и др. и пр.). Обычная программа в Windows - это тоже исполняемый код.

  9. #9

    По умолчанию

    Спасибо, все понятно.

Ваши права

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