前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >沿的实例化开发与应用

沿的实例化开发与应用

作者头像
剑指工控
发布2022-11-14 18:48:41
3820
发布2022-11-14 18:48:41
举报
文章被收录于专栏:剑指工控剑指工控

前 言:

自动化项目应用中我们通常理解的一个动作,不管由(0_1或1_0)触发时都是有两个动作点,即起始点到结束点。我们控制程序编写设计的不好,现场执行元件会因扫描因素及硬件问题导致动作快速重复性执行,这是有很大风险的。今天我们来聊聊沿的开发与应用(上升沿、下降沿),有不足处望及时给予指正。

以TIA V16 博途开发环境

  • 功能要求:程序尽量简洁
  • 项目环境:TIA V16

硬件组态,为了满足博途能仿真的要求v4.0支持版本,在这我们选型了simatic cpu1215fc

硬件组态这里就不在细述

软件部分:

1,创建沿的函数功能块(FB1),创建背景数据块。这里就两句,哈!

代码语言:javascript
复制
#R_T(CLK:=#Start);
#OUT := #R_T.Q;

2,为创建的沿(R_trig)再创建一个函数功能块(FB2),充分利用嵌套功能减少系统DB块的占用(减少扫描周期,更快的使用沿。

代码语言:javascript
复制
//沿的多实例化
#R_0(Start:="data".in_put[0],
     OUT=>"data".trig_o[0]);
#R_1(Start := "data".in_put[1],
     OUT => "data".trig_o[1]);
#R_2(Start := "data".in_put[2],
     OUT => "data".trig_o[2]);
#R_3(Start := "data".in_put[3],
     OUT => "data".trig_o[3]);
#R_4(Start := "data".in_put[4],
     OUT => "data".trig_o[4]);
#R_5(Start := "data".in_put[5],
     OUT => "data".trig_o[5])

这里说明一下:

因为沿的TRIG数据类型不支持局部或全局的陈列。

以下是沿触发应用于数据采集的功能(FC)的防抖采集应用

代码语言:javascript
复制
IF "data".index_0 >= 1000 THEN
    "data".index_0 := 0;
END_IF;
//上升沿触发数据入库并偏移(未抖动)
IF "data".trig_o[0] THEN
    //计次
    "data".INC := "data".INC + 1;
    //赋值并入库并偏移
    "data".in_port :="赋值入口";
    "data".Static_1["data".index_0] := "data".in_port;
    "data".index_0 := "data".index_0 + 1;
END_IF;

经过仿真我们很实用的实现了项目的设计与应用。

最终的沿的稳定采集是十分有必要的,减少程序代码量,精益求精。

谢谢大家!

作者简介

蔡双春

电气工程师

剑控专家组成员

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 剑指工控 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档