DVP-MC系列轴组学习笔记

2019-11-15  本文已影响0人  TomatoTor

前言

今天下午刚好有时间,学习了一下有关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 发布本文

上一篇下一篇

猜你喜欢

热点阅读