沿的实例化开发与应用
2023-06-13 09:15:05 时间
前 言:
自动化项目应用中我们通常理解的一个动作,不管由(0_1或1_0)触发时都是有两个动作点,即起始点到结束点。我们控制程序编写设计的不好,现场执行元件会因扫描因素及硬件问题导致动作快速重复性执行,这是有很大风险的。今天我们来聊聊沿的开发与应用(上升沿、下降沿),有不足处望及时给予指正。
以TIA V16 博途开发环境
- 功能要求:程序尽量简洁
- 项目环境:TIA V16
硬件组态,为了满足博途能仿真的要求v4.0支持版本,在这我们选型了simatic cpu1215fc
硬件组态这里就不在细述
软件部分:
1,创建沿的函数功能块(FB1),创建背景数据块。这里就两句,哈!
#R_T(CLK:=#Start);
#OUT := #R_T.Q;
2,为创建的沿(R_trig)再创建一个函数功能块(FB2),充分利用嵌套功能减少系统DB块的占用(减少扫描周期,更快的使用沿。
//沿的多实例化
#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)的防抖采集应用
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;
经过仿真我们很实用的实现了项目的设计与应用。
最终的沿的稳定采集是十分有必要的,减少程序代码量,精益求精。
谢谢大家!
作者简介
蔡双春
电气工程师
剑控专家组成员
相关文章
- ASP.NET编程入门与应用_aspnet网站开发实例
- pycharm django开发_django项目实例精解
- 【Android 应用开发】Android 返回堆栈管理 ( 默认启动模式 | 栈顶复用启动模式 | 栈内复用启动模式 | 单实例启动模式 | CLEAR_TOP 标识 )
- 【数字信号处理】相关函数应用 ( TDOA 时差估计实例 | 调制波特率 | 带宽 | 码元数量 | 信息量 )
- ORACLE中的日期加减操作实例介绍
- springmvc 项目完整示例01 需求与数据库表设计 简单的springmvc应用实例 web项目详解编程语言
- 使用Linux开发:实现一个简单应用(linux开发应用实例)
- 应用Redis:实现数据库高效管理(redis实例)
- Oracle数据库实例最佳数量实践(oracle实例个数)
- Linux 命令示例:全面解析与应用(linux命令实例大全)
- 教你轻松运行Oracle 11g数据库实例,快速提升数据处理效率!(oracle11g运行)
- Linux应用程序开发实践:从零开始探索(linux应用程序开发实例)
- MySQL中CLOB的应用实例研究(clob对应mysql)
- Ajax+asp应用实例注册模块,表单提交
- VC6.0如何创建以及调用动态链接库实例详解
- 解析二进制流接口应用实例pack、unpack、ord函数使用方法
- jshover定时器(实例代码)
- PHP中数组的分组排序实例
- C++中I/O模型之select模型实例
- php中convert_uuencode()与convert_uuencode函数用法实例
- Android提高之蓝牙传感应用实例
- Cocos2d-x中获取系统时间和随机数实例
- python之wxPython应用实例