S7-200PLC脉冲输出MAP库文件的使用ApplicationofS7-200PTOMAPLibGettingStartEdition(2011年3月)摘要该文档提供了S7-200PLC脉冲输出指令库MAP的使用说明。该库基于S7-200PLC本体脉冲输出指令,用于帮助用户实现较复杂的定位功能,控制伺服驱动或步进电机。关键词S7-200PLC;脉冲输出;MAPKeyWordsS7-200PLC;PTO;MAP目录1概述2MAP库的应用2.1MAP库的基本描述2.2输入输出点定义2.3MAP库的背景数据块2.4功能块介绍2.4.1Q0_x_CTRL2.4.2Scale_EU_Pulse2.4.3Scale_Pulse_EU2.4.4Q0_x_Home2.4.5Q0_x_MoveRelative2.4.6Q0_x_MoveAbsolute2.4.7Q0_x_MoveVelocity2.4.8Q0_x_Stop2.4.9Q0_x_LoadPos2.5校准2.6寻找参考点的若干种情况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。图1200系列的PLC的最大脉冲输出频率除CPU224XP以外均为20kHz。CPU224XP可达100kHz。如表1所示:表12MAP库的应用2.1MAP库的基本描述现在,200系列PLC本体PTO提供了应用库MAPSERVQ0.0和MAPSERVQ0.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总体描述该功能块可驱动线性轴。为了很好的应用该库,需要在运动轨迹上添加三个限位开关,如图3:一个参考点接近开关(home),用于定义绝对位置C_Pos的零点。两个边界限位开关,一个是正向限位开关(Fwd_Limit),一个是反向限位开关(Rev_Limit)。C_Pos的计数值格式为DINT,所以其计数范围为(-2.147.483.648to+2.147.483.647).绝对位置ΔSmin以避免物件滑出轨道尽头。如果一个限位开关被运动物件触碰,则该运动物件会减速停止,因此,限位开关的安置位置应当留出足够的裕量图32.2输入输出点定义应用MAP库时,一些输入输出点的功能被预先定义,如表3所示:名称MAPSERVQ0.0MAPSERVQ0.1脉冲输出Q0.0Q0.1方向输出Q0.2Q0.3参考点输入I0.0I0.1所用的高速计数器HC0HC3高速计数器预置值SMD42SMD142手动速度SMD172SMD182表32.3MAP库的背景数据块为了可以使用该库,必须为该库分配68BYTE(每个库)的全局变量,如图4所示:图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+VD5Ramptime=accel_dec_time(加减速时间)Max_Speed_DI+VD9最大输出频率=Velocity_MaxSS_Speed_DI+VD13最小输出频率=Velocity_SSHoming_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)表42.4功能块介绍下面逐一介绍该库中所应用到的程序块。这些程序块全部基于PLC-200的内置PTO输出,完成运动控制的功能。此外,脉冲数将通过指定的高速计数器HSC计量。通过HSC中断计算并触发减速的起始点。2.4.1Q0_x_CTRL该块用于传递全局参数,每个扫描周期都需要被调用。功能块如图5,功能描述见表5。图5参数类型格式单位意义Velocity_SSINDINTPulse/sec.启动/停止频率Velocity_MaxINDINTPulse/sec.最大频率accel_dec_timeINREALsec.最大加减速时间Fwd_LimitINBOOL正向限位开关Rev_LimitINBOOL反向限位开关C_PosOUTDINTPulse当前绝对位置表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秒。警告:超出accel_dec_time范围的值还是可以被写入块中,但是会导致定位过程出错!2.4.2Scale_EU_Pulse该块用于将一个位置量转化为一个脉冲量,因此它可用于将一段位移转化为脉冲数,或将一个速度转化为脉冲频率。功能块如图6,功能描述见表6。图6参数类型格式单位意义InputINREALmmormm/s欲转换的位移或速度PulsesINDINTPulse/revol.电机转一圈所需要的脉冲数E_UnitsINREALmm/revol.电机转一圈所产生的位移OutputOUTDINTPulseorpulse/s转换后的脉冲数或脉冲频率表6下面是该功能块的计算公式:2.4.3Scale_Pulse_EU该块用于将一个脉冲量转化为一个位置量,因此它可用于将一段脉冲数转化为位移,或将一个脉冲频率转化为速度。功能块如图7,功能描述见表7。图7参数类型格式单位意义InputINREALPulseorpulse/s欲转换的脉冲数或脉冲频率PulsesINDINTPulse/revol.电机转一圈所需要的脉冲数E_UnitsINREALmm/revol.电机转一圈所产生的位移OutputOUTDINTmmormm/s转换后的位移或速度表7下面是该功能块的计算公式:2.4.4Q0_x_Home功能块如图8,功能描述见表8。图8参数类型格式单位意义EXECUTEINBOOL寻找参考点的执行位PositionINDINTPulse参考点的绝对位移Start_DirINBOOL寻找参考点的起始方向(0=反向,1=正向)DoneOUTBOOL完成位(1=完成)ErrorOUTBOOL故障位(1=故障)表8该功能块用于寻找参考点,在寻找过程的起始,电机首先以Start_Dir的方向,Homing_Fast_Spd的速度开始寻找;在碰到limitswitch(“Fwd_Limit”or“Rev_Limit”)后,减速至停止,然后开始相反方向的寻找;当碰到参考点开关(inputI0.0;withQ0_1_Home:I0.1)的上升沿时,开始减速到“Homing_Slow_Spd”。如果此时的方向与“Final_Dir”相同,则在碰到参考点开关下降沿时停止运动,并且将计数器HC0的计数值设为“Position”中所定义的值。如果当前方向与“Final_Dir”不同,则必然要改变运动方向,这样就可以保证参考点始终在参考点开关的同一侧(具体是那一侧取决于“Final_Dir”)。寻找参考点的状态可以通过全局变量“Homing_State”来监测,如表9:Homing_State的值意义0参考点已找到2开始寻找4在相反方向,以速度Homing_Fast_Spd继续寻找过程(在碰到限位开关或参考点开关之后)6发现参考点,开始减速过程7在方向Final_Dir,以速度Homing_Slow_Spd继续寻找过程(在参考点已经在Homing_Fast_Spd的速度下被发现之后)10故障(在两个限位开关之间并未发现参考点)表92.4.5Q0_x_MoveRelative该功能块用于让轴按照指定的方向,以指定的速度,运动指定的相对位移。功能块如图9,功能描述见表10。图9参数类型格式单位意义EXECUTEINBOOL相对位移运动的执行位Num_PulsesINDINTPulse相对位移(必须1)VelocityINDINTPulse/sec.预置频率(Velocity_SS=Velocity=Velocity_Max)DirectionINBOOL预置方向(0=反向,1=正向)DoneOUTBOOL完成位(1=完成)表102.4.6Q0_x_MoveAbsolute该功能块用于让轴以指定的速度,运动到指定的绝对位置。功能块如图10,功能描述见表11。图10参数类型格式单位意义EXECUTEINBOOL绝对位移运动的执行位PositionINDINTPulse绝对位移VelocityINDINTPulse/sec.预置频率(Velocity_SS=Velocity=Velocity_Max)DoneOUTBOOL完成位(1=完成)表112.4.7Q0_x_MoveVelocity该功能块用于让轴按照指定的方向和频率运动,在运动过程中可对频率进行更改。功能块如图11,功能描述见表12。图11参数类型格