关于在博途V13中怎么实现对时钟

现在需要给一个时间字符串格式的,比如下面的   "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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2021年7月4日 下午11:50
下一篇 2021年7月4日 下午11:50

相关推荐

发表回复

登录后才能评论