0 / 0 / 0
Регистрация: 18.03.2019
Сообщений: 7
1

beckhoff и Twincat Проблема при работе с файлом

09.09.2021, 11:13. Показов 163. Ответов 0
Метки нет (Все метки)

Всем добрый день. у меня такая проблема. Написал функцию записи в файл лога, но записывает она почему то только 1 раз при старте программы. При повторном вызове записи не происходит. Ошибок в выходах функциональных блоков нет, новая строка формируется, а запись не идет.
Подскажите куда копать.

Код
IF iBusy=1 THEN (*Процесс записи 1: *)
	fbFileOpen.sNetId:='5.94.148.102.1.1';(*Необязательная переменная для работы с фалом*)
	fbFileOpen.sPathName:='\Hard Disk\Logs\1.txt';(*Путь к файлу*)
	fbFileOpen.nMode:=FOPEN_MODEAPPEND OR FOPEN_MODEPLUS;(*Тип открытия файла APPEND*)
	fbFileOpen.bExecute:=TRUE; (*Установка флага выполнения*)
	fbFileOpen.tTimeout:=t#200MS; (*Установка таймаута*)
	k:=k+1; (*начинаем счет попыток записи*)
	fbFileOpen(); (*Пытаемся открыть файл*)
	IF  fbFileOpen.hFile<>0 THEN (*Если файл открыт*)
		iBusy:=2; (*Сдвиггаем флаг процесса записи*)
		fbFileOpen.bExecute:=FALSE;
	END_IF
END_IF

IF iBusy=2 THEN (*Процесс записи 2: Формируем строку*)
	fbGetSystemTime(timeLoDW=>fileTime.dwLowDateTime, timeHiDW=>fileTime.dwHighDateTime );(*Получаем дату и время*)
	sTime :=SYSTEMTIME_TO_STRING( FILETIME_TO_SYSTEMTIME( fileTime ) );(*Переводим из TIME в STRING(Взято готовое с сайта бекхофа)*)
	sFileput:='$0A';
	sFileput:=CONCAT(sFileput, sTime);
	sTime:=' Errors: ';
	sFileput:=CONCAT(sFileput, sTime);
	sFileput:=CONCAT(sFileput, INT_TO_STRING(iErr220v));
	sFileput:=CONCAT(sFileput, INT_TO_STRING(iBoxOH));
	sFileput:=CONCAT(sFileput, INT_TO_STRING(iFilterLAP));
	sFileput:=CONCAT(sFileput, INT_TO_STRING(iOpticLAP));
	sFileput:=CONCAT(sFileput, INT_TO_STRING(iLiquidLF));
	sFileput:=CONCAT(sFileput, INT_TO_STRING(iLiquidOH));
	sFileput:=CONCAT(sFileput, INT_TO_STRING(iCameraOH));
	sFileput:=CONCAT(sFileput,sFileput2);
	iBusy:=3;
END_IF

IF iBusy=3 THEN (*Процесс записи 3:Записываем строку*)
	fbFilePuts.sLine:=sFileput;
	fbFilePuts.sNetId:='5.94.148.102.1.1';(*Необязательная переменная для работы с файлом*)
	fbFilePuts.hFile:=fbFileOpen.hFile;
	fbFilePuts.bExecute:=TRUE; (*Установка флага выполнения*)
	fbFilePuts.tTimeout:=t#200MS; (*Установка таймаута*)
	k:=k+1; (*начинаем счет попыток записи*)
	fbFilePuts();
	IF  fbFilePuts.bBusy=FALSE THEN (*Если строка записана*)
		iBusy:=4; (*Сдвиггаем флаг процесса записи*)
		fbFilePuts.bExecute:=FALSE;
	END_IF
END_IF

IF iBusy=4 THEN (*Процесс записи 4:Закрываем файл*)
	fbFileClose.sNetId:='5.94.148.102.1.1';(*Необязательная переменная для работы с файлом*)
	fbFileClose.hFile:=fbFileOpen.hFile;
	fbFileClose.bExecute:=TRUE; (*Установка флага выполнения*)
	fbFileClose.tTimeout:=t#200MS; (*Установка таймаута*)
	k:=k+1; (*начинаем счет попыток записи*)
	fbFileClose();
	IF  fbFileClose.bBusy=FALSE THEN (*Если строка записана*)
		iBusy:=0; (*Сдвиггаем флаг процесса записи*)
		fbFileClose.bExecute:=FALSE;
	END_IF
END_IF

IF K>100 THEN (*Если прошлоо более 100 попыток, все обнуляем и выходим*)
	k:=0;
	iBusy:=0;
END_IF
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.09.2021, 11:13
Ответы с готовыми решениями:

Как вывести Beckhoff TwinCAT 2.9 из деморежима?
Хелп господа! Имеется данная софтина Beckhoff TwinCAT 2.9 установленная в пром ПК, суть вопроса в...

Проблема при работе с бинарным файлом. Необходимо дописать число в конец файла
//Есть 2 программы, первая заполняет бинарный файл, вторая читает из него данные. //код который...

Проблема с Beckhoff BC900 и модбас
Помогите пожалуйста. Уже третью неделю сижу не могу разобраться с BC9000. Как увидеть входы и...

Ошибка при использовании ADODB.CONNECTION при работе с dbf-файлом
Добрый день! Написала макрос с использованием adodb.connection. макрос удаляет строки из файла dbf....

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.09.2021, 11:13

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Закрывает консоль при выходе из функции, при работе с файлом!
Функция: void ShowList() { ifstream out(FileName); //FileName - путь к файлу Car...

Ошибки при работе с файлом
Помогите пожалуйста, у меня выводит такие ошибки: Warning: fread(): supplied argument is not a...

Ошибка при работе с файлом
Собственно при обработке процедуры, появляется ошибка: I/O error 103 Отладчик выделяет шестую...

Позиционирование при работе с файлом
Существует файл размером в несколько СОТ метров, из него нужно прочитать N последних байт. 'Skip'...

Ошибка при работе с файлом
Суть задачи в том что надо надо с файла(пользователь сам вводит путь к файлу) Надо что бы в файле...

Ошибка при работе с файлом
Пытался разобраться с записью и чтением из файла, посмотрел с десяток тем здесь, но столкнулся со...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.