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


    过程通信处理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;

  • 相关阅读:
    NC9 二叉树中和为某一值的路径(一)
    服务器集群配置LDAP统一认证高可用集群(配置tsl安全链接)-centos9stream-openldap2.6.2
    深度学习在机器视觉中的应用与优势
    AI五子棋 C++ 借助图形库raylib和raygui 设计模式思考过程和实现思路总结
    使用消息队列解决RTOS多线程同时打印串口乱序问题
    uniapp开发小程序—根据生日日期计算年龄 & 周岁
    (附源码)计算机毕业设计SSM酒店客户管理系统
    【优化选址】基于遗传算法求解分布式电源的选址定容问题附matlab代码
    【VUE】微商城(十一)----购物车下订单,选择收货地址,商品详情页立即购买,取消订单,查看订单详情
    前端(四)
  • 原文地址:https://blog.csdn.net/xdpcxq/article/details/128093564