课程中心
HOME
课程中心
正文内容
plc编程随机 「西门子案例」电机随机启动,值得收藏哦
发布时间 : 2025-05-02
作者 : 小编
访问数量 : 23
扫码分享至微信

「西门子案例」电机随机启动,值得收藏哦

动作描述

1.现有5台电机,进行电机1~5编号需要实现它们的随机间隔启动;

2.5台电机对于5个选择开关,选择的顺序决定电机启动的顺序;比如先选择开关2,则2号电机最先启动,以此类推;未选择的电机不启动;

3.按启动开关,电机按之前选择的顺序间隔启动,间隔时间为5秒;

4.按下停止按钮,所有电机停止。

硬件设备

1.西门子PLC:S7-1214C DC/DC/DC

2.按钮2个,选择开关5个,控制电机继电器5个

软件

1.西门子PLC编程软件:TIA博途V16

I/O分配

程序编写及思路

为便于后期修改,我们把程序做成一个FB块,并定义形式参数,将来在主程序调用赋值实际I/O点,如图:

并建立了一些中间变量,特别是一些数组变量,来完成程序逻辑,方便做循环控制:

接下来我们开始写程序:

为了方便做循环调用,建立一些数组变量,跟输入的形式参数做简单对应:

然后对所有标志位初始化,特别的是要对定时器做初始化,停止程序同理:

之后做编号程序,用FOR循环和数组简化重复程序量:

继续写电机判断编号动作程序,同样使用FOR循环简化重复程序:

程序后段把用到的数组中间变量对应输出形式参数:

最后程序块在主程序调用,赋值实际I/O点:

程序完成,简洁且实用!

西门子SCL编程实例——产生随机数的算法

今天这篇文章给大家介绍下我编写的产生随机数的函数。

函数FC5006_RandomReal可根据需要产生一个指定范围内的随机数,它采用线性同余算法产生随机数,其公式如下:

X[n+1]=(a*X[n] +c) % m

这是一个递归公式,利用X[n]产生X[n+1]。其中:

a:系数,取值范围:0<a<m;c:增量,取值范围:0<=c<m;m:模,取值范围:m>0;

说明:①m应尽可能的大,通常至少大于2^30(2的30次方);②如果m选取为2的幂(即m=2^n),则a的值通常应满足a mod 8=5;③当m和a的选取比较合理时,对于c的约束并不强,但要保证c与m互质,例如c可以选择1或11;这个递归公式中,X[n]用来产生X[n+1],因此,X[n]被称为种子。也就是说,前一个随机数是后一个随机数的种子。在实际使用时,第一个种子一般是作为参数赋值给函数的。这种递归公式计算对于C/C++等语言很适合,但是对于PLC的编程语言有所困难。因此,在实际PLC编程时,可以使用系统时间戳作为种子,即:

randomNumber=(a*seed +c) % m;

下面介绍下我编写的函数FC5006_RandomReal,它有两个输入参数:

minValue:需要产生随机数范围的最小值;maxValue:需要产生随机数范围的最大值;

三个常数:

M_MOD:公式中的m;A_FACTOR:公式中的a;C_INCREMENT:公式中的c;

所有参数如下图所示:

代码如下:

我编写了一个函数测试随机数算法,产生一个1~1000之间的实数,代码如下:

多次测试结果如下:

如果你对这个函数有任何问题,欢迎留言讨论。

我的书《西门子S7-1200/1500 PLC SCL语言编程》比较详细的介绍了SCL的编程,感兴趣的话可以看看下面的链接:

#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); } 西门子S7-1200/1500 PLC SCL语言编程从入门到精通 ¥69 购买

相关问答

plc随机密码编写方法?

您好,以下是一种PLC随机密码编写方法:1.首先,确定密码长度和可能包含的字符类型。例如,密码长度为8位,可能包含数字和大写字母。2.使用PLC的随机数函数...

用西门子plc怎么编写随机字符串生成器?

这个得看是什么PLC了,比如三菱的FX3U有RND随机数指令,台达的DVP有RAND随机数指令。西门子S7-200就没有。有随机数指令就方便多了,直接用就行了,如果没有,那...

如何读取plc芯片程序?

第一步:在电脑上安装与PLC对应的编程软件(一般买PLC时就随机带光盘,没有就网上下载)第二步:要有该PLC对应的数据线,用来连接电脑和PLC。(有些型号数据线是...

笔记本电脑如何写入PLC程序?

不管是什么PLC读取PLC程序的方法基本都一样。第一步:在电脑上安装与PLC对应的编程软件(一般买PLC时就随机带光盘,没有就网上下载)第二步:要有该PLC...不管...

川禾plc怎样读取程序?

不管是什么PLC读取PLC程序的方法基本都一样。第一步:在电脑上安装与PLC对应的编程软件(一般买PLC时就随机带光盘,没有就网上下载)第二步:要有该PLC对应的...

三菱随机数指令?

回答如下:三菱PLC的随机数指令是RND。该指令可以在指定范围内生成一个随机整数,并将其存储在指定的寄存器中。语法如下:RNDD,K,S其中,D为存储随机数的寄...

PLC控制系统的一般设计方法及步骤?

1、分析控制系统的控制要求熟悉被控对象的工艺要求,确定必须完成的动作及动作完成的顺序,归纳出顺序功能图。选择适当类型的PLC根据生产工艺要求,确定I/O点...

PLC如何数据滤波?

在PLC(可编程逻辑控制器)中,数据滤波是通过编程实现对输入信号的噪声或干扰进行处理的过程,以提高控制性能和系统稳定性。数据滤波方法有很多种,以下是一些...

求助!!热水循环三恒系统推荐哪家,三恒系统如何选择?

[回答]SINUMERIK802D全数字数控系统SINUMERIK802D是一个具有免维护性能、将CNC、PLC,人机界面和通讯等功能集成于一体,可靠性高,易于安装的全数字伺服控制...

刚买加工中心怎么试机?

1、按照出厂介绍书的要求给每个润滑点加油,给液压油箱贯注合乎要求的液压油,接通气源。而后通电厚,各部件分别供电或各部件一次通电试验后,再全面供电。观察...

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

QQ

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

热线

188-0000-0000
专属服务热线

微信

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