Приветствую всех. Подскажите, пожалуйста, по Codesys и языку ST? В частности по библиотекам CAA File и SysFile. Вопрос по открытию директорий, файлов: Есть программа, которая срабатывает по событию. Событием является запись true в переменную в программе(по нажатию кнопки на визуализации). Проблема в том, что почему-то всё тормозиться на открытии директории. Отправляю функциональный блок на выполнение, но ни ошибки, ни успешного выполнения не происходит. Почему так может происходить? Спасибо.
Комментарии: 7
Z-vladimir
Функция открытия файла выполняется асинхронно. Пока она вернет какой-то результат, основная программа выполнит несколько циклов. Нужно это учитывать.
Anonim
и очень затратна! соответственно имеет смысл накопить буфер, а потом его скидывать в файл
Qnp
а если использовать синхронную SysDir и SisFile? они - я так понимаю - синхронные, как раз таки.
Z-vladimir
Работа с файлами не может быть синхронной, это остановит выполнение программы. А для плк это критично, вылетит с ошибкой по сторожевому таймеру.
Qnp
я сначала сделал копирование файла из одной директории в другую в виде функции при помощи SysFile.Copy. и всё работало. файл копировался. но так как нужна была сигнализация того, что, например, копирование удалось или нет, то пришлось отказаться от SysFile и вообще от формирования в виде функции. теперь пришлось сделать в виде программы. вот я и думаю, как теперь всё это организовать. и вроде все уже примеры просмотрел. один в один сделал. но видимо задачу не так нужно оформлять, не по событию.
Z-vladimir
Каким образом обнуляется переменная, по которой запускается функциональный блок? Если в нее записывается TRUE с кнопки, а переход в состояние FALSE от чего происходит?