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


    过程通信处理FC100

    1. #Temp0 := 0;
    2. #Temp1 := 0;
    3. #Temp2 := 0;
    4. IF "模式自动I" THEN
    5. "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
    6. END_IF;
    7. FOR #Temp0 := 1 TO 32 BY 1 DO
    8. IF "DB10 堆垛机过程数据块".库台取货辅助标识[#Temp0] THEN
    9. #Temp1 := 1;
    10. END_IF;
    11. IF "DB10 堆垛机过程数据块".库台卸货辅助标识[#Temp0] THEN
    12. #Temp2 := 1;
    13. END_IF;
    14. END_FOR;
    15. IF "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 THEN
    16. RETURN;
    17. END_IF;

    //取货完成 申请电报

    1. IF "DB10 堆垛机过程数据块".流程顺序取货完毕判定 THEN //取货完成
    2. IF NOT "DB10 堆垛机过程数据块".任务标识[1] AND NOT "DB10 堆垛机过程数据块".任务标识[5] THEN
    3. "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
    4. RETURN;
    5. ELSE
    6. IF "DB10 堆垛机过程数据块".任务标识[7] OR ("DB10 堆垛机过程数据块".任务标识[5] AND NOT #Temp1) THEN
    7. "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
    8. "DB10 堆垛机过程数据块".状态堆垛机当前状态[8] := 0;
    9. "DB10 堆垛机过程数据块".任务标识[7] := 0;
    10. RETURN;
    11. END_IF;
    12. END_IF;
    13. IF ("DB10 堆垛机过程数据块".任务标识[1] OR ("DB10 堆垛机过程数据块".任务标识[5] AND #Temp1)) AND NOT "DB10 堆垛机过程数据块".状态堆垛机当前状态[8] THEN
    14. "DB10 堆垛机过程数据块".状态堆垛机当前状态[8] := 1;
    15. "DB10 堆垛机过程数据块".电报发送定时启动[8] := 0;
    16. END_IF;
    17. //定时器
    18. #Temp4 := S_ODT(S := ("DB10 堆垛机过程数据块".任务标识[1] OR ("DB10 堆垛机过程数据块".任务标识[5] AND #Temp1))
    19. AND "DB10 堆垛机过程数据块".状态堆垛机当前状态[8] AND "DB10 堆垛机过程数据块".电报发送定时启动[8]
    20. AND "DB10 堆垛机过程数据块".电报发送标识[8],
    21. T_NO := "取货完成定时发送定时器", TV := S5T#5S, Q => #Temp3);
    22. IF "DB10 堆垛机过程数据块".状态堆垛机当前状态[8] THEN
    23. "DB10 堆垛机过程数据块".电报发送定时启动[8] := 1;
    24. END_IF;
    25. IF #Temp3 THEN
    26. "DB10 堆垛机过程数据块".电报发送定时启动[8] := 0;
    27. "DB10 堆垛机过程数据块".电报发送标识[8] := 0;
    28. END_IF;
    29. END_IF;

    //卸货申请 申请电报

    1. IF "DB10 堆垛机过程数据块".流程顺序卸货探货处理 THEN
    2. IF NOT "DB10 堆垛机过程数据块".任务标识[2] AND NOT "DB10 堆垛机过程数据块".任务标识[5] THEN
    3. "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
    4. RETURN;
    5. ELSE
    6. IF "DB10 堆垛机过程数据块".任务标识[6] OR ("DB10 堆垛机过程数据块".任务标识[5] AND NOT #Temp2) OR ("DB10 堆垛机过程数据块".系统S7链接建立标识 AND #Temp2) THEN
    7. "DB10 堆垛机过程数据块".过程上位机电报交互完成标识 := 1;
    8. RETURN;
    9. END_IF;
    10. END_IF;
    11. IF "DB10 堆垛机过程数据块".系统S7链接建立标识 AND #Temp2 THEN
    12. RETURN;
    13. ELSE
    14. IF ("DB10 堆垛机过程数据块".任务标识[2] OR ("DB10 堆垛机过程数据块".任务标识[5] AND #Temp2)) AND NOT "DB10 堆垛机过程数据块".状态堆垛机当前状态[7] THEN
    15. "DB10 堆垛机过程数据块".状态堆垛机当前状态[7] := 1;
    16. "DB10 堆垛机过程数据块".电报发送定时启动[7] := 0;
    17. END_IF;
    18. //定时器
    19. #Temp4 := S_ODT(S := ("DB10 堆垛机过程数据块".任务标识[2] OR ("DB10 堆垛机过程数据块".任务标识[5] AND NOT #Temp2))
    20. AND "DB10 堆垛机过程数据块".状态堆垛机当前状态[7] AND "DB10 堆垛机过程数据块".电报发送定时启动[7]
    21. AND "DB10 堆垛机过程数据块".电报发送标识[7],
    22. T_NO := "卸货申请定时发送定时器", TV := S5T#5S, Q => #Temp3);
    23. IF "DB10 堆垛机过程数据块".状态堆垛机当前状态[7] THEN
    24. "DB10 堆垛机过程数据块".电报发送定时启动[7] := 1;
    25. END_IF;
    26. IF #Temp3 THEN
    27. "DB10 堆垛机过程数据块".电报发送定时启动[7] := 0;
    28. "DB10 堆垛机过程数据块".电报发送标识[7] := 0;
    29. END_IF;
    30. END_IF;
    31. 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;

  • 相关阅读:
    Android Studio的笔记--Android API的方法和位置
    Golang协程的概念、用法、场景及案例
    Creator 2.4.x 分享游戏图片
    React在实际开发中Variables与Prop的实战运用
    设计模式_解释器模式
    让 Java 打包缩小一大半,Solon v1.9.3 发布
    二元分类模型评估方法
    NSA 和 CISA 揭示十大网络安全错误配置
    金字塔的思维---先总后分与结论先行
    yolov5的TensorRT部署--动态batch
  • 原文地址:https://blog.csdn.net/xdpcxq/article/details/128093564