1、概述S7-200 提供了三种方式的开环运动控制: 脉宽调制(PWM )-内置于 S7-200,用于速度、位置或占空比控制。 脉冲串输出(PTO)-内置于 S7-200,用于速度和位置控制。 EM253 位控模块-用于速度和位置控制的附加模块。S7200 的内置脉冲串输出提供了两个数字输出通道(Q0.0 和 Q0.1),该数字输出可以通过位控向导组态为PWM 或 PTO 的输出。当组态一个输出为 PTO 操作时,生成一个 50%占空比脉冲串用于步进电机或伺服电机的速度和位置的开环控制。内置 PTO 功能仅提供了脉冲串输出。您的应用程序必须通过 PLC 内置 I/O 或扩展模块提供方向和限位控制。
2、PTO 按照给定的脉冲个数和周期输出一串方波(占空比 50),如图 1。PTO 可以产生单段脉冲串或者多段脉冲串(使用脉冲包络)。可以指定脉冲数和周期(以微秒或毫秒为增加量): 脉冲个数: 1 到 4,294,967,295 周期: 10s(100K)到 65535s 或者 2ms 到 65535ms。图 1200 系列的 PLC 的最大脉冲输出频率除 CPU224XP 以外均为 20kHz。CPU224XP 可达 100kHz。如表 1 所示:表 12 MAP 库的应用2.1 MAP 库的基本描述现在,200 系列 PLC 本体 PTO 提供了应用库 MAP SERV Q0.0 和 MAP
3、SERV Q0.1,分别用于 Q0.0 和 Q0.1 的脉冲串输出。如图 2 所示:图 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总体描述该功能块可驱动线性轴。
4、为了很好的应用该库,需要在运动轨迹上添加三个限位开关,如图 3: 一个参考点接近开关(home),用于定义绝对位置 C_Pos 的零点。 两个边界限位开关,一个是正向限位开关(Fwd_Limit),一个是反向限位开关(Rev_Limit)。 绝对位置 C_Pos 的计数值格式为 DINT ,所以其计数范围为(-2.147.483.648 to +2.147.483.647). 如果一个限位开关被运动物件触碰,则该运动物件会减速停止,因此,限位开关的安置位置应当留出足够的裕量Smin 以避免物件滑出轨道尽头。图 32.2 输入输出点定义应用 MAP 库时,一些输入输出点的功能被预先定义,如表 3
5、 所示:名称 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表 32.3 MAP 库的背景数据块为了可以使用该库,必须为该库分配 68 BYTE(每个库)的全局变量,如图 4 所示:图 4下表是使用该库时所用到的最重要的一些变量(以相对地址表示),如表 4:符号名 相对地址 注释Disable_Auto_Stop +V0.0默认值=0 意味着当运动物件已经到达预设地点时,即使尚未减速到
6、 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_MaxSS_Speed_DI +VD13 最小输出频率 = Velocity_SSHoming_State +VB18 寻找参考点
7、过程的状态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 时的故障信息(
8、16#00 = 无故障, 16#FF = 故障)Target_Location +VD29 目标位置减速因子 =(Velocity_SS Velocity_Max) /Deceleration_factor +VD33 accel_dec_time (格式: REAL)SS_Speed_real +VD37 最小速度 = Velocity_SS (格式: REAL)Est_Stopping_Dist +VD41 计算出的减速距离 (格式: DINT)表 42.4 功能块介绍下面逐一介绍该库中所应用到的程序块。这些程序块全部基于 PLC-200 的内置 PTO 输出,完成运动控制的功能。此外,脉
9、冲数将通过指定的高速计数器 HSC 计量。通过 HSC 中断计算并触发减速的起始点。2.4.1 Q0_x_CTRL该块用于传递全局参数,每个扫描周期都需要被调用。功能块如图 5,功能描述见表 5。图 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 Puls
10、e 当前绝对位置表 5Velocity_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
11、秒。警告:超出 accel_dec_time 范围的值还是可以被写入块中,但是会导致定位过程出错!2.4.2 Scale_EU_Pulse该块用于将一个位置量转化为一个脉冲量,因此它可用于将一段位移转化为脉冲数,或将一个速度转化为脉冲频率。功能块如图 6,功能描述见表 6。图 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
12、转换后的脉冲数或脉冲频率表 6下面是该功能块的计算公式:2.4.3 Scale_ Pulse_EU该块用于将一个脉冲量转化为一个位置量,因此它可用于将一段脉冲数转化为位移,或将一个脉冲频率转化为速度。功能块如图 7,功能描述见表 7。图 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下面是该功
13、能块的计算公式:2.4.4 Q0_x_Home功能块如图 8,功能描述见表 8。图 8参数 类型 格式 单位 意义EXECUTE IN BOOL 寻找参考点的执行位Position IN DINT Pulse 参考点的绝对位移寻找参考点的起始方向Start_Dir IN BOOL (0=反向, 1=正向)Done OUT BOOL 完成位(1= 完成)Error OUT BOOL 故障位(1= 故障)表 8该功能块用于寻找参考点,在寻找过程的起始,电机首先以 Start_Dir 的方向,Homing_Fast_Spd 的速度开始寻找;在碰到 limit switch (“Fwd_Limit”
14、or “Rev_Limit”)后,减速至停止,然后开始相反方向的寻找;当碰到参考点开关(input I0.0; withQ0_1_Home: I0.1)的上升沿时,开始减速到 “Homing_Slow_Spd”。如果此时的方向与 “Final_Dir” 相同,则在碰到参考点开关下降沿时停止运动,并且将计数器 HC0 的计数值设为 “Position” 中所定义的值。如果当前方向与 “Final_Dir” 不同,则必然要改变运动方向,这样就可以保证参考点始终在参考点开关的同一侧(具体是那一侧取决于 “Final_Dir”)。寻找参考点的状态可以通过全局变量 “Homing_State” 来监测,
15、如表 9:Homing_State 的值 意义0 参考点已找到2 开始寻找4 在相反方向,以速度 Homing_Fast_Spd 继续寻找过程(在碰到限位开关或参考点开关之后)6 发现参考点,开始减速过程7在方向 Final_Dir ,以速度 Homing_Slow_Spd 继续寻找过程(在参考点已经在 Homing_Fast_Spd 的速度下被发现之后)10 故障(在两个限位开关之间并未发现参考点)表 92.4.5 Q0_x_MoveRelative该功能块用于让轴按照指定的方向,以指定的速度,运动指定的相对位移。功能块如图 9,功能描述见表 10。图 9参数 类型 格式 单位 意义EXEC
16、UTE IN BOOL 相对位移运动的执行位Num_Pulses IN DINT Pulse 相对位移(必须1)预置频率(Velocity_SS = Velocity =Velocity IN DINT Pulse/sec.Velocity_Max)预置方向Direction IN BOOL (0=反向, 1=正向)Done OUT BOOL 完成位(1= 完成)表 102.4.6 Q0_x_MoveAbsolute该功能块用于让轴以指定的速度,运动到指定的绝对位置。功能块如图 10,功能描述见表 11。图 10参数 类型 格式 单位 意义EXECUTE IN BOOL 绝对位移运动的执行位P
17、osition IN DINT Pulse 绝对位移预置频率Velocity IN DINT Pulse/sec. (Velocity_SS = Velocity =Velocity_Max)Done OUT BOOL 完成位(1= 完成)表 112.4.7 Q0_x_MoveVelocity该功能块用于让轴按照指定的方向和频率运动,在运动过程中可对频率进行更改。功能块如图 11,功能描述见表 12。图 11参数 类型 格式 单位 意义EXECUTE IN BOOL 执行位预置频率(Velocity_SS = Velocity =Velocity IN DINT Pulse/sec.Veloc
18、ity_Max)预置方向Direction IN BOOL (0=反向, 1=正向)故障标识Error OUT BYTE (0=无故障,1= 立即停止, 3=执行错误)C_Pos OUT DINT Pulse 当前绝对位置表 12注意:Q0_x_MoveVelocity 功能块只能通过 Q0_x_Stop block 功能块来停止轴的运动。如图 12:图 122.4.8 Q0_x_Stop该功能块用于使轴减速直至停止。功能块如图 13,功能描述见表 13。图 13参数 类型 格式 单位 意义EXECUTE IN BOOL 执行位Done OUT BOOL 完成位(1= 完成)表 132.4.9
19、 Q0_x_LoadPos该功能块用于将当前位置的绝对位置设置为预置值。功能块如图 14,功能描述见表 14。图 14参数 类型 格式 单位 意义EXECUTE IN BOOL 设置绝对位置的执行位New_Pos IN DINT Pulse 预置绝对位置Done OUT BOOL 完成位(1= 完成)Error OUT BYTE 故障位(0= 无故障)C_Pos OUT DINT Pulse 当前绝对位置表 14注意:使用该块将使得原参考点失效,为了清晰地定义绝对位置,必须重新寻找参考点。2.5 校准该块所使用的算法将计算出减速过程(从减速起始点到速度最终达到 Velocity_SS)所需要的
20、脉冲数。但时在减速过程中所形成的斜坡有可能会导致计算出的减速斜坡与实际的包络不完全一致。此时就需要对 “Tune_Factor” 进行校正。校正因子 “Tune_Factor”“Tune_Factor” 的最优值取决于最大、最小和目标脉冲频率以及最大减速时间。如图 15:图 15如图所示,运动的目标位置是 B,算法会自动计算出减速起始点,当计算与实际不符时,当轴已经运动到 B 点时,尚未到达最低速度,此时若位 ”Disable_Auto_Stop” = 0,则轴运动到 B 点即停止运动,若位 ”Disable_Auto_Stop” = 1,则轴会继续运动直至到达最低速度。图中所示的情况为计算的
21、减速起始点出现的太晚了。确定调整因子注意:一次新的校准过程并不需要将伺服驱动器连接到 CPU。步骤如下:1. 置位 ”Disable_Auto_Stop”,即令 ”Disable_Auto_Stop” = 1。2. 设置 “Tune_Factor” = 1。3. 使用 Q0_x_LoadPos 功能将当前位置的绝对位置设为 0。4. 使用 Q0_x_MoveRelative,以指定的速度完成一次相对位置运动(留出足够的空间以使得该运动得以顺利完成)。5. 运动完成后,查看实际位置 HC0。Tune_Factor 的调整值应由 HC0,目标相对位移 Num_Pulses,预估减速距离 Est_S
22、topping_Dist 所决定。Est_Stopping_Dist 由下面的公式计算得出:Tune_Factor 由下面的公式计算得出:6. 在调用 Q0_x_CTRL 的网络之后插入一条网络,将调整后的 Tune_Factor 传递给全局变量 +VD1,如图16。图 167. 复位 ”Disable_Auto_Stop”,即令 ”Disable_Auto_Stop” = 0。2.6 寻找参考点的若干种情况在寻找参考点的过程中由于起始位置、起始方向和终止方向的不同会出现很多种情况。一个总的原则就是:从起始位置以起始方向 Start_Dir 开始寻找,碰到参考点之前若碰到限位开关,则立即调头开
23、始反向寻找,找到参考点开关的上升沿(即刚遇到参考点开关)即减速到寻找低速 Homing_Slow_Spd,若在检测到参考点开关的下降沿(即刚离开遇到参考点开关)之前已经减速到 Homing_Slow_Spd,则比较当前方向与终止方向 Final_Dir 是否一致,若一致,则完成参考点寻找过程;若否,则调头找寻另一端的下降沿。若在检测到参考点开关的下降沿(即刚离开遇到参考点开关)之前尚未减速到 Homing_Slow_Spd,则在减速到 Homing_Slow_Spd 后调头加速,直至遇到参考点开关上升沿,重新减速到 Homing_Slow_Spd,最后判断当前方向与终止方向 Final_Dir 是否一致,若一致,则完成参考点寻找过程;若否,则调头找寻另一端的下降沿。(Final_Dir 决定寻找参考点过程结束后,轴停在参考点开关的哪一侧)下面的图形会反应不同情形下寻找参考点的过程。Start_Dir=0, Final_Dir=0,如图 17:图 17Start_Dir=0, Final_Dir=1,如图 18:图 18Start_Dir=1, Final_Dir=0,如图 19:图 19Start_Dir=1, Final_Dir=1,如图 20:图 20