[西门子] 西门子PLC 博图(TIA Portal) 变长数组你会吗?

[复制链接]
查看172 | 回复0 | 2024-5-2 17:53:06 | 显示全部楼层 |阅读模式
前序
你是否也遇到遇到以下问题,例如创建不同长度数组运算FB/FC功能块,就需要建立不同长度引脚变量的FB/FC功能块,保证输入的数组与功能块引脚参数一致。
通过变长数组 Array
  • of 数据类型,使用它可以让程序更加灵活,极大的可以缩减一些不必要的工作,下面让我们一起学习下。
    一、可变数组与不可变数组对比

    1.传统数组_功能块变量
    功能块输入/输出变量必须与DB数据块变量保持一致。功能块1变量:
    功能块2变量:
    DB数据块变量:

    传统的不可变数组运算,不同长度数组,必须新建独立FB/FC功能块,例如两个不同长度的数组运算就必须创建两个不同长度的功能块。

    2.变长数组_功能块变量
    功能块输入/输出变量无需与DB数据块变量一致,DB数据块指定长度即可功能块1/2变量,因此两个长度运算的功能块不需要传统方式创建两个功能块,通过可变数组方式一个功能块即可实现以上功能。
    DB数据块变量:
    可变数组运算,不同长度数组,无需新建独立FB/FC功能块。
    二、可变数组讲解

    1.新建FC功能块
    2.FC功能块插入以下变量
    3.FC功能块插入以下程序

















    //获取数组下限#数组下限 := 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数据块
    5.DB数据块插入以下变量

    6.OB1功能块中插入两次可变数组FC功能块
    三、程序演示




    <hr>





    免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
  • 本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?注册哦

    x
    您需要登录后才可以回帖 登录 | 注册哦

    本版积分规则