PTO提供生成指定脉冲数目的方形波(50%占空比)脉冲序列。周期时间可以用微秒或毫秒为指定时间单位。周期时间范围为50~65 535 µs,或为2~65 535 ms。如果指定周期时间为奇数,会引起占空比的失真。脉冲数范围可以是1~4 294 967 295。
如果指定的周期时间少于两个时间单位,则周期时间默认为两个时间单位。如果指定的脉冲计数为0,则脉冲计数默认为1。
状态字节(SM66.7或SM76.7)内的PTO空闲位用于指示编程脉冲序列的完成。另外,也可在脉冲序列完成时启动中断程序。如果使用多段操作,将在包络表完成时启动中断程序。
PTO功能允许脉冲序列的排队。当激活脉冲序列完成时,新脉冲序列输出立即开始,可以实现后续输出脉冲序列的连续性。
脉冲序列的两种方式如下:
(1)单段序列。在单段序列中,需要为下一个脉冲序列更新特殊寄存器。一旦启动了初始PTO段,就必须按照要求,立即修改第二波形的特殊寄存器,并再次执行PLS指令。第二脉冲序列的属性将被保留在序列内,直至第一脉冲序列完成。序列内每次只能存储一条脉冲序列。第一脉冲列完成后,第二波形输出开始,序列可再存储新的脉冲序列属性。重复此过程设定下一脉冲列的特征。
除下列情况外,脉冲列可平滑转换:一是发生了时间基准的改变;二是在执行PLS指令捕捉到新的脉冲序列前启动的脉冲序列已经完成。
如果装载满脉冲序列,状态寄存器(SM66.6或SM76.6)内的PTO溢出位将被置位。进入运行模式时,此位被初始化为0。如果随后发现溢出,必须在发现溢出后手工清除此位。
(2)多段序列。在多段序列中,CPU自动从V存储区的包络表中读取各脉冲序列段的特征。在此模式下,仅使用特殊寄存器区的控制字节和状态字节。欲选择多段操作,必须装载包络表的V内存起始偏移地址(SMWl68或SMWl78)。可以微秒或毫秒为单位指定时间基准,但是,选择用于包络表内的全部周期时间必须使用一个时间基准,并且在包络表运行过程中不能改变。然后可执行PLS指令开始多段操作。
每段输入的长度均为8字节,并由16位周期值、16位周期增量值和32位脉冲计数数值组成。
多段PTO操作的另一特征是能够以指定的脉冲数量自动增加或减少周期时间。在周期增量区输入一个正值,将增加周期时间,在周期增量区输入一个负值,将减少周期时间。若数值为零,则周期时间不变。
如果在许多脉冲后指定的周期增量值导致非法的周期值,则发生算术溢出错误。PTO功能被终止,PLC的输出变成由映像寄存器控制。另外,状态字节(SM66.4或SM76.4)内的增量计算错误位被置为1。如果要人为地停止正在运行中的PTO包络,只需要把状态字节的用户中止位(SM66.5或SM76.5)置为1。当PTO包络执行时,当前启动的段数目保存在SMBl66(SMBl76)内。表4-47给出了多段PTO操作的包络表格式。
表4-47 PTO包络表
PTO/PWM生成器的多段序列功能在许多应用中都适用,特别是步进电动机的控制。下面的例子说明了如何生成加速步进电动机、恒速操作电动机,以及电动机减速的输出波形所要求的包络表数值。(www.xing528.com)
【例4-17】本例是一个步进电动机控制的PTO设计。需要4000个脉冲,其中200个脉冲用于步进电动机的加速控制,3400个脉冲用于恒速控制,400个脉冲用于减速控制。起始及终止脉冲频率为2 kHz,最大脉冲频率为10 kHz。因为采用周期表示包络表数值,而不采用频率,需要将给定频率数值转换成周期时间数值。因此,起始及终止循环时间为500 µs,与最大频率相对应的循环时间为100 µs。在输出包络的加速部分,要求达到最大脉冲频率,即200个脉冲。并假定包络减速部分应在400脉冲内完成,如图4-32所示。这个例子中,可采用简单公式决定PTO/PWM生成器用于调节各个脉冲周期所使用的周期增量值:
图4-32 多段序列控制的工艺要求
式中,Td为周期增量;Ti为初始脉冲周期;Tf为最终脉冲周期;P为脉冲数目。
利用此公式,计算出的加速部分(第1段)的周期增量是-2。类似地,减速部分(第3段)的周期增量是1。因为第2段是输出波形的恒速部分,该段的周期增量是0。假定包络表位于从V500开始的V内存内,表4-48用于生成要求波形的包络表值。
表4-48 包络表数据
该表的值可以通过用户程序中的指令放在V存储器中。另外一种方法是,在数据块中定义包络表的值。段内最后一个脉冲的周期在包络表中不直接指定,而必须计算得出(除非周期为零)。知道段最终脉冲的周期时间有利于决定各段波形之间的过渡是否平滑。计算各段最终脉冲的周期的公式是:
上例是简化的情况,实际应用可能要求更复杂的波形包络。请注意两点:一是只能用整数微秒或毫秒指定周期增量;二是可对各个脉冲进行周期修改。
这两点内容决定计算某给定段的周期增量可能需要迭代方法,计算给定段的最终脉冲周期或脉冲数时可能需要一定的调整。在确定校正包络表值的过程中,包络表的持续时间是有用的。可利用下列公式计算完成给定一个包络段的时间长度:
式中,t为时间长度。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。