Приветствую всех. Подскажите, пожалуйста, по Codesys и языку ST? В частности по библиотекам CAA File и SysFile. Вопрос по открытию директорий, файлов: Есть программа, которая срабатывает по событию. Событием является запись true в переменную в программе(по нажатию кнопки на визуализации). Проблема в том, что почему-то всё тормозиться на открытии директории. Отправляю функциональный блок на выполнение, но ни ошибки, ни успешного выполнения не происходит. Почему так может происходить? Спасибо.

Комментарии: 7

  1. Z-vladimir

    Функция открытия файла выполняется асинхронно. Пока она вернет какой-то результат, основная программа выполнит несколько циклов. Нужно это учитывать.

    • Anonim

      и очень затратна! соответственно имеет смысл накопить буфер, а потом его скидывать в файл

    • Qnp

      а если использовать синхронную SysDir и SisFile? они - я так понимаю - синхронные, как раз таки.

      • Z-vladimir

        Работа с файлами не может быть синхронной, это остановит выполнение программы. А для плк это критично, вылетит с ошибкой по сторожевому таймеру.

        • Qnp

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

          • Z-vladimir

            Каким образом обнуляется переменная, по которой запускается функциональный блок? Если в нее записывается TRUE с кнопки, а переход в состояние FALSE от чего происходит?

Не нашли ответ?

Вам также может быть интересно