美文网首页
台达AS系列PLC通讯台达A2-M伺服<第二波>(全网首发)

台达AS系列PLC通讯台达A2-M伺服<第二波>(全网首发)

作者: TomatoTor | 来源:发表于2019-06-05 17:27 被阅读0次

    本文是林建原创博文,转载需注明出处!谢谢~

    昨天发布了《台达AS系列PLC通讯台达A2-M伺服<第一波>(全网首发)》今天继续为大家带来第二波,第二波是在第一波之后的后续。

    AS全局变量

    Class   Identifiers       Address   Type    Initial Value   Comment
    VAR g_i_DICtrlWord        D25032    WORD        
    VAR g_i_PrCtrl            D25033    WORD        
    VAR g_i_AccSpeed          D25034    WORD    20  
    VAR g_i_RunSpeed          D25035    WORD    100 
    VAR g_Di_JogSpeed         D25036    DWORD       
    VAR g_Di_RelPos           D25038    DWORD       
    VAR g_Di_AbsPos           D25040    DWORD       
    VAR g_i_AlarmCode         D24032    WORD        
    VAR g_i_DICtrlWordReturn  D24033    WORD        
    VAR g_i_PrCtrlReturn      D24034    WORD        
    VAR g_Di_ActPos           D24035    DWORD       
    VAR g_i_AxisCtrlWord                INT     
    VAR g_b_AxisJogF                    BOOL        
    VAR g_b_AxisJogB                    BOOL        
    VAR g_Di_AxisJogSpeed               DWORD       
    VAR g_i_AxisCtrl                    INT     
    VAR g_b_McMoveVel                   BOOL        
    VAR g_b_McMoveAbs                   BOOL        
    VAR g_b_McMoveHome                  BOOL
    VAR g_Di_SetRelPos                  DWORD
    VAR g_Di_SetAbsPos                  DWORD   
    

    PLC程序

    (*
    Rx
    g_i_DICtrlWord  P4-07;
    g_i_PrCtrl      P5-07;
    g_i_AccSpeed    P5-20;
    g_i_RunSpeed    P5-60;
    g_Di_JogSpeed   P6-03;
    g_Di_RelPos     P6-05;
    g_di_AbsPos     P6-07;
    Tx
    g_i_AlarmCode        P0-01;
    g_i_DICtrlWordReturn P4-07;
    g_DI_ActPos          P5-16;
    *) 
    
    CASE g_i_AxisCtrlWord OF
        1:  
        g_i_DICtrlWord := 1 ; (*使能*) 
        2: 
        g_i_PrCtrl := 1000 ; 
        g_i_DICtrlWord := 3 ; (*复位*) 
    ELSE
        g_i_DICtrlWord := 0 ;
    END_CASE;
    
    (*寸动*)
    IF g_b_AxisJogF AND NOT g_b_AxisJogB THEN
        g_Di_JogSpeed := g_Di_AxisJogSpeed ;
        g_i_AxisCtrl := 1;
    ELSIF g_b_AxisJogB AND NOT g_b_AxisJogF THEN
        g_Di_JogSpeed := 0 - g_Di_AxisJogSpeed ;
        g_i_AxisCtrl := 1;
    ELSE
        g_i_PrCtrl := 1000 ;
        g_Di_JogSpeed := 0 ;
    END_IF;
    
    (*回位*) 
    IF g_b_McMoveHome then
         g_i_AxisCtrl := 10 ;
    ELSE
         g_i_AxisCtrl := 0 ;
    END_IF ;
    
    (*相对*) 
    IF g_b_McMoveVel then
        g_Di_RelPos := g_Di_SetRelPos ; 
         g_i_AxisCtrl := 2 ;
    ELSE
         g_i_AxisCtrl := 0 ;
    END_IF ;
    (*绝对*) 
    IF g_b_McMoveAbs then
         g_Di_AbsPos := g_Di_SetAbsPos ;
         g_i_AxisCtrl := 3 ;
    ELSE
         g_i_AxisCtrl := 0 ;
    END_IF ;
    
    CASE g_i_AxisCtrl OF
       1:  g_i_PrCtrl := 1 ;
            IF g_i_PrCtrlReturn = 20001 THEN 
                g_i_AxisCtrl := 0 ;
            ELSE
                g_i_AxisCtrl := 1 ;
            END_IF; 
       2:  g_i_PrCtrl := 2 ;
            IF g_i_PrCtrlReturn = 20002 THEN 
                g_i_AxisCtrl := 0 ;
            ELSE
                g_i_AxisCtrl := 2 ;
            END_IF;    
       3:  g_i_PrCtrl := 3 ;
            IF g_i_PrCtrlReturn = 20003 THEN 
                g_i_AxisCtrl := 0 ;
            ELSE
                g_i_AxisCtrl := 3 ;
            END_IF;    
       10: g_i_PrCtrl := 0 ;
            IF g_i_PrCtrlReturn = 20000 THEN 
                g_i_AxisCtrl := 0 ;
            ELSE
                g_i_AxisCtrl := 10 ;
            END_IF; 
    ELSE
        g_i_PrCtrl := 1000 ;
    END_CASE;
    
    

    以上就是台达AS系列PLC通讯台达A2-M伺服的第一种方法。(针对本文中如有对PR模式下的不清楚,可以评论下交流)。
    明天会继续会大家带来其他方法。

    本文是林建原创博文,转载需注明出处!谢谢~

    Log:
    2019-06-05 发布本文

    相关文章

      网友评论

          本文标题:台达AS系列PLC通讯台达A2-M伺服<第二波>(全网首发)

          本文链接:https://www.haomeiwen.com/subject/uhojxctx.html