线下实训
HOME
线下实训
正文内容
plc斜波函数编程 西门子SCL编程实例——斜坡发生器(基于定时器)
发布时间 : 2025-03-18
作者 : 小编
访问数量 : 23
扫码分享至微信

西门子SCL编程实例——斜坡发生器(基于定时器)

工业项目中有时候需要使用斜坡发生器。斜坡发生器能控制输出值经过一个平滑的上升或下降的变化过程然后再达到目标值,从而避免输出值由当前值直接跃变到目标值。某些工业过程的控制工艺不允许被控值的直接跃变。比如:工艺要求电机电流有一个平滑的增加过程,而不是直接跃变到一个比较大的目标电流;或者希望某管路的压力有一个平滑的增加过程,而不是直接加压到目标压力。这些情况下,都需要使用斜坡发生器。

西门子PLC实现斜坡发生器的一种方案是使用循环中断组织块,通过周期性的执行使被控制值平滑变化。该方案的优点是控制精度高,缺点是要配合组织块、数据块等,不利于程序的模块化设计。

另一个方案是使用定时器来实现斜坡发生器,它的优点是可以把斜坡功能集成到一个函数块中,可反复调用,有利于程序的模块化设计。缺点是其执行受PLC扫描周期的影响,因此精度并不高。这里的精度可以简单理解为斜坡时间。比如,本来希望受控值的变化过程时长为5秒,使用该方案的最终用时会大于5秒。因此,该方案适用于对精度要求不高的场合。

今天这篇文章,我想给大家介绍第二种方案的斜坡发生器,即我写的一个基于定时器的斜坡发生器函数块-FB5008_RampGenerator。

函数块FB5008_RampGenerator可设置初始值、目标值及斜坡时间。斜坡时间的单位为秒,其内部使用延时接通定时器指令,时基为100ms。斜坡时间乘以10即为定时器的启动次数。通过计算初始值与目标值的差值,除以计时器的启动次数,即可算出每次定时器计时达到时应当增加的数值单位。

函数块FB5008_RampGenerator的输入/输出参数如下:

静态变量及临时变量参数如下:

代码如下:

接下来在OB1中调用该函数块即可,例如:

这个函数块我已经测试过了,感兴趣可以自行测试一下。

我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》已经出版了,这本书共15章,附有84个视频,从硬件到软件,真正做到了从入门到精通。感兴趣的小伙伴可以点击下面的链接查看详细介绍:

#pgc-card .pgc-card-href { text-decoration: none; outline: none; display: block; width: 100%; height: 100%; } #pgc-card .pgc-card-href:hover { text-decoration: none; } /*pc 样式*/ .pgc-card { box-sizing: border-box; height: 164px; border: 1px solid #e8e8e8; position: relative; padding: 20px 94px 12px 180px; overflow: hidden; } .pgc-card::after { content: " "; display: block; border-left: 1px solid #e8e8e8; height: 120px; position: absolute; right: 76px; top: 20px; } .pgc-cover { position: absolute; width: 162px; height: 162px; top: 0; left: 0; background-size: cover; } .pgc-content { overflow: hidden; position: relative; top: 50%; -webkit-transform: translateY(-50%); transform: translateY(-50%); } .pgc-content-title { font-size: 18px; color: #222; line-height: 1; font-weight: bold; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .pgc-content-desc { font-size: 14px; color: #444; overflow: hidden; text-overflow: ellipsis; padding-top: 9px; overflow: hidden; line-height: 1.2em; display: -webkit-inline-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; } .pgc-content-price { font-size: 22px; color: #f85959; padding-top: 18px; line-height: 1em; } .pgc-card-buy { width: 75px; position: absolute; right: 0; top: 50px; color: #406599; font-size: 14px; text-align: center; } .pgc-buy-text { padding-top: 10px; } .pgc-icon-buy { height: 23px; width: 20px; display: inline-block; background: url(https://lf3-cdn-tos.bytescm.com/obj/cdn-static-resource/pgc/v2/pgc_tpl/static/image/commodity_buy_f2b4d1a.png); } 西门子SCL语言编程 ¥79 购买

该书在京东、淘宝、天猫等各大网店具有销售,你可以自行搜索购买。如果你已经购买了该书,可以私信我,进入SCL读书群。

怎样通过博途step7 中的编写一个斜坡函数?

在自动化领域,使用斜坡函数处理设定值是非常常见的。这里跟分享一个斜坡函数的FB,并在循环中断中调用的程序。

1、新建一个FB,编程语言选择SCL

2、在FB的接口变量中设置如下:

3、在FB中编写SCL程序:

#rv1:= RD_SYS_T(#ActualTime);

IF #InitFB = true THEN

#LastTime := #ActualTime;

#AuxOut := #SetPoint;

#Out := #AuxOut;

END_IF;

#DeltaTime_T:= T_DIFF(IN1:=#ActualTime, IN2:=#LastTime);

#DeltaTime_DI:= TIME_TO_DINT(#DeltaTime_T);

#DeltaTime:= DINT_TO_REAL(#DeltaTime_DI);

#DeltaTime := #DeltaTime / 1000.0;

#LastTime := #ActualTime;

IF #SetPoint < #AuxOut THEN

#Out := #AuxOut;

#auxR := #AuxOut - (#Rate * #DeltaTime);

#Out := #AuxOut;

#AuxOut := MAX(IN1 := #auxR, IN2 := #SetPoint);

#Out := #AuxOut;

RETURN;

ELSE

IF #SetPoint > #AuxOut THEN

#Out := #AuxOut;

#auxR := (#Rate * #DeltaTime) + #AuxOut;

#Out := #AuxOut;

#AuxOut := MIN(IN1 := #auxR, IN2 := #SetPoint);

#Out := #AuxOut;

END_IF;

END_IF;

RETURN;

4、在循环中断组织块0B30中调用FB

在循环中断OB30中调用FB"Ramp",OB30循环时间设置为0.1s。如果斜率设置为1/s,则上升斜坡将持续50s(设定值从10增加至60)。为了将此时间缩短为10s,斜率必须设置为5/s。

相关问答

如何用PLC实现给变频器加减速斜坡进行编程?

变频器通过频率差确定需加速还是减速,并按照设定的调节速度调整电动机转矩,从而实现按需要的加减速斜坡调整转速。但最终,变频器还是依赖调节输出电压和输出电...

求教,CAD平面怎么表明是个斜坡-ZOL问答

在CAD平面图中表示斜坡的常用方法是使用点斜面曲线(PLC)或者3D立体视图。其中,点斜面曲线是一种数学模型,可以用来描述线段和角度之间的关系,从而模拟出斜坡的...

三菱PLC指令RAMPD10D20D30K9000是什么意思?请高手指点,在此谢过?

三菱PLC应用指令RAMP是斜坡信号指令。斜坡信号指令的功能是根据设定要求产生一个斜坡信号。[RAMPD10D20D30K9000]指令中D10为斜坡信号的起始值,D20为...

setpointramp(rate)咋译?-盖德问答-化工人互助问答社区

这是我刚才在网上找的关于控置器上的内容,其中有setpoint相关解释,仅供参考targetsetpoint1.设置第1段的目标值rmp.1ramprate1.设置第1段...

施耐德变频器参数设置?

一个多段速的变频器器控制,要求PLC编制程序工况。其实这个控制是比较典型的变频器应用。楼主应该自己去完成这个参数设置。用一个加速/减速斜坡时间就可以。除...

施耐德变频器怎么调试参数?

一个多段速的变频器器控制,要求PLC编制程序工况。其实这个控制是比较典型的变频器应用。楼主应该自己去完成这个参数设置。用一个加速/减速斜坡时间就可以。除...

利用变频器、时间继电器和交流接触器等原件怎样才能控制7.5千W的水泵电机的自启停?

想要清楚的理解这个问题,首先需要了解每个元器件在整个电路中的作用以及工作原理!第一,变频器是驱动电机的电器设备,它有独立的启动端子,只需要将外部启动...操...

安全应急遇到山体滑坡怎么办?还请不吝赐

[回答]安全应急乘车遇到危险时的应对措施乘坐火车时,应当远离车门及车厢连接处。如火车突然脱轨,在脱轨前的几秒钟内,乘客可选择比较安全的姿势自我防护。...

用变频器自身输出的电流模拟量信号返回去,调节转速是否可行?

用变频器自身输出的电流模拟量信号返回去,调节转速是否可行这里我们分两种情况进行分析:(1)模拟量信号的控制对象是自身变频器,(2)控制对象是外部变频器。如...

游乐园里的造浪池怎么形成的,想知道原理和使用了那些设备?

造浪池是一种可以通过机械动能制造出人工模拟海浪的水池。造浪池池底大多设计为斜坡状,坡度由浅入深,这样的设计有利于波浪的形成与发展。常用的造浪方式和...

 党100周年  ULTIUM 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部