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

发布时间:2024-05-20
//************************
//****得到代码执行周期*******
//************************
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
上一个:德国Gutekunst弹簧D-207J-02的材质及耐腐蚀性
下一个:电脑接上打印机没反应(打印机与电脑连接正常 为什么没反应)

BEKA指示器、显示器、操作面板、旋转编码器产品介绍
小米 刷鸿蒙系统(小米手机升级鸿蒙系统刷机包)
G型单螺杆泵特点型号及应用
ST-W65悬挂式滑线导轨特点应用
《关于促进新时代新能源高质量发展的实施方案》案例解读第四、五章
哪里有回收主机的,哪里有回收旧电脑主机的
沥青混凝土路面中面层混合料初压方法有哪些?
城市污水污泥上浮的原因与控制措施
三星平板换个电池多少钱(三星笔记本电脑换电池多少钱)
简单介绍花卉养殖的一些基本常识