回复:if语句遇到的问题

已锁定

SIEMENSPLCer

  • 帖子

    44
  • 精华

    0
  • 被关注

    3

论坛等级:侠客

注册时间:2017-11-17

黄金 黄金 如何晋级?

发布于 2023-03-31 16:45:51

8楼

感觉逻辑上没有问题,但是在进入FOR循环之前应该先把最小值寄存器赋值一个最大的初始值,然后再进入FOR比较,或者程序其他地方有清除等等逻辑,否则的话例如第一个扫描周期数组里最小值是10,取得最小值就是10,第二个扫描周期数组里的最小值是15,那得到的值还是10.

 "CgOp1100DataStorage".Channel1Min.part.startTimeThermalEffect:=99999(赋值最大的初始值)

FOR #i := 1 TO "NUMBER_PALLETS_STATION" DO
    IF "CgOp1100DataStorage".pallet[#i].channel = 1 AND "CgOp1100DataStorage".pallet[#i].palletInOven THEN
        IF "CgOp1100DataStorage".pallet[#i].part.startTimeThermalEffect < "CgOp1100DataStorage".Channel1Min.part.startTimeThermalEffect THEN
            "CgOp1100DataStorage".Channel1Min := "CgOp1100DataStorage".pallet[#i];
            "OvemInfomation".dataManagement.Type.ExitType[1] := "CgOp1100DataStorage".pallet[#i].part.partData.partType;
        END_IF;
    END_IF;

..........
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10590条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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