西门子(Siemens)博途编制程序-泛型和变长数组编制程序

咱俩精晓在高端语言中常见应用泛型,那么在PLC中是或不是能够使用泛型呢?能够,但罗嗦。。

垄断(monopoly)须要

求数组中的最大值,数值类型包含Real和Int,大家这边接纳三种档期的顺序,调节代码量。

决定程序 一

图片 1

图片 2

array是传进来的数组,能够是Int或Real类型。但有大小限制,长度必须低于maxSize。前面大家会写个无大小限制的主次。

先后比较简单,有多少个要点我们简要说下:

第二行,必须用UDINT_TO_DINT,
因为前面的索引号需用DINT。最后输出的是泛型的数值,全数须要把maxElement设置为Variant,所以需求用VairantPut指令把相应的数值传出去。

别的,每种类型都亟需写相应的管理代码,PLC的泛型很罗嗦,代码量异常的大,其实跟PC的泛型有真相上的界别。

决定程序 二

图片 3

图片 4

此次咱们用MOVE_BLK_VACR-VIANT函数来去Variant
数组中的值,所以能够兑现真正的变长数组。最终把最大值通过VariantPut指令输出。指令的详细表达能够看系统自带的手册。

垄断(monopoly)程序 三

其一顺序只兑现变长数组,长度Infiniti制.

图片 5

图片 6

看表达第二行,类型为Array〔*〕of
Int。其余请留心程序第1和2行,用了Lower_Bound和Upper_Bound七个函数。其它S7-1200的模拟器运转这些顺序出错,真机能够.S7-1500模拟器能够平常运维.

相关文章

网站地图xml地图