得到准确ms级的代码执行周期,做自己的多功能定时器块

时间:2023-03-09作者:佚名
//************************
//****得到代码执行周期*******
//************************
1、OB1的临时变量区提供了OB1_PREV_CYCLE INT 上一次扫描的运行时间(ms),,长时间的累积会有不少的误差。为什么呢,因为系统提供给你的数值可能是有舍弃小数后值。而且提供的是用户程序运行时间,是否包含接口扫描、通讯、映射等时间不得而知。你可以通过累积OB1_PREV_CYCLE 和sfc64的后台时间比较就知道,两个的差别。
我的方法是通过读取系统时钟,这样无累积误差,(SFC64提供正向增长的双字运行时间)
//****获得系统时钟和程序执行周期***
CALL SFC 64 (
RET_VAL := LD 96);
L LD 96;
L #sysT;
-D ;
JPZ posA; //计数满了,就少计一个周期,影响可以忽略
L #cycT;
posA: T #cycT;
L LD 96;
T #sysT;
//-------------------
消除了系统提供时钟的累积误差。误差最大一个执行周期(3~10ms);
//***************************
//*******多功能定时器********
//***************************
嵌入程序的定时器,是实现功能块封装的重要部分,实现方便的移植
系统提供的IEC定时器,复位比较麻烦,必须再次执行;
自制FB功能块可同时方便实现以下几个功能
1、开关量滤波功能;延时接通延时断开,也可处理有干扰波动值阀值比较;
2、Ton定时器;(TofSet=0)
3、Tof定时器;(TonSet=0)
定时精度最小1ms,实际精度是一个周期;
定时范围2,147,483,647ms(596小时);
//--以下是写的FB块,测试用了好长时间,也还能精简,抛砖引玉;欢迎指教;
//----
//符号注释:开关量滤波,单位ms;
//计数到后, tonAct(DINT)/tofAct(DINT)不再递增。设定值小于等于0,输出同步输入。
//设定时间=set*ration,单位ms。电平使能,复位结束后,使能还在则重新计时;


VAR_INPUT
TonSet : INT ; //设定延时启动值,默认为0无延时;DIW0
TofSet : INT ; //设定延时断开值,默认为0无延时;DIW2
Ratio : INT := 100; //设定值倍率1=1ms(默认100ms)DIW4
CycT : INT ; //OB1上次扫描周期,单位ms,DIW6
Rst : BOOL ; //复位计时器内部保存值和输出,DIX8.0
En : BOOL ; //需要滤波的DI,DIX8.1
END_VAR
VAR_OUTPUT
OK : BOOL ; //滤波输出,DIX10.0
END_VAR
VAR
tonAct : DINT ; //DID12
tofAct : DINT ; //DID16
END_VAR
//*************************************
BEGIN SET ;
L l#0;
A #Rst;
JCN ton;
R #OK;
T #tonAct;
T #tofAct;
BE ;
ton: A #En;
JCN tof;
T #tofAct;
A #OK;
BEc ;
L #Ratio;
L #TonSet;
*I ; //不要用*D,如果设定错误成负数,会错误被解释成正的大值;
L #tonAct;
<=D ;
S #OK;
BEC ;
L #CycT;
D ;
T #tonAct;
BE ;
tof: T #tonAct;
AN #OK;
BEc ;
L #Ratio;
L #TofSet;
*i ; //不要用*D,如果设定错误成负数,会错误被解释成正的大值;
L #tofAct;
<=D ;
R #OK;
BEC ;
L #CycT;
D ;
T #tofAct;
BE ;
END_FUNCTION_BLOCK

相关阅读

电工证复审——测试题

1、对于照明及电热负荷,导线安全载流量(A)≥所有电具的额定电流之和。( √ ) 2、对于照明及电热负荷,导线安全载流量(A)≥所有电具的额定电压之和。( × ) 3、对于动力负荷,...
2023-03-21

串联电阻降压启动电路图

串联电阻降压启动电路 此电路通过串联电阻或电抗器启动,以降低启动电压,减少启动电路。 按下启动按钮SB1,接触器K M1和通电延时动作继电器KT同时得电。 当接触器K M1通电后,其常...
2023-08-29
串联电阻降压启动电路图

强电和弱电,一文带你搞懂

【免费下载】 PLC软件下载_PLC软件安装教程_PLC手册下载_PLC案例下载! 【免费学习】 变频器精品课程_西门子PLC精品教程_三菱PLC精品教程! 强电、弱电属于我们电工行业的术语,对于没...
2023-06-27

电容器组工作状态及注意事项

本文介绍了电容器组工作状态的注意事项,包括三相电流相差的范围、电容器的容量偏差与额定值的范围、高压套管爬距,电容器组断路器跳闸后,不准强行送电等注意事项,下面具体...
2023-06-26
电容器组工作状态及注意事项

看复杂的电气图纸为什么很吃力?那是你的方法不对

电气图纸就是电气设计的核心,对于后期的成套、PLC程序、人机界面、设备安装和运行维护都是紧密相关的!面对一整套电气图纸,我们如何才能快速看懂其中的设计原理、产品选型和...
2023-06-11
看复杂的电气图纸为什么很吃力?那是你的方法不对

热销商品

硅胶垫片/硅胶垫/硅胶垫片圆形/硅胶垫圈/橡胶垫片/氟胶垫片

硅胶垫片(又称硅胶垫、硅胶垫圈)是一种由硅橡胶制成的密封材料,具有优异的耐高低温(-60℃~230℃)、耐老化、绝缘和环保无毒特性,广泛用于食品、医疗、电子及家电等领域...
1

三色变光led筒灯2.5寸3W5瓦开孔6 7.5 8公分家用客厅嵌入式天花灯

三色变光LED筒灯,2.5寸精巧设计,功率可选3W/5W,适用于开孔直径6.7–8公分的家用嵌入式安装。采用高亮LED光源,支持暖光、自然光、白光三色切换,满足不同场景氛围需求。...
7.2

安全帽工地施工建筑电力abs劳保国标透气加厚头盔防护帽定制印字

本款安全帽专为工地施工、建筑及电力作业设计,采用高强度ABS工程塑料制成,符合国家标准(GB 2811-2019),具备优异的抗冲击、耐穿刺性能。帽壳加厚处理,内衬透气缓冲结构,...
9.5

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
5.91

耐磨耐油丁腈耐高温氟胶防水环保级硅胶包覆聚四氟橡胶O型密封圈

本款O型密封圈采用多层复合结构设计,外层为环保级硅胶,具备优异的防水、耐候与生物相容性;中间层采用耐磨耐油的丁腈橡胶(NBR),确保在油污环境中长期稳定运行;内层则选用...
1

网站栏目