此题为擂台征集题:编码器在西门子300PLC怎么编程? (原题为:绝对值编码器在西门子300PLC怎么编程? 这里我们不针对特定编码器,可增量可绝对值,还可正弦编码器等)
请编写一完整的小程序实现西门子PLC(可以是300,也可以是400)与任何一种编码器连接并通信的例子,必须写清楚所需要的软件和编写的完成程序及连接过程
回答的最好最完全的,原创最多,阐述最详细者获一等奖!
工控PLC擂台每周一期,本期待83期结束一周后结贴。奖项设置:一等奖1名:30~50MP,二等奖3~6名:10MP,三等奖10名:100积分。
MP介绍:gongkongMP即工控币,是中国工控网的用户积分与回馈系统的一个网络虚拟计价单位,类似于大家熟悉的QB,1个MP=1元人民币。
MP有什么用?兑换服务:以1个MP=1元来置换中国工控网的相关服务。 兑换现金:非积分获得的MP可兑换等值现金(满100MP后、用户可通过用户管理后台申请兑换)。
编码器在S7-300中的应用:
在自动化探伤设备中,编码器的应用大体上有二种形式:一种是被测钢管原地旋转,探伤车左右行走,此种方式将编码器固定在探伤车上,测速辊通过小气缸压在平滑的横梁上,确保探伤车行走时不丢转,见图一。另一种为探伤探头是固定的,钢管通过辊道运行,穿过探伤区。此种方式需用二个编码器,其测速辊分别安装在4个探头的两侧,见图二。
(一)、探伤车行走式的编码器的应用:见下图
图一
(二)、探头位置固定,钢管行走探伤方式的编码器的应用:见下图
图二
本文只对图一,即钢管原地旋转,探伤车前后移动的探伤方式进行介绍:
自动化探伤设备,对探出的伤痕位置与钢管的长度都要有测试记录,故是离不开选用编码器的。
一、编码器的选型及处理方法:
1、 根据PLC的选型及PLC输入侧的连线方式,选择正或负逻辑输出的编码器:如PLC输入点的公共端(COM)接+24V的负极,编码器应选用负逻辑输出的编码器(即PNP型晶体管输出),如PLC输入点的公共端(COM)接+24V的正极,编码器应选用正逻辑输出的编码器(即NPN型晶体管输出)。S7-300PLC的输入端的COM接地,故应选用负逻辑输出的编码器(即PNP型晶体管输出)。
2、根据编码器旋转一圈输出的脉冲数及系统的测量精度计算测速辊的直径:我厂选用的编码器为一周产生360个脉冲,要求一个脉冲长度1毫米,故测速辊的直径d应为 d=360÷3.14=114.6毫米。
二、设备动作介绍及编程:
编码器的测速轮通过小气缸紧压在大横梁上,探伤车行走编码器就输出脉冲。探伤车前后两侧各安装一个红外光电开关,探伤的过程是这样的:探车右行,当光电1运行到管左端头时,高速计数器开始计数,当横探头1运行到管左端头位置时,横探头1汽缸动作,横探头1落下,当横探头2运行到管左端头位置时,横探头2汽缸动作,横探头2落下……直到纵探头2运行到管左端头位置时,纵探头2汽缸动作,纵探头2落下,此时4个探头全部压在钢管上。当光电1离开管尾时,高速计数器的计数值送入管长数据区(即测出钢管长度),当4个探头分别走到管尾时,立即分别抬起,再前进一段距离,探伤车停车,此次探伤结束,PLC将探伤数据送入上位机。
此时探伤车位于右侧,挡住方向判别开关,使在对下一根钢管探伤时,按启动按钮,探伤车左行,光电2运行到钢管右端头时,高速计数器开始计数,4个探头行走到管右端头时,依次落下,当光电2离开左端头时,将计数值送入管长区,4个探头离开左端头时,探头依次抬起…在整个探伤过程中,这种探伤方式只用一个编码器,一个高速计数器,可完成以下功能:
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、可测钢管长度值(前面已述)。
3、可测钢管的伤痕与管端的位置值:在每个探头落下的同时,PLC将此时刻的计数值分别存入DB1.DBW50、DB1.DBW52、DB1.DBW54、DB1.DBW56中,如当横探头1发现有伤痕时,PLC立刻将此时的计数值 - DB1.DBW50,其差值就是此伤痕到管头的距离,将其送入对应存数区。
4、PLC硬件的设计:
(1)、 PLC选用S7-300,型号:
(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 为纵伤痕打标输出 ……
(4)、右行探伤梯形图(只画出探头起落的控制及读取测伤痕位置等局部图)