当前位置:首页 > 技术文章 > 正文内容

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

arlanguage4周前 (04-08)技术文章27

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

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

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

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

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

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

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

代码如下:

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

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

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

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

<script type="text/javascript" src="//mp.toutiao.com/mp/agw/mass_profit/pc_product_promotions_js?item_id=7050408837764940318"></script>

扫描二维码推送至手机访问。

版权声明:本文由AR编程网发布,如需转载请注明出处。

本文链接:http://www.arlanguage.com/post/3900.html

分享给朋友:

“西门子SCL编程实例——斜坡发生器(基于定时器)” 的相关文章

Nginx 在微服务中的应用(9)

在微服务架构中,Nginx 通常作为反向代理服务器、负载均衡器和 API 网关,承担着多个关键角色。它可以帮助管理微服务之间的流量,确保请求的高效路由、负载均衡、流量控制、安全防护等。Nginx 由于其高性能、轻量级和配置灵活性,成为微服务架构中非常常见的组件。以下是 Nginx 在微服务中的几种主...

nginx location 多root理解location

由于应用需求,这个 r 目录需要单独拉出来做处理,nginx 最开始是这样写的: server { root /home/webadm/htdocs; index index.php; location /r/ { root /diska/htdocs; } location ~ \.php { f...

php培训都学什么?有哪些课程?

PHP入门虽然比较容易简单,但是对于零基础学员来讲,想要学到精髓,并不是一件容易的事情,越到后面学起来越累,因此,最快最便捷的方法就是参加培训,不仅可以快速掌握入门,还能够学到精髓之处,那么PHP培训都有哪些课程?下面我们以六星教育的php培训课程为例来为大家讲解:第一阶段:动态网站开发的三个方面1...

nginx检查提示“unknown directive &quot;stream&quot; in /etc/*/nginx.conf”

yum安装nginx检查时提示“unknown directive "stream" in /etc/nginx/nginx.conf”yum安装nginx,在配置反代时,出现错误:nginx -tnginx: [emerg] unknown directive "strea...

linux上将大文件切割成小文件之split命令

说明:很多场景需要拷贝或传输文件时,如果我们需要拷贝的文件太大的话,就需要想办法将其分成小个文件进行拷贝,然后载重新合并。今天介绍 split 命令格式:split [OPTION] [INPUT [PREFIX]]一、压缩并切割使用tar命令进行压缩,使用split进行切割实例:# 压缩 ]# t...

从入门到精通,超详细的程序员Java学习路线指南

说明最近也有很多人来向我"请教",他们大都是一些刚入门的新手,还不了解这个行业,也不知道从何学起,开始的时候非常迷茫,实在是每天回复很多人也很麻烦,所以在这里统一作个回复吧。Java学习路线当然,这里我只是说Java学习路线,因为自己就是学Java的,对Java理当很熟悉,对于其它方...