9
S7-200 有两个 置PTO/PWM 发生器,用以建立高速脉冲串(PTO)或脉宽调节(PWM) 信号波形。
当组态一个输出为PTO 操作时,生成一个50%占空比脉冲串用于
步进电机
伺服电机
的速度和位置的开环控制。置PTO功能提供了脉冲串输出,脉冲周期和数量可由用户控制。但应用程序必须通过
plc
内置I/O 提供方向和限位控制。
为了简化用户应用程序中位控功能的使用,STEP7--Micro/WIN 提供的位控向导可以帮助您在几分钟内全部完成PWM,PTO或位控模块的组态。向导可以生成位置指令,用户可以用这些指令在其应用程序中为速度和位置提供动态控制。
2、开环位控用于步进电机或伺服电机的基本信息
借助位控向导组态PTO 输出时,需要用户提供一些基本信息,逐项介绍如下:
⑴ 较大速度 (MAX_SPEED)和启动/停止速度 (SS_SPEED)
图1是这2 个概念的示意图。
MAX_SPEED是允许的操作速度的较大值,它应在电机力矩能力的范围。驱动负载所需的力矩由摩擦力、惯性以及加速/减速时间决定。
图1 较大速度和启动/停止速度示意SS_SPEED:该数值应满足电机在低速时驱动负载的能力,如果SS_SPEED的数值过低,电机和负载在运动的开始和结束时可能会摇摆或颤动。如果SS_SPEED的数值过高,电机会在启动时丢失脉冲,并且负载在试图停止时会使电机**速。通常,SS_SPEED 值是MAX_SPEED 值的5%至15%。⑵加速和减速时间加速时间ACCEL_TIME:电机从SS_SPEED速度加速到MAX_SPEED速度所需的时间。减速时间DECEL_TIME:电机从MAX_SPEED速度减速到SS_SPEED速度所需要的时间。
图1 较大速度和启动/停止速度示意SS_SPEED:该数值应满足电机在低速时驱动负载的能力,如果SS_SPEED的数值过低,电机和负载在运动的开始和结束时可能会摇摆或颤动。如果SS_SPEED的数值过高,电机会在启动时丢失脉冲,并且负载在试图停止时会使电机**速。通常,SS_SPEED 值是MAX_SPEED 值的5%至15%。⑵加速和减速时间加速时间ACCEL_TIME:电机从SS_SPEED速度加速到MAX_SPEED速度所需的时间。减速时间DECEL_TIME:电机从MAX_SPEED速度减速到SS_SPEED速度所需要的时间。
图1 较大速度和启动/停止速度示意
SS_SPEED:该数值应满足电机在低速时驱动负载的能力,如果SS_SPEED的数值过低,电机和负载在运动的开始和结束时可能会摇摆或颤动。如果SS_SPEED的数值过高,电机会在启动时丢失脉冲,并且负载在试图停止时会使电机**速。通常,SS_SPEED 值是MAX_SPEED 值的5%至15%。
⑵加速和减速时间
加速时间ACCEL_TIME:电机从SS_SPEED速度加速到MAX_SPEED速度所需的时间。
减速时间DECEL_TIME:电机从MAX_SPEED速度减速到SS_SPEED速度所需要的时间。
图2 加速和减速时间加速时间和减速时间的缺省设置都是1000毫秒。通常电机可在小于1000 毫秒的时间工作。参见图2。这2个值设定时要以毫秒为单位。注意:电机的加速和失速时间要过测试来确定。开始时,您应输入一个较大的值。逐渐减少这个时间值直至电机开始失速,从而优化您应用中的这些设置。⑶移动包络一个包络是一个预先定义的移动描述,它包括一个或多个速度,影响着从起点到终点的移动。一个包络由多段组成,每段包含一个达到目标速度的加速/减速过程和以目标速度匀速运行的一串固定数量的脉冲。位控向导提供移动包络定义界面,在这里,您可以为您的应用程序定义每一个移动包络。PTO 支持较大100 个包络。定义一个包络,包括如下几点:①选择操作模式;②为包络的各步定义指标。③为包络定义一个符号名。⑴选择包络的操作模式:PTO支持相对位置和单一速度的续转动,如图3所示,相对位置模式指的是运动的终点位置是从起点侧开始计算的脉冲数量。单速续转动则不需要提供终点位置,PTO一直持续输出脉冲,直至有其他命令发出,例如到达原点要求停发脉冲。
图2 加速和减速时间加速时间和减速时间的缺省设置都是1000毫秒。通常电机可在小于1000 毫秒的时间工作。参见图2。这2个值设定时要以毫秒为单位。注意:电机的加速和失速时间要过测试来确定。开始时,您应输入一个较大的值。逐渐减少这个时间值直至电机开始失速,从而优化您应用中的这些设置。⑶移动包络一个包络是一个预先定义的移动描述,它包括一个或多个速度,影响着从起点到终点的移动。一个包络由多段组成,每段包含一个达到目标速度的加速/减速过程和以目标速度匀速运行的一串固定数量的脉冲。位控向导提供移动包络定义界面,在这里,您可以为您的应用程序定义每一个移动包络。PTO 支持较大100 个包络。定义一个包络,包括如下几点:①选择操作模式;②为包络的各步定义指标。③为包络定义一个符号名。⑴选择包络的操作模式:PTO支持相对位置和单一速度的续转动,如图3所示,相对位置模式指的是运动的终点位置是从起点侧开始计算的脉冲数量。单速续转动则不需要提供终点位置,PTO一直持续输出脉冲,直至有其他命令发出,例如到达原点要求停发脉冲。
图2 加速和减速时间
加速时间和减速时间的缺省设置都是1000毫秒。通常电机可在小于1000 毫秒的时间工作。参见图2。这2个值设定时要以毫秒为单位。
注意:电机的加速和失速时间要过测试来确定。开始时,您应输入一个较大的值。逐渐减少这个时间值直至电机开始失速,从而优化您应用中的这些设置。
⑶移动包络
一个包络是一个预先定义的移动描述,它包括一个或多个速度,影响着从起点到终点的移动。一个包络由多段组成,每段包含一个达到目标速度的加速/减速过程和以目标速度匀速运行的一串固定数量的脉冲。位控向导提供移动包络定义界面,在这里,您可以为您的应用程序定义每一个移动包络。PTO 支持较大100 个包络。
定义一个包络,包括如下几点:①选择操作模式;②为包络的各步定义指标。③为包络定义一个符号名。
⑴选择包络的操作模式:
PTO支持相对位置和单一速度的续转动,如图3所示,相对位置模式指的是运动的终点位置是从起点侧开始计算的脉冲数量。单速续转动则不需要提供终点位置,PTO一直持续输出脉冲,直至有其他命令发出,例如到达原点要求停发脉冲。
图3 一个包络的操作模式⑵包络中的步一个步是工件运动的一个固定距离,包括加速和减速时间 的距离。PTO 每一包络较大允许29 个步。每一步包括目标速度和结束位置或脉冲数目等几个指标。图4 所示为一步、两步、三步和四步包络。注意一步包络只有一个常速段,两步包络有两个常速段,依次类推。步的数目与包络中常速段的数目一致。
图3 一个包络的操作模式⑵包络中的步一个步是工件运动的一个固定距离,包括加速和减速时间 的距离。PTO 每一包络较大允许29 个步。每一步包括目标速度和结束位置或脉冲数目等几个指标。图4 所示为一步、两步、三步和四步包络。注意一步包络只有一个常速段,两步包络有两个常速段,依次类推。步的数目与包络中常速段的数目一致。
图3 一个包络的操作模式
⑵包络中的步
一个步是工件运动的一个固定距离,包括加速和减速时间 的距离。PTO 每一包络较大允许29 个步。
每一步包括目标速度和结束位置或脉冲数目等几个指标。图4 所示为一步、两步、三步和四步包络。注意一步包络只有一个常速段,两步包络有两个常速段,依次类推。步的数目与包络中常速段的数目一致。
图4 包络的步数示意3、使用位控向导编程STEP7 V4.0 软件的位控向导能自动处理PTO脉冲的单段管线和多段管线、脉宽调制、SM 位置配置和创建包络表。本节将给出一个在YL-335A 上实现的简单工作任务例子,阐述使用位控向导编程的方法和步骤。表1 是YL-335A 上实现步进电机运行所需的运动包络。表1 步进电机运行的运动包络
图4 包络的步数示意3、使用位控向导编程STEP7 V4.0 软件的位控向导能自动处理PTO脉冲的单段管线和多段管线、脉宽调制、SM 位置配置和创建包络表。本节将给出一个在YL-335A 上实现的简单工作任务例子,阐述使用位控向导编程的方法和步骤。表1 是YL-335A 上实现步进电机运行所需的运动包络。表1 步进电机运行的运动包络
图4 包络的步数示意
3、使用位控向导编程
STEP7 V4.0 软件的位控向导能自动处理PTO脉冲的单段管线和多段管线、脉宽调
制、SM 位置配置和创建包络表。
本节将给出一个在YL-335A 上实现的简单工作任务例子,阐述使用位控向导编程的方法和步骤。表1 是YL-335A 上实现步进电机运行所需的运动包络。
表1 步进电机运行的运动包络
1、使用位控向导编程的步骤如下:1)为S7--200 PLC选择选项组态 置PTO/PWM操作。在STEP7 V4.0软件命令菜单中选择工具→位置控制向导并选择配置S7-200PLC内置PTO/PWM操作,如图5所示。
1、使用位控向导编程的步骤如下:1)为S7--200 PLC选择选项组态 置PTO/PWM操作。在STEP7 V4.0软件命令菜单中选择工具→位置控制向导并选择配置S7-200PLC内置PTO/PWM操作,如图5所示。
1、使用位控向导编程的步骤如下:
1)为S7--200 PLC选择选项组态 置PTO/PWM操作。
在STEP7 V4.0软件命令菜单中选择工具→位置控制向导并选择配置S7-200PLC内
置PTO/PWM操作,如图5所示。
图5 位控向导启动界面2)单击“下一步”选择“QO.0”,再单击“下一步”选择“线性脉冲输出 PTO)”
图5 位控向导启动界面2)单击“下一步”选择“QO.0”,再单击“下一步”选择“线性脉冲输出 PTO)”
图5 位控向导启动界面
2)单击“下一步”选择“QO.0”,再单击“下一步”选择“线性脉冲输出 PTO)”
图5 选择PTO或PWM界面3)单击“下一步”后,在对应的编辑框中输入MAX_SPEED 和SS_SPEED 速度值。输入较高电机速度“90000”,把电机启动/停止速度设定为“600”。这时,如果单击MIN_SPEED值对应的灰色框,可以发现,MIN_SPEED值改为600,注意:MIN_SPEED值由计算得出。用户不能在此域中输入其他数值。
图5 选择PTO或PWM界面3)单击“下一步”后,在对应的编辑框中输入MAX_SPEED 和SS_SPEED 速度值。输入较高电机速度“90000”,把电机启动/停止速度设定为“600”。这时,如果单击MIN_SPEED值对应的灰色框,可以发现,MIN_SPEED值改为600,注意:MIN_SPEED值由计算得出。用户不能在此域中输入其他数值。
图5 选择PTO或PWM界面
3)单击“下一步”后,在对应的编辑框中输入MAX_SPEED 和SS_SPEED 速度值。输入较高电机速度“90000”,把电机启动/停止速度设定为“600”。这时,如果单击MIN_SPEED值对应的灰色框,可以发现,MIN_SPEED值改为600,注意:MIN_SPEED值由计算得出。用户不能在此域中输入其他数值。
图64)单击“下一步”填写电机加速时间“1500”和电机减速时间 “200”
图7 设定加速和减速时间5)接下来一步是配置运动包络界面,见图8。
图8 配置运动包络界面该界面要求设定操作模式、1个步的目标速度、结束位置等步的指标,以及定义这一包络的符号名。(从*0个包络第0步开始)在操作模式选项中选择相对位置控制,填写包络“0”中数据目标速度“60000”,结束位置“85600”,点击“绘制包络”,如图9所示,注意,这个包络只有1步。包络的符号名按默认定义。这样,*0个包络的设置,即从供料站→加工站的运动包络设置就完成了。现在可以设置下一个包络。
图9 设置*0个包络点击“新包络”,按上述方法将下表中上3个位置数据输入包络中去。
图9 设置*0个包络点击“新包络”,按上述方法将下表中上3个位置数据输入包络中去。
图9 设置*0个包络
点击“新包络”,按上述方法将下表中上3个位置数据输入包络中去。
表中最后一行低速回零,是单速连续运行模式,选择这种操作模式后,在所出现的界面中(见图10),写入目标速度“20000”。界面中还有一个包络停止操作选项,是当停止信号输入时再向运动方向按设定的脉冲数走完停止,在本系统不使用。6)运动包络编写完成单击“确认”,向导会要求为运动包络*V存储区地址(建议地址为VB75~VB300),默认这一建议,单击“下一步”出现图11,单击 “完成”。
表中最后一行低速回零,是单速连续运行模式,选择这种操作模式后,在所出现的界面中(见图10),写入目标速度“20000”。界面中还有一个包络停止操作选项,是当停止信号输入时再向运动方向按设定的脉冲数走完停止,在本系统不使用。6)运动包络编写完成单击“确认”,向导会要求为运动包络*V存储区地址(建议地址为VB75~VB300),默认这一建议,单击“下一步”出现图11,单击 “完成”。
表中最后一行低速回零,是单速连续运行模式,选择这种操作模式后,在所出现的界面中(见图10),写入目标速度“20000”。界面中还有一个包络停止操作选项,是当停止信号输入时再向运动方向按设定的脉冲数走完停止,在本系统不使用。
6)运动包络编写完成单击“确认”,向导会要求为运动包络*V存储区地址(建议地址为VB75~VB300),默认这一建议,单击“下一步”出现图11,单击 “完成”。
图11 生成项目组件提示2、项目组件运动包络组态完成后,向导会为所选的配置生成三个项目组件(子程序),分别是:PTOx_RUN子程序(运行包络),PTOx_CTRL子程序(控制)和PTOx_MAN子程序(手动模式)子程序。一个由向导产生的子程序就可以在程序中调用如图12所示。
图12 三个项目组件它们的功能分述如下:⑴ PTOx_RUN子程序(运行包络):命令 PLC 执行存储于配置/包络表的特定包络中的运动操作。运行这一子程序的梯形图如图13所示。
图13 运行PTOx_RUN子程序EN位:启用此子程序的使能位。START参数:包络的执行的启动信号。对于在START参数已开启且PTO当前不活动时的每次扫描,此子程序会激活PTO。为了确保仅发送一个命令,请使用上升缘以脉冲方式开启START参数。Profile(包络)参数:包含为此运动包络*的编号或符号名。Abort(终止)参数命令,开启时位控模块停止当前包络并减速至电机停止。Done(完成)参数:当模块完成本子程序时,此参数 ON。Error(错误)参数:包含本子程序的结果。C_Profile参数:包含位控模块当前执行的包络。C_Step参数:包含目前正在执行的包络步骤。⑵ PTOx_CTRL子程序:(控制)启用和初始化与步进电机或伺服电机合用的PTO输出。请在用户程序中只使用一次,并且请确定在每次扫描时得到执行。即始终使用SM0.0作为EN的输入,如图14所示。
图13 运行PTOx_RUN子程序EN位:启用此子程序的使能位。START参数:包络的执行的启动信号。对于在START参数已开启且PTO当前不活动时的每次扫描,此子程序会激活PTO。为了确保仅发送一个命令,请使用上升缘以脉冲方式开启START参数。Profile(包络)参数:包含为此运动包络*的编号或符号名。Abort(终止)参数命令,开启时位控模块停止当前包络并减速至电机停止。Done(完成)参数:当模块完成本子程序时,此参数 ON。Error(错误)参数:包含本子程序的结果。C_Profile参数:包含位控模块当前执行的包络。C_Step参数:包含目前正在执行的包络步骤。⑵ PTOx_CTRL子程序:(控制)启用和初始化与步进电机或伺服电机合用的PTO输出。请在用户程序中只使用一次,并且请确定在每次扫描时得到执行。即始终使用SM0.0作为EN的输入,如图14所示。
图13 运行PTOx_RUN子程序
EN位:启用此子程序的使能位。
START参数:包络的执行的启动信号。对于在START参数已开启且PTO当前不活动时的每次扫描,此子程序会激活PTO。为了确保仅发送一个命令,请使用上升缘以脉冲方式开启START参数。
Profile(包络)参数:包含为此运动包络*的编号或符号名。
Abort(终止)参数命令,开启时位控模块停止当前包络并减速至电机停止。
Done(完成)参数:当模块完成本子程序时,此参数 ON。
Error(错误)参数:包含本子程序的结果。
C_Profile参数:包含位控模块当前执行的包络。
C_Step参数:包含目前正在执行的包络步骤。
⑵ PTOx_CTRL子程序:(控制)启用和初始化与步进电机或伺服电机合用的PTO输出。请在用户程序中只使用一次,并且请确定在每次扫描时得到执行。即始终使用SM0.0作为EN的输入,如图14所示。
图14 运行PTOx_CTRL子程序I_S**(立即停止)输入:开关量输入。当此输入为低时,PTO功能会正常工作。当此输入变为高时,PTO立即终止脉冲的发出。D_S**(减速停止)输入:开关量输入。当此输入为低时,PTO功能会正常工作。当此输入变为高时,PTO会产生将电机减速至停止的脉冲串。“完成”输出:开关量输出。当“完成”位被设置为高时,它表明上一个指令也已执行。Error(错误)参数:包含本子程序的结果。当“完成”位为高时,错误字节会报告无错误或有错误代码的正常完成。如果PTO向导的HSC计数器功能已启用,C_Pos参数包含用脉冲数目表示的模块;否则此数值始终为零。⑶ PTOx_MAN子程序(手动模式):将PTO输出置于手动模式。这允许电机启动、停止和按不同的速度运行。当PTOx_MAN子程序已启用时,任何其他PTO子程序都无法执行。运行这一子程序的梯形图如图15所示。
图14 运行PTOx_CTRL子程序I_S**(立即停止)输入:开关量输入。当此输入为低时,PTO功能会正常工作。当此输入变为高时,PTO立即终止脉冲的发出。D_S**(减速停止)输入:开关量输入。当此输入为低时,PTO功能会正常工作。当此输入变为高时,PTO会产生将电机减速至停止的脉冲串。“完成”输出:开关量输出。当“完成”位被设置为高时,它表明上一个指令也已执行。Error(错误)参数:包含本子程序的结果。当“完成”位为高时,错误字节会报告无错误或有错误代码的正常完成。如果PTO向导的HSC计数器功能已启用,C_Pos参数包含用脉冲数目表示的模块;否则此数值始终为零。⑶ PTOx_MAN子程序(手动模式):将PTO输出置于手动模式。这允许电机启动、停止和按不同的速度运行。当PTOx_MAN子程序已启用时,任何其他PTO子程序都无法执行。运行这一子程序的梯形图如图15所示。
图14 运行PTOx_CTRL子程序
I_S**(立即停止)输入:开关量输入。当此输入为低时,PTO功能会正常工作。当此输入变为高时,PTO立即终止脉冲的发出。
D_S**(减速停止)输入:开关量输入。当此输入为低时,PTO功能会正常工作。当此输入变为高时,PTO会产生将电机减速至停止的脉冲串。“完成”输出:开关量输出。当“完成”位被设置为高时,它表明上一个指令也已执行。
Error(错误)参数:包含本子程序的结果。当“完成”位为高时,错误字节会报告无错误或有错误代码的正常完成。如果PTO向导的HSC计数器功能已启用,C_Pos参数包含用脉冲数目表示的模块;否则此数值始终为零。
⑶ PTOx_MAN子程序(手动模式):将PTO输出置于手动模式。这允许电机启动、停止和按不同的速度运行。当PTOx_MAN子程序已启用时,任何其他PTO子程序都无法执行。运行这一子程序的梯形图如图15所示。
图15 运行PTOx_MAN子程序RUN(运行/停止)参数:命令PTO加速至*速度(Speed(速度)参数)。您可以在电机运行中更改Speed参数的数值。停用RUN参数命令PTO减速至电机停止。当RUN已启用时,Speed参数确定着速度。速度是一个用每秒脉冲数计算的DINT(双整数)值。您可以在电机运行中更改此参数。Error(错误)参数包含本子程序的结果。如果PTO向导的HSC计数器功能已启用,C_Pos参数包含用脉冲数目表示的模块;否则此数值始终为零。
图15 运行PTOx_MAN子程序RUN(运行/停止)参数:命令PTO加速至*速度(Speed(速度)参数)。您可以在电机运行中更改Speed参数的数值。停用RUN参数命令PTO减速至电机停止。当RUN已启用时,Speed参数确定着速度。速度是一个用每秒脉冲数计算的DINT(双整数)值。您可以在电机运行中更改此参数。Error(错误)参数包含本子程序的结果。如果PTO向导的HSC计数器功能已启用,C_Pos参数包含用脉冲数目表示的模块;否则此数值始终为零。
图15 运行PTOx_MAN子程序
RUN(运行/停止)参数:命令PTO加速至*速度(Speed(速度)参数)。您可以在电机运行中更改Speed参数的数值。停用RUN参数命令PTO减速至电机停止。当RUN已启用时,Speed参数确定着速度。速度是一个用每秒脉冲数计算的DINT(双整数)值。您可以在电机运行中更改此参数。
Error(错误)参数包含本子程序的结果。
如果PTO向导的HSC计数器功能已启用,C_Pos参数包含用脉冲数目表示的模块;否则此数值始终为零。
注:脉冲速率是指每秒发多少个脉冲,用来控制电机速度脉冲数量是指一共发的脉冲个数,用来控制电机行程脉冲速率X时间=脉冲数量电机速度X时间=电机行程
注:脉冲速率是指每秒发多少个脉冲,用来控制电机速度脉冲数量是指一共发的脉冲个数,用来控制电机行程脉冲速率X时间=脉冲数量电机速度X时间=电机行程
注:
脉冲速率是指每秒发多少个脉冲,用来控制电机速度
脉冲数量是指一共发的脉冲个数,用来控制电机行程
脉冲速率X时间=脉冲数量
电机速度X时间=电机行程
计数器指令包括增计数器、减计数器、增减计数器和高速计数器
增计数器
增计数指令(CTU)从当前计数值开始,在每一个(CU)输入状态从低到高时递增计数。当CXX的当前值大于等于预置值PV时,计数器位CXX置位。当复位端(R)接通或者执行复位指令后,计数器被复位。当它达到较大值(32,767)后,计数器停止计数。
减计数器
减计数指令(CTD)从当前计数值开始,在每一个(CD)输入状态的低到高时递减计数。当CXX的当前值等于0时,计数器位CXX置位。当装载输入端(LD)接通时,计数器位被复位,并将计数器的当前值设为预置值PV。当计数值到0时,计数器停止计数,计数器位CXX接通。
增/减计数器
增/减计数指令(CTUD),在每一个增计数输入(CU)的低到高时增计数,在每一个减计数输入(CD)的低到高时减计数。计数器的当前值CXX保存当前计数值。在每一次计数器执行时,预置值PV与当前值作比较。当达到较大值(32767)时,在增计数输入处的下一个上升沿导致当前计数值变为较小值(--32768)。当达到较小值(--32768)时,在减计数输入端的下一个上升沿导致当前计数值变为较大值(32767)。当CXX的当前值大于等于预置值PV时,计数器位CXX置位。否则,计数器位关断。当复位端(R)接通或者执行复位指令后,计数器被复位。当达到预置值PV时,CTUD计数器停止计数。
PS:CXX代表的是计数器的名称,是常数范围时从C0到C25,由于每一个计数器只有一个当前值,所以不要多次定义同一个计数器。(具有相同标号的增计数器、增/减计数器、减计数器访问相同的当前值。)当使用复位指令复位计数器时,计数器位复位并且计数器当前值被清零。计数器标号既可以用来表示当前值,又可以用来表示计数器位。
减计数器应用当I0.1断开时,减计数器C1的当前值从3变到0。I0.0的上升沿使C1的当前值递减。I0.1接通时装载预置值3。当计数器C1的当前值=0时,C1接通。
减计数器应用当I0.1断开时,减计数器C1的当前值从3变到0。I0.0的上升沿使C1的当前值递减。I0.1接通时装载预置值3。当计数器C1的当前值=0时,C1接通。
减计数器应用
当I0.1断开时,减计数器C1的当前值从3变到0。I0.0的上升沿使C1的当前值递减。I0.1接通时装载预置值3。当计数器C1的当前值=0时,C1接通。
增减计数器实例应用当 I0.0接通时,使用增计数,计数器数值增加,当 I0.1接通时,使用减计数,计数器数值减少,当I0.2接通时, I0.2将当前值复位为0,当当前值=4时,将增/减计数器C48接通,输出Q0.0.高速计数器一般来说,高速计数器被用作驱动鼓式计时器,该设备有一个安装了增量轴式编码器的轴,以恒定的速度转动。轴式编码器每圈提供一个确定的计数值和一个复位脉冲。来自轴式编码器的时钟和复位脉冲作为高速计数器的输入。高速计数器装入一组预置值中的*一个值,当前计数值小于当前预置值时,希望的输出有效。版权所有。计数器设置成在当前值等于预置值和有复位时产生中断。随着每次当前计数值等于预置值的中断事件的出现,一个新的预置值被装入,并重新设置下一个输出状态。当出现复位中断事件时,设置*一个预置值和*一个输出状态,这个循环又重新开始。由于中断事件产生的速率远低于高速计数器的计数速率,用高速计数器可实现精确控制,而与plc整个扫描周期的关系不大。采用中断的方法允许在简单的状态控制中用独立的中断程序装入一个新的预置值。(同样的,也可以在一个中断服务程序中,处理所有的中断事件。)理解不同的高速计数器对于操作模式相同的计数器,其计数功能是相同的。计数器共有四种基本类型:带有内部方向控制的单相计数器,带有外部方向控制的单相计数器,带有两个时钟输入的双相计数器和A/B相正交计数器。注意,并不是所有计数器都能使用每一种模式。您可以使用以下类型:无复位或启动输入,有复位无启动输入或既有启动又有复位输入。- 当激活复位输入端时,计数器清除当前值并一直保持到复位端失效。- 当激活启动输入端时,它允许计数器计数。当启动端失效时,计数器的当前值保持为常数,并且忽略时钟事件。- 如果在启动输入端无效的同时,复位信号被激活,则忽略复位信号,当前值保持不变。如果在复位信号被激活的同时,启动输入端被激活,当前值被清除。在使用高速计数器之前,应该用HDEF(高速计数器定义)指令为计数器选择一种计数模式。使用初次扫描存储器位SM0.1(该位仅在*一次扫描周期接通,之后断开)来调用一个包含HDEF指令的子程序。对于高速计数器来说,我们可以使用指令向导来配置计数器。向导程序使用下列信息:计数器的类型和模式、计数器的预置值、计数器的初始值和计数的初始方向。要启动HSC指令向导,可以在命令菜单窗口中选择Tools >Instruction Wizard ,然后在向导窗口中选择HSC指令。对高速计数器编程,必须完成下列基本操作:定义计数器和模式、设置控制字节、设置初始值、 设置预置值、*并使能中断服务程序、激活高速计数器。高速计数器有12种工作模式如下图所示
增减计数器实例应用当 I0.0接通时,使用增计数,计数器数值增加,当 I0.1接通时,使用减计数,计数器数值减少,当I0.2接通时, I0.2将当前值复位为0,当当前值=4时,将增/减计数器C48接通,输出Q0.0.高速计数器一般来说,高速计数器被用作驱动鼓式计时器,该设备有一个安装了增量轴式编码器的轴,以恒定的速度转动。轴式编码器每圈提供一个确定的计数值和一个复位脉冲。来自轴式编码器的时钟和复位脉冲作为高速计数器的输入。高速计数器装入一组预置值中的*一个值,当前计数值小于当前预置值时,希望的输出有效。版权所有。计数器设置成在当前值等于预置值和有复位时产生中断。随着每次当前计数值等于预置值的中断事件的出现,一个新的预置值被装入,并重新设置下一个输出状态。当出现复位中断事件时,设置*一个预置值和*一个输出状态,这个循环又重新开始。由于中断事件产生的速率远低于高速计数器的计数速率,用高速计数器可实现精确控制,而与plc整个扫描周期的关系不大。采用中断的方法允许在简单的状态控制中用独立的中断程序装入一个新的预置值。(同样的,也可以在一个中断服务程序中,处理所有的中断事件。)理解不同的高速计数器对于操作模式相同的计数器,其计数功能是相同的。计数器共有四种基本类型:带有内部方向控制的单相计数器,带有外部方向控制的单相计数器,带有两个时钟输入的双相计数器和A/B相正交计数器。注意,并不是所有计数器都能使用每一种模式。您可以使用以下类型:无复位或启动输入,有复位无启动输入或既有启动又有复位输入。- 当激活复位输入端时,计数器清除当前值并一直保持到复位端失效。- 当激活启动输入端时,它允许计数器计数。当启动端失效时,计数器的当前值保持为常数,并且忽略时钟事件。- 如果在启动输入端无效的同时,复位信号被激活,则忽略复位信号,当前值保持不变。如果在复位信号被激活的同时,启动输入端被激活,当前值被清除。在使用高速计数器之前,应该用HDEF(高速计数器定义)指令为计数器选择一种计数模式。使用初次扫描存储器位SM0.1(该位仅在*一次扫描周期接通,之后断开)来调用一个包含HDEF指令的子程序。对于高速计数器来说,我们可以使用指令向导来配置计数器。向导程序使用下列信息:计数器的类型和模式、计数器的预置值、计数器的初始值和计数的初始方向。要启动HSC指令向导,可以在命令菜单窗口中选择Tools >Instruction Wizard ,然后在向导窗口中选择HSC指令。对高速计数器编程,必须完成下列基本操作:定义计数器和模式、设置控制字节、设置初始值、 设置预置值、*并使能中断服务程序、激活高速计数器。高速计数器有12种工作模式如下图所示
增减计数器实例应用
当 I0.0接通时,使用增计数,计数器数值增加,当 I0.1接通时,使用减计数,计数器数值减少,当I0.2接通时, I0.2将当前值复位为0,当当前值=4时,将增/减计数器C48接通,输出Q0.0.
高速计数器
一般来说,高速计数器被用作驱动鼓式计时器,该设备有一个安装了增量轴式编码器的轴,以恒定的速度转动。轴式编码器每圈提供一个确定的计数值和一个复位脉冲。来自轴式编码器的时钟和复位脉冲作为高速计数器的输入。高速计数器装入一组预置值中的*一个值,当前计数值小于当前预置值时,希望的输出有效。版权所有。计数器设置成在当前值等于预置值和有复位时产生中断。随着每次当前计数值等于预置值的中断事件的出现,一个新的预置值被装入,并重新设置下一个输出状态。当出现复位中断事件时,设置*一个预置值和*一个输出状态,这个循环又重新开始。由于中断事件产生的速率远低于高速计数器的计数速率,用高速计数器可实现精确控制,而与
plc
整个扫描周期的关系不大。采用中断的方法允许在简单的状态控制中用独立的中断程序装入一个新的预置值。(同样的,也可以在一个中断服务程序中,处理所有的中断事件。)
理解不同的高速计数器
对于操作模式相同的计数器,其计数功能是相同的。计数器共有四种基本类型:带有内部方向控制的单相计数器,带有外部方向控制的单相计数器,带有两个时钟输入的双相计数器和A/B相正交计数器。注意,并不是所有计数器都能使用每一种模式。您可以使用以下类型:无复位或启动输入,有复位无启动输入或既有启动又有复位输入。
- 当激活复位输入端时,计数器清除当前值并一直保持到复位端失效。
- 当激活启动输入端时,它允许计数器计数。当启动端失效时,计数器的当前值保持为常数,并且忽略时钟事件。
- 如果在启动输入端无效的同时,复位信号被激活,则忽略复位信号,当前值保持不变。如果在复位信号被激活的同时,启动输入端被激活,当前值被清除。
在使用高速计数器之前,应该用HDEF(高速计数器定义)指令为计数器选择一种计数模式。使用初次扫描存储器位SM0.1(该位仅在*一次扫描周期接通,之后断开)来调用一个包含HDEF指令的子程序。
对于高速计数器来说,我们可以使用指令向导来配置计数器。向导程序使用下列信息:计数器的类型和模式、计数器的预置值、计数器的初始值和计数的初始方向。要启动HSC指令向导,可以在命令菜单窗口中选择Tools >Instruction Wizard ,然后在向导窗口中选择HSC指令。对高速计数器编程,必须完成下列基本操作:定义计数器和模式、设置控制字节、设置初始值、 设置预置值、*并使能中断服务程序、激活高速计数器。
高速计数器有12种工作模式如下图所示
工作模式高速计数器的初始化步骤举例以下以HSC1为例,对初始化和操作的步骤进行描述。在初始化描述中,假定S7--200已经置成RUN模式。因此,**扫描标志位为真。如果不是这种情况,请记住在进入RUN模式之后,对每一个高速计数器的HDEF指令只能执行一次。对一个高速计数器*二次执行HDEF指令会引起运行错误,而且不能改变*一次执行HDEF指令时对计数器的设置。PS:虽然下列步骤描述了如何分别改变计数方向、初始值和预置值,但完全可以在同一操作步骤中对全部或者任意参数组合进行设置,只要设置正确的SMB47然后执行HSC指令即可。初始化模式0、1或2HSC1为内部方向控制的单相增/减计数器(模式0、1或2),初始化步骤如下:1. 用初次扫描存储器位(SM0.1=1)调用执行初始化操作的子程序。由于采用了这样的子程序调用,后续扫描不会再调用这个子程序,从而减少了扫描时间,也提供了一个结构优化的程序。2. 初始化子程序中,根据所希望的控制操作对SMB47置数。例如:SMB47=16#F8 产生如下的结果:允许计数写入新的初始值写入新的预置值置计数方向为增置启动和复位输入为高电平有效3. 执行HDEF指令时,HSC输入置1,MODE输入置0(无外部复位或启动)或置1(有外部复位和无启动)或置2(有外部复位和启动)。4. 向SMD48(双字)写入所希望的初始值(若写入0,则清除)。5. 向SMD52(双字)写入所希望的预置值。6. 为了捕获当前值(CV)等于预置值(PV)中断事件,编写中断子程序,并*CV=PV中断事件(事件号13)调用该中断子程序。7. 为了捕获外部复位事件,编写中断子程序,并*外部复位中断事件(事件号15)调用该中断子程序。8. 执行全局中断允许指令(ENI)来允许HSC1中断。9. 执行HSC指令,使S7--200对HSC1编程。10. 退出子程序。
工作模式高速计数器的初始化步骤举例以下以HSC1为例,对初始化和操作的步骤进行描述。在初始化描述中,假定S7--200已经置成RUN模式。因此,**扫描标志位为真。如果不是这种情况,请记住在进入RUN模式之后,对每一个高速计数器的HDEF指令只能执行一次。对一个高速计数器*二次执行HDEF指令会引起运行错误,而且不能改变*一次执行HDEF指令时对计数器的设置。PS:虽然下列步骤描述了如何分别改变计数方向、初始值和预置值,但完全可以在同一操作步骤中对全部或者任意参数组合进行设置,只要设置正确的SMB47然后执行HSC指令即可。初始化模式0、1或2HSC1为内部方向控制的单相增/减计数器(模式0、1或2),初始化步骤如下:1. 用初次扫描存储器位(SM0.1=1)调用执行初始化操作的子程序。由于采用了这样的子程序调用,后续扫描不会再调用这个子程序,从而减少了扫描时间,也提供了一个结构优化的程序。2. 初始化子程序中,根据所希望的控制操作对SMB47置数。例如:SMB47=16#F8 产生如下的结果:允许计数写入新的初始值写入新的预置值置计数方向为增置启动和复位输入为高电平有效3. 执行HDEF指令时,HSC输入置1,MODE输入置0(无外部复位或启动)或置1(有外部复位和无启动)或置2(有外部复位和启动)。4. 向SMD48(双字)写入所希望的初始值(若写入0,则清除)。5. 向SMD52(双字)写入所希望的预置值。6. 为了捕获当前值(CV)等于预置值(PV)中断事件,编写中断子程序,并*CV=PV中断事件(事件号13)调用该中断子程序。7. 为了捕获外部复位事件,编写中断子程序,并*外部复位中断事件(事件号15)调用该中断子程序。8. 执行全局中断允许指令(ENI)来允许HSC1中断。9. 执行HSC指令,使S7--200对HSC1编程。10. 退出子程序。
工作模式
高速计数器的初始化步骤举例
以下以HSC1为例,对初始化和操作的步骤进行描述。在初始化描述中,假定S7--200已经置成RUN模式。因此,**扫描标志位为真。如果不是这种情况,请记住在进入RUN模式之后,对每一个高速计数器的HDEF指令只能执行一次。对一个高速计数器*二次执行HDEF指令会引起运行错误,而且不能改变*一次执行HDEF指令时对计数器的设置。PS:虽然下列步骤描述了如何分别改变计数方向、初始值和预置值,但完全可以在同一操作步骤中对全部或者任意参数组合进行设置,只要设置正确的SMB47然后执行HSC指令即可。
初始化模式0、1或2
HSC1为内部方向控制的单相增/减计数器(模式0、1或2),初始化步骤如下:
1. 用初次扫描存储器位(SM0.1=1)调用执行初始化操作的子程序。由于采用了这样的子程序调用,后续扫描不会再调用这个子程序,从而减少了扫描时间,也提供了一个结构优化的程序。
2. 初始化子程序中,根据所希望的控制操作对SMB47置数。例如:
SMB47=16#F8 产生如下的结果:
允许计数
写入新的初始值
写入新的预置值
置计数方向为增
置启动和复位输入为高电平有效
3. 执行HDEF指令时,HSC输入置1,MODE输入置0(无外部复位或启动)或置1(有外部复位和无启动)或置2(有外部复位和启动)。
4. 向SMD48(双字)写入所希望的初始值(若写入0,则清除)。
5. 向SMD52(双字)写入所希望的预置值。
6. 为了捕获当前值(CV)等于预置值(PV)中断事件,编写中断子程序,并*CV=PV中断事件(事件号13)调用该中断子程序。
7. 为了捕获外部复位事件,编写中断子程序,并*外部复位中断事件(事件号15)调用该中断子程序。
8. 执行全局中断允许指令(ENI)来允许HSC1中断。
9. 执行HSC指令,使S7--200对HSC1编程。
10. 退出子程序。
应用实例
应用实例
实例应用2在**扫描时,调用SBR0,在**扫描,配置HSC1:SMB48=16#F8意思就是使能计数器、写初始值、写预置值、设初始方向为增计数、选择启动和复位输入高电平有效、选择4倍速模式、配置HSC1为带启动和复位输入的正交模式、SMD48=0表示清除HSC1的初始值。置HSC1的预置值为50。 当HSC1的当前值=预置值时,执行INT_0。 全局中断允许。执行HSC1,执行HSC1,清除HSC1的初始值、选择写入新的初始值和HSC1使能。
实例应用2在**扫描时,调用SBR0,在**扫描,配置HSC1:SMB48=16#F8意思就是使能计数器、写初始值、写预置值、设初始方向为增计数、选择启动和复位输入高电平有效、选择4倍速模式、配置HSC1为带启动和复位输入的正交模式、SMD48=0表示清除HSC1的初始值。置HSC1的预置值为50。 当HSC1的当前值=预置值时,执行INT_0。 全局中断允许。执行HSC1,执行HSC1,清除HSC1的初始值、选择写入新的初始值和HSC1使能。
实例应用2
在**扫描时,调用SBR0,在**扫描,配置HSC1:SMB48=16#F8意思就是使能计数器、写初始值、写预置值、设初始方向为增计数、选择启动和复位输入高电平有效、选择4倍速模式、配置HSC1为带启动和复位输入的正交模式、SMD48=0表示清除HSC1的初始值。置HSC1的预置值为50。 当HSC1的当前值=预置值时,执行INT_0。 全局中断允许。执行HSC1,执行HSC1,清除HSC1的初始值、选择写入新的初始值和HSC1使能。