/
George_Smith
/
RuSTy
Обзор
Документация
Войти
/
George_Smith
/
RuSTy
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
Peter
WriteToFile.ResourceProject.st
143 строки
6 KB
Peter Korobeynikov
FB-CALL TESTING
25 янв 2026, 17:25
25 янв 2026, 17:25
feb4daa
Код
Авторство
О чём код?
PROGRAM WriteToFile VAR fbPrepData: DataLog; fbTimerProc: Data_Processing; I: UINT; sTextDescription: STRING; END_VAR IF NOT bInitCollectData THEN gv_bEnDataWr := TRUE; //Формирование даты (число.месяц.год) изменения сигнала gv_bEnEachMsg := FALSE; //Запись каждого нового сообщения в файл gv_bDayCreate := TRUE; (* fbPrepData.Logging(); *) //Настройка логирования // команда записи в лог IF fbPrepData.bWrErrToLog THEN // открываем логгер fbPrepData.hLog := LogOpen(fbPrepData.LogOption.szName, fbPrepData.dwLogResultOpen); IF fbPrepData.dwLogResultOpen = ERR_OK THEN fbPrepData.dwLogResultWr := LogAdd2(fbPrepData.hLog, fbPrepData.udiCmpId, LOG_ERROR, ERR_FAILED, 6, fbPrepData.sErrorDecription); fbPrepData.bWrErrToLog := FALSE; END_IF // закрываем логгер IF fbPrepData.dwLogResultWr = ERR_OK THEN fbPrepData.dwLogResultClose := LogClose(fbPrepData.hLog); END_IF; END_IF //--------------------------------------------------------------------------------------------------------------------------Конец Action Logging();--------------------------------------------------------------------------------------------------------- bInitCollectData := TRUE; END_IF fbTimerProc(); //Обработка таймеров библиотеки LoggerData //ProcessingValue(); //----------------------------------------------------------------------------------------------------------------------------Начало fProcessingValue();--------------------------------------------------------------------------------------------------- // Обработка xCommands C_SC_NA_1 FOR I:=1 TO 10 DO IF xCommands[I] <> xCommandsPrev[I] THEN sTextDescription := concat('TU',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_45'); fbPrepData(pbInData := ADR(xCommands[I]),iTypeEv := 45,sTextDesc := sTextDescription,uTimeOut := 60); xCommandsPrev := xCommands; END_IF END_FOR // Обработка dwCommands C_BO_NA_1 FOR I:=1 TO 10 DO IF dwCommands[I] <> dwCommandsPrev[I] THEN sTextDescription := concat('TR',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_51'); fbPrepData(pdwInData := ADR(dwCommands[I]),iTypeEv := 51,sTextDesc := sTextDescription,uTimeOut := 60); dwCommandsPrev[I] := dwCommands[I]; END_IF END_FOR // Обработка dwCommands C_SE_NA_1 FOR I:=1 TO 10 DO IF iNormCommands[I] <> iNormCommandsPrev[I] THEN sTextDescription := concat('TR',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_48'); fbPrepData(piInData := ADR(iNormCommands[I]),iTypeEv := 48,sTextDesc := sTextDescription,uTimeOut := 60); iNormCommandsPrev[I] := iNormCommands[I]; END_IF END_FOR // Обработка dwCommands C_SE_NB_1 FOR I:=1 TO 10 DO IF iScaledCommands[I] <> iScaledCommandsPrev[I] THEN sTextDescription := concat('TR',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_49'); fbPrepData(piInData := ADR(iScaledCommands[I]),iTypeEv := 49,sTextDesc := sTextDescription,uTimeOut := 60); iScaledCommandsPrev[I] := iScaledCommands[I]; END_IF END_FOR // Обработка dwCommands C_SE_NC_1 FOR I:=1 TO 10 DO IF rCommands[I] <> rCommandsPrev[I] THEN sTextDescription := concat('TR',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_50'); fbPrepData(pfInData := ADR(rCommands[I]),iTypeEv := 50,sTextDesc := sTextDescription,uTimeOut := 60); rCommandsPrev[I] := rCommands[I]; END_IF END_FOR // Обработка изменений axSpValue FOR I:=1 TO 10 DO IF axSpValue[I] <> axSpValuePrev[I] THEN sTextDescription := concat('TS',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_PLC'); fbPrepData(pbPLCData := ADR(axSpValue[I]), iTypeEv := 500, sTextDesc := sTextDescription, uTimeOut := 60); axSpValuePrev[I] := axSpValue[I]; END_IF END_FOR // Обработка изменений abDpValue FOR I:=1 TO 10 DO IF abDpValue[I] <> abDpValuePrev[I] THEN sTextDescription := concat('TIbt',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_PLC'); fbPrepData(pbtPLCData := ADR(abDpValue[I]),iTypeEv := 501,sTextDesc := sTextDescription,uTimeOut := 60); abDpValuePrev[I] := abDpValue[I]; END_IF END_FOR // Обработка изменений adwBoValue FOR I:=1 TO 10 DO IF adwBoValue[I] <> adwBoValuePrev[I] THEN sTextDescription := concat('TIdw',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_PLC'); fbPrepData(pdwPLCData := ADR(adwBoValue[I]),iTypeEv := 502,sTextDesc := sTextDescription,uTimeOut := 60); adwBoValuePrev[I] := adwBoValue[I]; END_IF END_FOR // Обработка изменений aiMeNormValue FOR I:=1 TO 10 DO IF aiMeNormValue[I] <> aiMeNormValuePrev[I] THEN sTextDescription := concat('TIint',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_PLC'); fbPrepData(piPLCData := ADR(aiMeNormValue[I]),iTypeEv := 503,sTextDesc := sTextDescription,uTimeOut := 60); aiMeNormValuePrev[I] := aiMeNormValue[I]; END_IF END_FOR // Обработка изменений arMeFloatValue FOR I:=1 TO 10 DO IF arMeFloatValue[I] <> arMeFloatValuePrev[I] THEN sTextDescription := concat('TIr',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_PLC'); fbPrepData(prPLCData := ADR(arMeFloatValue[I]),iTypeEv := 504,sTextDesc := sTextDescription,uTimeOut := 60); arMeFloatValuePrev[I] := arMeFloatValue[I]; END_IF END_FOR // Обработка изменений adiItValue FOR I:=1 TO 10 DO IF adiItValue[I] <> adiItValuePrev[I] THEN sTextDescription := concat('TIdi',UINT_TO_STRING(I)); sTextDescription := concat(sTextDescription, '_PLC'); fbPrepData(pdiPLCData := ADR(adiItValue[I]),iTypeEv := 505,sTextDesc := sTextDescription,uTimeOut := 60); adiItValuePrev[I] := adiItValue[I]; END_IF END_FOR //----------------------------------------------------------------------------------------------------------------------------Конец fProcessingValue();----------------------------------------------------------------------------------------------------- END_PROGRAM