点击蓝色字体可以关注我
PLC工程师习惯在使用TIA 或Step 7编程时,往往采用以下方式:
1. S5定时器
2. IEC定时器
3. 时钟储存器。
但在PCS 7采用的并不是以上3种方式。
—————————————————————————————————————————————————
PCS 7计时原理
PCS7中的计时原理是利用循环中断自加(或自减),这适用于PCS 7的特殊程序运行方式,所有的程序都在定时循环中断OB30~OB38中执行。假设OB34的循环中断时间为200ms,那么运行在OB35中的FB功能块使浮点数变量自加0.2共10次,就达到了计时2s的目的。假设OB33是1000ms的中断要计时10s,就是变量自加1共10次即可。PCS 7中每次自加或自减的量由接口参数"SampleTime"决定。
图1 CPU循环中断属性
“SampleTime” 在PCS 7中创建示例
1. 定义SampleTime浮点型输入参数
2. 标记接口属性S7_sampletime,其值设定为ture。
SCL编程
VAR_INPUT
SampleTime{S7_sampletime:=’true’
}:REAL:=0.0;
END_VAR
图2 LAD、STL编程方式为参数分配系统属性
调用后编译CFC
功能块VlvL被CFC调用后并编译程序,“SampleTime”参数值根据FB在不同的OB运行组中断设置的时间而自动修改。如OB32设定的中断时间为1000ms时,“Sampletime”值在CFC编译后会被修改为1.0。
图3 AS Block参数SampleTime值被系统自动修改
总结与注意事项
1. 采用循环中断计时的方式避免了S5定时器不够用,或者用重复的情况,且利用循环中断自加自减的方式计时简单易用
2. S7_sampletime属性仅仅适用于CFC的调用方式,因此LAD、STL调用方式该属性不会自动修改参数“SampleTime”的值
3. 接口参数设定的时间不能小于SampleTime
—————————————————————————————————————————————————
设定时间不能小于采样时间
IF Ti < SampleTime // 错误的时间设定(时间设定小于采样时间)THEN
ErrorNum:=11; // 输出错误代码,指示用户时间设定错误
TimeRemaining.Value:=0.000000e+000; // 计时器复位
Out.Value:=false; // 输出复位 END_IF;
计时器自减计时示例
IF TimeRemaining.Value>=SampleTime // 计时条件触发THEN
TimeRemaining.Value:=TimeRemaining.Value-SampleTime; // 计时器开始自减
ELSE
TimeRemaining.Value:=0.000000e+000; // 计时完成,复位计时器
END_IF; —————————————————————————————————————————————————
往期文章
APL中参数命名规则| PCS 7专栏
PCS 7 块属性| PCS 7专栏
PCS 7 如何上传全局DB变量到WinCC| PCS 7专栏
PCS 7 如何自动上传报警消息(上)| PCS 7专栏
PCS 7中如何自动上传变量到WinCC| PCS 7专栏