恭喜,你发布的帖子
发布于 2025-03-11 09:46:48
7楼
写个大概的,做一个料仓UDT,里面放入加料需求作为触发信号,料仓待处理作为排队中信号,每个料仓用char起一个名字,比如序号1-9,将代号放到个数组里面,再将数组转化为字符串或者再用个for循环,每完成一个将序号前移,并且复位待处理信号,这样复位过的料仓就能重新加入队列,不喜勿喷哦~
FOR #i := 0 TO 8 DO
#RET1 := MOVE_BLK_VARIANT(SRC := #料仓, COUNT := 1, SRC_INDEX := #i, DEST_INDEX := 0, DEST => #"料仓 UDT");
IF #"料仓 UDT".料仓加料需求 AND #"料仓 UDT".料仓待处理 = FALSE THEN
#"料仓 UDT".料仓待处理 := TRUE;
#料仓代号数组[#待处理料仓数] := #"料仓 UDT".料仓代号;
#待处理料仓数 += 1;
END_IF;
IF #"料仓 UDT".料仓代号 = #料仓代号数组[0] THEN
#"料仓 UDT".料仓处理中信号 := TRUE;
ELSE
#"料仓 UDT".料仓处理中信号 := FALSE;
END_IF;
IF #"料仓 UDT".料仓加料完成 THEN
IF #"料仓 UDT".料仓处理中信号 THEN
Chars_TO_Strg(Chars := #料仓代号数组,
pChars := 1,
Cnt := 8,
Strg => #字符串排列);
Strg_TO_Chars(Strg := #字符串排列,
pChars := 0,
Cnt => #字符数量,
Chars := #料仓代号数组);
#"料仓 UDT".料仓加料完成 := FALSE;
#"料仓 UDT".料仓加料需求 := FALSE;
#"料仓 UDT".料仓待处理 := FALSE;
#待处理料仓数 -= 1;
ELSE
#"料仓 UDT".料仓加料完成 := FALSE;
END_IF;
END_IF;
#RET2 := MOVE_BLK_VARIANT(SRC := #"料仓 UDT", COUNT := 1, SRC_INDEX := 0, DEST_INDEX := #i, DEST => #料仓);
END_FOR;
请填写推广理由:
分享
只看
楼主