我需要一些帮助写一个函数块,我可以用来记录一个轴的旅行距离。这应该记录每一次轴移动有点像一个计量器,这个值将用于预防性维护轴上。润滑滚珠螺丝和直线轴承。
当轴不移动时,该函数必须忽略轴上的颤振,并容纳多次覆盖位置的寻的函数。
发布于 2022-01-24 09:07:50
你可以通过积分轴设定速度的绝对值来实现这一点。
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);记住要在循环时间等于运动周期时间的任务中执行此操作(默认为2ms)。
https://stackoverflow.com/questions/70831191
复制相似问题