1 引言
主要用于石油管路铺设的φ1100mm大口径钢管由板材经焊接后,其它辅助工艺与设备包括管内清渣机用于管内焊接后残留的焊渣的清理;钢管内壁除尘机、外焊清渣机等。本系统是最后一道工序,主要是对钢管的总重量的测量以及长度的测量,并形成数据存贮起来。
2 原理设计
2.1 工艺概述
测量系统首先由横移车将钢管放到输送辊道,然后由检测开关发出钢管到位信号传送给本系统,由称重装置进行重量检测,称重装置位于钢管的底部,由液压油缸顶起称重装置,这样钢管的重量完全由称重装置来承担,左、右两侧各安装一个称重传感器,通过rs232串行口与工控机通讯,将重量值传给上位机。称重完成后测量长度小车分别由两侧起始点同时启动且相向而行,当快接近钢管端面时(由接近开关发信号)小车减速运行,当行至钢管端面时,小车停止运行,同时将钢管长度计算出来传至上位机。
2.2 系统组成
控制系统由接近开关采集现场信号送入西门子plcs7-216内,完成逻辑关系的运算,其结果输出到安川sgdm-04ada驱动控制器,由sgmah-04a电机经齿轮、齿条传动驱动测量小车,驱动系统由两套组成,分别位于钢管的两侧,工作时小车相向而行。液压系统驱动称重装置,plc和称重装置分别与上位机组成串行通讯,上位机软件采用visual basic编制,通过编制的画面发出指令并时实显示钢管重量及测量长度。系统硬件由西门子plc 6es7216-2bd22-0xb0,通讯模块6es7277-0aa22-0xba,扩展模块6es7223-1hf22-0xa0组成。
2.3工作方式
控制系统具有手动/半自动/自动三种工作方式。手动工作方式下,可以分别对测量小车、称重装置进行单独调整;半自动工作方式可以对钢管进行单循环测量,即按启动则开始称重与测量,结束后等待下一启动指令;自动工作方式则对钢管连续测量,直到按下自动停止按钮,方可停止。
3 系统实现
3.1 传感器通讯编程
称重传感器采用的是美国zemic公司bm8h-5t,它通过信号分配器gm-jx-v与深圳市杰曼科技有限公司称重管理器gm8803a连接,gm8803a最终与上位机进行rs232串通讯,其通讯协议尊循使用说明书中规定波率为9600kbty,奇偶校验位为奇校验,数据位为8位,站地址为2,停止位为1。按此规定用vb编写上位机部分通讯协议程序如下:
dim rcvlenth
dim rcv() as bbte 定义模块级变量
private lub form-load() 定义接收字符的动态数组
with mscomml
comport=2 选择串口2
settings=”9600,n,8,1” 9600kbit/s, 奇校验,8位数据位,1位停止位
injputmode = cominputmodebinary 以二进制格格式读取接收缓冲区
rthershold=1 接收的字符数大于等于1就会产生接收事件
inputlen=0 读接收缓冲区内容
outbuffercount =0 清空发送缓冲区
inbuffercornt=0 清空接收缓冲区
end with
if not mscomm1.portopen then
mscomm2.portopen=ture 打开串口2
end if
end sub
3.2 信号调理
小车行走的距离通过旋转编码器反馈回来的脉冲接入plc的高数计数端子,通过计数值可以知道小车行走的长度,计算精度可达0.01mm。由于项目所用的高数计数器是ab正交输入方式,只需将a+、b+及公共端接入plc即可,而伺服控制器脉冲输出为a+ a- b+ b- z+ z-,在调试中发现,plc的高数计数值不稳定,误差很大,感觉有干扰存在,经分析认为是a- b- 是干扰源,因此我们采用以上电路(如图1所示),用比较器将a+ a-进行比较后经三极管开关接入plc,问题得了解决,则即提升了电压又抑制了干扰,取得了良好的效果:
图1
3.3 编码设计
伺服电机后端的旋转编码器的分辩率为13比特,即2048脉冲/转,而电机转速为3000r/min,plc最大捕捉频率为20khz,为达到匹配,将驱动器的参数pn201分频比设定为400,即达到400脉冲/转,为进一步提高精度在plc中采用4倍分辨率,即为1600脉冲/转,由此根据电机驱动齿轮、齿条转一圈所走的距离计算出每个脉冲所走的距离,得出位移值。伺服系统采用多段速控制方式,p-son、n-cn、p-cl三端组合且设置以下参数:
pn000.1 设为3 设为多段速控制方式
pn201 设为400 设置倍频
pn50c 设为8fea 41端子速度1;45端子速度2;46端子速度3
pn50a 设为2801 cn140端子输入on;p-con无效;cn142端子禁止正转
p n 50b 设为8843 cn143端子禁止反转;cn144端子警报解除;p-cl\p-nl为无效;
pn50e 设为0000 对应端子无效
pn 50f 设为0001 25、26端子为扭矩限制检测
3.4 plc通讯编程
plc与上位机通讯方式设为自由口方式,初始化程序设置sm30为05意义为:每个字符为8位,无校验,波特率为19200,自由口方式。通讯协议规定为:
所有的发送数据格式为:
00h,总字节数,(数据),校验码,ffh
其中总字节数是包括00h到ffh在内的总数,占一个字节,校验码是包括00h和总字节数在内的校验码之前的所有数据的异或值,占一个字节。以下只对数据位格式进行说明。
数据位所占字节数不确定,格式如下:
a,(发送数)
其中a是对数据的说明,如果是命令,则a=07h,如果是数据,则a=15h,a占一个字节。
当a=07h时,发送数占一个字节,发送数的数据说明如下:
01h——与电脑连机
设备启动后,在工作过程中,每次测量前向电脑发送一次此命令,电脑发回的回复信息与plc发出的数据相同,即:
00h,06h,07h,01h,00h,ffh
plc发送此命令后,如果在2秒内不能收到回复信息,再发送一次,如果2秒内还不能收到回复信息,则plc自动转为自存储方式,把本次测量的长度顺序记录在plc内存中,并不再发送称重命令。如果在5秒内收到回复信息,plc首先把内存中的记录发送给电脑,然后再正常工作,(即plc不再自存储,直接把长度数据发送到电脑,并在每次工作都发送称重命令);
02h——称重命令
电脑发回的回复信息与plc发出的数据相同,如果发出此命令后2秒内收不到回复信息,再 发送一次,如果2秒内还不能收到回复信息,则放弃。
03h——通知来料
无回复信息
当a=15h时,发送数占字节数未定,发送数的数据说明如下:
b,(bd1,bd2,bd3,…)
其中bd1,bd2,bd3,…为bcd码,即每个字节都为0~9的数字,高位在前。
b说明如图2所示。
图2
回复信息:
00h,06h,15h,04h,17h,ffh
如果发出此数据后2秒内收不到回复信息,再发送一次,如果2秒内还不能收到回复信息,则放弃。
西门子s7-200自由口部分编码通讯plc程序如下:
sbr1 子程序1 将接收到的字符依次放入接收缓冲区
network 1 网络1
ld sm0.0
incb vb100 接收字节数加1
incd vd86 接收缓冲区指针加1
movb smb2, *vd86 将接收到的字符存入vd86指向的地址
int 0
network 1
ldb<> smb2, 0 若不是起始字符0
creti 中断返回
network 2
ld sm0.0 movb 0, vb100 将接收字节 计数器vb100清零
movd &vb100, vd86 指针vd86指向接收缓冲区首地址vb100
call sbr1 将起始字符存入接收缓存区的vb101
atch int1, 8 接收字符中断连到int-1
int1
network 1
ld sm0.0
call sbr1 存放接收到的报文数据区字节数
movb smb2, vb99 将报文数据区字节数存于vb99
movb vb99, vb90 校验码字节vb90初始化
atch int2, 8 字符中断事件连接以中断程序2
int 2 接收数据区数据的中断程序2
network 1
ld sm0.0
call sbr1 将收到的数据存入接收缓冲区
xorb smb2, vb90 将数据区的数据逐字节异或,计算校验码
decb vb99 数据字节计数器减1
network 2
ld sm1.0 零标志sm1.0=1,表示vb99=0,接收已完成
atch int3, 8 字符中断事件连接到中断程序3
int 3
network 1
ldb<> vb90, smb2 如果校验错误
atch int0, 8 重新启动接收
creti 中断返回
not 报文结束且校验 正确
call sbr1
call sbr6
4 结束语
本项目采用plc与visual basic工具设计和开发了大口径钢管的称重与测量系统,系统稳定可靠,称重准确度高,测长精度可达0.01mm,完全满足工艺要求,使系统即有控制又有完整的人机界面,在使用过程受到了用户的认可,且受到好评。