北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8691017

西门子SCL语言编程实例——冒泡排序

作为一种高级语言,SCL比梯形图、功能块图等语言更擅长数据的处理。在实际项目中我们可能需要对数组中的数值进行排序,这种情况使用梯形图或功能块图编写程序会比较复杂,使用SCL就能轻松处理。今天这篇文章,我给大家介绍下如何使用SCL编程实现冒泡排序。本文包括两个主题:

  1. 什么是冒泡排序?

  2. SCL冒泡排序实例

cover.png

1、什么是冒泡排序?

冒泡排序是排序算法的一种,包括升序和降序两种模式。以升序为例,它遍历数组中的所有元素,并把两个相邻的数进行比较,如果左边的数大于右边的数,则两者互换(降序是左边小于右边则互换);重复这个过程直到任何两个元素都完成比较。在比较的过程中,小的数值会像气泡一样慢慢"浮"到数组序列的前端,因此称为"冒泡"排序。如下图所示:

bubbleSort_dynamic_pic.gif

2、SCL冒泡排序实例

新建函数FC101_BubbleSort,声明参数如下图所示:

variable.PNG

其中:

  • mode:指示排序的方式,升序或降序;

  • arraySort是要排序的数组;

在代码区编写代码如下:

code.png

这段代码我已经实际测试过了,后续我录个视频给大家演示一下。如果你有任何问题欢迎留言。你也可以点击文章上方的话题链接查看我之前的SCL文章。

注意:本文的算法在某些情况下会出现错误,原因是SCL数组的上下限可以自由定义。更新版的算法请看下面的文章:

西门子SCL编程实例——冒泡排序(更新版)

我的微信视频号以视频的方式分享工控小知识,欢迎扫描下面的二维码观看:

founderchip.png

取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论

  • 编辑正确,但是下载后CPU诊断“区域长度错误“而无法启动CPU(黄色LED)