(已结束)工控PLC擂台第16期--PLC之编码器应用。 点击:14830 | 回复:54



云锋

    
  • 精华:1帖
  • 求助:4帖
  • 帖子:252帖 | 5541回
  • 年度积分:0
  • 历史总积分:30376
  • 注册:2005年6月24日
发表于:2010-12-17 15:01:59
楼主
        编码器信号接入PLC类应用实例,写出组成整个系统的PLC模块及外围器件,并附相关程序。

        PLC品牌不限,编码器信号类型不限。

        工控PLC擂台每周一期,本期下周末结贴。奖项设置:一等奖1名:50MP,二等奖5名:10MP,三等奖10名:30积分。

        MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。

        MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。



wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 00:04:56
21楼

        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、可测钢管长度值(前面已述)。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 00:06:18
22楼
         3、可测钢管的伤痕与管端的位置值:在每个探头落下的同时,PLC将此时刻的计数值分别存入DB1.DBW50、DB1.DBW52、DB1.DBW54、DB1.DBW56中,如当横探头1发现有伤痕时,PLC立刻将此时的计数值 - DB1.DBW50,其差值就是此伤痕到管头的距离,将其送入对应存数区。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 00:09:10
23楼
         4、PLC硬件的设计:
        (1)、 PLC选用S7-300,型号:312C,CPU内有二个高速计数器,选用第1个计数器,计数输入口地址为 I124.0,I124.1口置1,即加计数,计数方式选用一次性计数,软件门控制计数。
        (2)、PLC输入口:I0.0 为自动/手动转换,I0.1 为自动启动开关,I0.2 为自动停车开关,I0.3 为探伤车左行/右行方向判断开关,I0.4 为横伤1信号输入,I0.5 为横伤2信号输入,I0.6 为纵伤1信号输入,I0.7 为纵伤2信号输入……
        (3)、PLC输出口:Q0.0 为自动/手动工作指示,Q0.1 为自动工作指示,Q0.2 为探伤车右行指示, Q0.3 为探伤车左行指示,Q0.4 为横探头1落下输出,Q0.5 为横探头2落下输出,Q0.6 为纵探头1落下输出,Q0.7 为纵探头2落下输出,Q1.1 为前后测速辊有效输出,Q1.2 为横伤痕打标输出,Q1.3 为纵伤痕打标输出 ……

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 00:11:24
24楼
        (4)、右行探伤梯形图(只画出探头起落的控制及读取测伤痕位置等局部图)


wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 00:14:19
25楼
        (二)、探头位置固定,钢管行走探伤方式的编码器的应用:见下图
                                                                          图二
                                                                         
        这种探伤方式为探伤探头是固定的,钢管通过辊道运行,穿过探伤区。当钢管头运行走到每个探头下,对应探头落下,当管尾行走到各探头下,各探头依次抬起。该系统仍用一个高速计数器,但测速辊需用二个分别安装在4个探头的两侧,详见图二。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 00:16:38
26楼
        1、各元件位置安排及参数设置:见图二,探头1为横向探头1,探头2为横向探头2,探头3为纵向探头1,探头4为纵向探头2。前测速辊位于探头1的前面,后测速辊位于探头4的后面,在前测速辊的前面安装一个红外开关“光1”,在前测速辊与横探头1之间安装光2开关。
         将光2与各探头距离,分别在上位机设置在“横探1落下”、“ 横探2落下”、“ 纵探头1落下”、“ 纵探头2落下”里,将光2与各探头距离,分别在上位机设置“横探1抬起”、“ 横探2抬起”、“ 纵探头1抬起”、“ 纵探头2抬起”里,上位机将这些参数送入PLC的数据区(如落下为DB1,DBW60、DB1,DBW62、DB1,DBW64、DB1,DBW66,抬起为DB1,DBW70、DB1,DBW72、DB1,DBW74、DB1,DBW76)中。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 00:17:35
27楼
         2、参数校验:在正式探伤前,先确定钢管运行速度,再进行运行校验,将修正后的正确数值重新置入各参数区中。以确保各探头都能准确的在钢管的头部落下与抬起。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 00:21:07
28楼
        3、动作过程:当钢管运行到光1下时,其前沿触发脉冲式(SE)定时器T0,产生NS宽的脉冲,在此脉冲宽度内,确保管头运行位置越过前测速辊,其后沿使前测速辊落下(测速辊压在钢管上),当钢管头运行到光2下时,高速计数器开始计数,当计数值大于或等于DB1.DBW60时,横向探头1落下,且将此时的计数值送入DB1.DBW50里,当计数值等于或大于DB1.DBW62时,横向探头2落下,且将此时的计数值送入DB1.DBW52里……,直到4各探头都落下。再前进一段距离(此时管头已越过后测速辊),当管尾离开光1时,后测辊落下,前测辊抬起,PLC输出口Q1.0=1,J0继电器吸和,使前测辊的输出与高速计数器的输入口断开,后侧辊的输出接入高速计数器的输入端。同时,PLC将此时的计数值送入DB1.DBW98(即钢管长度值),当管尾离开光2时,PLC将此值分别与DB1,DBW70、DB1,DBW72、DB1,DBW74、DB1,DBW76相加,其和值送入MW20、MW22、MW24、MW26里,当计数值等于或大于MW20时,横探头1抬起,当计数值等于或大于MW22时,横探头2抬起,当计数值等于或大于MW24时,纵探头1抬起,当计数值等于或大于MW26时,纵探头2抬起,同时后侧辊抬起,PLC将探伤数据上传给上位机,此管探伤结束。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 00:28:06
29楼
        4、钢管行走探伤梯形图(只画出探头起落的控制及测伤痕位置等局部图)

        此文到此结束,有不当之处,请指正,谢谢!

@Q

  • 精华:7帖
  • 求助:0帖
  • 帖子:42帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2010-12-21 09:26:29
30楼

18楼的那段“编码器应选用负逻辑输出的编码器(即PNP型晶体管输出),如PLC输入点的公共端(COM)接+24V的正极,编码器应选用正逻辑输出的编码器(即NPN型晶体管输出)。S7-300PLC的输入端的COM接地,故应选用负逻辑输出的编码器(即PNP型晶体管输出)。 ”

以上错误(反了),PNP型为正逻辑,即电流为推电流,高电平为1,而NPN型为负逻辑,一般欧系的PLC(以西门子为代表)为正逻辑,日系(韩系)(以三菱为代表)为负逻辑的晶体管输入。

@Q

  • 精华:7帖
  • 求助:0帖
  • 帖子:42帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2010-12-21 09:38:43
31楼

其次是编码器的输出选型,一般日系的经济类编码器是NPN负逻辑输出的,PLC接口就配日系的PLC,如配欧系的PLC,接口就一定要在买PLC的时候弄清楚;而欧系标准工业级的编码器输出一般是“推挽式”的,就是PNP+NPN的正逻辑,对于PLC的日系、欧系硬件都是兼容,但对于日系的NPN型,数学逻辑正好相反,即1与0互换的。另外,晶体管输出型(PNP或NPN)大部分PLC手册上传输距离都不能远(20米),一般是用于小型机械的,而自动化工程尽量选用标准工业级推挽式输出型的编码器。(这个钱省不得,你要不是熟手,用经济级的编码器现场调试和今后的维护人工成本都不会低)

怕只怕那种晶体管集电极输出的(就是PNP或NPN)的加一个电阻输出的编码器,这种编码器号称PNP和NPN都能接(或用户自己加电阻,就是18楼的图示),其实在反相他是采电阻上的电压作为输入的,在有些场合下(如速度快了)有漏电流而造成“计数不准”,为什么不在选型时就搞清楚呢?咱们这次“擂台”把这个搞清楚不是很好?

@Q

  • 精华:7帖
  • 求助:0帖
  • 帖子:42帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2010-12-21 10:02:48
32楼

“高速计数口”:

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接口的选择上一开始就是要弄清楚的,不然“计数不准”有的苦头吃了。

@Q

  • 精华:7帖
  • 求助:0帖
  • 帖子:42帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2010-12-21 10:33:16
33楼
上面有些东西“抄也抄错”,电子开关频率(电气最大响应)是以"KHz“表示,而RPM(每分钟转)是机械转速。网上一些东拼西凑的东西都有错误,要自己消化甄别,而不是“复制”“粘贴”就这么简单。

yanwen0227

  • 精华:2帖
  • 求助:49帖
  • 帖子:577帖 | 9385回
  • 年度积分:0
  • 历史总积分:0
  • 注册:1900年1月01日
发表于:2010-12-21 10:39:24
34楼
引用陈石头 的回复内容:

现在的工控行业中,编码器的应用越来越广泛,故在此讲述一下旋转编码器的一般应用,欢迎大家踊跃提意见

旋转编码器的一般介绍:

其主要有两种,一种是增量型,另一种是绝对型。增量型的特征是只有在旋转期间会输出对应旋转角度脉冲,停止是不会输出。它是利用计数来测量旋转的方式;价格比较便宜。绝对型的的特征是不论是否旋转,可以将对应旋转角度进行平行输出的类型,不需要计数器可确认旋转位置;它还有不受机械的晃动或震动以及开关等电器干扰的功能,价格贵。

在选择使用时,可参考以下几点。包括成本、分辨率、外形尺寸、轴负荷及机械寿命、输出频率、环境、轴旋转力矩、输出回路等等。



应用举例:

它一般应用在对机器的动作控制。我那一个实例详细说明一下。我刚刚改造一台机器,机器在运行过程中先要对工件进行处理,然后加工。它以前是用光电开关做的,机器的电路就比较复杂,而且成本增加,维护调校麻烦。于是我就对机器的电路进行改造,主要是用一个编码器来代替以前的光电开关。此套系统由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





Smile

  • [管理员]
  • 精华:114帖
  • 求助:50帖
  • 帖子:2786帖 | 22283回
  • 年度积分:284
  • 历史总积分:144015
  • 注册:2006年8月04日
发表于:2010-12-21 10:53:39
35楼
引用@Q 的回复内容:上面有些东西“抄也抄错”,电子开关频率(电气最大响应)是以"KHz“表示,而RPM(每分钟转)是机械转速。网上一些东拼西凑的东西都有错误,要自己消化甄别,而不是“复制”“粘贴”就这么简单。

OK

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 11:29:13
36楼

30楼:你说的很好,我们的分歧是如何定义正负逻辑:从电子线路来讲,正逻辑的电源负极为公共端,逻辑0为0电平,逻辑1为高电平,负逻辑是将电源的正极为地(公共端),其逻辑0为0电平,逻辑1为负电平。NPN型晶体管组成的电路的地接电源负极,故为正逻辑电路,而PNP型晶体管组成的电路的地接电源正极,故为负逻辑电路。

        PLC输入端的公共端COM接地,各输入点输入+24V正信号,该输入点导通,明显这应是正逻辑,NPN型晶体管输出的编码器也是正逻辑电路,但直接用它,却不好用,其原因为:NPN型晶体管输出为1时,该管是出于截止状态,这个“1”是通过晶体管的上拉电阻提供的,电源电压是通过这个电阻串接在PLC的输入端的(该电阻值不能太小,否则易烧晶体管),使产生的注入电流变小,使输入点产生的输出信号电压幅值变小,使计数器不能计数。

       该转换电路,是将编码器的输出脉冲变成一端接+24V的电子开关,就象用一般开关一样:一端接+24V,另一端接PLC的输入点。至于该电路的转换速度不必担心,因为它是高频晶体管。

       我所以提出这个问题,就是因为这是我曾经历过的事:80年代用欧姆龙编程,编码器用日式的(NPN型输出),后来根据用户要求,改用西门子,但编码器没变,就出现上述问题,我是用设计这个转换电路使编码器好用的,好几年都使用这个电路,工作正常。直到后来搞到了编码器,才不用原编码器。

@Q

  • 精华:7帖
  • 求助:0帖
  • 帖子:42帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2010-12-21 11:54:29
37楼

正负逻辑是数学的概念,即1与0的定义,正逻辑高为1,低为0;负逻辑高为0,低为1。

PNP与NPN是物理接口的概念,PNP(英文P为正,N为负)为集电极开路对地输出(推电流),共0V;NPN为集电极开路对高电平输出(实际是电流流向为反向的),共高,如图:

你前面的都说得没错,可NPN是高的时候与高齐平,没有电压就是没有电流了,就是0了,应该是负逻辑吧?

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-21 12:35:20
38楼

37楼:你说的“可NPN是高的时候与高齐平,没有电压就是没有电流了,就是0了,应该是负逻辑吧?”是指编码器输出为1时,转换电路的PNP晶体管截止,电流=0。是转换为负逻辑的1:如该转换电路的地 与PNP型晶体管组成的电路的电源正极共地,将本电路晶体管输出给负逻辑的PNP电路,即实现正负逻辑转换。

       从另一角度来看,编码器输出为1时,转换电路的PNP晶体管截止,电流=0。这只是说输出与输入反相,但当编码器输出为0时,转换电路的PNP晶体管饱和导通,给输入口+24V电压。

@Q

  • 精华:7帖
  • 求助:0帖
  • 帖子:42帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2010-12-21 13:13:01
39楼

我们讨论的是编码器和PLC的极性与正负逻辑同一个问题吗?(先放开“转换电路”)

至于在转换电路的电阻上采集电压,不存在是PNP与NPN的问题了,就是一个正负电压差,国内有几家编码器厂家有这种输出,他叫“电压输出型”,上面有人提及的,只是我不推荐。

@Q

  • 精华:7帖
  • 求助:0帖
  • 帖子:42帖 | 2199回
  • 年度积分:0
  • 历史总积分:4414
  • 注册:2003年2月20日
发表于:2010-12-21 13:22:54
40楼

你原来用的那个“日式NPN”的编码器说明书还在吗?看看上面说的是“正逻辑”还是“负逻辑”,或者找找现在的日系npn编码器的样本资料,看看他上面说的npn是正逻辑还是负逻辑。

这个问题在这里出现很好,论坛吗,有争论就是好事。我经常碰到有人对于这个问题不是很清楚的搞错,然后就是18楼说的加一个电阻用的,加电阻有时好用有时不好用,那种“不好用”就是有时“不准”,因为就有人能用的,所以当“不准”的出现,都不知道为什么了。


热门招聘
相关主题

官方公众号

智造工程师