您好,欢迎来到光洋电子(无锡)有限公司官网!

应用案例

当前位置:首页 - 资料中心 - 应用案例

ASCII-BASIC 模块在高速络筒计PLC控制中的应用

2018-06-26 4101

[摘要]在国产高速自动络筒机控制中首次采用PLC的逻辑控制和特殊模块高级语言的大量数据运算功能结合,成功地实现各种络绕控制。    


前言:

近年来,纺织机械的发展远远落后于纺织业的要求,1994年我国国外纺机进口26.2亿美元,而国产纺机在国内市场的占有率只占四分之一。国内的纺机厂需要在引进技术并达到进口机型质量水平的基础上,逐步实现国产化以替代进口。"八五"引进技术重中之重的自动络筒机就是一例。    
   


系统结构:     

p1.gif

95年下半年我们在分析国外高速自动络筒机的基础上,成功开发了一种先进的自动高速络筒机,实现了进口设备的全部功能,使原来功能单一的络筒机具有了多种络绕方式以适应不同的原料品种,并且首次在纺机的PLC控制中采用了协处理器型(Co-processer)BASIC语言系统和模块。本文着重介绍ASCII-BASIC模块及其语言在PLC中的应用。
在PLC控制中选用KOYO S 系列中性能价格比较高的中型PLC SU-6B,其性能能够满促控制功能,并且可以由ASCII-BASIC模块进行复杂的运算,提高速度和降低成本。
SU-6B CPU模块内包含一个RS-232/422通讯借口,在该系统重可以用来连接触摸操作的可编程操作显示器GV-50,在这个操作显示器上设定/显示所有的工作数据,运行情报和给PLC辅助运行指令,由于这个操作显示器的使用,所有的人机接口的操作非常直观和方便。 
DM是专用数据通讯接口模块,用于整个工厂或车间,中控室的联网运行。在这个网络上,可以根据网络中的站数决定是否采用管理PLC。站数较多时为了减轻一位计算机的负担采用专门的PLC对下级各种采集数据;站数较少时直接由上位计算机采集也可以。
ABM是SU-6B CPU 上使用的 ASCII/BASIC 协处理器(Co-processer)模块,在ABM模块内通过BASIC程序进行复杂的数据运算,与PLC内的运算相比,不仅编程简单,速度快,更重要的是可以完成SU-6B PLC 不能而必须的运算,例如浮点数据运算,三角函数,字符串处理等。模块通讯口可以外接通讯型显示器,计算机,打印机等。
HSC #1高速计数模块用于对锭子电机采样计数测量转速。
HSC #2 高速计数模块主要用于对成型电机反馈脉冲计数控制成型运动,另外利用模块的自动搜寻原点功能可以精确的使机械回原点,手动功能可以控制机械手动调整。
D/A用于控制成型电机和锭子电机的转速输出。
A/D用于激光处理器测量动态致敬,但通常它只在自动的络绕方式下起作用,用来测试运行,由此可以得到络绕的密度作为数据设定的依据。
    

ASII-BASIC 模块及语言:

ABM模块通过BASIC语言程序,可以访问PLC地I/O点,中间继电器等位功能存储器,以及数据寄存器。位功能存储器的状态和数据寄存器的内容也可以被ABM控制。
SU-6B CPU地ABM模块可以安装在任意位置,并且不占I/O点。(SR系列的ABM模块略有不同。)
PLC系统上电时,ABM模块可以根据设定进入RUN或COMMAND 方式,在RUN方式下执行BASIC程序的内容,在COMMAND方式下执行键盘键入的命令。ABM的运行于PLC CPU 的运行没有关系。
RUN方式下的ABMBASIC语言和语法与通常BASIC相似,特别是QBASIC,ABM程序可以几乎经过修改在QBASIC系统下运行,只不过ABM程序中对PLC功能存储器的访问在QBASIC中会被当作数组来操作,例如:SU6-R(1400),SU6-M(1000)在ABM程序中访问数据寄存器R1400和中间继电器M1000而同样程序在QBASIC中会被当作大的数组。
COMMAND的方式下的命令包括程序的传送,参数地设定,打印程序等菜单操作,以及直接命令的键入,例如删除、保存、列表程序,选择程序,运行程序,运行方式改变等。
    

运转方式的计算过程:

                                                                                

目前在该络筒机中可以实现以上的络绕方式,所有的参数都通过触摸屏操作,可以设定任意的工艺参数,络绕参数和线束卷绕的时间、类型和位置。
对以上任一种卷绕方式、主要是对成型和锭子两个电机的控制,即成形电机:控制成形往复运动,使线束在上侧-下侧返回点之间运动,同时控制运动速度。
锭子电机:控制锭子恒线或恒锭速的运行,及锭子的运行方向。
在恒线速度设定方式下为了实现张力恒定和成型形状的控制,随着络绕直径的增大,锭子电机的转速非线性的减少,成型电机来回移动的行程非性线的减少,即锭子电机转速和成型电机移动量与锭子直径%D的动态关系。在以前的络筒机的控制中通常采用硬件控制的方法来控制成型电机的移动量,例如由一个专用的小电机来匀速(或非匀速)的减小成型电机的移动量,在行程两端靠接近开关控制成型电机的换向,而锭子电机的转速由PLC控制。这样做使调整参数不灵活,而且络绕方式的改变也不方便。
  在上面实现的络绕方式中,以反络式和平行式络绕控制时要求恒线速的控制,并且取消小电及和行程两端的接近开关,只有机械极限限位开关,因此对成型电机和锭子电机的控制全部由PLC来完成。对其它要求恒锭速控制的方式重,对成型电机的控制也是一样,因此在PLC内解决络绕动态直径%D的计算成了关键。

这里以反络式和特种卷绕方式说明
反络式:
反络式通常设定以下参数,如下:

公式.gif           

以上三个公式中,D是络毕最大直径,A为络毕横梁宽度,可以求出D和A。  

p3.gif

D是关键,由它知道络毕时的直径后,才能确定运动中直径变化,从而控制锭子卷绕的恒线速度,A可以用来检验参数设定的正确性,当络毕A角小时,PLC和ABM都会来不及运算。
   但是,在PLC内靠梯形图程序来解决这样一个方程,是非常困难的,只能由协处理起来完成。ABM内可以通过与通常BASIC差不多的语句和语法编程,并且可以实现浮点数据运算。经过试验,在486的个人计算机上,解这样一个方程需要5秒左右,在以8031为处理器的ABM模块中,解出同样的方程约需40-50秒左右,但是毕竟比PLC内靠梯形图程序来解这样一个方程要方便多了。更重要的是它还可以进行SU-6B CPU不能进行的三角函数的运算功能,而不需要近似或查表的方法来进行。
    在ABM模块内采用逐次逼近的方法求出最大直径,精确到0.1mm,BASIC程序如下:         

5300    REM Paramaters: d,T,RAD,Vy,Vt,W,p,Den    

5301    REM Return :D    

5310    V=W/P: TMP=TAN(RAD)    

5315    DMAX=d+T*TMP: PRINT1 "M=Dmax=",DMAX    

5320    D=d: DBAK=D: LIMIT=20    

5321    GOSUB 5360    

5322    IF (V2<0) OR (A<=0) OR (D>=DMAX) THEN GOTO 5355    

5323    IF A<LIMIT THEN GOTO 5357    

5324    IF V2=V THEN GOTO 5351    

5325    IF X2>V THEN GOTO 5340    

5335    DBAK=D: D=D+1: GKTO 5321    

5340    D=DBAK    

5341    GOSUB 5360    

5342    IF (V2<0) OR (A<=0) OR (D>=DMAX) THEN GOTO 5355    

5343    IF A<LIMIT THEN GOTO 5357    

5344    IF V2=V THEN GOTO 5351    

5345    IF V2>V THEN GOTO 5350    

5346    DBAK=D: D=D+0 1: GOTO 5341    

5350    D=DBAK: REM Add program here if you want more significant number    

5351    PRINT1"D=", D:RETURN    

5355    PRINT1"D cannot catch.":错误处理:RETURN    

5357    PRINT1 "Last A<",LIMIT:错误处理:RETURN    

5360    TEM Calc V    

5361    A=T-(D-d)/TMP    

5362    V1=(D**3-d**3)/TMP+3*(D**2)*A-3*(d**2)*T    

5363    V2=PI*V1/1200    

5364    PRINT1 "D=",D,"A=",A,"V2=",V2    

5365    RETURN    


  线速在上下侧返回点之间的往复运动,根据行程和升降速度的不同,大约在2-5秒内变换一次方向,也就是说对成形电机的上下侧返回点的计算,对锭子动态直径和锭子电机的速度计算(恒线速度则电机转速与运动直径有关)需要在2-5秒内完成一次。PLC仅控制电机的转向和D/A转速输出控制,以及其它常规开关量,扫描时间为30ms左右也来得及的。
①②③式和前面的BASIC程序也是适应于运动动态过程的。如果根据%W=Vy*T-RUN*p.(T-RUN为运行计时),再根据①②③式和上面的程序关系,而由ABM进行的动态直径的计算,%D=f(W,p,Rad,D,d,T,Vy…),再计算出所需的转速和成形电机新的行程,根据上面的计算试验,在2-5秒内显示是来不及完成的,因此,对动态直径的计算只能采取近似的方程,假定成形电机每次换向后,行程是按同样的比例减小的,最为简单。
于是:

%A=T=Xtn,Xtn=△Xt1+△Xt2+△Xt3+… △Xtn=n*△Xt ④
Xt1=T**2-A**2
Xt2=2*TSUM*Vt*Vt-(T+A)*Vt
△Xt=Xt1/Xt2
(n为换向次数,△Xt为均等减小量,TSUM为总运行时间)
(其中△Xt1=△Xt2=…=△Xn为第n次换向在上一次行程上的减少量,Xtn为第n次对初始行程的减少量。)
%D=(T-%A)*Tan(Rad)+d ⑤ (由③式变换得到)
%ω=2*Vy/%D ⑥    

p4.gif

这是简单的计算方法,其结果式络绕出来的形状是所要求的直线成了图四所示的弧线,不仅外观不漂亮而且影响下道工序倍捻。因此需要对公式计算的结果进行修正,有两种方法:1. 直接修正Xtn
前面的公式中△Xt是一次计算的结果,%A是按换向次数成比例的减小。
如果修正Xtn,且与n有关,不是按比例减小,而是n越大,△Xt越小,则可以修正直线。 
公式略。
2. 直接修正%A(间接修正Xtn)
按1.修正方法修正的公式比较复杂,为此可以根据需要修正的结果,直接在%A的计算结果上修正,采用分段二次曲线修正,BASIC程序部分如下:
K1=2/3, K2=81 ;rem SQR(81)=9,修正量为0-9mm
T-kml=K1*T-SUM ;按总运行时间分前段修正区,T-SUM为计算出的总运行时间,运算公司略。
T-km2=(1-K1)*T-SUM ;按总运行时间分后段修正区
T-modil=T_kml/K2 ;前段修正区按时间均分成K2段
T-modi2=T_km2/K2 ;后段修正区按时间均分成K2段
IF(T_RUN<=T_kml) THEN MODI=SQR(T_RUN/T_modil);T_RUN为线在运行时间IF (T_RUN>T_kml) THEN MODI=SQR((T_RUN_T_kml) T_modil2)
DIS=%A-MODI ;%A的计算同 ④式
            ;%A的计算同 ⑤式    


 特种卷绕方式:



    以上是反络式计算方法,对特种卷绕时则相对容易,特种卷绕方式除了通用的参数如d,升降速度Vt等设定外,主要是根据下图所示,在0,1,2,3,4…各段设定相应的时间值,达到的上、下侧返回点和转速,当某一点的设定为0时,在该点进行不折弯地控制。这样,ABM的计算只要求出各段的斜率即可,为0时求不折弯的斜率。按照这样的直线方法计算络出的锭子的形状就会比较明显地分段,但是特种卷绕可以络出各种特种的形状来(不考虑沙线的适应性),例如特种填充形,半凸缘络线筒,锥形半凸缘络线筒,锥形络线筒等。
    为了使分段不明显,变化比较柔和,图中三条线的折弯采用曲线拟合的方法,根据三点的设定值计算出拟和的二次曲线的各个系数,然后按二次曲线控制运动。
根据曲线的设定可以事先经过处理,由计算机绘出一个理想的锭子实体图形,下面列举了一特种填充形和锥形半凸缘络线筒的示意图。(在下面的图中,标注的是锭子转速ω和上下侧返回点的位置。)


           

       图五、特种填充形                 图六、追兴半凸缘络线筒    


   


 塑变的处理:


p8.gif

    塑变是对络绕发生变缘凸起时的纠正或络筒角部的圆化起着关键的作用,塑变量和塑变率因纱线及纱线的品种,横梁的移动速度不同而不同。其处理如下图所示。这时需要在计算行程时减去塑变的部分。 
Cr:塑变量
Rc:塑变率

数据的初始计算和检验以及GV-50画面
    数据的初始计算是指象最大直径等运行中参数的计算,除了反络式的计算时间较长由GV-50显示"正在计算"的提示画面,如果数据检验发现设定超出范围错误,由GV-50以相应的显示出报警画面,例如后面流程图中的急停等报警。
    通常情况下,GV-50的画面随着运行状态,可以显示测量状态,设定一览,和络绕控制状态,可以随时看到当前的操作提示和进度。在选择了本文第一页图的与ABM连接的通用计算机的情况下,也可以在计算机上显示这些内容。
    

程序的说明:

PLC和ABM模块的程序全部实现模块化,对程序编制、维护和功能增加非常方便,完全不用改动以前的模块,程序结构。

ABM程序:
  主控程序,程序1,PLC运行方式的检测,运行起动时,根据选定的络绕方式去执行相应的运算程序;运行停止时,由运算程序自动返回到主控程序。
  运算程序,每种络绕方式一个程序,程序2,3…,个个运算程序根据PLC各控制级的状态调用数据校验子程序,线束络绕子程序,络绕子程序;如果检测到PLC内运行控制信号停止,则反回到主控程序。
  这里所说得主控程序/运算程序与高级语言的主/子程序是不同的,ABM模块内的BASIC程序可以有多个,由模块对它们按存储顺序自动编号,而在各程序中可以有该程序的内部子程序,这个子程序就和通常语言的子程序是一样的。这样将不同络绕方式的程序独立存放,有利于程序运行速度更快,因为它只执行一种络绕程序,且增加新的络绕方式或修改某种络绕方式时,完全不用改动别的程序,这些程序中可能有相同的部分,也可以把它们象子程序样单独作为子程序存储,在程序容量允许时也可以直接放在各个需要的程序中。
  当ABM模块运行时,可以设定该模块的启动方式,包括变量是否请零,起动执行的程序号,串行口通讯参数等。ABM模块还有另外一个特点,可以通过编程处理,使当程序由于编程错误导致程序执行中断时(例如溢出,被零除等),是否自动重新启动。那么设定ABM模块启动时是否对变量初始化就有意义,因此在络筒机控制系统设计是采用不清零的启动方式。    


 抗干扰、防错的措施及其它:

1. 实际系统运行时,由于大电机的运行,可能会使ABM模块和PLC的CPU之间和通讯中断,ABM和CPU之间的通讯是通过底板CPU总线进行的,高速计数器的目标值由ABM计算,在络绕过程中必须使ABM的计算数据一直有效,不能中断,因此在通讯暂时中断时要使CPU使用前次的计算结果,而后等待通讯在几秒内继续。这种情况极少见也没有规律。 
2. 可以设定ABM模块的启动方式,使ABM在由于编程错误而导致ABM程序执行意外中断时,例如溢出错误,强制ABM运行。这样强制运行和启动时不对变量初始化可以使程序继续原来的过程运行,而且不必重新初始计算,而且不会由于中断自动进入命令方式使整个系统动作中止。而对出现了严重的程序错误,如行程和转速计算的错误则即使ABM程序继续运行也无能为力了。使用的命令是:
LOCKOUT (强制运行)
AUTOSTART 2,1,19200(以非自动清除变量方式,启动程序1,通讯口速率)
如果是系统停电,则ABM的变量数据是不带停电记忆的,这时需要由PLC CPU来确定是否进行初始计算。
3. PLC CPU可以对运动进行控制,如果发生撞梁故障时可以自回复原点,等待重新启动,而频繁的撞梁则是PLC程序问题。
4. CPU在运行过程中除了接受PLC报警外,可以自动检测变频器、伺服电机回路的故障。
5. ABM程序口令的程序:在ABM系统中没有直接的口令保护功能,但是可以用上面的强制运行命令来实现可变口令。口令输入地址,在ABM程序中编写可变口令的程序,LOCKOUT命令后加上判断条件,如果PLC寄存器重的8位数据与ABM程序的口令不一致则LOCKOUT指令有效。例如,LOCKOUT(数据寄存器<>ABM口令)。
6. 为了表示ABM模块工作正常,在程序中加入一些PRINT #1语句,在通讯口#1传送数据,这样在程序正常运行时,模块上面的通讯信号LED会闪烁。    


 运行效果:


   根据实际运行所有方式的结果,完全能够适应沙线和参数的设定,另外根据辅助程序的跟踪结果,测得的运算过程以反络式、平行式示例如下:

运行效果测试图    


    正常工作条件下,根据驱动皮带轮的不同和工艺方式的选择,锭子的转速和纱线速度是不一样的。
    ASCII-BASIC模块作为PLC比较特殊的一种智能型模块,其功能除了本文所涉及的数据运算外,还有通讯功能(内装MODEM的相应型号),外接通讯型显示器、打印机等,作为PLC CPU的又一个协处理器,其应用范围还很多,因此值得推广。