[博途]+DIY判定数组是否有序的功能块

已锁定

'Razor

西门子1847工业学习平台

  • 帖子

    2797
  • 精华

    24
  • 被关注

    182

论坛等级:至圣

注册时间:2008-03-31

钻石 钻石 如何晋级?

[博途]+DIY判定数组是否有序的功能块

2030

6

2018-11-30 00:47:20

star star star star

如题,以元素为基本数据类型INT的数组为例。

判断数组是否有序(升序/降序/无序),FC接口如图所示




主要参数有二,一输入,一返回值;一般FC都没有RET_VAL,这里带返回值方便在SCL中表达式中调用作判断,如:

IF "IsSortedAscending"(#Array) THEN

其中“#Array”为传送的实参。

关于传递变量ARRAY/ARRAY[*],博途的在线帮助做得非常到位。




算法的实现,具体使用了两种,简图如下

具体用到的博途提供的块如图所示,指令块的详细说明还是F1

运行效果






块的源文件:

IsSortedASC.zip

IsSortedDSC.zip

IfSorted.zip

一为升序判断,一为降序判断,一为是否有序判断(返回值:1升序,-1降序,0无序)。

最后安利一个西门子官方的指令程序示例库TIA Portal指令程序示例库

Tip:

接口再加两个输入参数ZoneHead、ZoneTail,程序稍加改动便可以检测数组内的某一连续区域是否有序。

[博途]+DIY判定数组是否有序的功能块 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有8738条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。