信捷 PLC C语言 POU 指示灯交替灭0.5秒亮0.5秒(保持型定时器)

1.在全局变量表中定义2个定时器变量timer_1,timer_2

名称 类型

timer_1 TMR_A_FB False -- False False

timer_2 TMR_A_FB False -- False False

ot2 BOOL False -- False False

ot2表示指示灯

2.新建pou FC(C语言):POU_two_hold_time

3.编写代码

void POU_two_hold_timer()

{

#define SysRegAddr_HD_D_HM_M

if(!ot2)

{

TMR_FB_BODY ( &timer_1 ); //取(定时器)功能快变量的地址给功能块做参数

timer_1.Enable =true;//全局变量给定时器的线圈通电

timer_1.TimeBase = 100;//设定定时器单位

timer_1.Circle = 5; //设定值定时长度

}

else

{

TMR_FB_BODY ( &timer_2 ); //取(定时器)功能快变量的地址给功能块做参数

timer_2.Enable = true;//全局变量给定时器的线圈通电

timer_2.TimeBase = 100;//设定定时器单位

timer_2.Circle = 5; //设定值定时长度

}

if(!ot2 && timer_1.QStatus)

{

TMR_A_RST_FC ( &timer_1 ); //定时器复位,取(定时器)功能快变量的地址给功能做参数

ot2 = true;

}

if(ot2 && timer_2.QStatus)

{

TMR_A_RST_FC ( &timer_2 ); 定时器复位,取(定时器)功能快变量的地址给功能做参数

ot2 = false;

}

}

4.调用pou

相关推荐
星夜离尘5611 小时前
MATLAB 定点量化误差实验 半个 LSB 的界限为什么挡不住削顶失真
开发语言·matlab
巴巴媛66611 小时前
【Debug1】程序死机,while(1)循环,怎么办?
c语言·笔记·stm32·嵌入式硬件·bug
Lxx_Zw11 小时前
PID 用顺了,然后呢:增强手术与前馈
c语言·stm32·单片机·嵌入式硬件
Wang's Blog11 小时前
Java 项目实战: 交友项目 - 百度人脸识别:介绍
java·开发语言·交友
障碍的枫子11 小时前
我的第一个Agent
开发语言·python·langchain
Pniubi12 小时前
区分agent中长期记忆和偏好记忆
开发语言·ai·智能体
BeiGuTing_code12 小时前
C链表基础(二)有视频模拟!!!
c语言·链表·音视频
我就是不信12 小时前
Swift 方法派发机制详解
开发语言·ios·swift
CCCCCCCCharlie12 小时前
深入解析I/O底层:文件描述符与缓冲区真相
linux·开发语言·c++·算法
Zenova EdgeOS12 小时前
Rust TUI 实战:用 ratatui 构建工业边缘终端界面
开发语言·后端·rust·工业网关