西门子PLC 博图(TIA Portal) 变长数组你会吗?
发布时间:2024-07-03
![](http://img.11467.com/2024/03-16/380752797.jpg)
你是否也遇到遇到以下问题,例如创建不同长度数组运算FB/FC功能块,就需要建立不同长度引脚变量的FB/FC功能块,保证输入的数组与功能块引脚参数一致。
通过变长数组 Array[*] of 数据类型,使用它可以让程序更加灵活,极大的可以缩减一些不必要的工作,下面让我们一起学习下。
![](http://img.11467.com/2024/06-27/3256251042.jpg)
1.传统数组_功能块变量
功能块输入/输出变量必须与DB数据块变量保持一致。功能块1变量:![](http://img.11467.com/2024/06-27/375841704.jpg)
![](http://img.11467.com/2024/06-27/375859622.jpg)
![](http://img.11467.com/2024/06-27/375822017.jpg)
传统的不可变数组运算,不同长度数组,必须新建独立FB/FC功能块,例如两个不同长度的数组运算就必须创建两个不同长度的功能块。
2.变长数组_功能块变量
功能块输入/输出变量无需与DB数据块变量一致,DB数据块指定长度即可功能块1/2变量,因此两个长度运算的功能块不需要传统方式创建两个功能块,通过可变数组方式一个功能块即可实现以上功能。
![图片](http://img.11467.com/2024/06-27/375855258.jpg)
![图片](http://img.11467.com/2024/06-27/375890682.jpg)
可变数组运算,不同长度数组,无需新建独立FB/FC功能块。
二、可变数组讲解1.新建FC功能块![图片](http://img.11467.com/2024/06-27/375846937.jpg)
![图片](http://img.11467.com/2024/06-27/375815194.jpg)
//获取数组下限#数组下限 := LOWER_BOUND(ARR := #输入数组, DIM := 1);//获取数组上限#数组上限 := UPPER_BOUND(ARR := #输入数组, DIM := 1);//赋值前清零#输出和_Temp := 0;//数组求和FOR #Temp_1 := #数组下限 TO #数组上限 BY 1 DO // Statement section FOR #输出和_Temp += #输入数组[#Temp_1];END_FOR;//数组求和值中转#输出和 := #输出和_Temp;4.新建DB数据块
![图片](http://img.11467.com/2024/06-27/375918840.jpg)
![图片](http://img.11467.com/2024/06-27/375980620.jpg)
展开全文
其他新闻
- 通过Modbus TCP/Modbus RTU转换器实现RS-485总线设备高速数据采集的方案 2024-07-03
- PLC抓故障小技巧:看PLC-Recorder如何按条件启动和停止数据采集 2024-07-03
- 充分利用CPU通讯能力,以较小代价实现PLC快慢速数据混合采集的技巧 2024-07-03
- 西门子PLC S7-1500实现2ms精准周期、高速数据采集(带时间戳) 2024-07-03
- 西门子PLC Modbus Tcp 通信指令合集 2024-07-03
- PLC-Recorder进行罗克韦尔(原AB)PLC数据采集的一些技巧 2024-07-03
- 西门子触摸屏利用VBScript脚本创建csv文件,解决数据临时存储的问题 2024-07-03
- S7-200Smart 子程序局部变量事半功倍的用法! 2024-07-03
- 你所不知道的开放通讯协议,PLC工程师必读! 2024-07-03
- 教你一个在HMI上显示PLC代码流程的方法!! 2024-07-03