打印

台达PLC与T5UID3屏连接OS代码

[复制链接]
496|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ZLDW|  楼主 | 2018-12-14 11:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<font color="#000000"><font face="Times New Roman">ORG  1000H
    GOTO MAIN
   
    ORG  1080H
MAIN:
    CALL T300MS
   
    CALL INITE
   
    GOTO MAIN  
;***************

T300MS:   
    LDBR R30,0X00,1
    LDBR R31,0X64,1
    LDBR R32,0X00,1
    LDBR R33,0X96,1
    LDBR R34,0X00,1
    LDBR R35,0XFA,1
    LDBR R36,0X01,1
    LDBR R37,0X2C,1
    MOVDR 37,R25,2
    JU  R25,R30,T300_END   
    LDBR  R80,1,1
    JU  R25,R32,T300_END
    LDBR  R80,2,1
    JU  R25,R34,T300_END
    LDBR  R80,3,1
    JU  R25,R36,T300_END
    LDBR  R80,4,1
    LDBR  R200,0,1
    LDWR  R25,0
    MOVRD R25,37,2
    NOP
    RET
T300_END:
   
    NOP
    RET
;***************
;上电初始化   
INITE:   
            IJNE      R255,0,INIRET
            LDBR      R255,1,1
            COMSET    40H,1632   ;设置串口4,波特率9600,上电执行一次
            CONFIG    1,2,1
            RET
           ; LDBR      R250,0,1
                                        
           ; NOP          
INIRET:     
            IJNE R80,1,NT1
         
            CALL RDY04
            RET
NT1:        
            IJNE R80,2,NT2
            RET
NT2:        IJNE R80,4,NT3
            RET
NT3:        ;IJNE R81,1,NTRET
            CALL T1014           
            CALL T1015
            CALL T1016            
            CALL T1017   
            CALL T1018
NTRET:      RET  
RDY04:      
       IJNE      R200,1,SENDR
       IJNE      R201,0,OT_RET
       RDXLEN    4,R40   ;FIFO长度
       IJNE      R40,0,OT_TEST  ;FIFO长度不等于0      
       RET      
SENDR:                            ;读Y0~Y4状态
       LDBR      R90,0x02,1
       LDBR          R91,0x02,1    ;命令码
       LDBR          R92,0x05,1   
       LDBR          R93,0x00,1  
       LDBR          R94,0x00,1
       LDBR          R95,0x05,1
       LDBR          R11,0x06,1
       CRCA          R90,R122,R11   ;6字节做ANSI CRC计算
       MOV           R122,R96,2     ;赋值给R96 R97
       LDBR          R9,0x08,1
       COMTXD          4,R90,R9
       LDBR      R200,1,1
       LDBR      R201,0,1  
       RET   
OT_TEST:
       MOVDR     17,R41,1
       IJNE      R41,0,OT_RET
       RDXLEN    4,R40
       RDXDAT    4,R50,R40
       IJNE      R50,0X02,OT_RET
       IJNE      R51,0X02,OT_RET
       IJNE      R52,0X01,OT_RET
      
       CALL      SC0
       CALL      SC1
       CALL      SC2
       CALL      SC3
       CALL      SC4
         
       LDBR      R201,1,1

       RET      
OT_RET:
       NOP
       RET   
SC0:   
       LDBR      R0,0X10,1
       LDBR      R1,0X14,1
               
       LDBR      R60,0X01,1
       AND       R60,R53,1
       IJNE      R60,0X01,SC00
      
       LDBR      R20,0,1
       LDBR      R21,1,1
       MOVXR     R20,0,1   ;写0x0001进变量
       LDBR      R250,0,1
       LDBR      R249,1,1
       RET
SC00:  
       LDBR      R20,0,1
       LDBR      R21,0,1
       MOVXR     R20,0,1   ;写0x0000进变量
       LDBR      R250,1,1
       LDBR      R249,0,1
       RET
SC1:   
       LDBR      R0,0X10,1
       LDBR      R1,0X15,1
      
       LDBR      R60,0X02,1
       AND       R60,R53,1
       IJNE      R60,0X02,SC10
       LDBR      R20,0,1
       LDBR      R21,1,1
       MOVXR     R20,0,1   ;写0x0001进变量
       LDBR      R248,0,1
       LDBR      R247,1,1
      
       RET
SC10:  
       LDBR      R20,0,1
       LDBR      R21,0,1
       MOVXR     R20,0,1   ;写0x0000进变量
       LDBR      R248,1,1
       LDBR      R247,0,1
      
       RET
SC2:   
       LDBR      R0,0X10,1
       LDBR      R1,0X16,1
      
       LDBR      R60,0X04,1
       AND       R60,R53,1
       IJNE      R60,0X04,SC20
      
       LDBR      R20,0,1
       LDBR      R21,1,1
       MOVXR     R20,0,1   ;写0x0001进变量
       LDBR      R246,0,1
       LDBR      R245,1,1
       RET
SC20:  
       LDBR      R20,0,1
       LDBR      R21,0,1
       MOVXR     R20,0,1   ;写0x0000进变量
       LDBR      R246,1,1
       LDBR      R245,0,1
       RET
SC3:   
       LDBR      R0,0X10,1
       LDBR      R1,0X17,1
      
       LDBR      R60,0X08,1
       AND       R60,R53,1
       IJNE      R60,0X08,SC30
      
       LDBR      R20,0,1
       LDBR      R21,1,1
       MOVXR     R20,0,1   ;写0x0001进变量
       LDBR      R244,0,1
       LDBR      R243,1,1
       RET
SC30:  
       LDBR      R20,0,1
       LDBR      R21,0,1
       MOVXR     R20,0,1   ;写0x0000进变量
       LDBR      R244,1,1
       LDBR      R243,0,1
       RET
SC4:   
       LDBR      R0,0X10,1
       LDBR      R1,0X18,1
            
       LDBR      R60,0X10,1
       AND       R60,R53,1
       IJNE      R60,0X10,SC40
      
       LDBR      R20,0,1
       LDBR      R21,1,1
       MOVXR     R20,0,1   ;写0x0001进变量
       LDBR      R242,0,1
       LDBR      R241,1,1
       RET
SC40:  
       LDBR      R20,0,1
       LDBR      R21,0,1
       MOVXR     R20,0,1   ;写0x0000进变量
       LDBR      R242,1,1
       LDBR      R241,0,1
       RET
;********************   
T1014:                   ;直接操作Y0寄存器  装置地址0x500
       LDBR  R0,0X10,1
       LDBR  R1,0X24,1
       MOVXR R20,1,1   
       IJNE  R20,0,E1014
       IJNE  R21,0,N1014
       RET
N1014:
       IJNE  R21,1,C1014
       CALL  O1014
       RET
E1014:
       NOP
       RET
C1014: IJNE  R21,2,E1014
       LDBR          R101,0x05,1   ;命令码
       LDBR          R102,0x05,1   ;0x0500   Y0继电器
       LDBR          R103,0x00,1  
       LDBR          R104,0x00,1
       LDBR          R105,0x00,1
      
       CALL      U4TX
       LDBR      R20,0,1
       LDBR      R21,0,1
       MOVXR     R20,0,1   ;写0x0000进变量
       RET
O1014:
      LDBR         R101,0x05,1    ;命令码
      LDBR         R102,0x05,1    ;0x0500   Y0继电器
      LDBR         R103,0x00,1  
      LDBR         R104,0xFF,1
      LDBR         R105,0x00,1
      CALL      U4TX
      LDBR      R20,0,1
      LDBR      R21,0,1
      MOVXR     R20,0,1   ;写0x0000进变量
      RET
T1015:                   ;直接操作Y0寄存器  装置地址0x500
       LDBR  R0,0X10,1
       LDBR  R1,0X25,1
       MOVXR R20,1,1   
       IJNE  R20,0,E1015
       IJNE  R21,0,N1015
       RET
N1015:
       IJNE  R21,1,C1015
       CALL  O1015
       RET
E1015:
       NOP
       RET
C1015:
       IJNE      R21,2,E1015
       LDBR          R101,0x05,1    ;命令码
       LDBR          R102,0x08,1    ;0x0800   M0辅助继电器
       LDBR          R103,0x00,1  
       LDBR          R104,0x00,1
       LDBR          R105,0x00,1
      
       CALL      U4TX
       LDBR      R20,0,1
       LDBR      R21,0,1
       MOVXR     R20,0,1   ;写0x0000进变量
       RET
O1015:
      LDBR         R101,0x05,1    ;命令码
      LDBR         R102,0x08,1    ;0x0800   M0辅助继电器
      LDBR         R103,0x00,1  
      LDBR         R104,0xFF,1
      LDBR         R105,0x00,1
      CALL      U4TX
      LDBR      R20,0,1
      LDBR      R21,0,1
      MOVXR     R20,0,1   ;写0x0000进变量
      RET      
T1016:                   ;直接操作Y0寄存器  装置地址0x500
       LDBR  R0,0X10,1
       LDBR  R1,0X26,1
       MOVXR R20,1,1   
       IJNE  R20,0,E1016
       IJNE  R21,0,N1016
       RET
N1016:
       IJNE  R21,1,C1016
       CALL  O1016
       RET
E1016:
       NOP
       RET
C1016:
       IJNE      R21,2,E1016
       LDBR          R101,0x06,1    ;命令码
       LDBR          R102,0x10,1    ;0x1064   D100
       LDBR          R103,0x64,1  
       LDBR          R104,0x00,1
       LDBR          R105,0x00,1
      
       CALL      U4TX
       LDBR      R20,0,1
       LDBR      R21,0,1
       MOVXR     R20,0,1   ;写0x0000进变量
       RET
O1016:
      LDBR         R101,0x06,1    ;命令码
      LDBR         R102,0x10,1    ;0x1064   D100
      LDBR         R103,0x64,1  
      LDBR         R104,0x00,1
      LDBR         R105,0x01,1
      CALL      U4TX
      LDBR      R20,0,1
      LDBR      R21,0,1
      MOVXR     R20,0,1   ;写0x0000进变量
      RET
   
T1017:
       LDBR  R0,0X10,1
       LDBR  R1,0X27,1
       MOVXR R20,1,1   
       IJNE  R20,0,E1017
       IJNE  R21,0,N1017
       RET
N1017:
       IJNE  R21,1,C1017
       CALL  O1017
       RET
E1017:
       NOP
       RET
C1017:
       IJNE      R21,2,E1017
       LDBR          R101,0x05,1    ;命令码
       LDBR          R102,0x0A,1    ;0x0A00   M512辅助继电器 掉电保持
       LDBR          R103,0x00,1  
       LDBR          R104,0x00,1
       LDBR          R105,0x00,1
      
       CALL      U4TX
       LDBR      R20,0,1
       LDBR      R21,0,1
       MOVXR     R20,0,1   ;写0x0000进变量
       RET
O1017:
      LDBR         R101,0x05,1    ;命令码
      LDBR         R102,0x0A,1    ;0x0A00   M512辅助继电器 掉电保持
      LDBR         R103,0x00,1  
      LDBR         R104,0xFF,1
      LDBR         R105,0x00,1
      CALL      U4TX
      LDBR      R20,0,1
      LDBR      R21,0,1
      MOVXR     R20,0,1   ;写0x0000进变量  
      RET
T1018:
       LDBR  R0,0X10,1
       LDBR  R1,0X28,1
       MOVXR R20,1,1   
       IJNE  R20,0,E1018
       IJNE  R21,0,N1018
       RET
N1018:
       IJNE  R21,1,C1018
       CALL  O1018
       RET
E1018:
       NOP
       RET
C1018: IJNE      R21,2,E1018
       LDBR          R101,0x06,1    ;命令码
       LDBR          R102,0x11,1    ;0x1198   D408 掉电保持
       LDBR          R103,0x98,1   
       LDBR          R104,0x00,1
       LDBR          R105,0x00,1
      
       CALL      U4TX
       LDBR      R20,0,1
       LDBR      R21,0,1
       MOVXR     R20,0,1   ;写0x0000进变量  
       RET
O1018:
      LDBR         R101,0x06,1    ;命令码
      LDBR         R102,0x11,1    ;0x1198   D408 掉电保持
      LDBR         R103,0x98,1  
      LDBR         R104,0x00,1
      LDBR         R105,0x01,1
      CALL      U4TX
      LDBR      R20,0,1
      LDBR      R21,0,1
      MOVXR     R20,0,1   ;写0x0000进变量   
      RET
U4TX:
       LDBR      R100,0x02,1   ;02 05 05 00 FF 00 8C C5
      
            
       LDBR          R10,0x06,1
       CRCA          R100,R120,R10   ;6字节做ANSI CRC计算
       MOV           R120,R106,2     ;赋值给R106 R107
       LDBR          R9,0x08,1
       COMTXD          4,R100,R9
       RET</font>
      
   
      
      
      
      
</font>


相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

20

主题

34

帖子

1

粉丝