首页 理论教育 高速脉冲输出技术介绍

高速脉冲输出技术介绍

更新时间:2025-01-10 工作计划 版权反馈
【摘要】:当PTO、PWM发生器控制输出时,将禁止输出点Q0.0、Q0.1的正常使用;当不使用PTO、PWM高速脉冲发生器时,输出点Q0.0、Q0.1恢复正常的使用,即由输出映像寄存器决定其输出状态。由于只有两个高速脉冲输出端口,所以PLS指令在一个程序中最多使用两次。

高速脉冲输出功能可以使PLC在指定的输出点上产生高速的PWM(脉宽调制)脉冲或输出频率可变的PTO脉冲,可以用于步进电动机和直流伺服电动机的定位控制和调速。在使用高速脉冲输出功能时,CPU模块应选择晶体管输出型,以满足高速脉冲输出的频率要求。

1.高速脉冲输出占用的输出端子

S7-200有PTO、PWM两台高速脉冲发生器。PTO脉冲串功能可输出指定个数、指定周期的方波脉冲(占空比50%);PWM功能可输出脉宽变化的脉冲信号,用户可以指定脉冲的周期和脉冲的宽度。若一台发生器指定给数字输出点Q0.0,另一台发生器则指定给数字输出点Q0.1。当PTO、PWM发生器控制输出时,将禁止输出点Q0.0、Q0.1的正常使用;当不使用PTO、PWM高速脉冲发生器时,输出点Q0.0、Q0.1恢复正常的使用,即由输出映像寄存器决定其输出状态。

2.脉冲输出(PLS)指令

脉冲输出(PLS)指令功能为:使能有效时,检查用于脉冲输出(Q0.0或Q0.1)的特殊存储器位(SM),然后执行特殊存储器位定义的脉冲操作。指令格式见表5-13。

表5-13 脉冲输出(PLS)指令格式

978-7-111-49003-6-Chapter05-18.jpg

3.指令功能

脉冲输出(PLS)指令,在EN端口执行条件存在时,检测脉冲输出特殊存储器的状态,然后激活所定义的脉冲操作,从Q端口指定的数字输出端口输出高速脉冲。

PLS指令可在Q0.0和Q0.1两个端口输出可控的PWM脉冲和PTO高速脉冲串波形。由于只有两个高速脉冲输出端口,所以PLS指令在一个程序中最多使用两次。高速脉冲输出和输出映像寄存器共同对应Q0.0和Q0.1端口,但Q0.0和Q0.1端口在同一时间只能使用一种功能。在使用高速脉冲输出时,两输出点将不受输出映像寄存器、立即输出指令和强制输出的影响。

4.高速脉冲输出所对应的特殊标志寄存器

每个PTO/PWM发生器都有:一个控制字节(8位)、一个脉冲计数值(无符号的32位数值)和一个周期时间和脉宽值(无符号的16位数值)。这些值都放在特定的特殊存储区(SM),见表5-14。执行PLS指令时,S7-200读这些特殊存储器位(SM),然后执行特殊存储器位定义的脉冲操作,即对相应的PTO/PWM发生器进行编程。

表5-14 脉冲输出(Q0.0或Q0.1)的特殊存储器

978-7-111-49003-6-Chapter05-19.jpg

(续)

978-7-111-49003-6-Chapter05-20.jpg

每个高速脉冲输出都有一个状态字节,监控并记录程序运行时某些操作的相应状态。可以通过编程来读取相关位状态。表5-14是具体的状态字节功能。

通过对控制字节的设置,可以选择高速脉冲输出的时间基准、具体周期、输出模式(PTO/PWM)以及更新方式等,是编程时初始化操作中必须完成的内容。表5-14是各控制位具体功能。

所有控制位、周期、脉冲宽度和脉冲计数值的默认值均为零。向控制字节(SM67.7或SM77.7)的PTO/PWM允许位写入零,然后执行PLS指令,将禁止PTO或PWM波形的生成。

5.对输出的影响

PTO/PWM生成器和输出映像寄存器共用Q0.0和Q0.1。在Q0.0或Q0.1使用PTO或PWM功能时,PTO/PWM发生器控制输出,并禁止输出点的正常使用,输出波形不受输出映像寄存器状态、输出强制以及执行立即输出指令的影响;在Q0.0或Q0.1位置没有使用PTO或PWM功能时,输出映像寄存器控制输出,所以输出映像寄存器决定输出波形的初始和结束状态,即决定脉冲输出波形从高电平或低电平开始和结束,使输出波形有短暂的不连续,为了减小这种不连续的有害影响,应注意:

1)可在起用PTO或PWM操作之前,将用于Q0.0和Q0.1的输出映像寄存器设为0。

2)PTO/PWM输出必须至少有10%的额定负载,才能完成从关闭至打开以及从打开至关闭的顺利转换,即提供陡直的上升沿和下降沿。

6.PWM脉冲输出设置

(1)PWM脉冲含义及周期、脉宽设置要求

PWM脉冲是指占空比可调而周期固定的脉冲。其周期和脉宽的增量单位可以设为微秒(μs)或毫秒(ms),周期变化范围分别为50~65535μs和2~65535ms。周期设置时,设置值应为偶数,若设为奇数会引起输出波形占空比的轻微失真。周期设置值应大于2,若设置值小于2,系统将默认为2。

(2)PWM脉冲波形更新方式

由于PWM占空比可调,且周期可设置,所以存在脉冲连续输出时的波形更新问题。系统提供了同步更新和异步更新两种波形的更新方式。

同步更新:PWM脉冲输出的典型操作是周期不变而变化脉冲宽度,由于不需要改变时间基准,可以使用同步更新。同步更新时,波形的变化发生在周期的边缘,可以形成平滑转换。

异步更新:若在脉冲输出时要改变时间基准,就要使用异步更新方式。异步更新会造成PWM功能瞬间被禁止,使得PWM波形转换时不同步,可能会引起被控设备的振动,所以应尽量避免使用异步更新。

(3)PWM脉冲输出设置

下面以Q0.0为脉冲输出端,介绍PWM脉冲输出的设置步骤。

①使用初始化脉冲触点SM0.1,调用PWM脉冲,输出初始化操作子程序。这个结构可以使系统在后续的扫描过程中,不再调用这个子程序,从而减少了扫描时间,且程序更为结构化。

②在初始化子程序中,将16#D3(2#11010011)写入SMB67控制字节中。设置内容为脉冲输出允许;选择PWM方式;使用同步更新;选择以微秒为增量单位;可以更新脉冲宽度和周期。

③向SMW68中写入希望的周期值。

④向SMD70中写入希望的脉冲宽度。

⑤执行PLS指令,开始输出脉冲。

⑥若要在后续程序运行中修改脉冲宽度,则向SMB67中写入16#D2(2#11010010),即可以改变脉冲宽度,但不允许改变周期值。再次执行PLS指令。

在上面初始化子程序的基础上,若要改变脉冲宽度,则执行以下步骤:

①调用一个子程序,把所需脉冲宽度写入SMD70中。(www.xing528.com)

②执行PLS指令。

7.PTO的使用

PTO是可以指定脉冲数和周期的占空比为50%的高速脉冲串的输出。状态字节中的最高位(空闲位)用来指示脉冲串输出是否完成。可在脉冲串完成时启动中断程序,若使用多段操作,则在包络表完成时启动中断程序。

(1)周期和脉冲数

周期范围从50~65,535μs或从2~65,535ms,为16位无符号数,时基有μs和ms两种,通过控制字节的第三位选择。注意:

如果周期小于2个时间单位,则周期的默认值为2个时间单位。

周期设定为奇数微秒或毫秒(例如75ms),会引起波形失真。

脉冲计数范围从1~4,294,967,295,为32位无符号数,如设定脉冲计数为0,则系统默认脉冲计数值为1。

(2)PTO的种类及特点

PTO功能可输出多个脉冲串,现用脉冲串输出完成时,新的脉冲串输出立即开始。这样就保证了输出脉冲串的连续性。PTO功能允许多个脉冲串排队,从而形成流水线。流水线分为两种:单段流水线和多段流水线。

单段流水线是指流水线中每次只能存储一个脉冲串的控制参数,初始PTO段一旦启动,必须按照对第二个波形的要求立即刷新SM,并再次执行PLS指令,第一个脉冲串完成,第二个波形输出立即开始,重复这一步骤可以实现多个脉冲串的输出。

单段流水线中的各段脉冲串可以采用不同的时间基准,但有可能造脉冲串之间的不平稳过渡。输出多个高速脉冲时,编程复杂。

多段流水线是指在变量存储区V建立一个包络表。包络表存放每个脉冲串的参数,执行PLS指令时,S7-200 PLC自动按包络表中的顺序及参数进行脉冲串输出。包络表中每段脉冲串的参数占用8个字节,由一个16bit周期值(2B)、一个16bit周期增量值△(2B)和一个32bit脉冲计数值(4B)组成。包络表的格式见表5-15。

表5-15 包络表的格式

978-7-111-49003-6-Chapter05-21.jpg

注意:周期增量值“△”为整数微秒或毫秒。

多段流水线的特点是编程简单,能够通过指定脉冲的数量自动增加或减少周期,周期增量值△为正值会增加周期,周期增量值△为负值会减少周期,若△为零,则周期不变。在包络表中,所有脉冲串必须采用同一时基,在多段流水线执行时,包络表的各段参数不能改变。多段流水线常用于步进电动机的控制。

(3)多段流水线PTO初始化和操作步骤

用一个子程序实现PTO初始化,首次扫描(SM0.1)时从主程序调用初始化子程序,执行初始化操作。以后的扫描不再调用该子程序,这样减少扫描时间,程序结构更好。

初始化操作步骤如下:

①首次扫描(SM0.1)时,将输出Q0.0或Q0.1复位(置0),并调用完成初始化操作的子程序。

②在初始化子程序中,根据控制要求设置控制字,并写入SMB67或SMB77特殊存储器。如写入16#A0(选择微秒递增)或16#A8(选择毫秒递增),两个数值表示允许PTO功能、选择PTO操作、选择多段操作以及选择时基(微秒或毫秒)。

③将包络表的首地址(16位)写入在SMW168(或SMW178)。

④在变量存储器V中,写入包络表的各参数值。一定要在包络表的起始字节中写入段数。在变量存储器V中建立包络表的过程也可以在一个子程序中完成,在此只需调用设置包络表的子程序。

⑤设置中断事件并全局开中断。如果想在PTO完成后,立即执行相关功能,则需设置中断,将脉冲串完成事件(中断事件号19)连接一中断程序。

⑥执行PLS指令,使S7-200为PTO/PWM发生器编程,高速脉冲串由Q0.0或Q0.1输出。

⑦退出子程序。

8.高速脉冲输出指令应用举例

如图5-5所示为使用多段管线PTO方式控制直流伺服电动机进行精确定位的控制系统。控制中遵循图5-5中所画运行轨迹,并可以实现任意时刻停止直流伺服电动机。梯形图如图5-6所示。

978-7-111-49003-6-Chapter05-22.jpg

图5-5 直流伺服电动机控制系统

编程前首先选择高速脉冲发生器为Q0.0,并确定PTO为3段流水线。设置控制字节SMB67为16#A0表示允许PTO功能、选择PTO操作、选择多段操作以及选择时基为微秒,不允许更新周期和脉冲数。建立3段的包络表,并将包络表的首地址装入SMW168。PTO完成调用中断程序,使Q1.0接通。PTO完成的中断事件号为19。用中断调用指令ATCH将中断事件19与中断程序INT-0连接,并全局开中断。执行PLS指令,退出子程序。本例题的主程序、初始化子程序和中断程序如图5-6所示。

9.PTO指令应用实例

PWM应用举例。设计程序,从PLC的Q0.0输出高速脉冲。该串脉冲脉宽的初始值为0.1s,周期固定为1s,其脉宽每周期递增0.1s,当脉宽达到设定的0.9s时,脉宽改为每周期递减0.1s,直到脉宽减为0。以上过程重复执行。

分析:因为每个周期都有操作,所以须把Q0.0接到I0.0,采用输入中断的方法完成控制任务,并且编写两个中断程序,一个中断程序实现脉宽递增,一个中断程序实现脉宽递减,并设置标志位,在初始化操作时,使其置位,执行脉宽递增中断程序;当脉宽达到0.9s时,使其复位,执行脉宽递减中断程序。在子程序中完成PWM的初始化操作,选用输出端为Q0.0,控制字节为SMB67,控制字节设定为16#DA(允许PWM输出,Q0.0为PWM方式,同步更新,时基为毫秒,允许更新脉宽,不允许更新周期)。程序如图5-7所示。

978-7-111-49003-6-Chapter05-23.jpg

图5-6 梯形图

978-7-111-49003-6-Chapter05-24.jpg

图5-7 程序

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈