| 作者 | 主题 |
|---|---|
|
'Razor 至圣
经验值:24441 发帖数:3205 精华帖:41 |
楼主
主题:[博途]+DIY判定数组是否有序的功能块
如题,以元素为基本数据类型INT的数组为例。 判断数组是否有序(升序/降序/无序),FC接口如图所示 主要参数有二,一输入,一返回值;一般FC都没有RET_VAL,这里带返回值方便在SCL中表达式中调用作判断,如: IF "IsSortedAscending"(#Array) THEN 其中“#Array”为传送的实参。 关于传递变量ARRAY/ARRAY[*],博途的在线帮助做得非常到位。 算法的实现,具体使用了两种,简图如下 具体用到的博途提供的块如图所示,指令块的详细说明还是F1。 运行效果 块的源文件: 一为升序判断,一为降序判断,一为是否有序判断(返回值:1升序,-1降序,0无序)。 最后安利一个西门子官方的指令程序示例库TIA Portal指令程序示例库 Tip: 接口再加两个输入参数ZoneHead、ZoneTail,程序稍加改动便可以检测数组内的某一连续区域是否有序。
少即是多
|