TwinCAT - 如何测量程序执行时间?

TwinCAT - How to measure program execution time?

我想测量结构化文本 (ST) 程序的执行时间。与程序关联的任务是 运行 在 10 毫秒。

如何衡量执行时间?

您可以使用免费的 TwinCAT 库 Tc2_Utilities,它有一个功能块 Profiler

https://infosys.beckhoff.com/english.php?content=../content/1033/tcplclib_tc2_utilities/35053195.html&id=1344160655692967299

“Profiler”功能块可用于测量 PLC 代码的执行时间。

Infosys 页面也有示例代码:

VAR
    Profiler1     : PROFILER;
END_VAR


Profiler1(START := TRUE, RESET := TRUE);

//Do something here

Profiler1(START := FALSE);
//Now Profiler1.Data has the execution time

当然,您可以使用 Profiler,但出于演示目的,您可以像这样测量执行时间。

PROGRAM PLC_PRG
    VAR
        tStart: TIME; (* Time program start *)
        tWork : TIME; (* Execution time *)
    END_VAR

    (* First line of main program *)
    tStart := TIME();

    // Your program here

    (* Last line of your program *)
    tWork := TIME() - tStart;
END_PROGRAM