西门子电源管理模块基本指令部分:
脉冲输出指令(PLS)用于在高速输出(Q0.0和Q0.1)上控制脉冲串输出(PTO)和脉宽调制(PWM)功能。
1、 PWM波
PWM产生一个占空比变化周期固定的脉冲输出。可以以微秒或者毫秒为单位*其周期和脉冲宽度:
周期: 10 µs到65,535 µs 或 2ms到65,535 ms
脉宽时间: 0 µs到65,535µs 或 0ms到65,535 ms
注:脉宽≥周期值占空比是**:连续接通输出。
脉宽=0 占空比是0%:连续关闭输出。
周期<2个时间单位将周期缺省地设定为2个时间单位。
1.1有两个方法改变PWM信号波形的特性:
(1)同步更新:如果不要求改变时间基准,则可以使用同步更新。利用同步更新,信号波形特性的变化发生在周期边沿,提供平滑转换。
(2)异步更新:通常,对于PWM操作,脉冲宽度在周期保持不变时变化,所以不要求改变时间基准。但是,如果需要改变PTO/PWM发生器的时间基准,就要使用异步更新。异步更新会造成PTO/PWM功能被瞬时禁止,和PWM信号波形不同步。这会引起被控设备的振动。由于这个原因,建议采用PWM同步更新。选择一个适合于所有周期时间的时间基准。
1.2特点:周期和脉宽都是以时间为单位特别是脉宽不是固定的 0-255 或者0-512
2、脉冲串操作(PTO)
TO按照给定的脉冲个数和周期输出一串方波(占空比50%)。PTO可以产生单段脉冲串或者多段脉冲串(使用脉冲波形)。可以*脉冲数和周期(以微秒或毫秒为增加量):
脉冲数目: 1到4,294,967,295
周期: 10 µs到65,535 µs或 2ms到65,535 ms。
周期<2个时间单位将周期缺省地设定为2个时间单位
脉冲个数=0 将脉冲个数缺省地设定为1个脉冲
PTO功能允许脉冲串“链接”或者“排队”。当当前脉冲串输出完成时,会立即开始输出一个新的脉冲串。这保证了多个输出脉冲串之间的连续性。
2.1 PTO脉冲串的单段管道
在单段管道模式,需要为下一个脉冲串更新特殊寄存器。一旦启动了起始PTO段,就必须按照*二个信号波形的要求改变特殊寄存器,并再次执行PLS指令。*二个脉冲串的属性在管道中一直保持到**个脉冲串发送完成。在管道中一次只能存储一段脉冲串的属性。当**个脉冲串发送完成时,接着输出*二个信号波形,此时管道可以用于下一个新的脉冲串。重复这个过程可以再次设定下一个脉冲串的特性。除去以下两种情况之外,脉冲串之间可以作到平滑转换:时间基准发生了变化或者在利用PLS指令捕捉到新脉冲之前,启动的脉冲串已经完成。
特点:西门子电源管理模块可以实现输出多个单端脉冲中间*停止
2.2 PTO脉冲串的多段管道
在多段管道模式,CPU自动从V存储器区的包络表中读出每个脉冲串的特性。在该模式下,仅使用特殊存储器区的控制字节和状态字节。选择多段操作,必须装入包络表在V存储器中的起始地址偏移量(SMW168或SMW178)。时间基准可以选择微秒或者毫秒,但是,在包络表中的所有周期值必须使用同一个时间基准,而且在包络正在运行时不能改变。执行PLS指令来启动多段操作。
每段记录的长度为8个字节,由16位周期值、16位周期增量值和32位脉冲个数值组成。表中给出了包络表的格式。您可以通过编程的方式使脉冲的周期自动增减。在周期增量处输入一个正值将增加周期;输入一个负值将减少周期;输入0将不改变周期。
2.3计算包络表的值
2.3.1 PTO发生器的多段管道功能在许多应用中非常有用,尤其在步进电机控制中。例如:您可以用带有脉冲包络的PTO来控制一台步进电机,来实现一个简单的加速、匀速和减速过程或者一个由较多255段脉冲波形组成的复杂过程,而其中每一段波形都是加速、匀速或者减速操作。图中的示例给出的包络表值要求产生一个输出信号波形包括三段:步进电机加速(**段);步进电机匀速(*二段)和步进电机减速(*三段)。
对于该实例:启动和较终脉冲频率是2kHz,较大脉冲频率是10 kHz,要求4000个脉冲才能达到期望的电机旋转数。由于包络表中的值是用周期表示的,而不是用频率,需要把给定的频率值转换成周期值。因此,启动(初始)和较终(结束)周期时间是500 µs,相应于较大频率的周期时间是100 µs。在输出包络的加速部分,要求在200个脉冲左右达到较大脉冲频率。也假定包络的减速部分,在400个脉冲完成。
De给定段的周期增量=|ECT--ICT|/Q
其中: End_CTseg = 此段的结束周期
Init_CTseg = 此段的初始周期
Quantityseg = 此段中的脉冲数量
利用这个公式,
分段1(加速):增量周期 =--2
分段2(恒速):增量周期 =0
分段3(减速):增量周期 =1
假定包络表存放在从VB500开始的V存储器区,表给出了产生所要求信号波形的值。该表的值可以在用户程序中用指令放在V存储器中。一种方法是在数据块中定义包络表的值。
段的最后一个脉冲的周期在包络中不直接*,但必须计算出来(除非周期增量是0)。如果在段之间需要平滑转换,知道段的最后一个脉冲的周期是有用的。计算段的最后一个脉冲周期的公式是:西门子电源管理模块