恭喜,你发布的帖子
发布于 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;
请填写推广理由:
分享
只看
楼主