美文网首页
DVP-MC系列轴组学习笔记

DVP-MC系列轴组学习笔记

作者: TomatoTor | 来源:发表于2019-11-15 23:43 被阅读0次

    前言

    今天下午刚好有时间,学习了一下有关DVP-MC系列下的轴组的功能。

    变量声明

    范围 名称 地址 数据类型
    VAR_GLOBAL uDMC_AddAxisToGroup ARRAY[1..5] OF DMC_AddAxisToGroup
    VAR_GLOBAL uDMC_GroupEnable DMC_GroupEnable
    VAR_GLOBAL uDMC_GroupReadActualPosition DMC_GroupReadActualPosition
    VAR_GLOBAL uDMC_MoveDirectRelative DMC_MoveDirectRelative
    VAR_GLOBAL uDMC_MoveDirectAbsolute DMC_MoveDirectAbsolute
    VAR_GLOBAL AxisGroupVel ARRAY[1..5] OF LREAL
    VAR_GLOBAL AxisGroupAcc ARRAY[1..5] OF LREAL
    VAR_GLOBAL AxisGroupDec ARRAY[1..5] OF LREAL
    VAR_GLOBAL AxisGroupJerk ARRAY[1..5] OF LREAL
    VAR_GLOBAL LrAxisDirRelDis ARRAY[1..5] OF LREAL
    VAR_GLOBAL LrAxisDirAbsPos ARRAY[1..5] OF LREAL
    VAR_GLOBAL bMoveDirRel BOOL
    VAR_GLOBAL bMoveDirAbs BOOL
    VAR_GLOBAL bAxisGroupEnable BOOL

    程序内容

    CASE iSystemStatus OF
        1:
        FOR UsiAxisNumber := 1 TO 5 BY 1 DO 
            uDMC_AddAxisToGroup[UsiAxisNumber].Axis         := UsiAxisNumber ;
            uDMC_AddAxisToGroup[UsiAxisNumber].IdentInGroup := UsiAxisNumber ;
            uDMC_AddAxisToGroup[UsiAxisNumber].Execute      := TRUE ;
        END_FOR;
        IF EDGEPOS(uDMC_AddAxisToGroup[1].Done AND 
            uDMC_AddAxisToGroup[2].Done AND 
            uDMC_AddAxisToGroup[3].Done AND 
            uDMC_AddAxisToGroup[4].Done AND  
            uDMC_AddAxisToGroup[5].Done ) THEN
            iSystemStatus := 2 ;
        END_IF;
        2:
        IF bAxisGroupEnable THEN
            uDMC_GroupEnable.Enable := TRUE ;   
        ELSE
            uDMC_GroupEnable.Enable := FALSE ;      
        END_IF;
        IF EDGEPOS(uDMC_GroupEnable.Status) THEN
            iSystemStatus := 3 ;
        END_IF;
        3:
        uDMC_MoveDirectRelative.Distance := LrAxisDirRelDis ;
        uDMC_MoveDirectRelative.Execute  := bMoveDirRel ;
        IF EDGEPOS(uDMC_MoveDirectRelative.Done) THEN
            bMoveDirRel := FALSE ;
        END_IF;
        4:
        uDMC_MoveDirectAbsolute.Position := LrAxisDirAbsPos ;
        uDMC_MoveDirectAbsolute.Execute  := bMoveDirAbs ;
        IF EDGEPOS(uDMC_MoveDirectAbsolute.Done) THEN
            bMoveDirAbs := FALSE ;
        END_IF;
    END_CASE;
    
    uDMC_AddAxisToGroup[1](AxesGroup:= 1);
    uDMC_AddAxisToGroup[2](AxesGroup:= 1);
    uDMC_AddAxisToGroup[3](AxesGroup:= 1);
    uDMC_AddAxisToGroup[4](AxesGroup:= 1);
    uDMC_AddAxisToGroup[5](AxesGroup:= 1);
    uDMC_GroupEnable(AxesGroup:= 1, MoveDirectVelocity:= AxisGroupVel,  MoveDirectAcceleration:= AxisGroupAcc,  MoveDirectDeceleration:= AxisGroupDec,MoveDirectJerk:= AxisGroupJerk);
    uDMC_GroupReadActualPosition(AxesGroup:= 1,Enable:= TRUE);
    uDMC_MoveDirectRelative(AxesGroup:= 1,BufferMode:= 1,TransitionMode:= 0,TransitionParameter:= 0);
    uDMC_MoveDirectAbsolute(AxesGroup:= 1,BufferMode:= 1,TransitionMode:= 0,TransitionParameter:= 0);
    

    结尾

    轴组的功能很强大,今天只学习了5个指令。明天继续,本文后期继续补充完善有关轴组的使用。

    Log:
    2019-11-15 发布本文

    相关文章

      网友评论

          本文标题:DVP-MC系列轴组学习笔记

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