龙空技术网

S7-1200运动控制之PTO控制方式程序和常问问题

CxLyran 350

前言:

此刻小伙伴们对“c语言绝对定位 会不会影响代码的运行速度”大约比较重视,我们都需要分析一些“c语言绝对定位 会不会影响代码的运行速度”的相关资讯。那么小编也在网络上搜集了一些对于“c语言绝对定位 会不会影响代码的运行速度””的相关内容,希望朋友们能喜欢,姐妹们快快来了解一下吧!

PTO运动控制使用指令命令编写程序

1、轴使能

2、归位,模式选择Mode=0或者Mode=1,

选择Mode=3时,回原点的DI通道,要勾选上升沿检测,否则不会执行回零功能。

3、点动控制方式,正转,反转,速度控制

速度Velocity值范围:启动/停止速度 ≤ Velocity ≤ 最大速度。

超过这个范围值,轴不会转运。

速度

4、绝对定位控制

绝对定位控制下一次给定Postion值大于当前值,轴正转下一次给定Postion值小于当前值,轴反转;方向Direction参数在PTO控制方式中无效,仅在数模控制方式中有效。也就是下一个目标值不能等于当前值,否则轴不转转动。

速度Velocity值范围:启动/停止速度(mm/s) ≤ Velocity ≤ 最大速度(mm/s),

单位是mm/s,超过这个范围值,轴不会转运。

可以在轴组态的参数视图查找相关参数 。在组态--动态--常规,可以查看:最大转速=9600脉冲/秒,启动/停止速度=600脉冲/秒,如何转换成速度值?

在扩展参数---机械参数中,设置每转(圈)需要1600个脉冲,最大转速是96000脉冲/s,则96000/1600=60/s,每圈4mm,最大转速60*4=240mm/s。

在扩展参数---机械参数中,设置每转(圈)需要1600个脉冲,启动停止速度是400脉冲/s,则400/1600=0.25/s,每圈4mm,最大转速0.25*4=1.0mm/s,则4秒转1圈,前进4mm。可以把启动停止速度参数设置更小,这样转发速就更慢。例如启动停止速度=100脉冲/s,100/1600*4mm=0.25mm/s,也就是每秒前进0.25mm,则16秒转1圈,前进4mm。

组态--动态--常规,可以查看:加速度=48.0mm/s,减速度=48.0 mm/s,加速时间=5.0S,减整时间=5.0S。根据需要勾选激活加加速度限值。

速度值Velocity不要设定太大。

5、相对定位控制

相对定位控制改变方向只能通过Distance值的正负符号来改变轴转动的方向。因为是相当定位,不改变Distance值的正负符号时,轴可以朝同一个方向转运。Distance值的大小决定轴转运的距离,符号决定轴转运的方向。

速度Velocity值范围:启动/停止速度 ≤ Velocity ≤ 最大速度。

超过这个范围值,轴不会转运。

可以在轴组态的参数视图查找相关参数 。在组态--动态--常规,可以查看:最大转速=25000脉冲/秒,启动/停止速度=1000脉冲/秒,如何转换成速度值?

组态--动态--常规,可以查看:加速度=48.0mm/s,减速度=48.0 mm/s,加速时间=5.0S,减整时间=5.0S。根据需要勾选激活加加速度限值。

速度值Velocity不要设定太大。

6、速度指令,以用户指定的速度和方向,转动轴

只有轴停止状态下,才能改变速度和方向,轴转运时修改速度和方向无效

需要停止轴转运时,使用MC_POWER命令。

7、暂停轴转运

8、细分、精度、电流

分辨率越大速度越慢,精度高

电流越大,刚性越强,越容易烧坏

刚性越强震动越大,越不容易丢步

根据电机电流选

S7-1200运动控制之PTO控制方式常问问题

描述

1. 绝对定位和相对定位区别?

答:相对定位是指在轴当前位置的基础上正方向或负方向移动一段距离;绝对定位指的是当轴建立了绝对坐标系后,轴的每个位置都有固定的坐标,无论轴的当前位置值是多少,当轴指令了绝对运行指令后相同的坐标值,轴最终都定位到同一个位置。

2. 如何设置MC_MoveRelative方向运行?

答:将MC_MoveRelative指令中的“Distance”设置成负值就可以让轴向负方向运行了。如下图所示。

3. 为什么有时用户在监控程序的时候看不到指令的完成位Done的为1?

答:带有Execute管脚的指令,例如MC_MoveRelative等指令的Done和Execute之间有下图中描述的关系:

如上图所示,如果"Execute"在命令执行完成之前设置为 FALSE,则"Done"的值仅在一个执行周期内为 TRUE。因此,如果用户用|P|指令触发带有“Execute”管脚的指令,则该指令的“Done”只在一个扫描周期内为1,因此在监控程序时看不到Done位为1。用户可以通过在程序中添加指令用Done置位一个位来判断,如下图所示,用MC_MoveRelative为例进行说明。

4. 回原点已完成信号什么时候会丢失?

答:最常见的就是S7-1200 CPU重新上电后,回原点已完成信号会丢失,用户需要重新启动MC_Home指令。

• 通过"MC_Power"运动控制指令禁用轴

• 在自动模式和手动控制之间切换,也就是用户使用控制面板程序切换时会丢失回原点已完成信号

• 在启动主动回原点时。 在成功完成回原点操作之后,轴回原点将再次可用。

• CPU 重新启动后(RUN-STOP -> STOP-RUN),包括CPU断上电。

5. 什么时候需要执行回原点命令

答:用户需要使用MC_MoveAbsolute指令之前执行回原点指令。

6. 如果实际没有原点开关和限位开关,可以使用绝对定位指令MC_MoveAbsolute吗?

答:可以,用MC_Home指令的Mode=0Mode=1方式,让轴完成绝对坐标定位。然后就可以调用MC_MoveAbsolute指令进行绝对运动了。MC_Home指令的Mode 0Mode 1在MC_Home指令部分有详细说明

7. 用户在实际执行回原点指令时,轴遇到原点开关没有变化,直到运行到硬件限位开关停止报错?

答:首先要测试原点开关是否起作用,也就是说当轴碰到原点开关时,原点开关的DI点的指示灯是否点亮。

可能的原因如下:

①寻找原点开关的速度过快,可以减小“逼近速度”和“参考速度”

②原点开关有效时间过短,可以设置DI点滤波时间,例如上图原点开关是I0.4,则在“设备视图”中减小I0.4的滤波时间,默认情况下DI的滤波时间是6.4millisec,用户根据DI点有效时间选择合适的滤波时间。

8. 为什么轴在执行主动回原点命令时,初始方向没有找到原点,当需要碰到限位开关掉头继续寻找原点开关时并没有掉头,而是直接报错停止轴,报错原因是由于轴碰到了限位开关?

答:有几种可能:

①用户没有使能“允许硬件限位开关处自动反转”的选项。

②增大组态的加速度/减速度,因为轴在主动回原点期间到达硬件限位开关,轴将以组态的减速度减速(不是以紧急减速度),然后反向运行寻找原点开关。

③增大硬件限位开关和机械停止块间的距离。如下图所示,正常情况下,轴按照下图的方式掉头寻找原点开关:

如果硬件限位开关和机械停止块间的过近,无论如何增大“减速度”,仍旧不能正常掉头,如下图所示:

则需要增大硬件限位开关和机械停止块间的距离,为上图中D。

9. S7-1200 CPU上电后轴的位置是多少?

答:S7-1200 CPU每次上电后轴的位置都是0不会保留断电前的位置值。

S7-1200运动控制指令-MC_Home (回原点)教程

S7-1200运动控制指令-MC_Home (回原点)西门子S7-1200系列PLC

MC_Home

指令名称:回原点指令

功能:使轴归位,设置参考点,用来将轴坐标与实际的物理驱动器位置进行匹配。

使用要点:轴做绝对位置定位前一定要触发MC_Home指令。

『注意』部分输入/输出管脚没有具体介绍,请用户参考MC_Power指令中的说明。

①Position: 位置值

Mode = 1时:对当前轴位置的修正值Mode = 0,2,3时:轴的绝对位置值

②Mode: 回原点模式值

Mode = 0:绝对式直接回零点,轴的位置值为参数“Position”的值Mode = 1:相对式直接回零点,轴的位置值等于当前轴位置 + 参数“Position”的值Mode = 2:被动回零点,轴的位置值为参数“Position”的值Mode = 3:主动回零点,轴的位置值为参数“Position”的值

下面详细介绍模式0和模式1.

Mode = 0绝对式直接回原点

以下图为例进行说明。该模式下的MC_Home指令触发后轴并不运行,也不会去寻找原点开关。指令执行后的结果是:轴的坐标值更直接新成新的坐标,新的坐标值就是MC_Home指令的“Position”管脚的数值。例子中,“Position”=0.0mm,则轴的当前坐标值也就更新成了0.0mm。该坐标值属于“绝对”坐标值,也就是相当于轴已经建立了绝对坐标系,可以进行绝对运动。

『优点』MC_Home的该模式可以让用户在没有原点开关的情况下,进行绝对运动操作。

Mode = 1相对式直接回原点

与Mode = 0相同,以该模式触发MC_Home指令后轴并不运行只是更新轴的当前位置值。更新的方式与Mode = 0不同,而是在轴原来坐标值的基础上加上“Position”数值后得到的坐标值作为轴当前位置的新值。如下图所示,指令MC_Home指令后,轴的位置值变成了210mm.,相应的a和c点的坐标位置值也相应更新成新值。

.Mode = 2和Mode = 3参见回原点。

『注意』用户可以通过对变量 <轴名称>.StatusBits.HomingDone = TRUE与运动控制指令“MC_Home”的输出参数 Done = TRUE进行与运算,来检查轴是否已回原点。

选择Mode=3时,回原点的DI通道,要勾选上升沿检测,否则不会执行回零功能。

MC_Home:使轴归位,设置参考点(V6 及以上版本)

说明

使用“MC_Home”运动控制指令可将轴坐标与实际物理驱动器位置匹配。轴的绝对定位需要回原点。可执行以下类型的回原点:

主动回原点(Mode = 3)自动执行回原点步骤。

被动回原点(Mode = 2)被动回原点期间,运动控制指令“MC_Home”不会执行任何回原点运动。用户需通过其它运动控制指令,执行这一步骤中所需的行进移动。检测到回原点开关时,轴即回原点。

直接绝对回原点(Mode = 0)将当前的轴位置设置为参数“Position”的值。

直接相对回原点(Mode = 1)将当前轴位置的偏移值设置为参数“Position”的值。

绝对编码器相对调节 (Mode = 6)将当前轴位置的偏移值设置为参数“Position”的值。

绝对编码器绝对调节 (Mode = 7)将当前的轴位置设置为参数“Position”的值。

Mode 6 和 7 仅用于带模拟驱动接口的驱动器和 PROFIdrive 驱动器。

标签: #c语言绝对定位 会不会影响代码的运行速度