Не как не могу совладать с библиотекой записи и чтения файлов с ПЛК 100
Решить подкорректировать старый код
PROGRAM HMI_Scada
VAR
Tools_Bathers : Bathers_Tools; (* TYPE STRUCT *)
END_VAR
CASE Number_Current_Screen OF (*Если на шестом экране вызываем прграмму записи в файл,по нажатию Cmd_1.0 записываем данные из панели в Tools_Bathers *)
6,7:
IF Cmd_1.0 (* Кнопка записи настроек на панели*) THEN
Tools_Bathers.Time_Mixing:=Take_Real_For_HMI(Var_o ut:=HMI_Time_Mixing,Discr:=1);
Tools_Bathers.Time_Unloading_Mixer:=Take_Real_For_ HMI(Var_out:=HMI_Time_Unloading_Mixer,Discr:=1);
Tools_Bathers .Volume_Mixer:=Take_Real_For_HMI(Var_out:=HMI_Max_ Volume_Mixer,Discr:=1);
Tools_Bathers.Rest_Inert_Before_Unloading:=Take_Re al_For_HMI(Var_out:=HMI_Rest_Inert_Before_Unloadin g, Discr :=1);
State_Write_Tools_Bather :=TRUE;
END_IF
Write_Tools_Bathers ( Tools_Bathers:= Tools_Bathers);
END_CASE
PROGRAM Write_Tools_Bathers
VAR_INPUT
Tools_Bathers : Bathers_Tools;
END_VAR
VAR
hFile_Tools_Bathers: DWORD; (* Дескриптор файла*)
Adr_File_Tools_Bathers: DWORD; (*возвращает адресс начала файла в байтах.*)
File_Size_Tools_Bathers: DWORD; (* возвращает размер файла в байтах. *)
Write_File_Tools_Bathers : DWORD;
END_VAR
VAR CONSTANT
Name_Tools_Bathers : STRING := 'Tools_Bathers.bin';
END_VAR
IF State_Write_Tools_Bather THEN Status_Writing_Tools_Bathers :=1;
State_Write_Tools_Bather :=FALSE;
END_IF
CASE Status_Writing_Tools_Bathers OF (* Разносимоткрытие запись закрытие по разным циклам*)
1: hFile_Tools_Bathers :=SysFileOpen(Name_Tools_Bathers ,'w'); (* Открываем файл для запси, прверяем дескриптор*)
IF hFile_Tools_Bathers =0 THEN File_Opened_Tools_Bathers :=FALSE;
Error_FIle_Write_Tools_Bathers :=TRUE;
RETURN;
ELSE
File_Opened_Tools_Bathers := TRUE;
Error_FIle_Write_Tools_Bathers :=FALSE;
Adr_File_Tools_Bathers :=ADR( Tools_Bathers);
File_Size_Tools_Bathers :=SIZEOF(Tools_Bathers);
Status_Writing_Tools_Bathers :=Status_Writing_Tools_Bathers +1;
END_IF
2: (* Пишем в Файл*)
Write_File_Tools_Bathers:=SysFileWrite(hFile_Tools _Bathers,Adr_File_Tools_Bathers,File_Size_Tools_Ba thers);
IF Write_File_Tools_Bathers <> SIZEOF(Tools_Bathers) THEN Error_FIle_Write_Tools_Bathers :=TRUE;
ELSE
Error_FIle_Write_Tools_Bathers :=FALSE;
END_IF (* Проверяем запись*)
Status_Writing_Tools_Bathers :=Status_Writing_Tools_Bathers +1;
3: (* Закрываем файл*)
Error_FIle_Write_Tools_Bathers:= Error_FIle_Write_Tools_Bathers OR SysFileClose(hFile_Tools_Bathers);
Status_Writing_Tools_Bathers :=Status_Writing_Tools_Bathers +1;
END_CASE
Почему данные в файл не записываются при нажатии CMD1.0 на панели ИП 320 (кнопка мгновенного действия нажал TRUE отпустил FALSE )
CASE выполняеться Status_Writing_Tools_Bathers принимает значение
4, а Write_File_Tools_Bather всегда 0 не хрена понять не могу уже как не извращался уже думаю может ПЛК 100 глючит уже и прошивку менял Люди добрые скажите что не так !?? блин
вечно у меня с этой библиотекой какие то траблы