技术论坛

 回复:大家好问一下怎么在在SCL里读取系统时钟的毫秒数?

返回主题列表
作者 主题
ws0866
侠圣

经验值:3123
发帖数:1089
精华帖:8
楼主    2015-08-19 22:17:21
主题:大家好问一下怎么在在SCL里读取系统时钟的毫秒数?

现在我想在SCL里得到系统时钟的毫秒数,

在SCL里定义变量

VAR_TEMP

    ReadDTRet       :   INT;

    CurDateTime     :   DATE_AND_TIME;

    Cur_DT_Byte AT CurDateTime  :   STRUCT

        Year    :   BYTE;

        Month   :   BYTE;

        Day     :   BYTE;

        Hour    :   BYTE;

        Minute  :   BYTE;

        Second  :   BYTE;

        Byte_6  :   BYTE;

        Byte_7  :   BYTE;

    END_STRUCT;

END_VAR

//读取系统时钟程序

ReadDTRet := READ_CLK(CDT:=CurDateTime); 


读出来的结果,年月日时分秒都没有问题,但是毫秒不知道应该怎么取出来


查了下资料

0 Year YEAR "yyyy"

1 Month MONTH "m"

2 Day DAY "d"

3 Hour HOUR "h"

4 Minute MINUTE "n"

5 Second SECOND "s"

6 1/10 and 1/100 second MILLISEC1

7 4MSB: 1/1000 second

  4LSB: weekday


字节6是1/10和1/100 second,字节7里有1/1000和星期,如果在梯型图里,我可以用比较笨的方法,把数据一个位一个位的取出来,再写入到一个字中,但在SCL中应该用什么方法能把毫秒取出来呢?

谢谢了!!!

好好学习天天向上
Zane
版主

经验值:85171
发帖数:21052
精华帖:399
1楼    2015-08-20 15:27:06
精华帖  主题:回复:大家好问一下怎么在在SCL里读取系统时钟的毫秒数?

把6/7字节取出来右移四位

Zane 注册自动化系统工程师 Always save before download
ws0866
侠圣

经验值:3123
发帖数:1089
精华帖:8
2楼    2015-08-20 23:13:55
精华帖  主题:回复:大家好问一下怎么在在SCL里读取系统时钟的毫秒数?

好的,明白了,试了下,好用了,谢谢您了


定义变量

word_ms      :   word;

word_msByte AT word_ms :   STRUCT

        Byte_0  :   BYTE;    //Cur_DT_Byte.Byte_6

        Byte_1  :   BYTE;    //Cur_DT_Byte.Byte_7 

    END_STRUCT;




    word_msByte.Byte_0 := Cur_DT_Byte.Byte_6;

    word_msByte.Byte_1 := Cur_DT_Byte.Byte_7;            

    word_ms:= SHR (IN:=word_ms, N:=4);

    Temp_Int := BCD_TO_INT(IN:=word_ms);


好好学习天天向上
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。