【问题标题】:TwinCAT Motion record travel distanceTwinCAT Motion 记录行程距离
【发布时间】:2022-01-24 17:14:00
【问题描述】:

我需要一些帮助来编写一个功能块,我可以用它来记录轴的移动距离。这应该记录每次轴移动有点像里程表,这个值将用于轴的预防性维护。即润滑滚珠丝杠和直线轴承。

该功能必须在不移动时忽略轴上的颤动,并适应多次覆盖位置的归位功能。

【问题讨论】:

    标签: plc twincat structured-text


    【解决方案1】:

    您可以通过积分轴组速度的绝对值来实现。

    VAR
        lrCycleTime_s : LREAL;
        lrVelocity_mmPerCycle : LREAL;
        lrDistance_mm : LREAL;
    END_VAR
    
    ======================================
    
    lrCycleTime_s := UDINT_TO_LREAL(_TaskInfo[GETCURTASKINDEXEX()].CycleTime) / 10000000; //Get cycle time in seconds
    lrVelocity_mmPerCycle := Axis.NcToPlc.SetVelo * lrCycleTime_s ; // Convert velocity per second > per cycle
    lrDistance_mm := lrDistance_mm + ABS(lrVelocity_mmPerCycle);
    

    记得在循环时间等于你的运动循环时间(默认为 2 毫秒)的任务中执行此操作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-30
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      • 2017-09-25
      相关资源
      最近更新 更多