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

Тема: Как программировать вложенные SFC

Древовидный режим

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

    По умолчанию

    Начнем с конца.
    1.При работе в текстовом режиме архиватор считает размер файла не в байтах, а в записях, т.е. как Вы говорите 4600 строк - это 1/7 от заданного Вами же размера. Т.о. сдвиг просто еще не включался, рановато.

    2. Если Вы выставляете цикл ПЛК 1 мс, а реально Ваша программа настолько велика, что выполняется 4 мс, то происходит следующее - начинается цикл, он длится в 4 раза чем задано, после окончания цикла должны проходить операции обслуживания, в т.ч. и обмена с МВА и пр.
    Но, т.к. следующий цикл и так уже запоздал на 3 мс, ПЛК выделяет на обслуживание очень мало времени, несколько мкс, и за этот период операции обмена с входами/выходами, работа мастеров и пр. не успевает полностью произойти. Из-за этого и возникают проблемы с обменом.
    Придется либо оптимизировать программу, либо разбивать её на мелкие подпрограммы, к-е по отдельности выполняются меньше цикла ПЛК, либо увеличить цикл ПЛК, в Вашем случае рекомендую 6 мс, а лучше 10.

    3. Про память - 8МБайт, в которых расположен собственно код ядра, ОЗУ для внутренних переменных, кэш на чтение и запись, буфера для последовательных интерфейсов, Ethernet и сокетов, куча для модулей расширения и функций работы с памятью самого CoDesys, 2 Мбайта для кода проекта, 128 кБ для оперативной памяти проекта и много много чего другого. В результате остаётся не так уж и много...

    4. Про архивирование - чем больше файл, тем больше ресурсов времени он требует на обработку. Соответственно при каждой записи архиватор должен открыть файл, перейти в его конец, записать, синхронизировать кэш и пр. операции обслуживания. Время на эти операции растет пропорционально размеру файла. На некотором объеме это время становиться недопустимо большим. И размер файла был сознательно ограничен 32000 байт в бинарном режиме. В текстовом режиме такое ограничение наложить невозможно, т.к. размер записи может варьироваться в очень широких пределах.

    Та же проблема с большими файлами в архиваторе приводит к щелканию реле. В ПЛК есть защита от зависания центрального процессора и если в течении 250 мс процессор не подтвердит свою работоспособность, послав посылку в нижний микропроцессор, он переведёт выхода в безопасное состояние. При работе с большими файлами возможны такие задержки.
    Поэтому рекомендую уменьшить размеры архивов до 20-30 кБайт и проблемы исчезнут.

    P.S. При работе с файлами из самой среды СoDesys также следует за 1 цикл ПЛК не читать свыше 30-50 кБайт и не записывать свыше 20-30 кБайт.

    Проблемы с выводом в архив нулей мы проверим.

    P.S. также рекомендую увеличить время ожидания ответа от МВА до 50 мс
    Последний раз редактировалось Филоненко Владислав; 31.01.2008 в 20:52.

Ваши права

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