分享

S7

 追Ri 2016-09-25
    在S7- 200系列PLC中。只有晶体管输出类型的CPU的两个输出点Q0.0和Q0.1可作为PTO/PWM输出使用。PTO可以输出一串脉冲(占空比50%),用户可以控制脉冲的周期和个数。PWM可以输出连续的、占空比可调的脉冲串,用户可以控制脉冲的周期和脉宽。
    PTO/PWM发生器与过程映像寄存器共用Q0.0和Q0.1。当在Q0.0或Q0.1上激活PTO或PWM功能时,PTO/PWM发生器对输出拥有控制权,同时普通输出点功能被禁止。输出波形不受过程映像区状态、输出点强制值或者立即输出指令执行的影响。当不使用PTO/PWM发生器功能时,对输出点的控制权交回到过程映像寄存器。
    1.高速脉冲输出指令形式
    高速脉冲输出指令的梯形图指令盒形式如图4-55所示,指令格式为:PLS Q0.X
高速脉冲输出指令的梯形图指令盒形式
图4-55 高速脉冲输出指令的梯形图指令盒形式
    当EN端有效时,指令检测各相关特殊功能寄存器的状态,根据定义的控制字节执行高速脉冲输出操作。
    脉冲输出指令(PLS)用于在高速输出(Q0.0和Q0.1)上控制脉冲串输出(PTO)和脉宽调制(PWM)功能。
    S7-200 PLC有两个PTO/PWM发生器,它们可以产生一个高速脉冲串或者一个脉宽调制波形。
    2.与高速脉冲输出指令有关的特殊功能寄存器
    在S7-200系列PLC中,每路PTO/PWM发生器都对应一定数量的特殊功能寄存器,这些寄存器包括控制字节寄存器、状态字节寄存器和参数数值寄存器,用以控制高速脉冲的输出形式及反映输出状态和参数,各寄存器分配如表4-16所示。
    表4-16    相关寄存器表
相关寄存器表
    (1)状态字节。每个高速脉冲输出都有一个状态字节,程序运行时根据运行状况自动使某些位置位,可以通过程序来读相关位的状态,用以作为判断条件实现相应的操作。状态字节中各状态位的功能如表4-17所示。
表4-17    状态字节表
状态字节表
    (2)控制字节。每个高速脉冲输出都对应一个控制字节,通过对控制字节中指定位的编程,可以根据操作要求设置字节中各控制位,如脉冲输出允许、PTO/PWM模式选择、单段/多段选择、更新方式、时间基准、允许更新等。控制字节中各控制位的功能如表4-18所示。
    3.高速脉冲串输出PTO
    (1)周期和脉冲数。
    1)周期:单位可以是微秒(μs)或毫秒(ms);为16位无符号数据,周期变化范围是50~65535μs或2~65535ms,通常应设定周期值为偶数,若设置为奇数,则会引起输出波形占空比的轻微失真。如果编程时设定周期单位小于2,系统默认按2进行设置。
    2)脉冲数:用双字长无符号数表示,脉冲数取值范围在1~4294967295之间。如果编程时指定脉冲数为0,则系统默认脉冲数为1个。
    表4-18    控制字节中各控制位的功能
控制字节中各控制位的功能
    (2) PTO的种类。PTO方式中,如果要输出多个脉冲串,允许脉冲串进行排队,形成管线,当前输出的脉冲串完成之后,立即输出新脉冲串,这保证了脉冲串顺序输出的连续性。
    1)单段管线:在单段管线模式,需要为下一个脉冲串更新特殊寄存器。一旦启动了起始PTO段,就必须按照第二个波形的要求改变特殊寄存器.并再次执行PLS指令。第二个脉冲串的属性在管线中一直保持到第一个脉冲串发送完成。在管线中一次只能存储一段脉冲串的属性。当第一个脉冲串发送完成时,接着输出第二个波形,此时管线可以用于下一个新的脉冲串。
    单段管线的各段脉冲串可以采用不同的时间基准,但有可能造成脉冲串之间的不平稳过渡。输出多个高速脉冲串时,编程复杂,所以一般选用多段管线模式。
    2)多段管线:在多段管线模式,CPU自动从V存储器区的包络表中读出每个脉冲串的特性。在该模式下,仅使用特殊存储器区的控制字节和状态字节。选择多段操作,必须装入包络表在V存储器中的起始地址偏移量(SMW168或SMW178)。时间基准可以选择微秒或者毫秒,但是,在包络表中的所有周期值必须使用同一个时间基准,而且在包络正在运行时不能改变。执行PLS指令来启动多段操作。
包络表由包络段数和各段构成。每段记录的长度为8个字节,由16位周期值、16位周期增量值和32位脉冲计数值组成。以包络3段的包络表为例,包络表的结构如表4-19所示。
    可以通过编程的方式使脉冲的周期自动增减。在周期增量处输入一个正值将增加周期;输入一个负值将减少周期;输入0将不改变周期。
    当PTO包络执行时,当前启动的段的编号保存在SMB166(或SMB176)。
    (3)中断事件类型。高速脉冲串输出可以采用中断方式进行控制,各种型号的PLC可用的高速脉冲串输出的中断事件有两个,如表4-20所示。
    表4-19    包络表格式
包络表格式
表4-20    中断操作
中断操作
    (4) PTO的使用。使用高速脉冲串输出时,要按以下步骤进行:确定脉冲发生器及工作模式,设置控制字节,写入周期值、周期增量值和脉冲数,装入包络的首地址,设置中断事件并全局开中断,执行PLS指令。
    4.宽度可调脉冲输出PWM
    PWM产生一个占空比变化周期固定的脉冲输出,可以以微秒或者毫秒为单位指定其周期和脉冲宽度。
    (1)周期和脉冲宽度。
    1)周期:10~65535μs或者2~65535ms。
    2)脉宽:0~65535μs或者0~65535ms。
    (2)更新方式。
    1)同步更新:如果不需要改变时间基准,就可以进行同步更新。利用同步更新,波形特性的变化发生在周期边沿,提供平滑转换。
    2)异步更新:PWM的典型操作是当周期时间保持常数时变化脉冲宽度,所以,不需要改变时间基准。但是,如果需要改变PTO/PWM发生器的时间基准,就要使用异步更新。异步更新会造成PTO/PWM功能被瞬时禁止,与PWM波形不同步。这会引起被控设备的振动。由于这个原因,建议采用PWM同步更新。选择一个适合于所有周期时间的时间基准。
    控制字节中的PWM更新方式位(SM67.4或SM77.4)用于指定更新方式。当PLS指令执行时变化生效。
    如果改变了时间基准,会产生一个异步更新,而与PWM更新方式位的状态无关。
    PTO/PWM发生器的多段管线功能在许多应用中非常有用,尤其在步进电动机控制中。步进电动机在启动和停止时有一个加速及减速过程,且加速度越小则冲击越小,动作越平稳。所以,步进电动机工作时一般要经历这样一个变化过程:加速一恒速(高速)一减速一恒速(低速)一停止。步进电动机转速与脉冲频率成正比,所以输入步进电动机的脉冲频率也要经过一个类似变化过程。结合下面的例子来进一步分析和说明。
    【例4-22】某步进电动机转动过程中,要从A点加速到B点后恒速运行,又从C点开始减速到D点,完成这一过程时用指示灯显示。电动机的转动受脉冲控制,A点和D点的脉冲频率为2kHz,B点和C点的频率为10kHz,加速过程的脉冲数为400个,恒速转动的脉冲数为4000个,减速过程脉冲数为200个。
    工作过程如图4-56所示。
步进电动机工作过程
图4-56 步进电动机工作过程
    (1)分析。
    1)确定脉冲发生器及工作模式,选择Q0.0输出,选择3段管式PTO的输出形式。设置控制字节,选择的时基单位为μs,向控制字节写入控制字。
    2)确认并写入周期值、周期增量值和脉冲数,由每段的初始频率可得初始周期,某一段每个脉冲周期增量值△用下式确定:周期增量值△=(该段结束时的周期时间-该段初始的周期时间)/该段的脉冲数。用该式,计算出1段的周期增量值△为-2μs,2段的周期增量值△为0,3段的周期增量值△为1μs。
    3)装入包络表首地址,假设包络表位于从VB400开始的V存储区中,这里选择的首地址为VB400。
    4)中断调用,设置中断事件并全局开中断。如果想在PTO完成后,立即执行相关功能,则需设置中断,将脉冲串完成事件(中断事件号19)连接一中断程序。
    5)执行PLS指令,使S7-200为PTO发生器编程,高速脉冲串由Q0.0输出。
    (2)程序实现。本控制系统主程序如图4-57所示。初始化子程序SBR一1如图4-58所示。包络表子程序SBR_0如图4-59所示。中断程序INT_0如图4-60所示。
主程序
图4-57 主程序
初始化子程序SBR_1
图4-58 初始化子程序SBR_1
包络表子程序SBR_0(一)
图4-59 包络表子程序SBR_0(一)
包络表子程序SBR_0(二)
图4-59 包络表子程序SBR_0(二)
中断程序INT_0
图4-60 中断程序INT_0
    【例4-23】要求采用同步更新方式在Q0.1上输出脉冲宽度调制波,允许脉宽由10%到50%变化。
设计的主程序如图4-61 (a)所示,初始化子程序如图4-61 (b)所示,脉宽设定值改变的子程序如图4-61 (c)所示。
PWM应用
    图4-61 PWM应用
(a)主程序;(b)初始化子程序;(c)脉宽设定值改变的子程序

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多