资源描述
SEW 伺服控制器调试方法
一.硬件组态
1.选择所要组态的过程通道数,前三个过程值的含义可以在参数中设定,后面的过程值可
在 IPOS 程序中调用。(南玻镀膜线腔体溅射区的伺服电机组态为 3PD,进出口区选择 10PD)
图 1.选择组态过程通道数
2.组态好, PLC 会自动为该控制器分配地址(以 3PD 为例),分配了 3 个字的输入和 3 个 字的输出。
图 2.硬件组态完成画面
二.控制器程序
1.过程值分为过程输出字和过程输入字。过程输出值为 PLC→控制器的数值,包括控制字 和设定值;过程输入值为控制器 →PLC 的数值,包括状态字和实际值。 (如图 3 示意)
图 3.过程值描述 2.过程值的定义要靠控制器参数设置来完成。打开 MOVITOOLS 的 MT-MANAGER 画面,如图 4
图 4. MOVITOOLS 的 MT-MANAGER 画面
点击“Shell”,进入参数设置画面,点开第 8 组参数的 87.Process data description,按 照图 5 进行设置。
图 5. Process data description 参数组设置
3. 一个典型控制系统伺服电机程序如下:
#include <constb.h>
#include <iob.h>
MOVLNK Spd;
MLDATA Spd_Data;
tasc2()
{
}
tasc3()
{ /*--------------------------------------------------------
读 PO 值 (from PLC) 把 PLC 中设定的值送入伺服控制器中
--------------------------------------------------------*/
H150=3; //定义 GetSys()的总线类型
H151=3; //定义 GetSys()的 PO 数量,这里是 3 个 PO
_GetSys( H150,GS_PODATA ); //把 PLC 中的变量送入伺服控制器中 注 3.2
/*--------------------------------------------------------
写 PI 值 (to PLC)
--------------------------------------------------------*/
H410=3;
H413=H483;
//如果是三个 PD 以上的, H+0 必须是 PD 个数
//H411 为 Status Words 1 从 P873 中设定 PI1
//H412 是实际的速度,从 P874 中设定
注 3.3
_SetSys( SS_PIDATA,H410 );
}
/*=============================================
Main Function (IPOS Entry Function)
===============================================*/
main()
{
}
几点注明:
3.1 程序里的 Hxxx (如 H150,H410,H483)表示控制器程序内部存储空间,相当于 Step7 里
的 M 中间变量,但 Hxxx 有些是作固定用处的,可以在打开 IPOS 编程画面中点击 Display-->All Variables 来查看 Hxxx。可以看到,从 H453 到 H511 是被占用的,用户不能自 定义。
图 6.查看 Variables 表
3.2 _GetSys 是个系统函数,作用是将外部系统的值送入伺服控制器(外部系统可以是外接
编码器,也可以是通过 Profibus 相连的 PLC 系统)。根据帮助文件,它的形式应该是_GetSys(H, sys) , H 就是上面所说的 Hxxx 内部变量, sys 表示了该函数的类型,程序应到到的 GS_PODATA 是 sys 的一种类型,作用就是从缓冲区读取 PLC 的过程值。
帮助文件原文如下:
GS_PODATA:Reading the PO data buffer
H: Bus type
0 = Reserved
1 = S0 (RS485 #1)
2 = S1 (RS485 #2)
3 = Fieldbus
4 = Reserved
5 = SBus
H + 1 = Number of PO data
H + 2 = PO1
H + 3 = PO2
我们用 H150 作为上面的 h 来使用, H150=3 则说明总线类型为 Fieldbus,H+1 为 H151 就是 PO1,根据图 5 所示,可以看出就是 CTRL.WORD1 (控制字 1),同理 H152 对应 PO2 为 SPEED (速度给定), PO3 未定义。再联系图 2 的硬件组态画面, Q612.0---> Q613.7 是 PLC 第一个字的输出,即 PO1 或 CTRL.WORD1。第二个输出字 PQW614 就是速度给定。
图 7.H483 显示内容
3.2
_SetSys 也可以照此理解,是将伺服系统内部过程值通过 Hxxx 送入外部系统(PLC 系
统)。 H410 要对应 PD 的个数, 因为实际组态是 3PD, 所以有 H410=3, 所以 H413 就是送入 外部系统的第一个 PI 值,根据图 5 是 STATUS.WORD1,即 PIW612。 H210 通过图 5 设置 得到了电机的实际速度, 移入 H412,从 PIW614 中可以得到。通过图6 所示方式打开 Variables 表,可以看到 H483 为“InputLevel”,它实际对应了伺服控制器上端子插排的输入值。
关于控制器上端子插排, 不同类型控制器插排或不同用处的输入得到的定义不同, 要根据实 际情况来定。 H413=H483 就意味着是将该控制器端子插排的输入信号送入 PI3,也就是 PIW616。
三.如何实际控制一台 SEW 电机
1.手动控制
用 SEW 电缆连接伺服控制器, 在“Connect to”选项框中选择“Single Inverter (Peer to Peer) ”;选择点击“Update”,系统会自动查找并在“Connected Inverters”中列出当 前联接的伺服控制器的相关信息。
图 8
图 4 画面点击“Shell”,在弹出窗口中(图 8)点手型按钮,出现图9 所示画面,就可 以进行手动控制伺服电机(不需要伺服控制器程序和 STEP7 程序)。
图 9 手动控制画面
其中 CW 是正转, CCW 是反转,点击 F11=START 就启动电机,下面的滑动条可以控制转 速高低。
手动控制可以作为测试电机和伺服控制器连线是否正确的前提, 并检查传动滚轴齿轮的 磨合状态。
2.通过连接下位 STEP7 程序控制
以图 2 所示的硬件组态为例,首先要知道控制字的定义,图 5 的参数设置了第一个输 出字为 Control word 1 ,手册第 83 页给出了 Control word 1 的定义,前 8 位 定义说明如图 10 所示。 (虽然控制字是 16 位,但高 8 位可以暂时不考虑)
图 10 Control word 1 前 8 位定义说明
根据要求,
电机启动需要 Control word 1 的 bit1 和 bit2 为 1,即 Control word 1 为 0000 0000 0000 0 110, 对应 16 位表达式为 W#16#6;
电机停止需要 bit1 为 1,即 Control word 1 为 0000 0000 0000 0010,对应 16 位表达式为 W#16#2;
快速刹车对应 16 位表达式为 W#16#0。
速度给定与变速比有关,所以不能一概而论,以南玻为例,滚轮直径为150mm,减速比为 76.37 , 即 滚 轮 转 一 圈 对 应 伺 服 电 机 转 76.37 圈 , 1m/min 对 应 滚 轮 1000/(150*pi)=2. 122rpm/min ,所 以 1m/min 相当 于给 电机 的速 度 为 2. 122*76.37=162.06 rpm/min。 (但速度给定必须为整型)
针对图 2 的硬件组态,以一个简单例子介绍如何控制伺服电机。
在 OB1 程序里编写控制程序 M200.0 为启动命令, M200. 1 为停止命令。一旦 M200.0 为 1 且没有停止信号 M200. 1,则写入控制字 6,并给速度 162 (对应 10m/min 的传动速度)。
M200. 1 位 1,则写入控制字 2 ,停止电机运行。
快速刹车, M200.2 表示刹车信号,为 1 则写入控制字 0,快速停止电机,如图 12 所示。
图 11 STEP7 控制程序(1)
图 12 STEP7 控制程序(2)
3.读取编码器的脉冲值
编码器值是一个 32 位双整型数值,所以对应到 STEP7 要占用两个字的存储空间。 以 C1M01 为例组态为 10PD 的电机。 (图 13)
用_SetSys( SS_PIDATA,H410 );函数,此时
H410=10; //表示 10PD
H412=H210/10; // 实际速度值 为 PI2
H413=H511/65536; //实际脉冲值高位 PI3
H414=H511%65536; //实际脉冲值低位 PI4
即 PI3 和 PI4 分别对应编码器脉冲值的高位和低位, H511 是 IPOS 内部存储空间, 存储 数值为编码器当前值, 65536 对应 16 进制的 10000。此时要在 SHELL 里将 PI3 (P875)设
为 NO FUNCTION。根据硬件组态可知,编码器脉冲反馈值为 PID956。
图 13 10PD 电机 C1M01 组态
一个典型读取编码器脉冲值应用程序: “以高速走 4 米定长”。 (图 14)
玻璃停在 C0 的 LS100 处,开门向 C1 发送
程序第一行:门 1FV1 开到位, C0 和 C1 同时向前高速运行,感应着 LS100 (并上 LS101 作为保险)的一瞬间置位 C0M01_START_DISPATCH 信号,开始记下编码器当前脉冲值 PID956 , 放 入 "C1M01_DB".POS_PEC1 中 , 然 后 把 此 数 值 加 上 "C1M01_DB".POS_DISTANCE1_DI (4 米对应的脉冲数值),放入中间变量 #TMP_DI8 里, 电机运行 PID956 一直增加,当增加到大于 #TMP_DI8,则表明已走完 4 米距离,转为低速 运行。
图 14
展开阅读全文