合信论坛

快捷导航
查看: 39|回复: 0

Codesys查看任务周期等任务信息

[复制链接]

38

主题

41

帖子

1598

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1598
QQ
发表于 前天 09:10 | 显示全部楼层 |阅读模式
在codesys程序中获取任务的执行周期、事件等信息的方法。
需要用到的库:CmpIecTask、ISysTypes2。
所需要的库.png

程序实现逻辑:

// ==== 变量定义 ==== //


PROGRAM PLC_PRG
VAR
        // MainTask 信息 指针
        pTaskInfo_MainTask: POINTER TO CmpIecTask.Task_Info2;
        // Task 信息 指针
        pTaskInfo_Task: POINTER TO CmpIecTask.Task_Info2;

        Err: POINTER TO CmpIecTask.RTS_IEC_RESULT;
        ahTaskHandle: RTS_IEC_HANDLE;

        tCycleTime_MainTask: TIME;
        tCycleTime_Task: TIME;
END_VAR



// ==== 程序实现 ==== //


// 获取任务句柄
ahTaskHandle := CmpIecTask.IecTaskGetFirst( pszAppName := ADR( 'Application'), pResult:= Err);
// 获取第一个任务的信息
pTaskInfo_MainTask := IecTaskGetInfo3(hIecTask:= ahTaskHandle, pResult:= Err);


// 指针偏移到下一任务
ahTaskHandle := CmpIecTask.IecTaskGetNext( pszAppName := ADR( 'Application'), hPrevIecTask := ahTaskHandle, pResult:= Err);
// 获取第二个任务的信息
pTaskInfo_Task := IecTaskGetInfo3(hIecTask:= ahTaskHandle, pResult:= Err);


tCycleTime_MainTask := TO_TIME( pTaskInfo_MainTask^.dwCycleTime / 1000);


tCycleTime_Task := TO_TIME( pTaskInfo_Task^.dwCycleTime / 1000);


// ==== End ==== //


获取出来的结果如下
状态表.png

样例程序: 2503031540.zip (796.36 KB, 下载次数: 1)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

客服热线
400-700-4858 周一至周五:09:00 - 18:00
深圳市南山区打石一路深圳国际创新谷6栋A座9层

深圳市合信自动化技术有限公司(简称“合信技术”)成立于2003年,高新技术企业,专注于工业自动化产品的研发、生产、销售和技术服务,依靠高质量、高性能的自动化控制产品与方案为客户创造最大价值,立志于成为全球领先的工业自动化解决方案供应商。

Archiver|手机版|小黑屋|COTRUST Inc. ( 粤ICP备13051915号 )

GMT+8, 2025-4-4 05:52 , Processed in 0.168228 second(s), 26 queries .

快速回复 返回顶部 返回列表