现在需要给一个时间字符串格式的,比如下面的 "D20MesDB".DateString := '19910120';
如何将其拆开 年 月 日 再加上 "D20MesDB".ClockTime := TOD#03:00:00; 时间
通过 WR_SYS_T函数对时间进行一致性调整呢?
//时钟同步 年月日 凌晨3点对接时钟同步
IF "D20_MesConn".D20***[10] = 1 THEN
"D20MesDB".ClockTime := TOD#03:00:00;
"D20MesDB".DateString := '19910120';
"D20MesDB".yearString := LEFT(IN := "D20MesDB".DateString, L:= 4);
"D20MesDB".yearString:= LEFT(IN:="D20MesDB".DateString, L:=4);
"D20MesDB".monthString := MID(IN := "D20MesDB".DateString, L := 2, P := 5);
"D20MesDB".dayString:=MID(IN := "D20MesDB".DateString, L := 2, P := 7);
"D20MesDB".yearInt := STRING_TO_INT("D20MesDB".yearString);
"D20MesDB".monthInt:=STRING_TO_INT("D20MesDB".monthString);
"D20MesDB".dayInt := STRING_TO_INT("D20MesDB".dayString);
// p#db39.dbx264.0:=INT_TO_BCD16("D20MesDB".yearInt);
//"D20MesDB".TimeAndDate.Year := DINT_TO_BYTE("D20MesDB".yearInt);
// "D20MesDB".TimeAndDate.Month := DINT_TO_BYTE("D20MesDB".monthInt);
//"D20MesDB".TimeAndDate.Day := DINT_TO_BYTE("D20MesDB".dayInt);
// DINT_TO_BCD32("D20MesDB".yearInt)
// "D20MesDB".timeReturn := WR_SYS_T(CONCAT_DATE_TOD(IN1:=DINT_TO_DATE(STRING_TO_DINT("D20MesDB".DateString)), IN2:="D20MesDB".ClockTime));
// "D20MesDB".timeReturn := WR_SYS_T(CONCAT_DATE_TOD(IN1 :=INT_TO_BCD16("D20MesDB".dataTest), IN2 := "D20MesDB".ClockTime));
END_IF;
问题补充:
我的PLC类型是 S7-300 博途版本为V13
最佳答案
300的db中每一个字节int格式的变量分别对应年,月,日,时,分,秒,毫秒,星期,分别给他们赋值就行了。
提问者对于答案的评价:
谢谢
原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc348740.html