S7-1200运动控制逐步实操

360影视 2025-01-08 09:19 3

摘要:在自动化的生产、加工以及控制过程当中,常常需要对加工工件的尺寸,或者机械设备移动的距离,进行精准的定位控制。在定位控制系统里,常常会用到步进电动机或者伺服电动机来作为驱动或者控制的元件。定位控制的重点在于通过 PLC 发送高速脉冲信号,从而对步进电动机或者伺服

在自动化的生产、加工以及控制过程当中,常常需要对加工工件的尺寸,或者机械设备移动的距离,进行精准的定位控制。在定位控制系统里,常常会用到步进电动机或者伺服电动机来作为驱动或者控制的元件。定位控制的重点在于通过 PLC 发送高速脉冲信号,从而对步进电动机或者伺服电动机进行精确的定位。因为 PLC 是专门为在工业环境中应用而设计出来的一种工业控制计算机,它有着抗干扰能力强、可靠性特别高、体积小等突出的优点,是达成机电一体化的理想控制设备。

01,S7-1200 PLC的运动控制功能

S7-1200CPU 能提供四个脉冲输出发生器。每个脉冲输出发生器都有一个脉冲输出和一个方向输出,能通过脉冲接口去控制步进电动机驱动器或者伺服电动机驱动器。脉冲输出能给驱动器提供电动机运动需要的脉冲。方向输出是用来把控驱动器行进方向的。PTO 输出生成的是频率能变的方波输出。

DC/DC/DC 型的 CPU S7-1200 上有能直接控制驱动器的板载输出。

继电器型的 CPU 得有带有 DC 输出的信号板,才能控制驱动器。信号板(SB,Signal Board)能把板载 I/O 扩展成包含好多附加 I/O 点。有两个数字量输出的 SB 能当作控制一台电动机的脉冲输出和方向输出。有四个数字量输出的 SB 能当作控制两台电动机的脉冲输出和方向输出。内置继电器输出不能用来当作控制电动机的脉冲输出。不管是用板载 I/O、SB I/O 还是把它们组合起来用,最多能有四个脉冲发生器。1200PLC 能控制驱动器的最大数目在下面的表 1-1 里有显示。

1-1 S7-1200PLC可控制驱动器最大数目

当 CPU 处于 RUN 模式的时候,依照用户的选择,数字量输出会由存放在图像寄存器里的值或者脉冲发生器的输出进行驱动。

在 STOP 模式下,PTO 发生器就不控制输出啦。板载 CPU 输出和信号板的输出都能当作脉冲和方向输出用。在设备组态的期间,可以在“属性”(Properties) 选项卡的脉冲发生器 (PTO/PWM) 里,去选择板载 CPU 输出或者信号板输出。

只有 PTO(脉冲序列输出,Pulse Train Output)适合运动控制。S7-1200PLC 板载脉冲输出的最大频率在表 1-2 里有显示;信号板最大脉冲输出频率在表 1-3 里有显示。

S7-1200运动控制根据连接驱动方式不同,分成三种控制方式,如下图1-1所示:

PROFIdrive:S7-1200 PLC 能通过基于 PROFIBUS/PROFINET 的 PROFIdrive 这种方式,和支持 PROFIdrive 的驱动器连接起来,从而进行运动控制。

PTO:S7-1200 PLC 能通过发送 PTO 脉冲的办法来控制驱动器,可以是脉冲+方向、A/B 正交,还可以是正/反脉冲这样的方式。

模拟量:S7-1200 PLC 能通过输出模拟量的形式来控制驱动器。

表1-2 S7-1200 板载输出最大频率

1-3 SB 信号板输出:最大频率(可选信号板)

1-1 1200PLC 运动控制方式

02,S7-1200 PLC的运动控制指令

(1)MC_Power启动/禁用轴

功能:使能轴或禁用轴。

使用要点:在程序当中一直进行调用,而且要在其他运动控制指令之前调用并且使其处于可用状态。参数说明见图2-1所示。

2-1MC_Power启动/禁用轴

输入端:

①EN:这个输入端是 MC_Power 指令的使能端,可不是轴的使能端。MC_Power 指令必须在程序里一直被调用,而且得保证 MC_Power 指令在其他 Motion Control 指令之前被调用。
②Axis:轴名称能通过几种方式来输入轴名称:

a. 直接用鼠标从 Portal 软件左侧项目树当中把轴的工艺对象拖过来,如下图2-2所示:

2-2 轴名称输入方式1

b. 要是用键盘输入字符,那么 Portal 软件就会自动显示出能够添加的轴对象,如下图2-3所示:

2-3轴名称输入方式2

c. 通过拷贝的办法把轴的名称拷贝到指令上,就像下面图 2 - 4 展示的那样:

2-4轴名称输入方式3

d. 还能够用鼠标双击“Aixs”,系统就会出现右边带有可选按钮的白色长条框,这时候用鼠标点击“选择按钮”,就会出现下面图 2 - 5 里的列表。

2-5 轴名称输入方式4

③Enable:轴使能端
Enable = 0:会按照 StopMode 设置的模式来让当前轴停止运行;Enable = 1:要是组态了轴的驱动信号,那么当 Enable = 1 时就会接通驱动器的电源。
④StopMode:轴停止模式
StopMode = 0:属于紧急停止,会依照轴工艺对象参数里的“急停”速度或者时间来让轴停止,就像下面图 2 - 6 显示的那样。

2-6 轴停止模式1

StopMode = 1:这表示立即停止,PLC 会马上停止发脉冲。就像下面图 2 - 7 显示的那样。

2-7 轴停止模式2

StopMode = 2:这是带有加速度变化率控制的紧急停止:要是用户组态了加速度变化率,那么轴在减速的时候就会把加速度变化率考虑进去,减速曲线就会变得平滑,就像下面图 2 - 8 显示的那样。

2-8 轴停止模式3

⑤ENO:使能输出
⑥Status:轴的使能状态
⑦Busy:用来标记 MC_Power 指令是不是处于活动状态
⑧Error:标记 MC_Power 指令有没有产生错误
⑨ErrorID:当 MC_Power 指令产生错误的时候,用 ErrorID 来表示错误号。
⑩ErrorInfo:当 MC_Power 指令产生错误的时候,用 ErrorInfo 来表示错误信息 。把 ErrorID 和 ErrorInfo 的数值结合起来,查看手册或者 Portal 软件的帮助信息里的说明,就能得到错误原因。

(2)MC_Reset错误确认,重新启动工艺对象

功能:用于确认“伴随轴停止出现的运行错误”以及“组态错误”。

使用要点:Execute 要靠上升沿来触发。

『注意』部分输入/输出管脚没有详细介绍,请用户参考 MC_Power 指令里的说明。MC_Reset 参数的说明见下面图 2 - 9 显示的那样。

2-9 MC_Reset错误确认输入/输出参数

输入端:
①EN:这个输入端是 MC_Reset 指令的使能端。
②Axis:轴的名称。
③Execute:MC_Reset 指令的启动位,得用上升沿来触发。
④Restart:Restart = 0:用于确认错误。Restart = 1:会把轴的组态从装载存储器下载到工作存储器(只有在轴被禁用的时候才能执行这个命令)。

输出端:除了 Done 指令,其他输出管脚跟 MC_Power 指令是一样的,这里就不再多说了。
⑥Done:表示轴的错误已经得到确认。

(3)MC_Home 轴归位,设置起始位置

功能:让轴归位,设定参考点,从而将轴坐标和实际的物理驱动器位置相匹配。

使用要点:在轴进行绝对位置定位之前,一定要触发 MC_Home 指令。

『注意』部分输入/输出管脚没有详细介绍,请用户参考 MC_Power 指令里的说明。如图 2 - 10 所示。

2-10 MC_Home 轴归位输入/输出参数

①Position:位置值
Mode = 1 时:是对当前轴位置的修正值
Mode = 0、2、3 时:是轴的绝对位置值

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

下面详细介绍模式 0 和模式 1。
Mode = 0 绝对式直接回原点
以下面图 2 - 11 为例来进行说明。在这种模式下,MC_Home 指令触发后轴不会运行,也不会去找原点开关。指令执行后的结果是:轴的坐标值会直接更新成新的坐标,新的坐标值就是 MC_Home 指令的“Position”管脚的数值。在例子中,“Position”= 0.0mm,那么轴的当前坐标值也就更新成了 0.0mm。这个坐标值属于“绝对”坐标值,也就相当于轴已经建立了绝对坐标系,可以进行绝对运动。
『优点』MC_Home 的这个模式能让用户在没有原点开关的情况下,进行绝对运动的操作。

2-11绝对式直接回原点

Mode = 1 相对式直接回原点和 Mode = 0 一样,以这种模式触发 MC_Home 指令后轴不会运行,只是会更新轴的当前位置值。更新的方式和 Mode = 0 不一样,是在轴原来坐标值的基础上加上“Position”的数值,然后把得到的坐标值当作轴当前位置的新值。如下图 2 - 12 所示,在指令 MC_Home 指令后,轴的位置值变成了 210mm,相应的 a 和 c 点的坐标位置值也跟着相应更新成新值。

2-12相对式直接回原点

Mode = 2 和 Mode = 3 前面已经介绍过了,这里就不再多说啦。

『注意』用户能够通过对变量 .StatusBits.HomingDone = TRUE 和运动控制指令“MC_Home”的输出参数 Done = TRUE 进行与运算,来检查轴是不是已经回原点了。

(4)MC_Halt 轴暂停

功能:让所有运动都停下来,并且按照组态的减速度让轴停止。

使用技巧:通常会用 MC_Halt 指令来停止通过 MC_MoveVelocity 指令触发的轴的运行。

『注意』部分输入/输出管脚没有详细介绍,请用户参考 MC_Power 指令里的说明。输入输出参数见下面图 2 - 13 所示。

2-13 MC_Halt 轴暂停

(5)MC_MoveAbsolute 以绝对方式定位轴

功能:让轴以某个速度进行绝对位置定位。使用技巧:在启用绝对位置指令之前,轴一定得回原点。所以在 MC_MoveAbsolute 指令之前必须要有 MC_Home 指令。

『注意』部分输入/输出管脚没有详细介绍,请用户参考 MC_Power 指令里的说明。参数见下面图 2 - 14 所示。

2-14 MC_MoveAbsolute 以绝对方式定位轴

指令输入端:

①Position:绝对目标位置值。

②Velocity:绝对运动的速度。

(6)MC_MoveRelative 以相对方式定位轴

功能:让轴以某个速度在轴当前位置的基础上移动一段相对距离。

使用技巧:不需要让轴执行回原点的命令。

『注意』部分输入/输出管脚没有详细介绍,请用户参考 MC_Power 指令里的说明。参数见下面图 2 - 15 所示。

2 - 15 MC_MoveRelative 以相对方式定位轴指令输入端:


① Distance:相对轴当前位置移动的距离,这个值通过正或者负的数值来表示距离和方向。
② Velocity:相对运动的速度。

(7) MC_MoveVelocity 以预定义方式定位轴
功能:让轴按照预设的速度运行

『注意』部分输入/输出管脚没有详细介绍,请用户参考 MC_Power 指令里的说明。参数见下面图 2 - 16 所示。

2 - 16 MC_MoveVelocity 以预定义方式定位轴指令输入端:


① Velocity:轴的速度。
② Direction:方向数值
Direction = 0:旋转方向取决于参数“Velocity”值的符号
Direction = 1:正方向旋转,不考虑参数“Velocity”值的符号
Direction = 2:负方向旋转,不考虑参数“Velocity”值的符号
③ Current:
Current = 0:轴按照参数“Velocity”和“Direction”值运行
Current = 1:轴不管参数“Velocity”和“Direction”值,轴以当前速度运行。

『注意』可以把“Velocity”数值设定为 0.0 ,触发指令后轴会按照组态的减速度停止运行。这就相当于 MC_Halt 指令。

(8)MC_MoveJog 以“点动”模式定位轴
功能:在点动模式下让轴以指定的速度持续移动。
使用技巧:正向点动和反向点动不能同时触发。

『注意』部分输入/输出管脚没有详细介绍,请用户参考 MC_Power 指令里的说明。参数见下面图 2 - 17 所示。

2 - 17 MC_MoveJog 是以“点动”模式来定位轴的。


① JogForward :这是正向点动,不是靠上升沿触发的。当 JogForward 为 1 时,轴就会运行;要是 JogForward 为 0 ,轴就停止。就跟按钮似的,按下按钮,轴就开始运行,松开按钮,轴就停止运行。
② JogBackward :这是反向点动,使用方法跟 JogForward 差不多。『注意』在执行点动指令的时候,得保证 JogForward 和 JogBackward 不会同时被触发,可以用逻辑来进行互锁。
③ Velocity :这是点动速度。『注意』Velocity 的数值能够实时修改,而且实时生效。
总结一下:点动功能起码得有 MC_Power 、MC_Reset 还有 MC_Jog 指令。相对速度控制功能呢,需要 MC_Power 、MC_Reset 以及 MC_MoveRelative 指令。绝对运动功能则需要 MC_Power 、MC_Reset 、MC_Home 还有 MC_MoveAbsolute 指令。在触发 MC_MoveAbsolute 指令之前,得有轴回原点完成的信号才能执行。相对速度控制功能,还需要 MC_Power 、MC_Reset 、MC_MoveVolcity 以及 MC_Halt 指令。

03,S7 - 1200 PLC 的运动控制实例
要完成 S7 - 1200 PLC 的运动任务,正确配置运动控制参数特别关键。下面给您介绍一个完整的运动控制实施过程,这里面包含配置运动控制参数的内容。
设备上有一套伺服控制系统,是用联轴器连接着丝杆的,丝杆螺距是 4mm,减速比是 1:1,设备上还装着常闭型(NC)限位开关。上限位接在 S7 - 1200 PLC 的 I1.3,下限位接在 PLC 的 I1.1,原点开关接在 PLC 的 I1.2。
控制要求是这样的:

能手动控制轴回原点、手动正转/反转、手动用绝对方式定位轴、手动用相对方式定位轴、手动复位轴等等功能。自动运行:按下启动按钮,轴先自动回原点,完成后延时 1 秒,1 秒时间到轴就以相对位移方式移动 +130mm,速度是 30mm/s,到达后延时 3 秒,3 秒时间到再以相对位移移动 -230mm,速度是 20mm/s,到达后再延时 3 秒,延时完成后以绝对位移方式移动 100mm,速度是 34mm/s,绝对位移完成后延时 3 秒,然后再以相对方式移动 -120,速度是 28mm/s。硬件组态
① 新建项目,添加 CPU,本例用的 PLC 是 S7 - 1200 1214C DC/DC/DC。
② 用鼠标右键点击项目树中新添加的设备,选中“属性”-“常规”-“脉冲发生器(PTO/PWM)”-“PTO/PWM1”,勾选“启用该脉冲发生器”选项,就像图 3 - 1 所示的界面那样。
③ 在脉冲选项的信号类型选项里选择信号类型,本例选的是“PTO(脉冲 A 和方向 B)”,如图 3 - 1 所示。
④ 配置硬件输出,本例选择的脉冲输出点是 Q0.0,选择的方向输出是 Q0.1。如图 3 - 1 所示。

3 - 1 启用脉冲发生器和选中信号类型


2. 工艺对象“轴”配置
工艺对象“轴”配置属于硬件配置的一部分,“轴”指的是驱动的工艺对象,“轴”这个工艺对象是用户程序和驱动之间的接口。在工艺对象从用户程序收到运动控制命令后,运行时会执行这些命令并且监视执行的状态。“驱动”说的是步进电动机加上电源那部分或者伺服驱动加上脉冲接口的机电单元。在运动控制当中,一定得对工艺对象进行配置,这样才能应用控制指令块。工艺配置包含 3 个部分:工艺参数配置、轴控制面板以及诊断面板。下面分别给您介绍介绍。
工艺参数配置
参数配置主要是定义了轴的工程单位、软/硬件限位、启动/停止速度还有参考点的定义等等。工艺参数的配置是这样的:
① 插入新对象
在 TIA Portal 软件项目视图的项目树里,选中新添加的 PLC 设备下面的“工艺对象”-“新增对象”,然后双击“新增对象”,在弹出来的界面中选择“运动控制”-“TO_PositioningAxis”,就像图 3 - 2 显示的那样,点击“确定”按钮会弹出 3 - 3 所示的界面。

3-2 插入对象

3-3 配置常规参数

② 配置常规参数
在“功能图”选项卡里面,选择“基本参数”-“常规”,“驱动器”项目里有三个选项:PTO(意思是运动控制由脉冲来控制)、模拟驱动装置接口(意思是运动控制由模拟量来控制)和 PROFIdrive(意思是运动控制由通信来控制),在这个例子里选择“PTO”选项。测量单位能按照实际情况去选,这个例子选择默认设置(mm)。就像上面图 3 - 3 显示的那样。
③ 配置驱动器参数
在“功能图”选项卡中,选择“基本参数”-“驱动器”,选择脉冲发生器为“Pulse_1”,它对应的脉冲输出点和信号类型以及方向输出,在硬件配置的时候都已经定义好了,在这里就不修改了。如图 3 - 4 所示。“驱动器的使能和反馈”在工程里经常能用到,当 PLC 准备好的时候,会输出一个信号到伺服驱动器的使能端子上,告诉伺服驱动器,PLC 已经准备好啦。当伺服驱动器准备好之后会发出一个信号到 PLC 的输入端,告诉 PLC,伺服驱动器已经准备好啦。在这个例子里没有用这个功能。

3-4 配置驱动器参数

④ 配置机械参数
在“功能图”选项卡中,选择“扩展参数”-“机械”,把“电动机每转的脉冲数”设置为“4000”,这个参数得看伺服电动机自带编码器的参数。“电动机每转的负载位移”得看机械结构,如果伺服电动机和丝杆直接相连,这个参数就是丝杆的螺距,这个例子里是“4”,如图 3 - 5 所示。
⑤ 配置位置限制参数
在“功能图”选项卡中,选择“扩展参数”-“位置限制”,把“启用硬限位开关”和“启用软限位开关”都勾选上。在“硬件下限位开关输入”里选择“I1.1”,在“硬件上限位开关输入”里选择“I1.3”,选择电平为“低电平”,这些设置得跟实际的硬件配置一样。因为这个例子用的限位开关是常闭型(NC),而且是 PNP 输入接法,所以当限位开关起作用的时候是“低电平”。要是输入端是 NPN 接法,那这儿就应该选“高电平”。参数配置就像图 3 - 6 所示。
⑥ 配置动态参数
在“功能图”选项卡中,选择“扩展参数”-“动态”-“常规”,按照实际情况去修改最大转速、启动/停止速度还有加速时间/减速时间这些参数,这个例子的设置如图 3 - 7 所示。

3-5 配置机械参数

3-6 配置位置限制参数

3-7 配置动态(常规)参数

在“功能图”选项卡中,选择“扩展参数”-“动态”-“急停”,然后根据实际情况去修改减速时间之类的参数(这里的减速时间是急停时候的数值),这个例子的设置就像图 3 - 8 显示的那样。

3-8 配置动态(急停)参数

⑦ 配置回原点参数
“原点”也能叫“参考点”,“回原点”或者“寻找参考点”的用处是:让轴实际的机械位置和 S7 - 1200 程序里轴的位置坐标统一起来,这样才能进行绝对位置定位。通常来说,西门子 PLC 的运动控制在启用绝对位置定位之前,一定得执行“回原点”或者“寻找参考点”。“扩展参数 - 回原点”分成“主动”和“被动”这两部分参数。这里说的“主动”在“扩展参数 - 回原点 - 主动”里,“主动”就是传统意义上的回原点或者寻找参考点。要是轴触发了主动回参考点的操作,那轴就会按照组态的速度去寻找原点开关信号,然后完成回原点的命令。
在“功能图”选项卡中,选择“扩展参数”-“回原点”-“主动”,选择“输入原点开关”,这个例子里是 I1.2。因为是常闭性 PNP 接法,所以选择的电平是“低电平”。
a. 输入原点开关:设置原点开关的 DI 输入点。
b. 选择电平:选择原点开关的有效电平,就是说当轴碰到原点开关的时候,这个原点开关对应的 DI 点是高电平还是低电平。
c. 允许硬件限位开关处自动反转:要是轴在回原点的一个方向上没碰到原点,那就得启用这个选项,这样轴就能自动调头,朝着反方向去寻找原点。
d. 逼近/回原点方向:这是寻找原点的起始方向。意思就是触发了寻找原点的功能后,轴是向“正方向”还是“负方向”开始寻找原点。如图 3 - 9 所示。

3-9 回原点方向

e. “上侧”的意思是:轴完成回原点的指令后,轴的左边沿会停在参考点开关的右侧边沿。“下侧”的意思是:轴完成回原点的指令后,轴的右边沿会停在参考点开关的左侧边沿。 不管用户设置寻找原点的起始方向是正方向还是负方向,轴最终停下来的位置取决于 “上侧”或者“下侧”。如图 3 - 10 所示。

3-10 参考点上侧/下侧

f. 逼近速度:这是寻找原点开关的起始速度,当程序里触发了 MC_Home 指令之后,轴马上就以“逼近速度”运行去寻找原点开关。
g. 参考速度:这是最终接近原点开关的速度,就是当轴第一次碰到原点开关的有效边沿儿之后运行的速度。也就是触发了 MC_Home 指令后,轴马上以“逼近速度”运行去寻找原点开关,当轴碰到原点开关的有效边沿后,轴会从“逼近速度”切换到“参考速度”来最终完成原点定位。“参考速度”要比“逼近速度”小,“参考速度”和“逼近速度”都不适合设置得太快。在能接受的范围里,设置比较慢的速度值。
h. 起始位置偏移量:这个值不是零的时候,轴会在距离原点开关一段距离(这段距离的值就是偏移量)的地方停下来,把这个位置标记成原点位置值。这个值是零的时候,轴会停在原点开关的边沿儿处。
i. 参考点位置:这个值就是⑧里说的原点位置值。这个例子的设置如图 3 - 11 所示。

3 - 11 配置回原点(主动)


被动回原点的意思是:轴在运行的时候碰到原点开关,轴的当前位置就会被设置为回原点位置值。这个例子没有启用被动回原点。
① 被动回原点功能的实现得要 MC_Home 指令和 MC_MoveRelative 指令,或者 MC_MoveAbsolute 指令,或者 MC_MoveVelocity 指令,或者 MC_MoveJog 指令一起用。
② 被动回原点得有原点开关。
③ 被动回原点不是让轴不执行其他指令专门去执行主动回原点功能,而是轴在执行其他运动的过程里完成回原点的功能。
3. 轴控制面板
用户能够用轴控制面板调试驱动设备、测试轴和驱动的功能。轴控制面板允许用户在手动的方式下实现参考点定位、绝对位置移动、相对位置移动和点动这些功能。轴控制面板就像图 3 - 12 显示的那样。先点击“监控”按钮启用“监控”-“激活”-“启用”,在启用的状态下控制轴点动、定位和回原点。在控制面板里会实时显示轴的当前位置和速度。

3-12 轴控制面板

4.诊断面板

诊断面板用于显示轴的关键状态和错误消息。双击项目树中“工艺对象”-“诊断”选项,打开诊断面板。

5.程序示例编写

梯形图程序如图3-13所示。

3-13 运动控制实例

干货丨S7-1200 PLC的运动控制逐步实操——电气工程师速看! PLC论坛-全力打造可编程控制器专业技术论坛 -

来源:PLC技术玩

相关推荐