自动化立体仓库控制系统-过程通信处理

过程通信处理FC100

#Temp0 := 0;
#Temp1 := 0;
#Temp2 := 0;
IF "模式自动I" THEN"DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
END_IF;
FOR #Temp0 := 1 TO 32 BY 1 DOIF "DB10 堆垛机过程数据块".库台取货辅助标识[#Temp0] THEN#Temp1 := 1;END_IF;IF "DB10 堆垛机过程数据块".库台卸货辅助标识[#Temp0] THEN#Temp2 := 1;END_IF;
END_FOR;
IF "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 THENRETURN;
END_IF;

//取货完成 申请电报

IF "DB10 堆垛机过程数据块".流程顺序取货完毕判定 THEN  //取货完成IF NOT "DB10 堆垛机过程数据块".任务标识[1] AND NOT "DB10 堆垛机过程数据块".任务标识[5] THEN"DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;RETURN;ELSEIF "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 堆垛机过程数据块".流程顺序卸货探货处理 THENIF NOT "DB10 堆垛机过程数据块".任务标识[2] AND NOT "DB10 堆垛机过程数据块".任务标识[5] THEN"DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;RETURN;ELSEIF "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 THENRETURN;ELSEIF ("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;


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部