回复:if语句遇到的问题

已锁定

老学童

  • 帖子

    765
  • 精华

    32
  • 被关注

    65

论坛等级:奇侠

注册时间:2011-06-22

钻石 钻石 如何晋级?

发布于 2023-03-31 20:20:03

9楼

展开查看
以下是引用SIEMENSPLCer在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;

好好看看1楼到4楼的回帖,琢磨琢磨。
人的生命似洪水在奔流,不遇着岛屿、暗礁,难以激起美丽的浪花。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有10698条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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