1、实现各探头在管头处准确落下,在管尾处准确抬起,这样的控制要求是必要的,因为如探头提前落下会被钢管碰坏,如滞后落下,会加大探伤盲区。
PLC编程是这样完成动作控制的:将光电1到各探头的距离,通过上位机设置,送给PLC的数据区(如DB1.DBW60、DB1,DBW62、DB1,DBW64、DB1,DBW66为各探头右行落下的置数区,DB1.DBW70、DB1,DBW72、DB1,DBW74、DB1,DBW76为各探头右行抬起的置数区,)中,将光电2到各探头的距离,通过上位机设置,送给PLC的数据区(如DB1.DBW80、DB1,DBW82、DB1,DBW84、DB1,DBW86为各探头左行落下的置数区,DB1.DBW90、DB1,DBW92、DB1,DBW94、DB1,DBW96为各探头左行抬起的置数区,)中。
以探伤车右行为例:当光电1运行到管左端头时,高速计数器从0开始计数,用比较器比较,当计数值>=DB1,DBW60时,横探头1落下,当计数值>=DB1,DBW62时,横探头2落下……,当光电1运行到管右端头时,将此时的计数值分别与DB1.DBW70、DB1.DBW72……DB1.DBW76相加,其和值分别送入MW20、MW22、MW24、MW26中,当计数值>=MW20,横探头1抬起,当计数值>=MW22,横探头2抬起……。
但由于汽缸落下与抬起都有一定的滞后时间,使在不同的行走速度下,探头落下与抬起的位置与设定值不一样,因此在行走速度定下后,在正式探伤前应实际运行几次进行校验,以修正设定值,确保落下与抬起的准确。
2、可测钢管长度值(前面已述)。
其次是编码器的输出选型,一般日系的经济类编码器是NPN负逻辑输出的,PLC接口就配日系的PLC,如配欧系的PLC,接口就一定要在买PLC的时候弄清楚;而欧系标准工业级的编码器输出一般是“推挽式”的,就是PNP+NPN的正逻辑,对于PLC的日系、欧系硬件都是兼容,但对于日系的NPN型,数学逻辑正好相反,即1与0互换的。另外,晶体管输出型(PNP或NPN)大部分PLC手册上传输距离都不能远(20米),一般是用于小型机械的,而自动化工程尽量选用标准工业级推挽式输出型的编码器。(这个钱省不得,你要不是熟手,用经济级的编码器现场调试和今后的维护人工成本都不会低)
怕只怕那种晶体管集电极输出的(就是PNP或NPN)的加一个电阻输出的编码器,这种编码器号称PNP和NPN都能接(或用户自己加电阻,就是18楼的图示),其实在反相他是采电阻上的电压作为输入的,在有些场合下(如速度快了)有漏电流而造成“计数不准”,为什么不在选型时就搞清楚呢?咱们这次“擂台”把这个搞清楚不是很好?
“高速计数口”:
PLC的“高速计数口”有两种工作模式,一种是PLC的主CPU兼顾的,他抽出运算时间来一直计数,故此带宽频率不能高(10KHz),那种经济类PLC自带的就是这种模式,这种模式造成编码器的分辨率不能高,转速不能快,以1024线分辨率的编码器为例,转速不可高于585转/分(RPM),(585转x1024/60秒<10KHz),而如果转速有高,分辨率就要下来,事实上经济类PLC标称的10KHz,在程序计算内容较大时,还是“顾不过来”而达不到10K的,这个就是“计数不准”的结果了。还有,有的PLC可以接2个编码器,有的内部做4倍频,这个10KHz是指一个编码器还是2个,算不算4倍频在内,都不是统一表述的,要弄清楚,不然又是“计数不准”了。
另一类“高速计数卡”是独立的CPU计数,再与PLC的主CPU内部总线式通讯的,这类的计数卡的频率较高(看其指标参数),而成本自然就贵,基本比一个编码器都给贵了。
关于“高速计数口”,根据现场应用要求在PLC接口的选择上一开始就是要弄清楚的,不然“计数不准”有的苦头吃了。
现在的工控行业中,编码器的应用越来越广泛,故在此讲述一下旋转编码器的一般应用,欢迎大家踊跃提意见
旋转编码器的一般介绍:
其主要有两种,一种是增量型,另一种是绝对型。增量型的特征是只有在旋转期间会输出对应旋转角度脉冲,停止是不会输出。它是利用计数来测量旋转的方式;价格比较便宜。绝对型的的特征是不论是否旋转,可以将对应旋转角度进行平行输出的类型,不需要计数器可确认旋转位置;它还有不受机械的晃动或震动以及开关等电器干扰的功能,价格贵。
在选择使用时,可参考以下几点。包括成本、分辨率、外形尺寸、轴负荷及机械寿命、输出频率、环境、轴旋转力矩、输出回路等等。
应用举例:
它一般应用在对机器的动作控制。我那一个实例详细说明一下。我刚刚改造一台机器,机器在运行过程中先要对工件进行处理,然后加工。它以前是用光电开关做的,机器的电路就比较复杂,而且成本增加,维护调校麻烦。于是我就对机器的电路进行改造,主要是用一个编码器来代替以前的光电开关。此套系统由OMRON的PLC与编码器组成。下面是PLC程序。
I/O 及数据
检测是否有工件开关:00007 变频器零速输出:00008
处理工序1:开(DM100) 关(DM101) 10100
处理工序2:开(DM102) 关(DM103) 10101
处理工序3:开(DM104) 关(DM105) 10102
加工工序1:开(DM106) 关(DM107) 10103
加工工序2:开(DM108) 关(DM109) 10104
加工工序3:开(DM110) 关(DM111) 10105
PLC程序
Name="Initialize"
[STATEMENTLIST]
LD 253.13 //On
OUT TR0
OUT 252.00 //Encoder software reset
TIM 000 #0100 //System initialize delay
AND 253.15 //PLC First scan on
INI 000 002 DM0000 //Control Encoder mode
LD TR0
AND TIM000
PRV 000 000 DM0000 //Encoder PV read
DIV DM0000 #0004 DM0002 //1440 Change 360
BCMP DM0002 DM0100 HR01 //Block compare for operation
Name="Shift"
[STATEMENTLIST]
LD 000.07 //Part on
LD HR01.08 //Shift degree
LD 253.14 //Off
SFT HR60 HR62 // the rightmost word of the shift register
Name="Treat 1"
[STATEMENTLIST]
LD TIM000
AND HR60.08 //Shift to action 1 operate position
AND NOT 00008 //Inverter zero speed output
AND HR01.00 //Degree of action 1
OUT 101.00 //Output Treat 1
Name=" Treat 2"
[STATEMENTLIST]
LD TIM000
AND HR60.10 //Shift to action 2 operate position
AND NOT 00008
AND HR01.01 //Degree of action 2
OUT 101.01 //Output Treat 2
Name=" Treat 3"
[STATEMENTLIST]
LD TIM000
AND HR60.15 //Shift to action 3 operate position
AND NOT 00008
AND HR01.02 //Degree of action 3
OUT 101.02 //Output Treat 3
Name="Process 1"
[STATEMENTLIST]
LD TIM000
AND HR62.03 //Shift to Print 1 operate position
AND NOT 00008
AND HR01.03 //Degree of print 1
OUT 101.03 //Output Process 1
Name=" Process 2"
[STATEMENTLIST]
LD TIM000
AND HR62.05 //Shift to Print 2 operate position
AND NOT 00008
AND HR01.04 //Degree of print 2
OUT 101.04 //Output Process 2
Name=" Process 3"
[STATEMENTLIST]
LD TIM000
AND HR62.08 //Shift to Print 3 operate position
AND NOT 00008
AND HR01.04 //Degree of print 3
OUT 101.04 //Output Process 3
30楼:你说的很好,我们的分歧是如何定义正负逻辑:从电子线路来讲,正逻辑的电源负极为公共端,逻辑0为0电平,逻辑1为高电平,负逻辑是将电源的正极为地(公共端),其逻辑0为0电平,逻辑1为负电平。NPN型晶体管组成的电路的地接电源负极,故为正逻辑电路,而PNP型晶体管组成的电路的地接电源正极,故为负逻辑电路。
PLC输入端的公共端COM接地,各输入点输入+24V正信号,该输入点导通,明显这应是正逻辑,NPN型晶体管输出的编码器也是正逻辑电路,但直接用它,却不好用,其原因为:NPN型晶体管输出为1时,该管是出于截止状态,这个“1”是通过晶体管的上拉电阻提供的,电源电压是通过这个电阻串接在PLC的输入端的(该电阻值不能太小,否则易烧晶体管),使产生的注入电流变小,使输入点产生的输出信号电压幅值变小,使计数器不能计数。
该转换电路,是将编码器的输出脉冲变成一端接+24V的电子开关,就象用一般开关一样:一端接+24V,另一端接PLC的输入点。至于该电路的转换速度不必担心,因为它是高频晶体管。
我所以提出这个问题,就是因为这是我曾经历过的事:80年代用欧姆龙编程,编码器用日式的(NPN型输出),后来根据用户要求,改用西门子,但编码器没变,就出现上述问题,我是用设计这个转换电路使编码器好用的,好几年都使用这个电路,工作正常。直到后来搞到了编码器,才不用原编码器。