1 概述
S7--200提供了三种方式的开环运动控制:
• 脉宽调制(PWM)--内置于S7--200,用于速度、位置或占空比控制。
• 脉冲串输出(PTO)--内置于S7--200,用于速度和位置控制。
• EM253位控模块--用于速度和位置控制的附加模块。
S7—200的内置脉冲串输出提供了两个数字输出通道(Q0.0和Q0.1),该数字输出可以通过位控向导组态为PWM或PTO的输出。
当组态一个输出为PTO操作时,生成一个50%占空比脉冲串用于步进电机或伺服电机的速度和位置的开环控制。内置PTO功能仅提供了脉冲串输出。您的应用程序必须通过PLC内置I/O或扩展模块提供方向和限位控制。
PTO按照给定的脉冲个数和周期输出一串方波(占空比50%),如图1。PTO可以产生单段脉冲串或者多段脉冲串(使用脉冲包络)。可以指定脉冲数和周期(以微秒或毫秒为增加量):
• 脉冲个数: 1到4,294,967,295
• 周期: 10μs(100K)到65535μs或者2ms到65535ms。
http://www.shine-eng.com/uploads/allimg/131009/140241GF-0.png
图1
200系列的PLC的最大脉冲输出频率除 CPU224XP 以外均为20kHz。CPU224XP可达100kHz。如表1所示:
http://www.shine-eng.com/uploads/allimg/131009/1402413433-1.png
表1
2 MAP库的应用
2.1 MAP库的基本描述
现在,200系列 PLC 本体 PTO 提供了应用库MAP SERV Q0.0 和 MAP SERV Q0.1,分别用于 Q0.0 和
Q0.1 的脉冲串输出。如图2所示:
http://www.shine-eng.com/uploads/allimg/131009/1402415552-2.png
图2
注: 这两个库可同时应用于同一项目。
各个块的功能如表2所示:
块 |
功能 |
Q0_x_CTRL |
参数定义和控制 |
Q0_x_MoveRelative |
执行一次相对位移运动 |
Q0_x_MoveAbsolute |
执行一次绝对位移运动 |
Q0_x_MoveVelocity |
按预设的速度运动 |
Q0_x_Home |
寻找参考点位置 |
Q0_x_Stop |
停止运动 |
Q0_x_LoadPos |
重新装载当前位置 |
Scale_EU_Pulse |
将距离值转化为脉冲数 |
Scale_Pulse_EU |
将脉冲数转化为距离值 |
表2
总体描述
该功能块可驱动线性轴。
为了很好的应用该库,需要在运动轨迹上添加三个限位开关,如图3:
• 一个参考点接近开关(home),用于定义绝对位置 C_Pos 的零点。
• 两个边界限位开关,一个是正向限位开关(Fwd_Limit),一个是反向限位开关(Rev_Limit)。
• 绝对位置 C_Pos 的计数值格式为 DINT ,所以其计数范围为(-2.147.483.648 to
+2.147.483.647).
• 如果一个限位开关被运动物件触碰,则该运动物件会减速停止,因此,限位开关的安置位置应当留出足够的裕量ΔSmin
以避免物件滑出轨道尽头。
http://www.shine-eng.com/uploads/allimg/131009/14024155b-3.png
图3
2.2 输入输出点定义
应用MAP库时,一些输入输出点的功能被预先定义,如表3所示:
名称 |
MAP SERV
Q0.0 |
MAP SERV
Q0.1 |
脉冲输出 |
Q0.0 |
Q0.1 |
方向输出 |
Q0.2 |
Q0.3 |
参考点输入 |
I0.0 |
I0.1 |
所用的高速计数器 |
HC0 |
HC3 |
高速计数器预置值 |
SMD
42 |
SMD
142 |
手动速度 |
SMD
172 |
SMD
182 |
表3
2.3 MAP库的背景数据块
为了可以使用该库,必须为该库分配 68 BYTE(每个库)的全局变量,如图4所示:
http://www.shine-eng.com/uploads/allimg/131009/1402414R8-4.png
图4
下表是使用该库时所用到的最重要的一些变量(以相对地址表示),如表4:
符号名 |
相对地址 |
注释 |
Disable_Auto_Stop |
+V0.0 |
默认值=0意味着当运动物件已经到达预设地点时,即使尚未减速到Velocity_SS,依然停止运动; =1时则减速至Velocity_SS时才停止 |
Dir_Active_Low |
+V0.1 |
方向定义,默认值 0 = 方向输出为1时表示正向。 |
Final_Dir |
+V0.2 |
寻找参考点过程中的最后方向 |
Tune_Factor |
+VD1 |
调整因子(默认值=0) |
Ramp_Time |
+VD5 |
Ramp time =
accel_dec_time(加减速时间) |
Max_Speed_DI |
+VD9 |
最大输出频率 = Velocity_Max |
SS_Speed_DI |
+VD13 |
最小输出频率 = Velocity_SS |
Homing_State |
+VD18 |
寻找参考点过程的状态 |
Homing_Slow_Spd |
+VD19 |
寻找参考点时的低速(默认值 = Velocity_SS) |
Homing_Fast_Spd |
+VD23 |
寻找参考点时的高速(默认值 = Velocity_Max/2) |
Fwd_Limit |
+V27.1 |
正向限位开关 |
Rev_Limit |
+V27.2 |
反向限位开关 |
Homing_Active |
+V27.3 |
寻找参考点激活 |
C_Dir |
+V27.4 |
当前方向 |
Homing_Limit_Chk |
+V27.5 |
限位开关标志 |
Dec_Stop_Flag |
+V27.6 |
开始减速 |
PTO0_LDPOS_Error |
+VB28 |
使用Q0_x_LoadPos时的故障信息(16#00 = 无故障, 16#FF = 故障) |
Target_Location |
+VD29 |
目标位置 |
Deceleration_factor |
+VD33 |
减速因子 =(Velocity_SS – Velocity_Max)
/ |
accel_dec_time (格式:
REAL) |
SS_Speed_real |
+VD37 |
最小速度 = Velocity_SS (格式:
REAL) |
Est_Stopping_Dist |
+VD41 |
计算出的减速距离 (格式:
DINT) |
表4
2.4 功能块介绍
下面逐一介绍该库中所应用到的程序块。这些程序块全部基于PLC-200
的内置PTO输出,完成运动控制的功能。此外,脉冲数将通过指定的高速计数器 HSC 计量。通过 HSC
中断计算并触发减速的起始点。
2.4.1 Q0_x_CTRL
该块用于传递全局参数,每个扫描周期都需要被调用。功能块如图5,功能描述见表5。
http://www.shine-eng.com/uploads/allimg/131009/1402411132-5.png
图5
参数 |
类型 |
格式 |
单位 |
意义 |
Velocity_SS |
IN |
DINT |
Pulse/sec. |
启动/停止频率 |
Velocity_Max |
IN |
DINT |
Pulse/sec. |
最大频率 |
accel_dec_time |
IN |
REAL |
sec. |
最大加减速时间 |
Fwd_Limit |
IN |
BOOL |
|
正向限位开关 |
Rev_Limit |
IN |
BOOL |
|
反向限位开关 |
C_Pos |
OUT |
DINT |
Pulse |
当前绝对位置 |
表5
Velocity_SS 是最小脉冲频率,是加速过程的起点和减速过程的终点。
Velocity_Max 是最大小脉冲频率,受限于电机最大频率和PLC的最大输出频率。
在程序中若输入超出(Velocity_SS,Velocity_Max)范围的脉冲频率,将会被Velocity_SS 或
Velocity_Max 所取代。
accel_dec_time 是由 Velocity_SS 加速到 Velocity_Max 所用的时间(或由Velocity_Max
减速到 Velocity_SS 所用的时间,两者相等),范围被规定为 0.02 ~ 32.0 秒,但最好不要小于0.5秒。
警告:超出 accel_dec_time 范围的值还是可以被写入块中,但是会导致定位过程出错!
2.4.2 Scale_EU_Pulse
该块用于将一个位置量转化为一个脉冲量,因此它可用于将一段位移转化为脉冲数,或将一个速度转化为脉冲频率。功能块如图6,功能描述见表6。
http://www.shine-eng.com/uploads/allimg/131009/140241E23-6.png
图6
参数 |
类型 |
格式 |
单位 |
意义 |
Input |
IN |
REAL |
mm or
mm/s |
欲转换的位移或速度 |
Pulses |
IN |
DINT |
Pulse
/revol. |
电机转一圈所需要的脉冲数 |
E_Units |
IN |
REAL |
mm
/revol. |
电机转一圈所产生的位移 |
Output |
OUT |
DINT |
Pulse or
pulse/s |
转换后的脉冲数或脉冲频率 |
表6
下面是该功能块的计算公式:
http://www.shine-eng.com/uploads/allimg/131009/1402414547-7.png
2.4.3 Scale_ Pulse_EU
该块用于将一个脉冲量转化为一个位置量,因此它可用于将一段脉冲数转化为位移,或将一个脉冲频率转化为速度。功能块如图7,功能描述见表7。
http://www.shine-eng.com/uploads/allimg/131009/1402415352-8.png
图7
参数 |
类型 |
格式 |
单位 |
意义 |
Input |
IN |
REAL |
Pulse or
pulse/s |
欲转换的脉冲数或脉冲频率 |
Pulses |
IN |
DINT |
Pulse
/revol. |
电机转一圈所需要的脉冲数 |
E_Units |
IN |
REAL |
mm
/revol. |
电机转一圈所产生的位移 |
Output |
OUT |
DINT |
mm or
mm/s |
转换后的位移或速度 |
表7
下面是该功能块的计算公式:
http://www.shine-eng.com/uploads/allimg/131009/1402415R2-9.png
2.4.4 Q0_x_Home
功能块如图8,功能描述见表8。
http://www.shine-eng.com/uploads/allimg/131009/1402414500-10.png
图8
这么好的文章,分享到朋友圈,和朋友们一起分享吧!


长按二维码关注启程自动化培训公众号

详细课程请咨询:18681533568 陈老师
