实现类似于C#上位机那种Log日志功能,即运行一次即可实现记录当前做了何种动作,带时间戳和日期功能。可实现每日机器运行日志的功能。
一共就三个传参,
第一个是要命名的string,
第二个是触发它的bool。
第三个是长度为20的String数组。
每一个Sting内容会用逗号隔开。
最后一起写入日志内容。记录下来。
每天运行都执行日志写入,机器有问题即可查询日志寻找报错。
代码实现部分:
GetTime(GetTimeMs=>NowTime,GetTimeDay=>GetDay);
//写日志
IF bExcute THEN //写操作
bExcute := FALSE; //只写一次 上升沿触发
strFileName3:=strFileName1;
TxtName:=Standard.CONCAT(GetDay,TxtName);
strFileName3:=Standard.CONCAT(strFileName3,TxtName);
strFileName:=Standard.CONCAT(strFileName3,strFileName2);
//strFileName:=Standard.CONCAT(GetDay,strFileName3);
astrCsvData[1]:=NowTime;
astrCsvData[2]:=TO_STRING("----");
FOR i:=1 TO 20 DO
astrCsvData[i+2]:=StrArray[i];
END_FOR
astrCsvData[23]:='$r$n';
pbyteFileHandle:= SysFileOpen(szFile:= strFileName, am:= ACCESS_MODE.AM_APPEND_PLUS, pResult:= ADR(udiResult[2]));//打开文件,获取文件句柄
FOR iCount := 1 TO 23 BY 1 DO //根据数组长度写值
WriteCsvData(hFileHandle := pbyteFileHandle, strWriteData := astrCsvData[iCount]);//调用写函数
END_FOR
SysFileClose(hFile:= pbyteFileHandle);//释放文件句柄
END_IF