TIA博图边沿指令总结

本文详细介绍了如何在博图中利用功能指令和SCL编程实现上升沿和下降沿的检测。通过FC型和FB型功能函数,以及SCL语句,分别展示了上升沿和下降沿的编程逻辑。同时,提供了具体的接口参数和程序代码示例,便于在实际项目中应用和理解。

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


最近在研究博图功能指令时,发现对于边沿指令,既可以通过功能指令实现,也可手动编写程序实现。

边沿指令的机制为比对同一信号两个扫描周期内的变化,由1变为0则为下降沿指令,由0变为1则为上升沿指令。扫描周期即PLC的运行周期

对于边沿功能指令,可以创建FC型和FB型功能函数,FC型函数和FB型函数只在数据存储和接口参数上有区别,其功能实现逻辑并无差别。

上升沿

FC型

接口参数

参数数据类型声明描述
SingleBoolInput触发信号
TempSingleBoolInOut暂存信号
RisingEdgeDatectionReturnBool边沿检测结果

功能代码

REGION RisingEdgeDatection
    //上升沿指令
    //通过IF语句判断#Single是否产生01的变化
    IF #Single AND NOT #TempSingle THEN
        #RisingEdgeDatection := TRUE;
    ELSE
        #RisingEdgeDatection := FALSE;
    END_IF;
    //将#single信号复制给边沿存储位#TempSingle
    #TempSingle := #Single;
    
END_REGION

在这里插入图片描述
图片中GlobalData".DataBool.Bool1和"GlobalData".DataBool.Bool2GlobalData".DataBool.Bool3为创建的全局DB变量,仅作测试。

当"GlobalData".DataBool.Bool1信号由0变为1,则边沿检测结果"GlobalData".DataBool.Bool3信号为1."GlobalData".DataBool.Bool2作为"GlobalData".DataBool.Bool1的暂存指令

使用此FC型功能时,建议创建一定长度的全局DB变量,作为此接口参数的实参

FB型

对于FB型,可以直接调用功能指令,并创建背景DB,另外也可直接编写SCL语句来实现。具体方式如下:

功能指令

在这里插入图片描述

SCL编写

在进行项目开发时,有时候需要在某一情况进行数据初始化或者复位某信号,但直接调用功能指令又比较麻烦,此时可以通过下面的方式实现。
接口参数

参数数据类型声明描述
startBoolInput启动信号
P1BoolTemp临时变量(启动变量暂存)
NumberStaticInt生产数值

程序代码

IF #start AND NOT #P1 THEN
    #Number := 0;
END_IF;

#P1 := #start;

start信号启动时,将****数值清零

下降沿

对于下降沿,其程序结构和上升沿基本一样,唯一区别的地方为其程序代码需要稍作调整。

FC型

接口参数名称稍作调整,另外注意IF判断的条件。

REGION FailingEdgeDetection
    //通过IF语句判断#Single是否产生10的变化
    IF NOT #Single  AND #TempSingle THEN
        #FailingEdgeDetection := TRUE;
    ELSE
        #FailingEdgeDetection := FALSE;
    END_IF;
    //将#single信号复制给边沿存储位#TempSingle
    #TempSingle := #Single;
    
END_REGION

FB型

直接调用时,注意调用F_TRIG,当使用SCL编写时,代码如下:

IF NOT #start AND #P1 THEN
    #Number := 0;
END_IF;

#P1 := #start;

注意IF后面的条件判断。
在这里插入图片描述

在后续程序开发过程中,可根据实际情况,选择不同的方法,并不需要拘泥于一种,这也是程序开发的魅力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yue008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值