输出脉冲,中、大型机使用位置控制或运动控制单元。这些单元都有自己的CPU、内存及输出、输入点。通过与PLC CPU交换数据,或预先设定,可确定用哪个输出点发送脉冲,送多少脉冲,以及脉冲的频率多大等。确定之后,无须PLC CPU干预,可自行工作。所以这类PLC就没有自身的脉冲输出口,也没有脉冲输出指令。
有的小型机也有位置控制单元,用它时,其特点与中、大型机相同。但小型机即使不配置位置控制单元,仍都有输出脉冲的资源。
1.用内置脉冲输出点输出脉冲
小型机多都内置有脉冲输出资源。一般有两个输出点(如CPM2A为10.00及10.01、S7-200为Q0.0及Q0.1、FX2N为Y000及Y001),并具有脉冲输出指令。使用这些指令,可按要求产生脉冲输出。一旦这些点指定用于脉冲输出,将不能再用作正常输出。
新的机型脉冲输出点更多些。如欧姆龙的CP1H的Y型机则有4个输出口。此外,还有2个可调制脉宽输出口。图4-27所示即为它的脉冲输出点分布。
图4-27 CP1H Y型机脉冲输出点分布
由于脉冲输出频率都较高,所以,应选用半导体输出的PLC。否则将影响PLC的工作寿命。
脉冲输出有两种格式:脉冲串如图4-28a所示,连续地输出若干个规定频率的,ON、OFF等宽的脉冲;调制脉冲如图4-28b所示,连续输出规定周期的,ON的宽度变化的脉冲。前者多用于运动控制,而后者多用于模拟量控制。
图4-28 图脉冲串及调制脉冲
表4-14为CPM2A、S7-200及FX2N的脉冲输出指令。这些指令大体两类:脉冲输出及脉宽调制输出。
表4-14 脉冲输出指令
CPM2A机用PULS指令设定输出脉冲数,用SPED指令设定输出脉冲频率,并启动输出;FX2N机用PLSY指令同时设定输出脉冲数及设定输出脉冲频率,并可启动脉冲输出。
为了运动平稳,在脉冲输出开始时,其频率可逐渐增(加速),在脉冲输出快结束时,其频率可逐渐减(减速)。这对CPM2A,可使用的输出ACC指令,对S7-200可使用多段脉冲输出,对FX2N,可使用PLSR指令。这些指令的操作数将选定输出口及上述数据。
输出脉宽调制脉冲,CPM2A、FX2N用的都称PWM的指令。而S7-200,无论哪种脉冲输出,均用一个PLS指令。而具体是什么输出及有关参数,用特殊存储器控制。
(1)CPM1A机脉冲指令。
1)PULS指令
有3个操作数。
第一个(P):用以指定输出口,000指定01000点输出,010指定01001点输出。
第二个(C):控制字,000相对脉冲,用于相对坐标系统;001绝对脉冲,用于绝对坐标系统。
第三个(N):用于独立模式时,设置要输出的脉冲数,占两个字,8位BCD码。N存4个低数位数,N+1存4个高数位数。最高位(N+1字的第15位)为符号位。最高位为1时为负数。负数用于绝对坐标系统。
本指令为扩展指令,可微分执行。而且要想按指定数输出脉冲,只能用微分执行。执行本指令不发送脉冲。它与SPED等指令配合使用后,才向外发送脉冲。
它有3个操作数。
第一个(P):同PILS指令。
第二个(M):输出模式,000独立模式,001连续模式。
第三个(F):目标频率,用BCD码,单位10Hz,可在1~1000间设定,最高为10kHz。如设为0,指定口脉冲输出停止。
本指令可微分执行。在相对坐标系统下,当设为独立模式时,在执行本指令之前,须先执行PULS指令,才能发送脉冲。而且在这种模式下,即使微分执行,也要到PULS指令规定脉冲数(如这时PULS指令已不再执行)发送完毕为止。如这时PULS指令仍继续执行,则将不停的发送脉冲。直到执行设定频率为0的,新的SPED指令为止,或PULS指令停止执行,且从这时开始把指定数输出脉冲发送完为止。
当设为连续模式时,可不管PULS指令是否执行,都发送脉冲。而且在这种模式下,即使微分执行,也将不停的发送脉冲。直到执行设定频率为0的,新的SPED指令为止。
3)ACC指令。
它有3个操作数:
第一个(P):指定口,设为000,指定为单相带梯形增减速的脉冲输出。
第二个(M):输出模式(以下CW为正时针,CCW为逆时针):
000独立模式,而且增减两路脉冲输出;
002独立模式,而且脉冲与方向控制两路输出;
010 CW连续模式,而且增减两路脉冲输出;
011 CCW连续模式,而且增减两路脉冲输出;
012 CW连续模式,而且脉冲与方向控制两路输出;
013 CCW连续模式,而且脉冲与方向控制两路输出。
第三个(C):数据字,占三个字:
C用以设定脉冲加速率;
C+1用以设定目标频率;
C+2用以设定脉冲减速率。
这个数据格式必须是BCD码。
本指令可微分执行。
当设为独立模式时,在执行本指令之前,须先执行PULS指令,才能发送脉冲。而且在这种模式下,即使微分执行,也要到PULS指令规定脉冲数(如这时PULS指令已不再执行)发送完毕为止。如这时PULS指令继续执行,则将不停地发送脉冲。直到执行设定目标频率为0的,新的ACC指令为止,或PULS指令停止执行,这时开始把指定数输出脉冲发送完为止。与SPED指令不同的是,当接近脉冲发送完成时,发送频率要按设定减速率减小。而且,当频率减小到0时,正好规定的脉冲数发送完毕。这些都是指令自动完成,编程时,无须另作计算。
当设为连续模式时,可不管PULS指令是否执行,都发送脉冲。而且在这种模式下,即使微分执行,也将先加速发送脉冲,到目标频率时将不停地发送脉冲。直到执行目标频率设定为0的,新的ACC指令为止,或执行带C=003的INI(中断)指令为止。这种模式下事实上减速率的设定是无效的。
4)PWM指令。
它有3个操作数。
第一个(P):脉冲输出口地址,为000(用口1,输出点010.00)或010(用口2,输出点010.01),两个口可同时独立工作,互不影响。
第二个(F):指定脉冲频率,必须为BCD码,在0001~9999(相当于0.1~999.9Hz)之间任选
第三个(D):占空比,必须为BCD码,在0001~0100(相当于1%~100%)之间任选,容许使用的数据区有IO、AR、DM、HR、TC、LR或直接用常数。
本指令为扩展指令,使用前要作指令功能号设定,并要下载给PLC。对有的PLC,在下载前,还要把PLC设置成容许扩展指令功能码下载模式。如CPM2A,其DM6602的高字节应设为1,否则无法下载。容许扩展指令功能码下载的设定,也在CXP软件的设定窗口的“启动”表单上,选“扩展指令”为“用户设定”实行。当然,这后者实质上与前者是相同的。也是改DM6602的值。只是它必须下载给PLC后才改。
提示:DM6602改后,PLC还要断电,并重新上电后,这个设定才能生效。
另外,在使用这指令前,还必须在DM 6643的最高数位(digit)设为1(对于用口1),或在DM 6644的最高数位(digit)设为1(对于用口2)。如果不这么设,这两个口输出的将是未调制的脉冲。
本指令执行一次将重复输出相应脉冲。直到新的占空比的PWM指令执行,转而去输出新的占空比的脉冲。或到执行带参数C=3的中断指令(INT),则停止输出这个脉冲。所以本指令用微分执行也就可以了。
提示:以上几个有关脉冲输出指令所使用的数据格式如果不是BCD码,这些指令将不能执行。到底是否执行了这些指令,可观测脉冲输出口。如指示灯闪烁,则发送脉冲,指令执行;否则指令不执行,不发送脉冲。
提示:欧姆龙新型机脉冲输出点及处理指令更多,功能也更强。具体可参阅有关说明书。
(2)S-200 PLS指令。
这里,EN为指令执行条件,ON本指令执行,OFF不执行;
ENO本指令执行结果,正确执行,输出ON,否则OFF;
Q0.X为输出口选择,0为Q0.0输出点,1为Q0.1输出点。
不管输出标准脉冲(PTO),还是脉宽调制脉冲输出(PWM)均使用本指令。有关具体功能的选择由特殊存储器确定。SMB66~SMB75设定Q0.0,而SMB76~SMB85设定Q0.1。具体情况见表4-15。而表4-16为它的若干设定举例。
表4-15 脉冲输出口设定
(续)
表4-16 脉冲输出口设定举例
从表4-16可知,PTO操作可为有单段,也可多段。单段,用于一种运动速度(输出频率固定)的位移;而多段,则用变速位移。PWM的更新方法建议选用同步,即脉冲宽度变化时,脉冲频率不变。也可使脉冲宽度变化时,脉冲频率也变,但不建议选用。
多段PTO的参数设定是:
SM168、178指定的相对于VB0的偏移第1地址,指定段数。如SM168赋值为500,则VB500的值,决定了PTO的段数。段数可在1~255间选择。
SM168、178指定的相对于VB0的偏移第2地址,如SM168赋值为500,则VW501的值,决定了PTO的第1段的初始脉冲周期。初始脉冲周期可在2~65535间选择。
SM168、178指定的相对于VB0的偏移第3地址,如SM168赋值为500,则VW503的值,决定了PTO的第1段的脉冲周期增加数(前后两脉冲间的周期变化),此数可正(加速),可负(减速)。如果为0,则周期不变。脉冲周期增加数可在-32768~32767间选择。
SM168、178指定的相对于VB0的偏移第4地址,如SM168赋值为500,则VD505的值,决定了PTO的第1段发送的脉冲数。发送的脉冲数可在1~4294967295间选择。
往后,如SM168赋值为500,则VW509、VW511、VD513为第2段参数,其余类推。
在PTO多段输出时,要知道现处于那个段,可读SMB166、176的现值。因为其中记载着正运行中的段号。
提示:PLS是否执行了“执行”,可观测脉冲输出口。如指示灯闪烁,则发送脉冲,指令执行;否则指令不执行,不发送脉冲。
(3)FX2N脉冲指令。
1)PLSY指令。
它有3个操作数。
第一个(S1):指定频率,数值受硬件性能限制,可随时改变。
第二个(S2):指定脉冲数,其最大值,受存储器容量限制,如设为0,将连续输出脉冲。
第三个(D):脉冲输出口地址,Y000或Y001,两个口可同时独立工作,互不影响。此指令可16位或32使用,后者,可用32位二进制数设定脉冲数。
2)PLSR指令。
它有4个操作数。
第一个(S1):指定最高输出频率,可随时改变,数值受硬件性能限制。
第二个(S2):指定总输出脉冲数,其最小值,要确保正常加、减速,其最大值,受存储器容量限制。
第三个(S3):加、减速时间,单位毫秒。
第四个(D):指定脉冲输出口地址,Y000或Y001,两个口可同时独立工作,互不影响(D)。
此指令可16位或32使用,后者可用32位二进制数设定脉冲数。(www.daowen.com)
提示:FX2N的最小脉冲频率不能为0,具体数值可用下式计算:
执行上述两指令状态,可用有关特殊寄存器监视。具体见表4-17。
表4-17 监视用特殊寄存器
注:各个数据寄存器内容可以利用“MOV K0 D81□□”执行清除。
提示:对FX2N机脉冲指令的使用是受限制的。如对同一输出口,只能使用一次。如多次使用,先使用的有效。
3)PWM指令。
其格式为
它有3个操作数。
第一个(S1):指定脉冲幅宽,从0~32767,可随时改变;
第二个(S2):指定脉冲周期,从1~32767,S2必须大或等于S1;
第三个(D):脉冲输出口地址,Y000或Y001,两个口可同时独立工作,互不影响(D)。此指令可16位或32位使用,后者可用32位二进制数设定脉冲数。
提示:PLSY、PLSR及PWM指令是否执行了“执行”,可观测脉冲输出口。如指示灯闪烁,则发送脉冲,指令执行;否则指令不执行,不发送脉冲。还可用特殊数据寄存器(见表4-17)读出已发送的脉冲数。从中也可判断是否已执行。
提示:不管哪个机型,脉冲输出都是中断执行,不受扫描周期影响。有关脉冲输出指令使用实例见本章第4、5节。
(4)LM机脉冲输出。它有两个输出点(%QX0.0及%QX0.1),并具有脉冲输出功能块。使用它,可按要求产生脉冲输出。一旦这些点被指定用于脉冲输出,将不能再用作正常输出。
由于脉冲输出频率都较高,所以应选用半导体输出的PLC,即和利时LM机的LM3106A、3108等。脉冲输出指令大体有两类:脉冲链(PTO)输出及脉宽调制(PWM)输出。
1)脉冲链(PTO)输出。有如下三种:
(a)为有限长脉冲链等速输出。产生脉冲链等速输出要使用功能块PTOPWM0。它的梯形图格式如图4-29所示。有关参数说明见表4-18。
图4-29 高速脉冲输出功能块PTOPWM0
提示:和利时LM机这种执行指令的方法实现脉冲链输出,比其他有的PLC用设定实现要方便得多,但使用前必须加载HeolysysPLCEXPT.Lib库文件。
表4-18 高速脉冲输出功能块PTOPWM0有关参数说明
提示:还有PTOPWM1功能块,只是它的输出点为%QX0.3,只有模式0、1,还可以用于LM3104机。
图4-30所示的为一例PTOPWM0功能块使用程序。它的变量声明如下:
图4-30 PTOPWM0功能块使用程序
因为这里选择Mode=0,所以输出PTO脉冲信号,占空比Duty无效。输出通道Q1.1将发送PTO脉冲信号,直到等于设定发送的PTO脉冲数PNumber为止。
设定发送的PTO脉冲数PNumber为2000,脉冲的周期Period=5000μs=5ms,即信号的频率为200Hz。
当EN复位时,发送停止,Q等于0,已经发送的脉冲个数保持当前值。当EN置位并保持时,输出通道Q1.1开始发送有限长PTO脉冲信号,Q等于1并保持。当发送完设定的2000个脉冲后,发送停止,Q等于0。
(b)有限长脉冲链变速输出。产生有限长脉冲链变速输出,要使用功能块PTOPWM0RUN。它的梯形图格式如图4-31所示。有关参数说明见表4-19。
图4-31 变速脉冲输出功能块PTOPWM0Run
提示:和利时LM机这种执行指令的方法实现脉冲链输出,比其他有的PLC用设定实现要方便得多,但使用前必须加载HeolysysPLCEXPTRUN.Lib库文件。
表4-19 变速脉冲输出功能块PTOPWM0Run有关参数说明
(续)
提示:还有PTOPWM1RUN功能块,只是它的输出点为%QX0.3,只有模式0、1,还可用于LM3104机。
当StartEndFre<RunFre时,起始阶段加速运行。在PTO模式下,按加速-匀速-减速的变化规律运行,其中加速阶段和减速阶段的变化规律是对称的。在PWM模式下,按加速-匀速的变化规律运行,无减速阶段。
当StartEndFre>RunFre时,起始阶段减速运行。在PTO和PWM两种模式下,均按减速-匀速的变化规律运行,无加速阶段。
当StartEndFre=RunFre时,AccelFre和AccelSwich无效,匀速运行,无加速阶段和减速阶段。
图4-32所示为一例PTOPWM0功能块使用程序。它的变量声明如下:
图4-32 PTOPWM0功能块使用程序
这里选择Mode=0,所以输出PTO脉冲信号,占空比Duty无效。输出通道Q1.1将发送PTO脉冲信号,直到等于设定发送的PTO脉冲数PNumber为止。
设定发送的PTO脉冲数PNumber为20000,脉冲的起始频率StartEndFre为5Hz,运行频率RunFre为100Hz,频率改变量为5Hz,并设定频率每250ms改变一次。
当EN复位时,发送停止,State等于0,已经发送的脉冲个数保持当前值。当EN置位并保持时,输出通道Q1.1开始发送有限长PTO脉冲信号,State等于1并保持,PoutNumber显示当前已经发送的PTO脉冲数,AccelNumber显示0。此后开始加速运行,每经过250ms,脉冲频率增加5Hz,直到脉冲频率增加到100Hz为止,AccelNumber显示加速阶段发送的脉冲数。然后开始以100Hz匀速运行。因为选择Mode=0,所以当剩余待发送的脉冲数等于加速阶段发送的脉冲数时,开始减速运行,直到发送完20000个脉冲后,停止发送,Q等于0。在下一个扫描周期到达时,AccelNumber复位清零,PoutNumber保持,直到EN再次到达上升沿为止。
(c)有限长脉冲链分段变速输出。
图4-33 分段变速脉冲输出功能块PTOCtrl0
产生有限长脉冲链分段变速输出,要使用功能块PTOCtrl0。它的梯形图格式如图4-33所示。有关参数说明见表4-20。
表4-20 分段变速脉冲输出功能块PTOCtrl0有关参数说明
分段变速脉冲输出功能块PTOCtrl0提供了指定脉冲个数的PTO脉冲信号的发生功能。PTO脉冲信号周期的取值范围是20~335000μs,脉冲数的取值范围是0~4294967295。如果周期取值为奇数,则占空比会有少许失真。
分段变速脉冲输出信号的相关参数可以在M区的段表中定义。M区段表的定义有两种方法,一种是直接给M区的地址赋值;另一种是采用HOLLYSYSPLCPTOCtrl.lib库中所包含的PTOCtrlSet结构来定义一个结构数组,然后再对此结构数组进行赋值。
它的变量要用到结构。其声明如下:
图4-34所示为一例PTOCtrl0功能块使用程序。先要采用PTOCtrlSet结构来定义M区段表。其步骤是,首先,定义一个一维数组,其长度就是分段变速脉冲输出信号的分段数量。然后,再指定其数据类型为PTOCtrlSet结构类型。
图4-34 PTOCtrl0功能块使用程序
在本例中,分段变速脉冲输出的参数见表4-21。该表中共有5段,每段包含32位的周期起始值P(DWORD类型)、16位的周期增量值I(INT类型)和32位的脉冲数量值N(DWORD类型)等。每段参数占据80个位,即10个字节。周期的修改是在每个脉冲上进行的。
表4-21 分段变速脉冲输出参数
在本例中,分段变速脉冲输出信号的输出过程为
第1段:系统从M区段表的首地址开始,读入段表中第1段的相关参数,输出通道Q1.1以50000μs的脉宽开始发送脉冲,每个脉冲的脉宽依次减少100μs,即为加速运行。发送完100个脉冲后,第1段的脉冲发送完毕,此时脉冲的脉宽为40000μs。
第2段:接着以40000μs的脉宽发送脉冲,每个脉冲的脉宽依次减少200μs,即为加速运行。发送完100个脉冲后,第2段的脉冲发送完毕,此时脉冲的脉宽为20000μs。
第3段:接着以20000μs的脉宽发送脉冲,此时脉冲的增量是0,所以此段发送脉冲的脉宽均为20000μs,即为匀速运行。发送完600个脉冲后,第3段的脉冲发送完毕,此时脉冲的脉宽仍然为20000μs。
第4段:接着以20000μs的脉宽发送脉冲,每个脉冲的脉宽依次增加500μs,即为减速运行。发送完100个脉冲后,第4段的脉冲发送完毕,此时脉冲的脉宽为70000μs。
第5段:接着以70000μs的脉宽发送脉冲,每个脉冲的脉宽依次增加300μs,即为减速运行。发送完100个脉冲后,第5段的脉冲发送完毕,此时脉冲的脉宽为100000μs。脉冲发送结束。
此外,该程序还使用有其他变量。其声明如下:
提示:和利时LM机这种执行指令的方法实现脉冲链输出,比其他有的PLC用设定实现要方便得多。但使用前必须加载HeolysysPLCEXPTCtrl.Lib库文件。
上述程序,当EN复位时,发送停止,所有变量复位。当EN置位并保持时,按照表9-8所设定的分段变速脉冲输出参数,在Q1.1通道,发送有限长PTO脉冲信号,State等于1并保持,SegNow显示当前运行到的段号,PoutNum显示已经发送的脉冲数。
2)脉宽调制(PWM)输出。
(a)无限长等速PWM脉冲输出。产生无限长等速PWM脉冲输出也要使用功能块PTOPWM0。图4-35所示为它的应用实例。所用变量声明如下:
这里选择Mode=1,所以输出PWM脉冲信号。PNumber无效。当EN复位时,发送停止,Q等于0。当EN置位并保持时,输出通道Q1.1开始发送无限长PWM脉冲信号,Q等于1并保持。PWM脉冲信号的占空比设定为Duty=20,脉冲的周期Period=5000μs=5ms,即信号的频率为200Hz。
图4-35 产生无限长等速PWM脉冲输出程序实例
(b)无限长PWM脉冲变速输出。产生无限长PWM脉冲变速输出也要使用功能块PTOPWM0Run。图4-36所示为它的应用实例。所用变量声明如下:
图4-36 产生无限长变速PWM脉冲输出程序实例
这里选择Mode=1,所以输出PWM脉冲信号,PNumber无效。PWM脉冲信号的占空比设定为Duty=20,脉冲的起始频率StartEndFre为3Hz,运行频率RunFre为10Hz,频率改变量为3Hz,并设定频率每2s改变一次。
当EN复位时,发送停止,State等于0,已经发送的脉冲个数保持当前值。当EN置位并保持时,输出通道Q1.1开始发送无限长PWM脉冲信号,State等于1并保持,PoutNumber显示当前已经发送的PTO脉冲数,AccelNumber显示0。此后开始加速运行,每经过2s,脉冲频率增加3Hz,直到脉冲频率增加到10Hz为止,AccelNumber显示加速阶段发送的脉冲数。然后开始以10Hz匀速运行,直到EN等于0为止。
2.用脉冲输出单元、模块或内插板输出脉冲
脉冲输出也可用位置、运动控制模块,或运动控制CPU。这些单元都有自己的CPU、内存及输出、输入点。通过与PLC的CPU交换数据,或预先设定,可确定用哪个输出点发送脉冲,送多少脉冲,以及脉冲的频率多大等。确定之后,无需PLC的CPU干预,激活后可自行工作。
这些单元、模块可输出脉冲串(链),有的还可输出脉宽可调制的脉冲。由于PLC的进步,这些单元、模块也还在与日俱增。
有的小型机也有位置控制单元,用它时,其特点与中、大型机相同。但小型机即使不配置位置控制单元,仍都有输出脉冲的资源。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。