TwinCAT3中GetSystemTime()功能块使用

本文介绍了TwinCAT3中的GETSYSTEMTIME功能块,用于获取操作系统的时间戳,精度达100ns。该功能块常用于定时任务和计时操作。通过示例展示了如何创建一个函数F_GetSysTime,记录开始和结束时间,并计算间隔时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GETSYSTEMTIME功能块的使用

功能块调用:

首先需要实例化功能块:然后就可以调用了,很简单。

GETSYSTEMTIME(timeLoDW=> , timeHiDW=> );

功能块讲解:

此功能块可以读取操作系统的时间戳(time stamp),这个time stamp 是一个64位整形数据,精度是100ns,每当TwinCAT3 plc 调用此功能块,就会更新此time stamp。

其中最主要的两个用法是:1,用于给某项任务定时。2,用于计算时间,比如给气缸运行时间,电机运行时间计时等。请注意一个最小单位是100ns(纳秒)。

下面给出在此功能块中纳米和毫秒的具体转换公式:

convert to ms :
SystemTime.timeLoDW is time in 100ns 
SystemTime.timeHiDW is time in 4294967295 * 100 ns 

使用例子:

首先创建一个函数叫F_GetSysTime, 返回值类型为ULINT。

变量声明如下:

FUNCTION F_GetSysTime : ULINT
VAR_INPUT
END_VAR
VAR
	GetSystemTime: GETSYSTEMTIME;
END_VAR
函数主代码如下:

GetSystemTime(timeLoDW=> , timeHiDW=> );
F_GetSysTime := UDINT_TO_ULINT(GetSystemTime.timeHiDW)*4294967296 + UDINT_TO_ULINT(GetSystemTime.timeLoDW)/10000;
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值