- #Temp0 := 0;
- #Temp1 := 0;
- #Temp2 := 0;
- IF "模式自动I" THEN
- "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
- END_IF;
- FOR #Temp0 := 1 TO 32 BY 1 DO
- IF "DB10 堆垛机过程数据块".库台取货辅助标识[#Temp0] THEN
- #Temp1 := 1;
- END_IF;
- IF "DB10 堆垛机过程数据块".库台卸货辅助标识[#Temp0] THEN
- #Temp2 := 1;
- END_IF;
- END_FOR;
- IF "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 THEN
- RETURN;
- END_IF;
//取货完成 申请电报
- IF "DB10 堆垛机过程数据块".流程顺序取货完毕判定 THEN //取货完成
- IF NOT "DB10 堆垛机过程数据块".任务标识[1] AND NOT "DB10 堆垛机过程数据块".任务标识[5] THEN
- "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
- RETURN;
- ELSE
- IF "DB10 堆垛机过程数据块".任务标识[7] OR ("DB10 堆垛机过程数据块".任务标识[5] AND NOT #Temp1) THEN
- "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
- "DB10 堆垛机过程数据块".状态堆垛机当前状态[8] := 0;
- "DB10 堆垛机过程数据块".任务标识[7] := 0;
- RETURN;
- END_IF;
- END_IF;
- IF ("DB10 堆垛机过程数据块".任务标识[1] OR ("DB10 堆垛机过程数据块".任务标识[5] AND #Temp1)) AND NOT "DB10 堆垛机过程数据块".状态堆垛机当前状态[8] THEN
- "DB10 堆垛机过程数据块".状态堆垛机当前状态[8] := 1;
- "DB10 堆垛机过程数据块".电报发送定时启动[8] := 0;
- END_IF;
- //定时器
- #Temp4 := S_ODT(S := ("DB10 堆垛机过程数据块".任务标识[1] OR ("DB10 堆垛机过程数据块".任务标识[5] AND #Temp1))
- AND "DB10 堆垛机过程数据块".状态堆垛机当前状态[8] AND "DB10 堆垛机过程数据块".电报发送定时启动[8]
- AND "DB10 堆垛机过程数据块".电报发送标识[8],
- T_NO := "取货完成定时发送定时器", TV := S5T#5S, Q => #Temp3);
- IF "DB10 堆垛机过程数据块".状态堆垛机当前状态[8] THEN
- "DB10 堆垛机过程数据块".电报发送定时启动[8] := 1;
- END_IF;
- IF #Temp3 THEN
- "DB10 堆垛机过程数据块".电报发送定时启动[8] := 0;
- "DB10 堆垛机过程数据块".电报发送标识[8] := 0;
- END_IF;
- END_IF;
//卸货申请 申请电报
- IF "DB10 堆垛机过程数据块".流程顺序卸货探货处理 THEN
- IF NOT "DB10 堆垛机过程数据块".任务标识[2] AND NOT "DB10 堆垛机过程数据块".任务标识[5] THEN
- "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
- RETURN;
- ELSE
- IF "DB10 堆垛机过程数据块".任务标识[6] OR ("DB10 堆垛机过程数据块".任务标识[5] AND NOT #Temp2) OR ("DB10 堆垛机过程数据块".系统S7链接建立标识 AND #Temp2) THEN
- "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
- RETURN;
- END_IF;
- END_IF;
- IF "DB10 堆垛机过程数据块".系统S7链接建立标识 AND #Temp2 THEN
- RETURN;
- ELSE
- IF ("DB10 堆垛机过程数据块".任务标识[2] OR ("DB10 堆垛机过程数据块".任务标识[5] AND #Temp2)) AND NOT "DB10 堆垛机过程数据块".状态堆垛机当前状态[7] THEN
- "DB10 堆垛机过程数据块".状态堆垛机当前状态[7] := 1;
- "DB10 堆垛机过程数据块".电报发送定时启动[7] := 0;
- END_IF;
- //定时器
- #Temp4 := S_ODT(S := ("DB10 堆垛机过程数据块".任务标识[2] OR ("DB10 堆垛机过程数据块".任务标识[5] AND NOT #Temp2))
- AND "DB10 堆垛机过程数据块".状态堆垛机当前状态[7] AND "DB10 堆垛机过程数据块".电报发送定时启动[7]
- AND "DB10 堆垛机过程数据块".电报发送标识[7],
- T_NO := "卸货申请定时发送定时器", TV := S5T#5S, Q => #Temp3);
- IF "DB10 堆垛机过程数据块".状态堆垛机当前状态[7] THEN
- "DB10 堆垛机过程数据块".电报发送定时启动[7] := 1;
- END_IF;
- IF #Temp3 THEN
- "DB10 堆垛机过程数据块".电报发送定时启动[7] := 0;
- "DB10 堆垛机过程数据块".电报发送标识[7] := 0;
- END_IF;
- END_IF;
- END_IF;
//作业完成 申请电报
IF "DB10 堆垛机过程数据块".流程顺序卸货电报处理 THEN
IF "DB10 堆垛机过程数据块".任务标识[1] AND NOT "DB10 堆垛机过程数据块".状态堆垛机当前状态[4] THEN
"DB10 堆垛机过程数据块".状态堆垛机当前状态[4] := 1;
"DB10 堆垛机过程数据块".电报发送定时启动[1] := 0;
ELSIF "DB10 堆垛机过程数据块".任务标识[2] AND NOT "DB10 堆垛机过程数据块".状态堆垛机当前状态[5] THEN
"DB10 堆垛机过程数据块".状态堆垛机当前状态[5] := 1;
"DB10 堆垛机过程数据块".电报发送定时启动[1] := 0;
ELSIF "DB10 堆垛机过程数据块".任务标识[5] AND NOT "DB10 堆垛机过程数据块".状态堆垛机当前状态[6] THEN
"DB10 堆垛机过程数据块".状态堆垛机当前状态[6] := 1;
"DB10 堆垛机过程数据块".电报发送定时启动[1] := 0;
END_IF;
//定时器
#Temp4 := S_ODT(S := (("DB10 堆垛机过程数据块".状态堆垛机当前状态[4] AND "DB10 堆垛机过程数据块".电报发送标识[1])
OR ("DB10 堆垛机过程数据块".状态堆垛机当前状态[5] AND "DB10 堆垛机过程数据块".电报发送标识[2])
OR ("DB10 堆垛机过程数据块".状态堆垛机当前状态[6] AND "DB10 堆垛机过程数据块".电报发送标识[5]))
AND "DB10 堆垛机过程数据块".电报发送定时启动[1],
T_NO := "作业完成定时发送定时器", TV := S5T#5S, Q => #Temp3);
IF "DB10 堆垛机过程数据块".状态堆垛机当前状态[4] OR "DB10 堆垛机过程数据块".状态堆垛机当前状态[5] OR "DB10 堆垛机过程数据块".状态堆垛机当前状态[6] THEN
"DB10 堆垛机过程数据块".电报发送定时启动[1] := 1;
END_IF;
IF #Temp3 THEN
"DB10 堆垛机过程数据块".电报发送标识[1] := 0;
"DB10 堆垛机过程数据块".电报发送标识[2] := 0;
"DB10 堆垛机过程数据块".电报发送标识[5] := 0;
"DB10 堆垛机过程数据块".电报发送定时启动[1] := 0;
END_IF;
END_IF;