「项目案例」使用西门子博途 SCL高级语言编写

此项目用博途 SCL高级语言编写如何开启运行时间最少的几台设备

 

需求: 如果客户共有8台水泵,4用4备,但每次启动设备时累计运行时需要最运行时间最短的4台运行。

解析: 如果使用梯形图来写的话,此程序会非常复杂,或者有此编程能力稍低的压根就写不出来,由此我们引出西门子博途的SCL高级语言编程,将会比较容易实现,这里以8台为例,如果数量有变化,只要稍做修改即可。

 

新建FB块:名字为:找出最小几个时间输出

1:在FB块中新建如下变量,此处我们为方便观察,建立的是单个变量,当然也可以把运行时间和变量输出用数组表示

             

「项目案例」使用西门子博途 SCL高级语言编写_第1张图片

时间累计用DINT比较合理,最大表示为2147483647——分钟

「项目案例」使用西门子博途 SCL高级语言编写_第2张图片

内部中间变量

「项目案例」使用西门子博途 SCL高级语言编写_第3张图片

 

程序体:

2:把外部输入的时间转入存进数组

「项目案例」使用西门子博途 SCL高级语言编写_第4张图片

3:如果外部传入的数据有相等的情况,就把有相等的数据加1 ,使数组里面的数据不相等,此段程序需要加,如果不加,一般情况下本功能块也可正常运行,如果有碰到数据有相等的情况下,程序就会发生错误。

「项目案例」使用西门子博途 SCL高级语言编写_第5张图片

4:冒泡排序

「项目案例」使用西门子博途 SCL高级语言编写_第6张图片

5:找出最小运行时间的几台泵的序号输出, 具体输出几台,由输入变量select_number决定排序前和排序后的数组进行交叉对比,找出最少的几台输出

「项目案例」使用西门子博途 SCL高级语言编写_第7张图片

6:结果输出

「项目案例」使用西门子博途 SCL高级语言编写_第8张图片

7:新建一个DB块,里面建立一个如下数组,用于累计时间的存储

「项目案例」使用西门子博途 SCL高级语言编写_第9张图片

8:运行效果图1

「项目案例」使用西门子博途 SCL高级语言编写_第10张图片

由图上我们选择4 台最少时间输出,左边可以看出,时间最小的是1,2,4,5#泵,则右测则1,2,4,5#泵的输出 为TRUE;

 

9:运行效果图2

「项目案例」使用西门子博途 SCL高级语言编写_第11张图片

由图上我们选择2台最少时间输出,左边可以看出,时间最小的是1,7#泵,则右边则1,7#泵的输出 为TRUE; 程序测试完全正解

文章来源:启程高老师

启程智能

关于我们:启程自动化 中国领先的工业机器人培训服务提供商

培训项目:机器人、PLC系统集成、机器视觉

特色服务:3000平米实训中心 +推荐就业+ 业界领先的课程体系

地 址:深圳市宝安区沙井107汇聚创智园

https://baijiahao.baidu.com/s?id=1649611800792298297&wfr=spider&for=pc

你可能感兴趣的:(PLC1500)