三菱PLC数据处理指令-掌握数据处理的强大功能

三菱PLC数据处理指令

实训任务 1:SUM、BON 指令编程:

  • 一竞赛场所选手通过特约嘉宾和在场观众打分,并通过屏幕显示。
  • 4 位特约嘉宾,每位嘉宾面前按钮为 10 分。
  • 12 组观众,每组面前按钮为 3 分。
掌握数据处理的强大功能

实训任务 2:DECO 指令编程:

  • 用 DECO 指令实现步进电机正反转及调速控制(3 种可调速度)。

实训目标

  • 掌握功能指令的编程方法。
  • 提高程序设计能力。
  • 培养团队合作精神。

实训流程

  1. 了解实训任务要求,进行任务分析。
  2. 设计程序流程图。
  3. 编写程序代码。
  4. 调试程序,发现并解决错误。
  5. 完成程序设计任务。

  6. 实训代码

    
    ; 实训任务 1:SUM、BON 指令编程
    LD A, 0   ; 清除累加器
    CALL GET_SPECIAL_GUEST_SCORE ; 获取特约嘉宾得分
    ADD A, L  ; 将特约嘉宾得分加到累加器中
    CALL GET_AUDIENCE_SCORE    ; 获取观众得分
    ADD A, L  ; 将观众得分加到累加器中
    CALL DISPLAY_SCORE          ; 显示得分
    
    ; 实训任务 2:DECO 指令编程
    LD D, <<DECO_START_MOTOR>> ; 设置 DECO 起始地址
    LD E, <<DECO_STOP_MOTOR>>  ; 设置 DECO 停止地址
    LD C, 0  ; 设置转向模式为正转
    CALL DECO_CONTROL          ; 控制步进电机正转
    
    ; 获取特约嘉宾得分
    GET_SPECIAL_GUEST_SCORE:
      CALL DELAY
      LD B, 0   ; 设置按钮索引
      LD HL, <<SPECIAL_GUEST_SCORE_ADDRESS>> ; 设置特约嘉宾得分地址
    GET_SPECIAL_GUEST_SCORE_LOOP:
        LD A, (HL) ; 获取按钮状态
        CP 0     ; 判断按钮是否按下
        JR Z, GET_SPECIAL_GUEST_SCORE_LOOP ; 按钮未按下,继续循环
        INC B     ; 按钮按下,按钮索引加 1
        INC HL    ; 分数地址加 1
        LD (HL), B ; 将按钮索引写入分数地址
        JR GET_SPECIAL_GUEST_SCORE_LOOP ; 继续循环
    GET_SPECIAL_GUEST_SCORE_EXIT:
      RET
    
    ; 获取观众得分
    GET_AUDIENCE_SCORE:
      CALL DELAY
      LD B, 0   ; 设置按钮索引
      LD HL, <<AUDIENCE_SCORE_ADDRESS>>    ; 设置观众得分地址
    GET_AUDIENCE_SCORE_LOOP:
        LD A, (HL) ; 获取按钮状态
        CP 0     ; 判断按钮是否按下
        JR Z, GET_AUDIENCE_SCORE_LOOP ; 按钮未按下,继续循环
        INC B     ; 按钮按下,按钮索引加 1
        INC HL    ; 分数地址加 1
        LD (HL), B ; 将按钮索引写入分数地址
        JR GET_AUDIENCE_SCORE_LOOP ; 继续循环
    GET_AUDIENCE_SCORE_EXIT:
      RET
    
    ; 显示得分
    DISPLAY_SCORE:
      LD A, L   ; 将得分加载到累加器
      CALL DELAY
      CALL DISPLAY_SCORE_ROUTINE ; 显示得分
    
    ; 控制步进电机正转
    DECO_CONTROL:
      LD BC, <<DECO_CONTROL_REGISTER>> ; 设置 DECO 控制寄存器
      LD DE, <<DECO_CONTROL_VALUE>>  ; 设置 DECO 控制值
      OUT (C), E ; 输出 DECO 控制值
      DEC C     ; 将转向模式设置为正转
      CALL DELAY
      RET
    
    ; 控制步进电机反转
    DECO_CONTROL_REVERSE:
      LD BC, <<DECO_CONTROL_REGISTER>> ; 设置 DECO 控制寄存器
      LD DE, <<DECO_CONTROL_VALUE>>  ; 设置 DECO 控制值
      OUT (C), E ; 输出 DECO 控制值
      INC C     ; 将转向模式设置为反转
      CALL DELAY
      RET
    
    ; 控制步进电机调速
    DECO_CONTROL_SPEED:
      LD BC, <<DECO_CONTROL_REGISTER>> ; 设置 DECO 控制寄存器
      LD DE, <<DECO_CONTROL_VALUE>>  ; 设置 DECO 控制值
      OUT (C), E ; 输出 DECO 控制值
      CALL DELAY
      RET
    

本文原创来源:电气TV网,欢迎收藏本网址,收藏不迷路哦!

相关阅读

添加新评论