数控编程解析范例6篇

数控编程解析

数控编程解析范文1

【关键词】数控车床 加工实训 问题 对策

数控车床加工实训是机电技术应用专业和其它相近专业的一个重要实训项目,该项目对于培养学生使用数控车床进行编程与加工的实践能力有很重要的作用。近年来,我们发现部分中职学校在进行数控车床编程与加工实训的过程中,很多班级的学生觉得数控加工技术很难学,一些学生不能独立完成编程与零件加工,参加数控加工考证的学生很少,这种状况严重影响了学生的就业和职业发展。如何让学生更好地学习和掌握数控加工技术?这就需要我们尽快解决的一个大问题需要我们全面分析课程教学和技能训练中存的困难和问题,找到解决问题的办法和对策,对症下药,及时解决。下面结合我近年来所进行的数控技术课程教学、技能训练及教学研究,对数控加工课程教学和实训的难点问题及对策进行分析和探讨。

1.数控车床加工实训中存在的较突出的一些难点问题

1.1 学生加工工艺分析能力和加工准备能力差。不少学生不能全面领会零件图纸的技术要求。对零件图要求的加工精度等级、尺寸公差要求、加工方法不能全面分析,无法确定合理的加工方案。

加工准备也是一个难点问题。很多学生不能独立完成刀具材料、刀具角度、切削用量的选择,大部分学生没有掌握刀具的刃磨技术。

1.2 学生编程能力差。很多学生对于建立工件坐标系、绝对编程、相对编程、确定走刀路线、程序编制和校验无法独立完成。

1.3 学生完成零件加工、保证工件质量方面的能力较差。学生对于如何保证零件的表面质量、尺寸精度等方面不知道怎么样做,遇到问题不会处理。

2.解决数控车床加工实训难点问题的对策

2.1 结合岗位工作能力需要,培养学生完成读图能力和工艺分析能力。

数控车削加工的工艺分析和工艺准备,与普通机床加工相似,只要对零件图能够全面分析,理解图纸的各项技术要求,弄清楚哪些表面需要进行精加工,哪些表面不需要进行精加工,零件的加工需要用需用哪些定位和装夹方法、夹具、刀具、量具,就可以根据需要合理安排粗加工、精加工的加工内容,正确选择加工刀具种类、刀具材料、切削用量。

对于培养学生分析识图能力这个问题,需要教师对学生的原有基础做全面的了解,有针对性地进行训练,提高学生的图纸分析能力。在我们的课程教学过程中,我们发现很多学生在进行学习机械制图和金属工艺学、数控技术应用这几门课时,对于零件图的分析和零件加工工艺编制这些内容,很多学生学不好,到了实训环节,很难完成零件图的分析和零件加工工艺编制。指导教师需要针对所要加工的零件,重新给学生打好这些方面的基础,使学生很快就能举一反三,对常见的零件加工图纸进行分析,合理进行粗加工、精加工的安排。

2.2 强化训练,培养学生的工艺准备的能力。

数控车削加工的工艺准备,刀具材料选择、刀具角度选择与车刀刃磨是重中之重。要做好刀具的刃磨训练,学生在进行刀具刃磨的过程中,很快就能理解刀具角度选择要求,其它问题也就不难解决了。

对于刀具材料选择,在数控车削加工当中,中碳钢材料的加工是最典型的加工问题,刀具材料通常选用高速钢、YT15、YT30等几种刀具材料,高速钢由于耐热和耐磨性能稍差,大多数人更多地选用YT15、YT30、YW1、YW2等硬质合金材料。但实际加工中,高速钢在粗车加工中具有很明显的优势,只要合理选择切削用量,采用切削液进行冷却,通常可以保证加工较顺利地完成。教师在实训过程中要注意进行这些方面的指导,让学生在训练掌握这些技术。

关于工件的定位装夹,在数控车削加工中,由于轴类的加工比较多,而且短轴加工最多,因此用得最多的就是三爪自定心卡盘,顶尖和鸡心夹用得很少,因此,在零件的定位装夹方面,应加强百分表的就用练习,让学生学会用百分表对工件的定位进行找正,培养学生进行精确定位的能力。

对于切削用量的选择,要通过粗加工和精加工对比,安排足够的时间让学生反复练习,使学生理解粗加工采用较大背刀量、较大进给量、较低切削速度,精加工采用较小背吃刀量、较小进给量、较高转速的原理,还要针对常见的材料加工,让学生选择一两种方案反复使用,达到熟练的程度。如对于采用高速钢车刀车削45号钢,粗车时可选择的背吃刀量ap为1~2MM,进给量f为0.3~0.5毫米/转,车削速度为20~30米/分,精车时可选择的背吃刀量为小于0.5MM,进给量为0.1~0.3毫米/转,车削速度为40~50米/分,并让学生学习运用公式计算工件的转速,从而选择定主轴的转速或档位。

2.3 针对常见的零件加工,强化学生编程能力培养。

零件车削加工编程,应让学生重点学习最常用的编程方法,反复练习。在数控车削加工中用得最多的是绝对编程,加工的表面主要是外圆柱、外圆锥、退刀槽、公制的外螺纹,内孔和内螺纹的加工并不多,因此要以外圆和外螺纹的加工编程为重点进行编程训练。

对于工件坐标系的建立,应主要在工件右端面建立工件坐标系,这样做对刀时不用进行过多的计算,操作比简单,有利于保证操作安全。有的学生对于采用直径编程一时不好理解,这对于编程是不利的,要加强练习,使学生能准确确定加工刀路的各个点的坐标。

在进行编程练习时,要注意加强外圆粗车循环、精车循环、切槽循环、螺纹加工等几种最常用的循环指令的编程训练,如在广州数控GSK980TDa系统,应主要加强G00、G01、G02、G03、G71、G70、、G76、G92、G98、、G99这些常用指令的练习,采用这些指令,一般的轴类零件车削编程就基本可以满足需要了。其它不常用的指令如G41、、G42、、G40等就不需要占用太多的时间,只要学生有所了解就可以了。

2.4 强化操作训练,提高解决实际问题的能力。

数控加工与普通机床加工相比,难度较大,对操作人员的要求更高,学生需要学习的知识也较多,其中包括数控机床的结构、工作原理、操作系统的编程与操作方法和常见的故障处理方法,学习一种数控机床的操作、编程与加工技术,所需时间也更多。

数控编程解析范文2

【关键词】Lua;机器人语言;解释器;模块化

0 引言

工业机器人的快速发展,逐渐使人类从繁重、单调或是危险的工作中解放出来。为了缩短机器人的开发周期,需要一种简单易懂的语言对机器人进行编程,这就是机器人语言产生的初衷[1],它更符合人的语言习惯和思维方式,即使不懂编程语言的工作人员也能够很快的理解和运用。这就需要把这种类人思维的指令语言解析成为C/C++能够理解和运用的语言。机器人语言解释器的主要功能就是将文本形式的简单的机器人语言,也就是指令代码转换为程序需要的数据结构或格式,以控制机器人的运行,所以解释器在机器人软件系统中起到非常重要的作用,其解释效率将直接影响工业机器人的工作效率。

Lua的设计目的就是为了嵌入到应用程序中,从而为应用程序提供灵活的扩展和定制功能。轻量级Lua语言的官方版本只包括一个精简的核心和最基本的库。这使得Lua体积小、启动速度快,在目前所有脚本引擎中,Lua的速度是最快的[2]。这一切都决定了Lua是作为嵌入式脚本的最佳选择。因此选用Lua脚本语言构建解释器。

与文[3][4]中的解释器不同的是Lua不仅仅是把参数传递给主程序。基于Lua的解释器用Lua整合现有资源,构造整个系统的框架,调用控制模块来实现具体功能,降低模块之间耦合程度,其优势在于扩展性、复用性较强,并且方便实现更复杂的结构和逻辑,为将来更高级的机器人语言解析提供了可能。脚本语言无需编译,在解释器的开发阶段可以实现快速、实时的修改调试,缩短开发周期。

1 工业机器人控制系统及编程语言设计

1.1 工业机器人控制系统

操作者在界面利用规定的机器人语言指令编写程序,用解释器对机器人语言进行解析,调用相应的控制模块,控制模块包括路径规划模块、速度规划模块、运动学模块和动力学模块,完成轨迹规划、插补、逆运动学等运算,最后Lua把伺服电机需要的关节角度、关节角速度和加速度参数传递给运动控制器,实现对机器人的控制。

1.2 工业机器人编程语言设计

机器人编程语言需要运动指令和流程控制指令,解释器的任务是要对指令进行解析,控制机器人完成指令动作。

2 基于Lua的解释器设计

2.1 Lua简介

Lua是一种嵌入式语言,Lua具有与C/C++良好的交互能力,十分简洁的API,可以说是目前脚本语言中做的最好的[1]。我们可以把Lua作为C/C++的一个库,同样也可以把C/C++作为Lua的一个库。Lua与C/C++可以通过一个虚拟栈来进行数据交互,十分简洁,这一点对实现工程的模块化非常重要。解释器将C++作为 Lua的一个库来使用;

Lua提供了丰富的字符串处理函数;

灵活的table和function,table是Lua中一种特别的结构,类似数组,但它其中的元素可以是任意类型的,甚至可以是一个函数。Function具有参数变长机制,这些为解析工作提供了极大的方便;

Lua具有可移植性,Lua可以运行在任何平台上,包括:PlayStation、Xbox等等。

由于Lua具有的这些特点,它可以作为一种高效便捷的解析工具。

2.2 基于Lua解释器的体系结构

首先编辑机器人程序,编辑完成后,调用Lua读取文本中的机器人程序,解析每一句代码,检测词法语法错误,有错误时抛出错误类型,无错误时分解成指令和参数,根据不同的指令调用不同的控制模块:把示教点位置姿态信息传递给路径规划模块,得到路径参数,把速度参数和路径参数传递给速度规划模块,把速度规划参数和路径参数传递给插补模块,得到笛卡尔空间末端执行器插补状态参数,最后调用逆运动学求解模块,推出六个关节运行时间对应的位置、速度、加速度信息,传递给伺服驱动控制器完成动作。在这里Lua不仅是传统解释器的作用,而是整个系统的调度者,有利于机器人控制系统的模块化,这样一来,假如速度规划模块需要优化,我们可以直接把这个模块替换成优化后的模块。

2.3 基于Lua的解释器界面实现

常用的界面实现形式是Qt,基于Lua的解释器研究采用一种新颖的实现形式――Qtlua,Qtlua库旨在用Lua脚本语言使Qt应用程序可脚本化,为QtScript模式提供一种新的选择,因此它具有脚本的特点[2]。很多脚本语言都可以实现对Qt的封装,之所以选择Lua是因为Lua的小巧,可以将解释器模块式的嵌入到其他机器人平台中,并且可以方便的进行在线维护和升级。

3 实验及结果

用自己开发的解释器软件RLI(Robot Language Interpreter)结合vs2008来解析文本,调用控制模块生成数据,利用robotic toolbox for matlab进行仿真验证。在编辑时加入一些不必要的空格和换行、替换控制模块,以测试解释解析的正确性。大量的测试表明,解释器能够正确的解析机器人语言,调用相应函数,执行循环结构,控制机器人执行相应动作等。当机器人程序编写有错误时,可以对其中的错误进行提示。图1中的程序描述了工作流程:机器人从位置点P001移动到位置点P002,然后按照弧线-直线-弧线对工件喷涂,等待工件底座旋转,再次喷涂,反复几次后停止于位置点P007,移动到位置点P008待命。运行仿真结果如图2所示。

4 结论

通过Lua脚本语言,可以准确、快速的解析机器人语言,可以使机器人语言的编写简单化,使非专业人员也可以对机器人进行编程。Lua脚本语言在机器人中的运用可以实现机器人控制程序的模块化,降低模块间的耦合度,方便实现模块的替换、升级和扩充;可以的大大缩短机器人解释器开发时调试的时间;解释器可以便捷的添加或删除指令,简化了后期的升级维护,实现了解释器的开放性;Lua具有良好的可移植性,根据不同平台修改cmd中的内容后就可以在其他机器人控制平台运行,具有广泛的应用范围。

【参考文献】

[1]John J.Craig. 机器人学导论[M].3版.O超,等,译.北京:机械工业出版社,2006.

[2]Roberto Ierusalimschy. Programming in Lua[M]. , 2013.

数控编程解析范文3

【关键词】单片机 控制系统 设计实现

一、硬件系统的设计与实现

硬件系统的是控制器的基本构成。控制器的基本硬件包括:电源、CPU、储存器、输入输出接口电路、功能模板和通信模板。因此单机片的通用控制器设计时也具备以下几个必要模板。(一)储存器。主要用来储存信息、数据和运算结果。(二)微控制器。它包含了CPU和存储器。目前市场上制造商提供了各式各样型号的可供保持的存储器,这使得断电后一些用户数据和程序得以保存,只要通电PLC就仍能继续进行操作。但是这也要求微控制器的运行速度要快,可靠性要高。此外,微控制器还要求有编程功能,需下载一些用户程序。(三)复位电路和输入输出接口。复位电路主要包括上电、按键及看门狗等复位,其作用是在死机或是一些特别情况下保证系统的正常工作。输出模块包括用来控制如接触器、电磁铁、数字显示配置、指示灯和报警装置等部件的输出设备。(四)模数及数模转换模块。主要用于模拟量的输入和输出控制。微控制器一般只能处理一些数字信号,而一些机构有时会要求输入或输出模拟量,这时就需要数模转换。(五)串口的通讯模块。它能够方便控制器和PC之间的通信,有助于数据交换及用户程序下载的买现。

关于硬件系统的实现。通用控制器芯片内部集结了RAM、ROM、ISP等多种模块,电路比较简单化。同时由于芯片内的RAM容量较为有限,因此增加了某些芯片如:DS1566芯片,扩大了数据的储存量。此外,单机片还采用24位的地址寻址比以往16位的地址寻址能够寻址范围更大。在通信模块的实现方面,采用了通用的串行接口。另外为实现单片机电平和标准电平的相互转换,采用一种单电源来供电的通信器。为增加数字的输入输出量,增加端口的数目,通用控制器通过采用增加芯片数目的方法来实现。

二、系统软件设计需求与实现

一般控制器的软件系统主要包括上位机软件和下位机软件两大部分。上位机软件属编程软件,用于编辑、创建和翻译用户程序。然后再发送到下位机。下位机是控制器的内部软件,一般包括驱动程序、操作系统和一些指令的解释模块等。它们同是软件系统重要组成部分。因此,对一个软件系统的分析也应从这两方面入手。

(一)上位机软件的设计与实现

用控制器系统的上位机软件的任务是把指令表的程序转变成为单片机能够识别的编码。在其具体操作中主要包括以下三个方面:A、对指令表程序的文本处理。处理步骤是:首先进行预处理,删除其程序文本的注释;然后,进行词法的分析,将文本分解成独立符号。B、对指令进行编码。这包括对操作符的编码以及对操作数的编码两部分。对于操作符,我们通常不需要对其一一进行编码,而是选择性的对一些常用的进行编码。操作数又包括立即数和线圈两种。在对操作数进行编码时要注意两个基本原则:其一,按照一定宽度进行编码,这有助于下位机的程序下载和储存,也有利于下位机程序扫描。其二,编码中要包含操作数或操作符的类型信息,以便简化下位机的解释程序。C、将编码后,把程序发往下位机。

上位机的软件是在Windows的平台下进行开发的。包括三个阶段。第一阶段主要是文本的处理,这可以通过字符操作的模块和文件读写的模块来实现。第二阶段主要是实现编码的转换,这在通用控制器中是通过在LabVIEW的case结构中构造出有限状态机,分析上一阶段的词法符号,然后转换成对应编码。第三阶段实现串口读写操作,这个用VISA工具包直接能够实现。

(二)下位机软件的设计与实现

下位机软件的功能是要实现系统模拟的工作方式。因此要分析下位机软件就要分析系统的工作方式。控制器系统有运行和停止两种操作模式。在运行模式中,主要是通过响应用户的命令来实现其控制的功能。在停止模式中,能够不执行用户的程序,仅对用户程序进行创建和编辑。可编程控制器用户程序运行与其他计算机相比不同之处就在于处理输入和输出的方式。即其每次进入运行模式时都要执行一次初始化。因此下位机软件开发时应注意以下几个方面:A、系统的初始化。包括端口的初始化和系统功能的初始化,甚至有时候还需检查其部分功能。在实现这一功能时,可以设置CPU内部的寄存器来实现。在输入输出口设定一个相应全局变量,以实现输入输出过程的整个映像。B、分析指令。包括对上位机发过来的指令的解码,找到对应函数和分析指令正确性等。C、对指令解释和执行。在经过以上对指令的分析,找到相应函数,然后执行期望的操作,以实现对PLC运行的完全模拟。D、坚持和上位机保持通信功能。以便进行两者的协作,实现最佳结果。

三、总结

总而言之,文章通过对单机片通用控制器各个部分的设计与实现进行分析,有利于了解控制器整个系统,有利于对单片机控制技术的掌握。具有重要的经济、社会价值。

参考文献:

[1]钟肇新.可编程序控制器原理及应用[M].广州:华南理工大学出版社,1991

[2]陈富安等.单片机与可编程控制器应用技术[M].北京:电子工业出版社,2005

[3]张毅刚编著. MCS-51单片机原理及应用[M]. 哈尔滨:哈尔滨工业大学出版社,2004

[4]胡汉才编著. 单片机原理及系统设计[M].北京:清华大学出版社,2002

[5]沈卫红编. 单片机应用系统设计与分析[M]. 北京:北京航空航天大学出版社,2003

数控编程解析范文4

关键词:Matlab;可视化;教学实践

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2016)28-0178-02

一、引言

《自动控制原理》为自动化专业的核心基础课程,内容抽象不易理解;知识点多,计算烦杂,且作图量大。在传统的教学过程中,教师花费大量的时间和版面进行推导公式和绘制曲线,而且难以保证结果的精度和准度,也不能反映系统动态响应过程,影响了课堂教学效果。计算机技术的飞速发展,各种应用软件层现叠出,在控制理论领域MATLAB应用最为广泛,进行适当编程,即可分析控制系统的动静态性能。

(一)研究参数变化对系统的影响

由于MATLAB具有很多成熟的控制系统的库函数,对于本科教学中的控制问题只需调用库函数即可实现。我们通过改变系统的控制参数或对象参数来分析和理解该参数对系统产生的影响,让复杂的问题变得简单,抽象的问题变得直观,便于学生理解,把必须到实验室的硬件环境搬到课堂,增强学生学习的自信心以及学习兴趣,同时学生在自学过程中,也可以作为练习验证的工具。作者通过Matlab的GUI编程,编写了可视化的仿真工具,如图1。

在图1所示的仿真界面中,有两个组合框可以选择是一阶系统还是二阶系统,其形式分别是■和■,以及响应曲线方式的选择(阶跃响应、脉冲响应和斜坡响应);另外还有两个编辑框用于编辑一阶和二阶系统的参数,在选择一阶系统时,可供编辑的参数为时间常数T和比例增益K;在选择二阶系统时,可编辑参数分别为固有频率ω和阻尼系数ξ,通过改变参数,可以形象生动的看出不同的参数对系统的影响。

(二)研究不同方法分析稳定性的一致性

控制系统的研究核心问题即为系统的稳定性问题。以线性定常系统为例,其稳定性问题的研究方法很多,在经典控制理论中大致包含:(1)画出响应曲线;(2)研究系统闭环极点的分布情况;(3)通过劳斯判据判断;(4)Nyquist曲线和Nichols曲线分布;(5)通过bode图研究。其中,(1)~(4)为时域分析方法,(4)~(5)为频域分析方法。对上述几个问题进行分析,如果不借助于计算机仿真技术,只是通过理论计算,将占用大量的课堂时间,而且学生不能很好掌握。

本文通过Matlab仿真软件开发的经典控制系统仿真软件,通过组合框系统类型,通过编辑框填写合适参数。如在方法(1)中,曲线最终收敛于1则说明系统是稳定的,否则是发散的。在方法(2)中,通过观察闭环极点的分布情况,判断系统的稳定性,如果闭环系统的根都具有负实部,则系统稳定;否则系统处于临界稳定或发散。闭环系统极点分布情况,可以由闭环系统的特征根得出,或分析开环系统的根轨迹分布情况来确定。而手工求解特征根对于高阶系统是不可行的。根轨迹曲线也只能是草图。通过Matlab则可方便地得到系统根的分布状况,如单位反馈系统的开环系统的传递函数为G(s)=.

可编写指令:num=[0.5 1];den=[0.5 1 1];[root,k]=rlocus(num,den),可方便得到根轨迹分布图,同时还可以得到根轨迹增益K和其对应的闭环系统的根root。对于确定的根轨迹增益,还可以通过roots命令求出其闭环特征方程的根,以确定其是否稳定。在经典控制理论中,我们还可以分析在不同频域范围的稳定性,如bode图、Nyquist图和Nichols图。

(三)控制系统设计依据

根轨迹分析方法是一种图解方法,也即通过分析控制系统的某一参数从零变化到无穷时,闭环系统特征根在S平面上的分布情况。在教材中提供了绘制根轨迹的若干规则,根据规则可以得到相应的草图。但依然需要大量的分析、计算、描点等过程。

(四)学生做题的验证工具

在课堂教学中布置的作业,学生可以进行仿真验证。学以致用,对控制理论的学习,我们不能让学生把控制理论简单地理解为数学推导或只会套用一些公式,我们应该引导学生思考控制系统的理论体系,学会分析系统参数的变化对控制性能的影响,从理论分析现象到从现象中寻找理论依据,从而更好地理解控制理论是精髓。如果通过硬件环境去验证,将花费大量的精力和物力,甚至有一定的安全问题。而Matlab软件给我们提供了快捷的分析工具,减少了大量的计算和时间,让学生有可能去大胆探索、验证和改进。

二、结论

通过引入MATLAB对控制系统进行仿真,可以帮助学生对控制理论中的一些概念的深入理解,参数变化对控制系统性能的影响,大胆设计与验证控制参数。在今后的教学过程中,将按模块化对《自动控制原理》中的一些问题进行虚拟仿真设计,切实提高教学质量。

参考文献:

[1]燕涛,朱莉,翁智.“自动控制原理”实验教学改革探索与实践[J].实验室研究与探索,2013,(11).

[2]满红,王琳,邹存名,冀勇钢.浅谈现代教育技术在自动控制原理精品课程建设的作用[J].中国教育信息化,2011,(5).

[3]李振龙,乔俊飞,孙亮,于建均,杨金福,陈梅莲.自动控制原理课程体系结构和教学方法探讨[J].教学研究,2009,(2).

[4]刘艳,尤源.《自动控制原理》课虚拟实验教学的改革与实践[J].装备制造技术,2010,(4).

[5]郭爱文,余亮英.“自动控制原理”在核工程与核技术专业教学中的探讨[J].中国电力教育,2014,(09).

[6]范兴刚,徐新黎,王万良.“自动控制原理”国家精品资源共享课程建设[J].电气电子教学学报,2014,(02).

[7]刘宝,孟令雅,王钊,盛立,于佐军.“自动控制原理”课程特色教学研究与探索[J].电气电子教学学报,2013,(05).

[8]夏静萍,王瑛.自动控制原理实验教学探究――基于实物命题的递进式教学法[J].实验室研究与探索,2013,(12).

数控编程解析范文5

论文关键词:直读式电子压力计;单芯远距离传输;曼彻斯特码;编码;解码

论文摘要:本文从现有存储式电子压力计的技术现状出发,分析了在井下高温、高压、远距离条件下,实现压力、温度数据实时可靠采集、传输、分析的压力计——直读式电子压力计的数据传输方案和实施,并从技术需求分析、通讯方案选择、单芯远距离传输、曼彻斯特码编解码的软硬件设计等方面,对直读式电子压力计数据传输方案进行了深入研究。试验数据分析结果表明,本文研究结果解决了直读式电子压力计的关键技术,增强了电子压力计在油田测井领域的市场竞争力。

一、引言

目前存储式电子压力计已广泛应用于国内各大油田高温井下压力和温度的测量。存储式电子压力计在工作过程中,仪器内的单片机系统和各种传感器共同完成井下压力和温度的采集,并以数字量形式存储于电可改写型存储器中,待测试过程完成后,再将压力计返回地面,用专门配套研制的数据回放仪与压力计连接,通过软件和硬件接口通讯进行数据的接收、回放和处理,使用很不方便,影响生产。

因此,为克服存储式电子压力计的上述缺点,提高油田生产效率,提升电子压力计在油田测井领域的市场竞争力,必须研制在井下高温、高压、远距离条件下,实现压力、温度数据实时可靠采集、传输、分析的压力计——直读式电子压力计。

二、直读式电子压力计技术需求分析

(一)功能及主要技术指标要求

直读式电子压力计实现井下压力和温度参数的测量,并将测量结果通过单芯铠装电缆实时传送至地面解码控制仪,主要技术指标要求如下所示。

a) 压力测量范围:(0~30、45、60、80)MPa;压力测量误差: 0.04%F.S;

b) 温度测量范围:(-20~+150)℃, 测量误差:±1℃;

c) 传输距离不小于6000m;通讯误码率1.0×10-7。

(二)基本方案及工作原理

直读式电子压力计由井下电子压力计和地面解码控制仪两部分组成,其中井下电子压力计由压力传感器、温度传感器、信号放大电路、模数转换电路、单片机系统、编码电路、数字通讯接口电路和装载于单片机系统中的相关工作软件组成,解码控制仪由解码电路、通讯接口电路、通用计算机(油田配置)和相关工作软件组成。

工作过程中,井下电子压力计由地面解码控制仪通过单芯铠装电缆提供能源,温度和压力传感器分别将环境压力和温度转换为电信号输出,该电信号经放大和模数转换后由单片机系统进行数据实时采集和处理,然后按一定周期经数字通讯口输出。井下电子压力计和井上解码控制仪之间通过单芯铠装电缆连接,解码控制仪中通讯接口电路接收井下电子压力计输出的压力和温度数据,并经解码后输入计算机中进行实时分析和处理。

三、数据传输方案选择

设备之间数据通讯通常有并行通讯和串行通讯两种方案,并行通讯的缺点是传输距离短,通讯信道所占点号多,而串行通讯与之相反。根据井下电子压力计与井上解码控制仪的数据传输特点,需选择串行数据传输方式。

在曼彻斯特编码中,用电压跳变的相位不同来区分逻辑1和逻辑0,即用正的电压跳变表示逻辑0,用负的电压跳变表示逻辑1。

在油田测井中,井下电子压力计在井下采集大量信息,并传送给地面解码控制仪;但井下电子压力计到地面解码控制仪这段信道的传输距离较长且环境恶劣,常用的NRZ码不适合在这样的信道里传输,而且NRZ码含有丰富的直流分量,容易引起滚筒的磁化。曼彻斯特编码方式使得信号以串行脉冲码的调制方式在数据线上传输,和最常用的NRZ码相比,消除了NRZ码的直流成分,具有时钟恢复和更好的抗干扰性能,这使它更适合于从井下到井上的信道传输,因而在井下电子压力计和地面解码控制仪之间选用曼彻斯特编码使数据传输可靠性更高、传输距离更远。

四、曼彻斯特码编码软硬件设计

每一周期井下电子压力计需将采集到的压力和温度两个参数分别进行曼彻斯特编码方式输出,井下电子压力计与地面解码控制仪之间按如下通讯协议进行。

a) 压力与温度均以字为单位进行传送,先发送压力字,后发送温度字,一个压力字和一个温度字的组合称为一个消息;

b) 每一个字由20位组成,第1~3位为3个起始位,第4~19位为16个数据位,第20位为奇偶校验位;

c) 压力字3个起始位电平为先高后低,温度字起始位为先低后高,高低电平均各占一位半,压力字与温度字校验位均采用奇校验;

d) 传输的波特率:5.7292 kbps(175μs/位),传输一个消息共耗时3.5ms。为保证数据传输可靠性,井下电子压力计同一消息在一个采样周期内重复发送两次,地面解码控制仪根据校验位判断每个字的正确性。

由单片机编程输出两路I/O控制信号,经过滤波电路、运放电路、整型电路后,产生曼彻斯特编码双相电平信号,并经单芯铠装电缆送至地面解码控制仪。为满足曼彻斯特编码格式及井下电子压力计与地面解码控制仪之间的通讯协议,井下电子压力计软件采用如下的编程方式输出波形。

a)压力字同步头为262.5μs高电平后跟随262.5μs低电平,温度字同步头为262.5μs低电平后跟随262.5μs高电平;

b)若数据位为逻辑0,则在87.5μs低电平后跟随87.5μs高电平;

c)若数据位为逻辑1,则在87.5μs高电平后跟随87.5μs低电平;

d)校验位的波形产生方式与数据位相同。

五、曼彻斯特码解码软硬件设计

地面解码控制仪需将井下电子压力计输出的曼彻斯特码进行解码,并按通讯协议用软件将接收到的曼彻斯特码数据转换为井下电子压力计测得的压力和温度数据,即地面解码控制仪中的解码过程为井下电子压力计编码过程的逆过程。曼彻斯特码解码过程可分为如下三部分:

a) 同步字头检测,并辨别其为温度数据还是压力数据。

b) 对曼码形式的数据进行解码,从曼彻斯特码波形中分离出同步时钟,并将时钟和数据进行处理使曼码数据转化为非归零二进制数据。

c) 将串行数据转化为并行数据,并进行奇偶校验,以检验数据传输的正确性。

经过几千米铠装电缆传输上来的数据,幅度衰减到毫伏级,因此井上需要精密的解码电路,才能保证数据传输无误码率。井下传输上来的数据经过滤波电路、精密运算放大器、双D触发器输出曼码波形给单片机,经过单片机的程序转化为井下的压力与温度数字量。

六、试验结果

直读式电子压力计首台产品完成厂内试验后,到油田用8000m的铠装电缆连接井下电子压力计和地面解码控制仪,将电子压力计下放到井下6500m的深度,在温度高达150℃、压力为30~60 MPa的油井中测试压力和温度。在三次连续5个小时的测试过程中,数据传输准确可靠,没有出现丢点现象,误码率为零。

七、结束语

试验数据统计分析结果表明,本文研究结果解决了直读式电子压力计通讯方案、通讯协议、单芯远距离传输、曼彻斯特码编解码软硬件设计等关键技术,增强了电子压力计在油田测井领域的市场竞争力。

参考文献

数控编程解析范文6

关键词:电力营销管理系统抄表机DBFActiveX控件zlib解压缩Base64编解码

0引言

抄表机实际上是一台功能强大的掌上数据电脑,由于其具有存储容量大、数据保存时间长、携带方便、机器运行速度快等特点,在供电企业已经得到广泛应用,主要用于现场电能表表码数据的采集。与传统的卡本抄表方式相比,具有提高工作效率、减少出错率、方便等多方面的优势。

抄表员每次抄表前将抄表户的详细数据从电力营销管理信息系统下装到抄表机中,然后携带抄表机到现场,利用抄表机简便的查找方式查到该抄表户资料,将现场表码数据输入到抄表机中,抄表结束后,将抄表机连接到微机上,抄表机内存储的抄表数据就全部自动的录入到电力营销管理信息系统中。

目前在供电企业中使用的抄表机大多数是通过标准串口线RS232和微机互连,采用标准的DBF作为交换数据格式与电力营销管理信息系统进行数据交互,电力营销管理信息系统通过调用抄表机提供的接口程序,实现抄表数据的上下载过程。

1总体设计

基于J2EE的电力营销管理信息系统和抄表机的集成主要由两个重要的组件构成:客户端基于COM组件模型开发的ActiveX控件和服务端的DBF格式转换组件。系统结构示意图如图1所示。

(1)ActiveX控件提供了DBF格式二进制数据流的zlib解压缩、Base64编解码和调用抄表机的发送接收程序功能。

(2)DBF格式转换组件实现了抄表数据的记录形式和DBF格式之间的转换,提供了DBF文件元数据解析、DBF格式二进制数据流的解压缩和Base64编解码功能。

使用抄表过程简要描述如下:抄表机下载时,首先服务端数据提取程序从抄表中间库中获取抄表数据,通过DBF格式转换组件将数据转换为DBF格式的Java类数组,再转换为字节数组输出流格式,并进行压缩和Base64编码,在客户端利用网页上嵌入的ActiveX控件进行解码和解压,并在指定目录下形成DBF格式的数据文件,利用COM通信机制,调用抄表机发送程序发送数据到抄表机。抄表机上载时,过程正好相反。

2系统实现关键技术

2.1客户端实现技术

(1)抄表机的发送接收程序调用接口。ActiveTemplateLipary(ATL)和MicrosoftFoundationClasses(MFC)是目前编写ActiveX控件的两个流行的框架,但是从基本的设计结构上讲,MFC不适合于开发专业的COM组件,它适合于在Windows应用的基础上提供相应的COM支持,ATL完全面向COM组件[1]。采用ATL构建ActiveX控件,提供抄表机的发送接收程序调用接口。由于COM组件具有接口和实现分离的特性,屏蔽了对不同抄表机型号的不同的接口调用的实现差异,对外提供统一的抄表机的发送接收程序调用接口。接口的实现是对抄表机提供的动态链接库的接口调用,实现了COM组件与组件之间的互操作。

(2)解压缩接口。为有效地传输数据和提高网页文件的下载速度,需要对抄表数据进行压缩处理。采用zlib作为解压缩引擎,为ActiveX控件提供解压缩接口。GNUzlib是通用的压缩库,流行的deflate压缩算法,提供了一套in-memory压缩和解压函数,并能检测解压出来的数据完整性。

(3)Base64编解码接口。采用Base64编码将二进制抄表数据进行编码,并在网页上作为对象缓存。Base64是网络上最常见的用于传输8bit字节代码的编码方式之一,它将二进制数据编码为字母和数字。ActiveX控件提供Base64编解码接口,通过编码将其转换成为一种被称为BASE64的ASCII子集的字符的组合,解码实现逆过程。

(4)采用脚本对页面对象进行访问。将ActiveX控件嵌入抄表机应用程序网页,通过VBScript和Jscript脚本直接调用页面对象(如ActiveX控件)的访问。

2.2服务端实现技术

服务端的DBF格式转换组件,由一组通用的DBF操作组件构成,逻辑上分为DBF格式定义组件、DBF格式解析组件、DBF转换组件和实用类。

(1)DBF格式转换组件。DBF格式定义组件DBFField,定义了DBF字段的元数据以及get和set方法,字段元数据包括字段名、数据类型、长度、数据部分位数等。

采用XML[2]来描述DBF文件的元数据结构和语义,并以XML文件存放在Web应用程序WEB-INF目录下。DBF格式解析组件,提供了通过XML文件或者直接解析DBF文件获取DBF的元数据结构两种方式。DBFStruParser利用DOM解析器将XML解析成DBFField数组。另一种实现是直接在WEB-INF目录存放DBF格式文件,DBFReader解析DBF格式流文件生成DBFField数组。

DBF转换组件DBFConvertRecords,实现数据库中抄表数据结构和DBF格式之间的映射,以及抄表数据集合ArrayList、XML格式与DBF格式的相互转换。

实用类Base64Util用于Base64编解码。java.util.zip.Deflater用于解压缩。

(2)利用XSLT进行格式转换。抄表数据元数据和DBF元数据之间的映射可简单地通过两者一致的字段名或别名约定来实现,但是这种实现要求抄表中间库表的定义和DBF的定义要严格的对应,由于不同电力企业使用的是不同厂商不同型号的抄表机,传送的DBF格式和语义也不一定相同。

XSLT[3]样式表描述了将源XML格式转换为目标格式的一系列的规则。利用XSLT转换器作为转换引擎,对XML格式数据进行过滤、排序和重构[4]。过滤是选择并提取数据的一个特定子集的处理过程,排序就是重新编排数据的过程,重构包括数据元数据转换和翻译数据[4]。以抄表机下装为例,说明转换过程,如图2所示。

首先针对不同类型的抄表机,分别定义不同XSLT样式表。利用DOM解析器将从数据库中检索的抄表数据集合ArrayList转换为XML,根据XSLT样式表所描述的规则,转换为抄表机特定格式的XML数据,再将XML格式转换为DBF格式,间接实现了抄表数据集合和DBF格式的映射。

(3)组件调用。采用基于MVC模型2的Struts的Web应用框架,WriteDbfAction用于处理JSP页面的抄表机发送和接收处理请求,调用DBF格式转换组件进行DBF解析、转换,并利用实用类进行编解码和解压缩。为了向业务层隐藏特定表示层的细节,降低表示层和业务层耦合度,首先定义IWriteDbf接口,WriteDbfForm实现该接口,该接口不包括与请求处理和协议相关的表示层数据结构的引用。采用接口的方式提供合适的值对象给业务WriteDbfBD,再调用相应的业务逻辑类,如DBF格式转换DBFConvertRecords。