编程技术范文
编程技术范文(精选12篇)
编程技术 第1篇
1 表达式
表达式动画是一种建立在数学模型基础上的动画控制方式, 即将动画的运动轨迹、与时间的关系、与某个属性的关系转化为数学运算的模型关系, 来达到控制物体产生动画的目的。
1.1 动画方式
所有的三维软件控制动画的方式有3种:关键帧动画、关联动画、表达式动画。
1) 关键帧动画直接记录物体参数随时间的变化关系;
2) 关联动画记录两个属性之间的变化关系;
3) 表达式动画则将动画中的相关参数、时间属性、运动轨迹等用数学公式模拟表示出来;
1.2 控制物体运动的基本方式
1) Keyframe (关键帧动画)
2) Set Driven Key (驱动关键帧)
3) Constraint (约束)
4) Motion Path (路径动画)
5) Expression (表达式动画)
6) Direct Connection (属性关联)
在这6种方式中, Set Driven Key (驱动关键帧) 、Constraint (约束) 、Direct Connection (属性关联) 都是标准的关联动画, 而Motion Path (路径动画) 则将关键帧动画与关联动画的优势结合起来, 显得对运动中轨迹的控制和属性的关联更加灵活。
1.3 表达式动画
在3DMax、Maya等3D软件中, 一般首先通过建模建立所需要的场景、角色、等, 而表达式动画的实质是将这些建模中所定义的场景物体、角色等定义为对象, 结合采用面向对象的程序设计方法, 在表达式编程中利用参数来控制这些对象, 这些参数可以是时间参数, 也可以是对象的一个参数受控于另一个参数来产生某种数学运算下的动画轨迹, 最终实现建立与改变模型与动画的设计。故通过表达式创建出的三维动画就称为表达式动画。
除了特别加以说明, 一般情况下, 表达式动画对物体运动的控制是全程的, 而且只要表达式中关联的数学模型描述是对的, 那么动画中受控物体属性值一般就不会出现错误动作。
例如, 九大行星运动轨迹都是椭圆, 显然这种动画用轨迹动画很难实现, 但用表达式动画结合数学中椭圆公式的应用, 就很易于实现;而且, 表达式动画实现中, 通过修改几个简单的参数就可以很轻松地调整椭圆轨迹、形状等, 相比于关键帧动画需要修改大量参数而言, 方便得多。
2 脚本
2.1 MEL
MEL (Maya Embedded Language) , 意思就是“Maya内嵌语言”, 是Maya自带的高级编程语言, 由于涉及到对Maya中建模得到的物体对象的操作, 建议必须具备有面向对象编程语言的基础的用户学习它。
Maya中所有的用户界面, 包括菜单、视窗、各种工具都是MEL语言编写而成的。用户在Maya中进行的所有操作, 无论是通过菜单还是通过命令行, 或者是采用其他方式对场景或场景中的物体进行的操作, 实际上都是通过调用MEL命令实现的。
Maya的MEL命令对用户是完全开放的, 即给出了一个开放的拓展空间, 用户可以自己扩展和定制Maya。比如, 用户可以编写自己的界面而不必用类似C++这种较为底层的外部开发工具, 用户可以像搭积木一样随意拼装自己的工具, 可以自己开发Maya默认状态下不能提供的功能, 或重新组织Maya的功能等, 即通过MEL, 可以按照自己的喜好在Maya下创建出特定的项目环境。
2.2 脚本使用
在脚本中有三种运行MEL命令的方法:
如果返回值在以后不需要保留引用, 则可以作为独立语句运行;
如果返回值在以后需要保留引用, 比如想将返回值存入某变量, 则可以考虑将其放入反引号中;
如果想在字符串中构造某命令并执行它, 则使用eval函数命令。
MEL脚本使用的情况无非是如下几种需求:
在Script editor窗口或纯文本编辑器下产生MEL程序;
执行用户建模、动画、渲染等的脚本程序;
可以按项目特定的场景自定义UI, 则用户使用MEL指令时可以脱离Maya的UI, 直接使用热键, 访问快速而方便;
直接给某属性输入准确的值;
比如用MEL脚本建立一个球:
1) 打开记事本;
2) 在记事本中输入:
3) 保存该文件, 文件名:mysp.mel (注意后缀!) ;
4) 之后运行该文件, 就可以在Maya按mysp.mel脚本文件中的制定参数中建立一个球。
当然, 脚本运行的环境设置、脚本书写的基本规则、变量的定义、MEL中的数学逻辑运算等, 因篇幅原因, 不再详细解释。
3 MEL和表达式的区别
1) MEL是间接控制物体属性, 是Maya编程的核心, 也是利用Maya在3D世界自由创作的必需的语言工具;而表达式是直接控制物体属性;
2) 在属性赋值或取值方面:在表达式编程中可以直接用“=”;而MEL脚本中则通过函数get Attr和set Attr来实现;
3) 表达式里有time和frame这两个变量可以调用, 而MEL无法直接使用 (通过其他方法使用, 比如current Time-q) ;等。
参考文献
[1]“火星时代”网站资源.Autodesk Maya培训系列[Z].
数控编程 数控技术 第2篇
二.面的分类及加工策略,(水平面,竖直面,平坦面,陡峭面的判断及其加工方法)。
三.UGCAM主要功能应用(平面铣 面铣 型腔铣 固定轴曲面铣 点位加工)。
四.电极的加工程序制作,粗加工,粗加工清角的三种方法(基于层_Cavity,参考刀具,3D_Cavity及其适用场合),精加工,小刀半精加工的二种方法(Zlevel,3D_Cavity), 小刀精加工及其清角的三种方法(参考刀具,修剪边界,补助实体)等。
五.电极火花的三种放法(缩小图形法,扣刀法,负余量法),刀长检测及碰撞检查。
六.模仁的加工程序制作,淬火做法和非淬火做法,修补形体,做辅助实体,粗
加工及其清角,半精加工及其清角,精加工及其清角,编程工艺安排 特殊情况处理。
七、UG电极设计及电极装配,模具结构知识。
八、UG工程图(出工程图 出电极放电图和程序加工单)
九、UG高级设置(快捷键 工具条 加工模板 刀具库 后处理的设置)
十、UG模具编程实例总结(重点部分)
十一、外挂修改及使用
基于UG的数控编程关键技术研究 第3篇
[摘要]数控技术是制造业信息化的关键技术之一,数控加工是现代制造的重要组成部分。随着计算机技术的飞跃发展,数控编程由手工编程发展到自动编程。本文对自动编程软件及其工作过程进行了介绍,以UG软件为例描述了自动编程软件在数控编程与加工中所发挥的重要作用。
[关键词]自动编程;数控加工;数学模型;三维仿真
[中图分类号]TQ018 [文献标识码]A [文章编号]1672-5158(2013)06-0060-01
1 引言
模具数控编程作为模具数控加工的核心,占用CNC加工30%~40%的时间,因此,数控编程软件功能的强大与否直接影响到模具数控编程效率及加工质量。模具制造业内各类数控编程软件在不断改进和开发各种编程功能的同时,也集成了很多数据库,提供开放性的二次开发接口,供用户根据实际情况进行重新设置开发,以实现编程半自动化或自动化作业。
随着编程软件功能的增多,所需要设置的编程参数也相应增加,如UG编程软件提供了很多开放性数据库设置功能,包括模具设计标准件库、编程数据库,以实现众多编程参数的半自动化、自动化及标准化设置。
2 UG自动编程的数控加工工艺选择
(1)刀具的正确选择
“工欲善其事,必先利其器”。刀具的合理选择是获得优质产品的前提,数控加工中,刀具的选择主要反映在模具的曲面、型腔加工方面,平时使用较多的是国外的仿形铣刀,虽价格昂贵但耐用。粗加工宜用硬质合金球刀、端铣刀或圆鼻刀,精加工用单片硬质合金球刀,清根用粗加工刀、精加工刀或锥度球刀。合金刀片应根据不同加工材料、加工阶段来选,误用不但影响到工件的加工效率和质量,而且将缩短刀片寿命。使用球刀精加工时,在能满足曲面形状几何要求时优先用大刀。刀具选用当否直接关系到制造的成本、质量及效率。
(2)工序的划分
①粗加工
粗加工的主要任务是提高生产率,以较快速度去除毛坯余量使之接近零件形状,同时做到安全、经济。数控加工程序编制时应尽量对毛坯进行连续切削,因为刀具频繁出入切削材料容易被损坏,同时也增加了操作难度。对方形毛坯进行粗加工应采用分层切削法,每层环切或行切走刀,层间螺旋下刀,深度取刀直径的12%-25%为宜,步距根据模具材料不同,一般是刀具直径的25%左右。较好的做法是取较小的切削量、较快的进给速度,既保证了工件的加工质量和效益,也保护了刀具。对复杂的模具型腔,可采用大、小几把刀具分别进行粗加工,把上道工序加工完的几何体作为下道工序的毛坯来使用,以提高加工效率和连续进刀率。铸造毛坯的粗加工是数控编程的难点之一,由于不是从平面开始,初始毛坯不易确定,若简单用分层加工的方法会出现许多空跑刀,大大降低加工效率。这时应仔细分析余量,可先用投影线在型腔的典型部位分别拉几刀,测得实际余量后再酌情确定加工工艺。UG软件的粗加工可以对零件的不同范围分别设置不同的毛坯厚度及工艺参数,自动计算加工层数,程序一次完成。特别需要注意的是粗加工中出现的过切问题。在排除程序错误的前提下产生过切,常是因机床的控制系统与NC程序不统一。如FANUc、SIEMENS系统,在G00运行时机床控制系统往往走的轨迹是折线,此时看程序没有问题但实际加工却产生了过切。这种情况UG软件的刀轨验证功能无法辨别,只有NC程序经仿真软件验证检查,在模拟加工中正确设置机床参数才能发现。解决方法:适当加大层间抬刀的垂直参数(G00时避开折线点),如将层间抬刀至安全平面,缺点是降低了加工效率。彻底的解决办法是在Feeds andSpeeds菜单的Rapid一栏里填上数值(默认为0)即可。
②半精加工、精加工
半精加工一般用于零件尺寸精度要求较高时,为给精加工留下较小的加工余量的切削,可根据加工材料及零件公差要求灵活使用。精加工是对工件最后的切削运动,直接关系到零件加工质量的高低,不同的刀路程序会对零件加工出截然不同的精度效果,UG软件提供了多种方式可选。比如在较陡峭的面多选等高线加工方式,为克服在不同斜率的面上加工残留不均匀则多选曲面加工中的3D步距方式。半精加工、精加工时对精度的取值应看具体情况,不要一味地追求精度而忽视了加工效益。
③清根加工
清根是常用的加工工序,主要是把前面加工中应加工而没有加工掉的余量切掉。有两种情况须使用清根:一是在大刀后换小刀以前,为了给后续加工一个好的加工环境,避免小刀在零件拐角处的切削量过大而导致进给不能保持恒定速度,此时需先清根;再就是用于精加工前后,也是为了速度及加工出符合要求的圆角。清根常采用球刀,具体选什么刀具应根据曲面的情况而定。
(3)后置处理
后置处理就是把CAM软件生成的刀具轨迹,根据机床控制系统的要求转换成G代码格式的数控加工程序。特别注意不同的数控操作系统对数控加工程序的格式、代码规定也有所不同,这是数控编程的最后环节。UG可以直接对内部刀轨进行后处理。此外,UG有可供用户自定义后处理格式,以解决各种编程中的问题。
(4)对加工程序的验证
三维仿真软件模拟加工、验证、分析是CAM软件应用的一个重要环节,模拟分析的好处就是可在计算机上像了解真实加工一样观察产品制造的全过程,用计算机来分析还没有制造出来的零件的质量,并发现设计、制造等存在的问题。验证分析可以针对产品、零件设计,也可针对数控加工程序。NC程序常用的仿真验证软件是上海宇龙公司研制的仿真软件,它采用数据库统一管理刀具材料和性能参数库,提供多种机床的常用操作面板,可对数控机床操作全过程和加工运行进行仿真。在操作过程中,具有完全自动、智能化的高精度测量功能和全面的碰撞检测功能,可检测出刀轨路径的错误以及导致零件、夹具和刀具损坏或机床碰撞等问题,还可对数控程序进行处理。若加工程序的验证既由编程人员同时也由机床操作人员来做,则基本能有效地防止错误的发生。
3 结束语
在数控加工中合理选用自动编程软件可以提高编程效率,做到事半功倍。只有不断地实践,不断地总结,熟练掌握其中的运用技巧,才能够得到理想的数控加工程序。
参考文献
[1]董正卫,田立中,付宜利,UG/OPEN APl编程基础[M],北京:清华大学出版社,2002:1-216
[2]莫蓉,常智勇,刘红军,等,图表详解UG NX二次开发[M],北京:电子工业出版社,2008:1-256
[5]吴勤,在UG II系统中建立用户自定义刀具库[J]CAD/CAM与制造业信息化,200s(2):137-139
[4]郑阿奇,丁有和,c++教程[M],北京:电子工业出版社,2009:1-328
[5l高国利,黄家强,模具加工程序清单的自动化与网络化后处理[J]模具工业,2010,36(4):16-18
GPGPU编程技术初探 第4篇
1 GPU与CPU的比较
随着计算机技术的不断发展,人们尝试在每个计算节点装备多路CPU,而每个CPU芯片中也开始采用多核技术来提升CPU芯片的整体计算效率。而另一方面现阶段每个计算机系统中存在多个处理器,它们分别进行不同数据的处理,例如用于处理网络交换数据的网络控制芯片(NIC)以及用于图形处理的图形处理器(GPU)。
为了满足人们对实时、高清晰度的3D图形效果永无止境的需求,用于图像处理的GPU已经发展成为一种高度并行化的多线程、众合处理器,具有了杰出的计算能力和更高的存储带宽,从而使利用GPU计算能力构建新的高性能计算系统架构成为可能。经过这些年技术的发展进步,目前GPU浮点运算能力比同等档次的CPU芯片要高数倍到10几倍,主要原因就在于GPU是专门为计算密集型、高度并行化的计算而设计的。如图1所示,GPU中设计了将更多晶体管用于数据处理,而非数据缓存(caching)和流控制(flow control)。更具体地说,GPU内部设计为多条计算流水线并行工作,每个计算流水线都相当于一个CPU内部核心(core)的计算单元可以独立完成一组数据的计算处理,因此相当于同时有上百个简易的CPU同时进行数据计算,因此它的浮点运算能力要大大超过工作在同一档次的CPU。当然计算能力的提升也是有代价的,GPU不具备流程控制单元,只适合于大数据块的顺序处理程序开发。
使用GPU进行数值计算和使用CPU相比,主要好处包括:
(1)为满足图像数据处理高效率的需求,现阶段显卡通常采用业界较高性能的RAM作为显存,因此GPU通常具有更大的内存带宽。
(2)GPU在设计上具有更大量的执行单元。例如Ge Force8800GTX具有128个“stream processors”,频率为1.35GHz。CPU频率通常较高,但是执行单元的数目则要少得多。
(3)和高阶CPU相比,目前显卡的价格较为低廉,具有更好的性能价格比。
与此同时,GPU也存在一些劣势:
(1)显示芯片的运算单元数量很多,因此对于不能高度并行化的工作,所能带来的帮助就不大。
(2)显示芯片目前通常只支持32 bits浮点数,且多半不能完全支持IEEE 754规格,有些运算的精确度可能较低。目前许多显示芯片并没有分开的整数运算单元,因此整数运算的效率较差。
(3)显示芯片通常不具有分支预测等复杂的流程控制单元,因此对于具有高度分支的程序,效率会比较差。
(4)目前GPU的程序模型仍不成熟,也还没有公认的标准。两个主流提供厂商NVIDIA和AMD/ATI就有各自不同的程序模型。
总而言之,GPU适合一次进行大量相同的工作。CPU则比较有弹性,能同时进行变化较多的工作。因此基于强大的并行处理能力和极高的存储器带宽,完全可以将GPU抽象成一个流处理器(Steam Processor),用于诸如科学计算、数据分析、线性代数、流体模拟等需要大量重复的数据运算和密集的内存存取的应用程序,那么就能获得比CPU强悍的多的计算能力。
将GPU(图形处理器)用于通用目的的计算就被称为GPGPU(General Purpose GPU)。正如上面所提到的,目前业内提供GPGPU的厂商有两家:NVIDIA和AMD/ATI。
2 CUDA开发平台结构及其配置
“CUDA是NVIDIA的GPGPU模型,它使用C语言为基础,可以直接以大多数人熟悉的C语言,写出在显示芯片上执行的程序,而不需要去学习特定的显示芯片的指令或是特殊的结构”,这是NVIDIA公司给出的CUDA的定义。对于这段定义程序员可以简单地将CUDA开发平台理解为使程序员能够利用C语言开发基于GPU的一套程序插件包,它定义了一系列函数以及这些函数的使用方法,程序员使用它能够快捷地进行并行计算软件开发。正如图2所示,在CUDA平台上提供了多种高级语言支持的接口并支持Open GL和Direct X图形开发。
而图3所示是CUDA体系架构图,根据图中所示可以看出CUDA大概分为Library、runtime、Driver3个部分,程序员通过对这3个部分不同的调用使CPU能够调度GPU完成高性能并行计算。
由于CUDA属于一种新的应用技术,NVIDIA公司不能保证所有的显卡都能支持CUDA,因此要使用CUD编程,必须首先测试计算机系统中的显卡是否支持CUDA平台。Nvidia提供的很多产品都已经配置了能够支持CUDA的GPU,可以通过检查显卡的Vendor Name以及Model号来对照NVIDIA提供的支持列表来判断显卡是否符合需要。ATM的显卡有自己的一套GPGPU模型,但遗憾的是这一GPGPU模型并未对外公布。Nvidia系列支持CUDA的GPU包括:
(1)Nvidia Geo Force 8,9以及200系列GPU。
(2)Nvidia Tesla计算解决方案。
(3)一些高端的Nvidia Quadro专业显卡。
安装CUDA开发平台的第二项工作就是为显卡安装最新支持CUDA架构的驱动程序,如果计算机系统内是双显卡配置,需要在Nvidia提供的显卡控制面板中关闭SLI选项。
安装完正确的显卡驱动程序后就可以正式安装CUDA平台了,整个CUDA平台包含两个部分:CUDA Toolkit和CUDA SDK。目前NVIDIA提供的CUDA Toolkit支持Windows及许多不同的Linux版本。CUDA Toolkit需要配合C/C++compiler。在Windows下,目前只支持Visual Studio 7.x及Visual Studio 8。Visual Studio 6和gcc在Windows下是不支援的。在Linux下则只支援gcc。在Windows下,CUDA Toolkit和CUDA SDK都是由安装程序的形式安装的。CUDA Toolkit包括CUDA的基本工具,而CUDA SDK则包括许多范例程序以及链接库。CUDA Toolkit安装完后,预设可以安装在C:CU-DA目录里。其中包括几个目录:
(1)bin--工具程序及动态链接库
(2)doc--文件
(3)include--header檔
(4)lib--链接库档案
(5)open64--基于Open64的CUDA compiler
(6)src--一些原始码
安装程序也会设定一些环境变量,包括:
(1)CUDA_BIN_PATH--工具程序的目录,默认为C:CUDAbin。
(2)CUDA_INC_PATH--header文件的目录,默认为C:CUDAinc。
(3)CUDA_LIB_PATH--链接库文件的目录,默认为C:CUDAlib。
CUDA开发软件包安装完毕后,需要在应用软件开发平台上进行必要的配置以方便应用开发人员使用,以下是Windows平台上VS2005开发平台为例进行配置:
(1)首先,建立一个Win32 Console模式的project,并新增一个档案,例如main.cu。
(2)在main.cu上右键单击,并选择Properties-〉General,确定Tool选项是选择Custom Build Tool。
(3)选择Custom Build Step,在Command Line使用以下设定:
1)Release模式:"$(CUDA_BIN_PATH)nvcc.exe"-ccbin"$(VCInstall Dir)bin"-c-DWIN32-D_CONSOLE-D_MBCS-Xcompiler/EHsc,/W3,/nologo,/Wp64,/O2,/Zi,/MT-I"$(CUDA_INC_PATH)"-o$(Configuration Name)$(Input-Name).obj$(Input File Name)
2)Debug模式:"$(CUDA_BIN_PATH)nvcc.exe"-ccbin"$(VCInstall Dir)bin"-c-D_DEBUG-DWIN32-D_CONSOLE-D_MBCS-Xcompiler/EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd-I"$(CUDA_INC_PATH)"-o$(Configu-ration Name)$(Input Name).obj$(Input File Name)
(4)对所有的配置文件,在Custom Build Step的Outputs中加入$(Configuration Name)$(Input Name).obj。
(5)选择project,右键单击选择Properties,再点选Linker。对所有的配置文件修改以下设定:
1)General/Enable Incremental Linking:No
2)General/Additional Library Directories:$(CUD-A_LIB_PATH)
3)Input/Additional Dependencies:cudart.lib
这样就可以在Visual Studio的IDE中编辑CUDA程序后,直接build以及执行程序了。
3 CUDA编程模式
在CUDA的架构下,一个应用程序分为两个部份:Host端和Device端。Host端是指在CPU上执行的部份,而Device端则是在显示芯片上执行的部份。Device端的程序又称为“kernel”。通常Host端程序会将数据准备好后,复制到显卡的内存中,再由显示芯片执行Device端程序,完成后再由Host端程序将结果从显卡的内存中取回。这个调用过程如图4所示。
程序运行时,CUDA会产生指定数量的线程(thread),每个线程都会执行Device端定义的函数,每个thread都有自己的一份register和local memory的空间。系统为每一个线程都会被分配给一个独特的线程ID,可以通过内置的thread Idx变量在Device端函数中访问线程ID。而相互合作的线程可以被定义为一个线程组(Thread block),在同一个block中可以通过快速共享内存(shared memory)交换数据并进行彼此同步。而由于thread block的大小是有限制的,所以不能把所有的thread都塞到同一个block里,可以定义同一维度和大小的thread block组成一个grid。一个Device的核对应一个grid,一个grid中的所有线程组共享全局内存。
Device端程序实际上是一个C语言函数,它是对C语言的一种扩展,因此Nvidia建议文件名使用.CU为后缀。在Host端调用这个此函数时,它将由N个CUDA线程并行执行N次。在定义Device端函数时,需要使用_global_声明限定符,而Host端调用该函数时使用一种全新的<<<...>>>语法来制定每次调用的CUDA线程数。这里给出一个简单的例子对CUDA编程方法进行简单说明,这个程序的主要功能是将计算矩阵X乘以常数Alpha再与同阶矩阵Y相加并将结果记录在矩阵S中:
4 应用前景
伴随CUDA技术的不断完善,Nvidia公司推出专门用于高性能计算的Tesla计算处理器,使GPGPU不再考虑对图形处理功能而单纯实现高性能纯数据计算。相关厂商也及时推出了使用Tesla计算处理器的CUDA架构高性能计算工作站。将这些计算工作站用网络连接起来就构成了一种新型的PC集群,图5就是某厂商提供的CUDA架构计算工作站性能以及运行CUDA体系的PC机群示意图。从中可以看到一个单独的CUDA工作站内置4个Tesla处理器,每个Tesla处理器内置240个计算线程,因此每套工作站总共有960个计算线程可以用于浮点计算,计算能力达到4Tera Flops的浮点计算能力,性能有了大幅度的提升。
另一方面,CUDA的推广应用离不开应用系统的开发,当前已经有大量的研究人员与组织正在石油天然气、计算化学与分子动力学、生物信息学以及生命科学、金融计算与期权定价、数学计算、地球科学等多学科应用CUDA技术,成熟的专业应用软件正不断涌现,有效提升相关专业的计算效率。
为应对GPGPU技术的挑战,Intel公司也将在年内推出内置80核的专门用于计算的CPU芯片,随着这些技术的不断应用,GPGPU技术将有可能会与CPU技术相互融合,最终形成一种多处理器、多功能的计算节点构成方式,为高性能计算的发展提供可靠支撑。
参考文献
[1]NVIDIA CUDA计算统一设备架编程指南版本2.0.NVIDIA.
[2]深入浅出谈CUDA.
[3]邓仰东.NVIDIA CUDA超大规模并行程序设计训练课程.
如何才能快速的学习编程技术 第5篇
有两种类型的程序员:完美主义者和搬运工。
有些人希望一切都是正确的,他们希望完美,他们希望遵循所有的最佳实践,并写出漂亮的优雅代码。他们想要理解每一行代码。有别于那些不管三七二十一,只要自己的代码能工作即可,即使对代码库有损害的人。平衡这两种技能是非常重要的。有时你应该深入钻研一个问题或项目,看看发生了什么。有时你应该让它工作即可,即使你不知道发生了什么。
每当你花费太多时间在某个东西上时,那就问问自己:我应该采取哪种方法?在大多数情况下,你会想取中间值。你想提供一个好的、坚实的解决方案,同时你可以自信地理解和修改,但没有耗费荒谬的时间。随着你作为开发人员的成长,你会更好地明白什么时候就此离开就可以,以及什么时候需要以某些方式完成。
就个人而言,我喜欢我的项目80%完美。如果你的项目是绝对100%完美,没有一行代码让你觉得尴尬,那么很有可能你已经花了太多的时间。
与其他程序员交谈
学习编程的一个很好的方法就是和其他的程序员交谈。
不必谈论任何特定的内容。可以是你正在学习的东西,可以是你认为很酷的东西,可以是你正在工作的东西,皆可。
你会发现很多程序员并不喜欢只是聊编程。这样做可能会让你学到很多关于库,服务,编程语言和模式方面的知识。但是,最重要的是,你将了解到其他人是如何看待编程的。你会发现,你认为理所当然或从来没有考虑的事情在人与人之间是非常不同的。
如果你没有什么可谈的,那就回到编辑器战争或tab vs space的话题。
寻找成就感
最后,我要说的是,一直以来在我身上发生着这样的事,我尝试过很多东西,但我就是不理解。
在用30分钟尝试新的东西后,我会停下来。我想这在起步时是很正常的。但是,我记得很多次,在6个月后(或3个月或9个月),我会回到同样的问题或技术上,弄清楚如何使用它。这是因为我又掌握了一些我以前不具备的知识,或者因为它只是另一种方式的框架。等待一段时间,然后回去,总是一种最有用的方法。
新时期机械数控加工编程技术的探究 第6篇
关键词:数控加工;新时期;编程技术;探究
科学技术的不断发展,使得我国机械制造领域有新的生命力融入。现阶段,经过科研人员的不懈努力,人们将数控加工变成技术与先进的信息技术进行良好的融合,并且应用到我国机械零件生产制造中去,其中最具备代表性的就是和CAXA制造工程方面和宏编程技术方面。机械零件生产中数控编程技术的应用,不仅提升了机械零件生产的质量和效率,同时还促进了我国数控加工技术水平的提升。所以对于新时期机械数控加工编程技术进行深入探究是具有现实意义的,下面就对相关内容进行详细阐述。
1 零件加工工艺方面的机械数控加工编程技术
为了保障机械零件生产的精准度,提高机械零件生产的合格率,科学研究人员将先进的生产工艺和尖端的科学技术融入到机械生产加工设备中,从而使得机械设备的运转能够达到预期的设想。依靠机械数控加工编程技术能够使得机械零件生产加工工艺呈现出科学化、规范化的特点,便于相关人员对刀具设备的研究。利用编程软件,在深入了解复杂机械零件加工程序的过程中,对机械零件加工程序进行优化,从而促进机械零件生产质量的提升。
1.1 刀具的选择
在对机械零件进行加工的过程中,数控铣削加工工艺占据的位置是非常重要的,因为该工艺与机械零件生产加工成本有着非常密切的联系,对于机械零件整体生产加工质量也有着很深的影响。刀具是铣削加工工艺最为重要的工具,对于刀具的选择需要格外的慎重。现阶段普遍应用的刀具有以下几种,其中主要包括锥度铣刀、刀铣刀。不同的刀具,在实际应用过程中会产生不同的削切效果,所以在选择刀具的过程中必须要依据机械零件生产的实际需求。相关技术人员,在对应用刀具类型进行选择的过程中,需要了解机械零件加工型面具体形状。还需要遵循从小到大的原则,并且明确型面曲率的实际尺寸。最终需要注重的是,需要尽可能的应用圆角铣刀对机械零件进行粗略的加工。
1.1.1 了解机械零件加工型面的实际形状
为了提升机械零件型面加工的质量,在对机械零件进行加工的过程中,需要对机械零件的凹型面进行精加工处理,一般情况下选择的处理工具就是球头的刀具。但是需要注重的是,在对机械零件的凸型面进行加工的过程中,通常会选用平端立铣刀作为主要的加工刀具。如果凸型面的加工质量有着很高的需要,相关技术人员也可以选择圆角立铣刀具,从而保障机械零件凸型面加工质量达到相关标准。
1.1.2 遵循从小到大的原则
在对机械零件进行生产加工的过程中,不可能一直应用一把刀具,因为机械零件的型面是非常复杂的。为了快速、顺利的完成整个机械零件的生产加工过程,对于不同型面的处理必须要依据从小到大的原则。这样才能使得机械零件在生产加工的过程中,不会因为刀具应用导致机械零件的质量受到严重损害,同时还能有效的提升机械零件生产加工的效益。
1.1.3 考虑机械零件型面的曲率问题
为了能够有效的提升机械零件生产加工的精准度,在对机械零件进行细致加工的过程中,需要利用半径较小的刀具对机械零件的型面进行处理,特别是在对机械两件的拐角处进行加工的过程中,相关技术人员对于应用刀具的选择,必须要考虑到机械零件型面的曲率问题,同时严格的遵守相关的规范对机械零件生产加工进行严格的控制。
1.1.4 利用圆角铣刀对机械零件进行粗略加工
在对机械零件进行生产制造的过程中,利用圆角铣刀对机械零件进行粗略的加工,与利用平端立铣刀具进行加工相比较,能够余留下较为均匀的精细加工余量。与利用球头刀具相比较,能够余力下更为良好的削切条件。还需要注重的是,在对生产加工的机械零件进行实际削切的过程中,圆角铣刀所具有的优势就是可以在加工零件与刀刃接触的90度范围内进行削切,而且能够保持机械零件生产加工的连续性[1]。
1.2 刀具的切入与切除分析
因为机械零件的型腔往往都是非常复杂的,所以在实际生产加工过程中,为了能够保障机械零件生产加工质量能够满足相关的标准,在生产加工过程中会涉及到对刀具的更换。在对机械零件进行精细加工处理时,刀具的切入和切除对于机械零件生产加工质量都会造成一定的影响。所以,相关技术人员对于刀具切入、切出方式的选择必须要慎重。在对机械零件进行粗略加工时,每一个加工步骤完成后机械零件所具有的几何形状都会发生适当的转变,如果后续加工过程中刀具的切入和切出方式选择不当,那么对于机械零件的生产质量是会造成严重影响的。CAM软件可以提供的刀具切入、切出方式有很多,其中包括圆弧切入切出方式、斜线切入切出方式等,对于提升机械零件生产加工质量有着积极地影响作用。
切削方式在机械零件生产加工过程中有着非常普遍的应用,最为简单的当时就是利用刀具垂直性的进行切入和切出,可以利用机械两件型腔侧壁的精加工,以及从机械零件的外部进行切入,对机械零件的模型进行粗加工。凹模初加工应用最为普遍的方式就是,将预先加工制作的工艺孔切入到机械零件生产模具的内部。如果加工的模具材料材质较软,一般情况下会选择螺旋线,或者是以斜线的方式进行切入,因为可以对刀具切入产生的刀痕进行清除,所以圆弧切入切出方式经常应用于机械零件曲面精细加工阶段。在对机械零件进行粗略加工的过程中,如果是选择单项运刀的方式,通常都会将机械零件开始阶段切入方式的选择,设定为CAD/CAM系统所提供的刀具切入和切出方式,但是需要明确的是,并不是每一次对机械零件进行加工的过程中都会选择这种方式。因为需要避免对生产加工零件质量的损坏,对数控机床应用的刀具进行有效的保护,解决该问题最有效的方式就是减少步距。第二种改善方式就是利用双向运刀的方式进行加工,从而达到提升机械零件生产质量,保护刀具的目的。
1.3 削切方式和走刀方式的确定
对机械零件进行加工的过程中,对于刀具的运行方式进行分析,主要就是利用切削方式,刀具运行的轨迹也就是走刀的实际路线。削切方式和走刀方式对于机械零件的生产效率和生产质量是有着很深影响的,所以需要依据机械零件生产的实际情况,对机械零件生产的削切方式和走刀方式进行慎重的选择。在不会对机械零件生产加工的精准度造成不良影响的前提下,一定会要保障刀具运行的平稳性,尽可能的缩短刀具运行的时间。在机械零件生产加工的过程中,应用较为普遍的走刀方式包括反复走刀、单向和循环几种形式[2]。
2 CAXA制造工程师方面的机械数控加工编程技术
CAXA制造工程师具体指的就是曲面与实体相结合的CAD/CAM一体化软件。CAXA制造工程师具有的功能非常强大,在我国有着非常广泛的应用,而且运行效率较为良好,得到众多人员的一致好评,是我国国内现阶段较为先进的数控加工编程软件。CAXA制造工程师具有的最为鲜明的优势,就是该软件能够支持批量处理,以及促使轨迹实现参数化,可以在软件内部直接性的设定实体和曲面模型,能够促进削切效率的提升,保障机械零件生产加工质量。CAXA制造工程数控加工的主要流程为以下内容,首先是依据机械零件生产加工图纸,对机械零件的虚拟模型进行构建。其次对机械零件生产加工过程进行全面化、科学化的设计。然后根据生产加工零件的生产工艺需求,以及对于外形、精度等众多方面的要求,对机械零件生产加工参数和具体的加工方式进行设置。对刀具的运行轨迹进行模拟性的生成,对需要生产加工的零部件进行墨迹加工,最终导致G代码产生。这样解决了技术人员手工编程过程中会遇到的众多不良问题,能够缩短编程消耗的时间,提升编程质量。
3 宏编程技术方面的机械数控加工编程技术
宏编程技术具体的阐述就是利用变量进行科学化算数运算、逻辑和函数运算等,与高级语言有着相似之处的程序编写方式。对于一些非常复杂的机械零件加工,通常会提供判断、循环。利用宏程序技术对机械零件进行生产加工,不仅能够保障复杂零件的加工质量,同时还能够实现格式化普遍加工,能够有效的缩短编程花费的时间。但是需要注重的是宏程序的编写具有很高的难度性,程序编写人员不仅需要扎实的专业技术,同时还需要掌握丰富的计算机语言知识,并且能够快速的进行模型的创建[3]。
4 结语
机械制造领域是我国经济产业结构中的重要组成内容,与我国经济发展有着非常密切的联系。为了提升机械零件生产质量和生产效率,促进我国机械零件生产水平的提升,相关技术人员经过长时间的不懈努力,将先进的编程技术与数控技术生产进行良好的融合,从而提升了我国机械零件质量和生产效率,促进了我国机械制造领域的进一步发展。
参考文献:
[1]祁捷.机械加工工艺浅析[J].中小企业管理与科技(上旬刊),2014(04):125.
[2]曾锋,杨忠高,王平.整体叶轮的五轴数控编程的关键技术[J].制造业自动化,2012(02):206-208.
编程技术 第7篇
1 概述
1.1 什么是验证码
验证码的英文CAPTCHA这个词最早是在2000年由卡内基梅隆大学的Luis von Ahn、Manuel Blum,Nicholas J.Hopper以及IBM的John Langford提出的。CAPTCHA是“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试)的缩写。如右图1所示。
1.2 验证码的作用
验证码实际上就是将一串随机产生的数字或符号生成一幅图片,并在图片中人为地加上一些干扰像素,以避免入侵者采用OCR技术获得验证码信息,这样才能保证提交给网站的验证数据安全可靠。
验证码主要用于防止恶意批量注册、恶意破解密码、刷票、论坛灌水等。实际上使用验证码是现在很多网站广泛采用的验证方式(比如网上银行、论坛或电子邮件等包含的验证码页面)。验证码的作用具体来说有以下几点:
1)防止使用特定破解程序进行不断的非法登陆尝试。
2)防止非法批量注册,生成大量垃圾账户。
3)防止利用机器人非法向BBS等Web应用灌水,提交垃圾数据。
4)培养用户谨慎、负责的操作态度。
2.3验证码的分类
常见的验证码大体可分以下三类:
1)四位数字和字母,可以都是字母,也可以都是数字,随机的4位字符串,是最原始的验证码,验证作用几乎为零。
2)图片格式,预先准备图片,随机调用生成图片验证码,验证效果优于第一种。
3)完全由程序随机生成某种序列图片,如:数字、字符甚至汉字,并加入干扰像素。防止OCR识别,仅仅满足用户肉眼识别图片的验证码信息,被大多数站点所使用。本文主要探讨的就是如何实现这种验证码方式。
2功能实现
我们使用C#在ASP.NET中实现了验证码的功能。
1)生成验证信息
验证码功能一般和具体业务没有联系。它的通用性较好,可以在多个系统中反复调用。首先要创建一个图片服务页面,专门用于提供包含验证码文本的图片。为此我们建立一个ASP.NET页面VerifyCode.aspx,该页面只生成图片,所以无需添加HTML代码,随机生成验证码及图片的代码保存在代码隐藏文件VerifyCode.aspx.cs中。代码如下:
在上述代码中,页面加载时执行了三个步骤,分别是生成随机码,将随机码保存至Session中,最后生成验证码图片。其中CreateImageOnPage是方法,在该方法内部调用其他两个方法:CreateVerifyCode和CreteImageCode,作用是将生成的验证码图片以数据流的形式发送至客户端,输出类型为image/jpeg。
CreateVerifyCode方法用来产生4位随机码字符信息,此信息被保存到Session中,以便用户输入时进行匹配验证。随机算法由Random类实现,利用NEXT方法获得随机整数,并将该数作为字符序列索引号使用,每个整数对应字字符序列中的一个字符。
CreteImageCode方法用来将通过CreateVerifyCode方法产生的验证码字符写入图片,我们利用了.NET Framework类库的Graphics对象,创建一个System.Drawing.Bitmap类型的图片对象,通过该对象绘制验证码及干扰图像(随机线条、像素)。
2)在表单中运用验证码功能
我们建立一个模拟系统登录的页面UserLogin.aspx,用来调用验证程序页面。上面放置输入用户名,密码和验证码的三个文本输入框。其中验证码输入框后面放置Image控件,用户输入三个信息后点击确定按钮进行登录。
表单部分代码:
运行登录按钮的服务器段代码:
在该代码中,程序获得用户输入的用户名,密码和验证码,然后判断用户名密码是否正确,还调用VerifyCode的静态函数CheckCode来判断验证码是否正确。只有这三个信息都正确才登录成功,否则登录失败。
我们在表单中使用Image控件作为验证图片显示控件,将其图片源路径设置为验证码页面“~/Util/VerifyCode.aspx”。在少数情况下,程序生成的验证码图片难以辨认,则需要重新提供新的验证码图片,我们增加Image控件的onclick事件,该事件重新调用VerifyCode.aspx页面,于是服务器端的验证码文本用了新的,而图片内容也随之更新。由于每次尝试登录或更换验证码图片时,正确的验证码都是随机发生改变,毫无规律,这样大大增强了登录页面的安全性。
4 总结
在本文中,我们一起研究了验证码技术的原理,并使用C#在ASP.NET中实现了简单的验证码技术。验证码技术是一种安全防御技术,其中涉及一定的图形编程。这样看来图形编程应用是广泛的,可以为很多技术提供支持。
参考文献
[1]杨小明,雷光辉,何青建.基于ASP.Net的Web网络应用程序开发的安全策略实践[J].计算机教育,2006(11).
PB数据窗口动态编程技术 第8篇
PowerBuilder(简称PB)是一个图形化的应用程序开发环境。使用PB可以很容易地开发和数据库打交道的商业化应用软件。PB开发的应用软件由窗口构成,窗口中不仅可以包含按钮、下拉列表框及单选按钮等标准的Windows控件,还可以有PB提供的特殊的控件。这些特殊控件可以使应用软件更容易使用,使应用软件的开发效率更高。数据窗口控件就是PB提供的一个集成度很高的控件,使用该控件可以很方便地从数据库中提取数据。PB提供了可视化的数据窗口设计和编程模式,但是,可视化设计界面设计的数据窗口在程序运行过程中是固定不变的。很多时候,我们需要依据程序运行的情况及用户的选择对数据窗口进行动态调整,使数据窗口以不同的形式呈现数据,这就需要在程序运行过程中对数据窗口进行动态设置。
2 建立数据窗口控件和数据窗口
PB的可视化编程环境仍然是PB程序设计的基础,我们在PB可视化设计阶段建立了一个数据窗口控件DWmain,该数据窗口控件包含一个Grid类型的数据窗口DWdata,数据窗口控件DWmain实现数据窗口DWdata与用户的人机交互,用户通过操作数据窗口控件DWmain对数据窗口DWdata的数据进行检索、新增、删除和修改等操作。可视化部分设计的原则是,固定不变的内容就在可视化部分设计,需要动态调整的内容则在程序中完成。
数据窗口对象DWdata的数据源是数据库表h_hy,h_hy的结构如下:
唯一索引:Ph
数据窗口对象DWdata的SQL语句定义如下:
SELECT ph,rq,csn,cpb,cas,cfe FROM h_hy;
3 在程序中对数据窗口进行动态编程的技术
1)禁止对rq进行修改
要禁止用户对rq列进行修改,可以将rq列的Tab Sequence属性值设置为0。
dwmain.object.rq.Tab Sequence=0
2)屏蔽rq的显示
屏蔽rq列的显示,可以将rq列的visible属性值设置为false。
dwmain.object.rq.visible=false
3)调整列显示顺序
数据窗口默认列显示顺序是在可视化编程时确定的,调整列显示顺序,要先将所有列的属性值visible设置为false,再依据新的显示顺序,依次将各列的visible属性值设置为true。例如,将rq调整到最后一列显示,可以使用以下代码。
4)用回车键取代Tab键
PB数据窗口控件默认使用Tab键依据各列的Taborder值在列之间移动光标,这很不符合常规的操作习惯,我们可以通过编程利用回车键替代Tab键,实现传统的光标移动方式。
针对数据窗口控件dwmain新建一个自定义事件,命名为enter,事件ID选择pbm_dwnprocessenter,并对该事件编写如下代码,当数据窗口控件接收到回车键之后,会自动转换成一个TAB键,实现光标顺序移动到下一列。
5)数据窗口通用排序设计
PB的可视化设计环境虽然可以很方便的定义数据的排序模式,但是,在实际应用中,任何单一的数据排序模式都很难满足应用要求。设计一个可以让用户在程序运行过程中自定义排序的通用排序功能很有必要。通用排序窗口的关键就在于提供一个通用的构造排序模式的窗口,该窗口可以列出所有待排序数据窗口的数据列,供用户选择。
(1) 通用排序数据窗口对象
通用排序窗口利用Power Builder的External方式设计的数据窗口对象实现,名称为dw_sort,该数据窗口对象包含如下列名:
(2) 通用排序窗口
在该窗口的左右两边各有一个包含数据窗口dw_sort的数据窗口控件,分别命名为dw_s和dw_d,dw_s列出待排序数据窗口对象的所有数据列,dw_d列出用户选择的排序关键字,并定义升降法则。左边窗口按idx排序,主要是为了保持原始数据列的顺序不变。
Dw_s是在排序窗口打开时,根据传递给排序窗口的待排序数据窗口控件进行初始化的,初始化代码放在排序窗口的OPEN事件中执行,代码如下:
(3) 构造排序模式
用户通过操纵通用排序窗口,在窗口右边dw_d数据窗口对象中形成排序关键字及其组合排序顺序、升降法则等,就可以构造出期望的排序模式。排序模式的构造在通用排序窗口按钮“排序”的CLICK事件中执行,代码如下:
(4) 通用排序窗口的调用机制
通用排序窗口的调用,直接打开通用排序窗口,并将待排序数据窗口控件传递给通用排序窗口,然后根据通用排序窗口返回的排序模式(保存在全局变量gs_str中),对待排序数据窗口控件进行排序。调用代码如下:
6)共享数据窗口的数据
某些时候,我们需要同时处理几个具有相同原始数据的数据窗口。这种情况下只需要其中一个数据窗口从数据库获取数据,并将数据共享给其他数据窗口即可,避免重复读取数据库,即提高运行速度,也降低内存占用。假定有2 个数据窗口控件dw1和dw2,它们拥有相同的数据窗口dwdata,其中dw1已从数据库获取到数据,可以通过以下代码将dw1的数据共享给dw2,使dw2具有和dw1完全相同的数据。
dw1. Share Data(dw2)
7)在windows窗口之间传递数据窗口对象
在打开一个新的windows窗口的时候,我们可以把当前windows窗口中的数据窗口控件及其所有数据作为参数传递到新打开的windows窗口中进行处理。
4 结语
本文应用了许多适用的技巧,充分展示了动态控制PB数据窗口的方法。PB的各种对象都有很多属性值可以在程序中进行控制,利用本文论述的方法,可以优化程序结构,提高可视化设计部分的程序的通用性,减少内存占用,提升人机交互设计水平,确保程序好用、易用,获得更佳的用户体验。
摘要:在Powerbuilder可视化编程设计的基础上,利用Power Builder的高级编程功能,在程序运行过程中对数据窗口进行动态调整,使得数据窗口展示的数据及形式不再是一成不变的,而是随着程序运行形成的各种条件及用户的选择动态变化的。
编程技术 第9篇
面向对象编程在高级语言程序开发中早已被证明是一种高效的编程方式,但在工业自动化领域一直未能应用和推广。其主要原因有两个:
一是自动控制工程师有自己的知识结构体系。自动控制工程师很熟悉梯形图、顺序功能流程图等PLC编程语言,也掌握了很多结构化编程技巧,但很少去了解高级编程语言最新的编程思想和编程方法,因为大多数控制工程师认为PLC编程和高级语言编程是两个完全不同的门类,工作中基本不会涉及到高级语言编程,很少人去学习高级语言编程知识。
二是现在主流的PLC程序开发软件还不能提供全面支持面向对象编程的开发环境。
当前PLC编程工程师都有自己习惯的编程方式,即使同一个公司也很难形成统一的编程风格。技术人员流动造成后续程序维护非常困难,一旦问题出现,理解、消化别人的程序就需要花费很长时间,再加上工程师技术水平参差不齐,对程序、工艺的理解不同,很难避免在修改完善程序时出现纰漏,结果是旧的问题没解决,新的问题又出现,造成控制程序更加不稳定,故障率不减反增,给企业带来更坏的负面效应。
面向对象编程技术的应用,能有效解决目前选煤厂程序维护困难的问题。面向对象编程技术通过对选煤厂设备类模型封装,为选煤厂编程的标准化提供了技术保证。工程师统一经过选煤厂面向对象编程技术的学习,掌握设备类模型的使用,然后在编程时导入选煤厂设备类模型,形成统一的编程风格,统一设计,统一思路。这样不仅能解决程序维护问题,还可以空出更多时间集中所有工程师的智慧,共同升级选煤厂设备类模型,开发更稳定高效的选煤厂设备类模型,提高选煤厂控制程序的运行性能。
2 面向对象编程技术的特点
面向对象的编程包含4 个基本特征: 抽象、继承、封装和多态性[1]。因选煤厂设备具有特定的控制特点,在选煤厂面向对象程序编程中,仅采用面向对象中抽象和封装这两个基本特征,就能完全满足选煤厂设备控制的要求。
面向对象的概念说明: 抽象是对实体对象本质、内在属性和行为的高度总结和概括,类是计算机实现对象的特性和行为的抽象。封装是保证软件部件具有良好模块性的基础,面向对象的类是封装良好的模块。
面向对象是对特定对象的研究,类是具有相同特性和行为对象的抽象,对象越少,类的种类就越少,编程就更简单。面向对象编程技术适用于控制对象的特性和行为相同或相似,可以抽象为同一种类的应用场合。
3 选煤厂设备的控制特点分析
在选煤厂编程设计中,主要的程序代码是实现对大量的选煤设备启停控制和运行监视。选煤厂设备包括胶带机、振动筛、泵、离心机、磁选机和阀门等几类工艺设备,所有设备虽然外形和功能上有很大不同,但从控制角度看,这些设备都有共同的特点。设备的控制数据可以概括为:上位机指令、输入信号、时间设定和输出信号;控制操作可以概括为: 正转、反转和停止( 或打开、关闭和停止) 等。正因为选煤厂设备具备这一相同控制特点,面向对象编程技术才得以应用在选煤厂控制系统编程中。
为统一概念,本文将选煤厂设备控制对象抽象定义为设备类,设备控制特性定义为设备属性,设备控制行为定义为设备操作。设备类是设备属性和设备操作的封装体,通过设备属性接口完成设备的信号输入和控制输出,设备操作完成设备的逻辑控制功能,设备类模型如图1 所示。
4 面向对象编程的实现过程
选煤厂面向对象编程的重点是开发设计选煤厂设备类,设备类设计完成后,通过简单的重复实例化就能快速完成软件编程。下面以潞安集团常村煤矿选煤厂600 万t扩能改造工程中的软件编程为例,详细阐述面向对象编程技术在选煤厂编程设计中的应用。
本工程使用施耐德公司Quantum系列PLC,编程软件是Unity Pro XL[2]。Unity Pro XL是施耐德公司高端PLC编程软件,支持DDT类型( 结构) 和DFB类型( 用户功能块模型) 。在工程中使用DDT结构功能实现设备属性的封装,使用DFB用户功能块模型实现设备操作的封装。
4. 1 设备属性的抽象和封装
设备属性的抽象和封装,要求封装后的设备属性满足所有不同类型选煤厂控制设备的要求。
4. 1. 1 设备属性的抽象
依据多年一线选煤厂控制编程经验,将选煤厂设备属性抽象概括为4 个子属性:
( 1) 上位机指令( 图2 所示) 。上位机指令子属性包含设备的上位机启动和停止、设备工作模式转换、报警复位、设备自动启动方式和设备保护开关投入、撤消等上位机操作指令。
( 2) 输入信号( 图3 所示) 。输入信号子属性包含现场按钮输入、一次回路和二次回路电器输入、胶带保护输入和设备的相关保护开关输入等设备硬件输入信号。
( 3) 时间设定( 图4 所示) 。时间设定子属性包含设备启停时间设定、堵塞滤波时间设定、再启动时间设定等与设备特性相关的时间设定。
( 4) 输出信号( 图5 所示) 。输出信号子属性包括低压设备启动输出、高压设备脉冲启停输出、运行状态输出、故障输出、设备状态输出、故障代码输出等设备控制和状态输出。
4. 1. 2 设备属性的封装
潞安集团常村煤矿选煤厂项目中,采用Unity Pro XL编程软件中DDT( 用户自定义数据类型) 对设备属性进行封装。DDT是一种结构型数据类型,封装后名称为Device,如图6 ~10 所示。
Device结构包含4 个子元素: CMD、 STU、TIM和O。CMD是上位机指令的封装; STU是输入信号的封装; TIM是时间设定的封装; O是输出信号的封装。Device结构完整地封装了选煤厂设备属性。
4. 2 设备操作的抽象和封装
选煤厂设备控制操作可以抽象概括为: 工作模式切换、正反转启停、报警、自动启停及电铃预警等。所有这些操作的逻辑程序通过DFB用户功能块模型进行封装。图11 所示,在Unity Pro XL中,通过开发Device _ Block用户功能块模型封装选煤厂设备操作。
Device Block用户功能块模型设计由CMD、STU和TIM类型的输入以及O类型的输出构成,目的是与设备属性Device结构类型匹配,从而实现设备属性和设备操作功能块之间的数据交换。Device Block用户功能块模型DLogix段包含所有设备操作的逻辑程序,DLogix段控制逻辑程序内容较多,这里不再详述。
4. 3 面向对象编程在常村选煤厂的应用过程
4. 3. 1 设备类的实例化
设备属性和设备操作完成封装后,一个满足选煤厂设备控制的设备类设计完成,接下来的工作是实例化设备类。设备属性通过数组阵列实例化。该工程中选煤厂的控制设备数为124 台,考虑备用创建了含150 个Device结构元素的数组阵列U,如图12 所示。
每个数组元素包含一个设备属性实例,U[0] 是设备252 的属性,U [1] 是设备302 的属性,其他同理。设备操作通过功能块实例化。实例化过程非常简单,首先创建一个DeviceBlock类型的功能块,然后复制粘贴。本工程共生成了150 个DeviceBlock类型的功能块,如图13 所示。
每个功能块包含一个设备中所有的设备操作,U0 是设备252 的操作封装实例,U1 是设备302 的操作封装实例,其他同理。
设备属性和设备操作实例化完成后,通过一个连接程序将设备属性U [i] 和设备操作Ui连接成一个完整的设备实例。本工程中连接程序代码是采用结构化文本编程语言编写的,如图14所示。
从图中可以看到连接程序代码编写很简单。设备实例化完成后,到此设备的控制逻辑程序就全部编写完成,接下来就是设计一个硬件输入、输出和设备属性的插接程序。
4. 3. 2 设备硬件输入和输出接口程序设计
面向对象编程中每个设备输入和输出接口程序是相同的。输入信号通过PLCinput输入接口程序与设备属性中的输入属性连接,如图15 所示。
PLCinput程序是用来将PLC系统的硬件输入连接到软件中相应的设备输入属性的一个插接程序。图中U [0]( 252 刮板输送机) 输入有: 设备应答( 停止按钮输入) ; 设备正转( 正转启动按钮输入) ; 设备反转( 反转启动按钮输入) ; 设备断路器返回( 断路器合闸输入) ; 设备正转返回( 正转接触器吸合输入) ; 设备反转返回( 反转接触器吸合输入) ; 设备过载一( 热继电器或电机综合保护动作输入) ; 设备欠速一( 速度减慢或断链输入) ; 设备欠速二( 因未设置第二欠速输入,故连接一个正常变量) ; 设备堵塞一( 一号溜槽输入) ; 以及其他输入。U [1]( 302G给煤机) 硬件输入少,配置的输入也少,可以按需灵活配置。同样,PLC硬件输出通过PLCoutput输出接口程序与设备属性中的输出属性连接,如图16所示。
PLCoutput程序也是一个插接程序,用来完成软件中的设备输出属性到PLC系统的物理输出连接。U [0]( 252 刮板输送机) 输出有正转和反转,U [1]( 302G给煤机) 输出只有正转,输出配置程序简单易读。
PLCinput和PLCoutput程序编制完成后,程序中的设备属性状态就能真实反映设备的硬件工作状态,同时也可以操作实体设备的启停。
程序运行后上位集控系统通过读写设备属性中的属性变量,监视设备运行状态和操作设备。
5 面向对象编程在常村选煤厂的应用优势
在潞安集团常村煤矿选煤厂程序现场调试过程中,感受到采用面向对象编程技术带来的程序监视方面的优势: 设备的所有运行状态和设置参数都可以在Unity Pro XL的动态数据表中进行监视和修改。与过去的编程方式相比,设备运行状态和故障信号可以集中监视,查询信号更加简单,故障定位更加容易,如图17 所示。
过去设备属性只能在梯形图程序中监视,故障排查困难,排查时间长。现在PLC程序运行后,可以通过不同设备属性CMD结构中的变量监控设备的上位机指令,通过STU监视设备的输入,通过O监视设备的输出,通过TIM结构中的变量修改设备的运行特性。这样就能集中监视设备运行状态,提供了一种高效的监视设备运行状态的方法,它能极大的缩短设备故障排查时间。
本工程在调试过程中,发现之前设计的设备类对一些特殊设备未能实现完整兼容,后经过对设备类的属性和操作进行修改完善,现已能很好的实现选煤厂设备的全兼容。设备类的修改过程较传统方法节省了许多时间,设计人员不需要对每个设备的属性和操作逐一进行修改,只需要一次性改变原始设备类的属性和操作,便能完成所有设备的修改工作。
工程完成后,利用编程软件Unity Pro XL的导入导出功能将常村选煤厂的设备类导出,便可以把调试好的设备类用于后续其他选煤厂工程中,这不但能缩短后续选煤厂控制系统软件的编程时间,而且通过对选煤厂设备类逐步升级完善,可以逐步提高选煤厂控制系统运行的稳定性和可靠性。
6 结语
面向对象编程技术在选煤厂控制程序编程中的应用,不但能够实现快速、高效的编程,而且能够提供对程序的管理。
面向对象编程技术主要解决了传统程序设计方法所不能解决的代码重用问题。它不但能利用类的重用性缩短软件开发时间,提高编程效率,而且能通过对类的标准化设计和统一管理实现对程序设计的统一管理,从而减少因工程师的编程能力差异而造成的程序运行不稳定等问题。
标准化的设备类模型设计完成后,工程师通过升级设备类模型,便可提升选煤厂程序的运行性能。同时设备类模型也能简化选煤厂的程序维护工作,任何一个软件工程师使用设备类模型开发的程序,其他工程师都可以轻松的对其设计的原程序进行阅读、修改和完善。
潞安集团常村煤矿选煤厂扩能改造工程投入运行后程序运行稳定可靠,充分展现了面向对象技术在选煤厂控制系统编程应用中的优越性。在潞安集团常村煤矿选煤厂扩能改造工程中,编程仅花费了10 个工日。按之前的编程方法,同等规模的焦煤选煤厂控制程序设计时间至少需要40个工日。本次面向对象编程技术的成功应用,将大为缩短后续选煤厂工程的编程工作时间,同时也会推进选煤厂编程的标准化进程。
摘要:为解决选煤厂控制系统程序编程设计中编程风格不统一、程序无法统一管理、程序编程和调试时间长、程序不稳定及程序维护难等问题,在编程设计中引入了面向对象编程技术;通过常村煤矿选煤厂控制系统程序设计实例,阐述面向对象编程技术的具体实现过程,项目运行后达到了预期效果,展现了该技术在选煤厂控制系统程序设计中的优势。
关键词:选煤厂,控制系统,PLC,面向对象,编程
参考文献
[1]Matt Weisfeld.张雷生等译.写给大家看的面向对象编程书[M].人民邮电出版社,2009.
基于WinSock的网络编程技术 第10篇
1 Winsock控件介绍
Winsock是在1991年由JSB公司Marting Hall所提出的。Windows Sockets是指在MS Windows下发展网络程序的应用程序接口(API),并通过传输控制协议TCP和数据文报协议UDP进行数据交换。TCP协议是基于连接的协议,可以将它同电话系统相比,在开始数据传输之前,用户必须先建立连接;UDP协议则是一个无连接、不可靠的协议,跟TCP操作不同,计算机并不建立连接。如果你所传输的数据可靠性是要求较高的,请选用TCP协议进行通信,否则可以选用UDP协议进行通信。选用TCP进行通信需要更多的系统资源。本文着重对其TCP协议的应用进行讨论。
2 Winsock控件的常用属性、方法和事件
1)Winsock控件的属性:
LocalHostName/RemoteHost:本地/远程主机名;
LocalPort/RemotePort:本地/远程机使用的端口号;
Protocol:设置通信所使用的协议(TCP或UDP);
State:控件当前的状态
2)Winsock控件的方法:
Connect/Accept/Listen:发送/接收/监听一个连接请求;
GetData/SendData:获取/发送数据;
Close:关闭一个TCP连接;
3)Winsock控件的事件:
Close:远程主机已关闭触发此事件;
ConnectRequest:连接请求到达触发此事件;
DataArrival:数据到达触发此事件;
3 Winsock控件的工作原理及过程
使用TCP协议创建客户应用程序,确定服务器计算机名或者IP地址(RemoteHost属性)及其监听的端口(RemotePort属性),然后调用Connect方法发送连接请求;服务器端应用程序,则设置一个监听端口(LocalPort属性),并调用Listen方法监听连接请求,当客户计算机需要连接时就会发生ConnectionRequest事件,为完成连接,可在ConnectionRequest事件中调用Accept方法。建立连接后,任何一方计算机都可以收发数据。可调用SendData方法发送数据;当接收数据时会发生DataArrival事件,在DataArrival事件中调用GetData方法就可获取数据。一个TCP连接需要客户机和服务器都要有一个IP地址和端口,所标识的端口一定不能再让其它应用程序使用。
UDP协议创建连接,首先要设置客户计算机的LocalPort属性,然后服务器计算机需将RemoteHost设置为客户计算机的Internet地址,将RemotePort属性设置为跟客户计算机的LocalPort属性相同的端口,并调用SendData方法来发送信息,GetData方法来获取已发送的信息。由于UDP协议没有建立连接,通信效率高,但可靠性不如TCP协议,使用UDP发送消息,有时会出现收不到消息的情况。
4 Winsock控件的实例编程
下面实例介绍WinSock控件采用TCP协议实现网络通信的一种简单编程方法。
4.1 服务器端应用程序
4.2 TCP客户端的建立
上面设计的基本服务器只能接收一个连接请求。一般来说,客户端是不止一个的,如果每一个客户端都使用一个端口连接时,那么有上百个或更多的客户时就需要许多个Wnsock控件与之相对应。其实可以通过创建控件数组,使用一个控件也可以同时接收多个连接请求。利用这种方法,不需要关闭连接,而只需要创建新的控件实例(通过设置其索引属性),然后在新的实例上调用Accept方法。在这就不再做详细的论述。
5 结束语
以上的实例是使用VB Winsock编程实现计算机网络中点对点通信。Winsock技术的出现极好地屏蔽了网络低层复杂的结构和协议,这使得基于Winsock的网络应用程序可以在不同类型的网络上运行,同时使Winsock成为网络编程的最流行技术。
摘要:介绍了VB中Winsock控件的属性、方法、事件,并示例性地说明在VB中用Winsock控件实现网络通信的一种简易方法。
关键词:网络编程,Winsock控件,TCP协议,UDP协议
参考文献
[1]王晓平,钟军.VisualBasic网络通信协议分析与应用实现[M].北京:人民邮电出版社,2003.
[2]高俊光.基于VB的Winsock控件的原理与应用[J].应用科技,2004;31(3):13-14.
编程技术 第11篇
【关键词】高中信息技术 BASIC语言 程序设计
【中图分类号】G【文献标识码】A
【文章编号】0450-9889(2014)08B-0116-02
1997年教育部制订的《中小学计算机课程指导纲要(修订稿)》将“程序设计”定为“选学模块”,由此,BASIC语言编程内容开始进入高中信息技术教育。但由于受条件的限制,大多数中学并没有开设信息技术课程,更没有开设BASIC语言编程的教学内容。2000年教育部制订的《中小学信息技术课程指导纲要(试行)》,把BASIC语言编程归为“基本模块”,但也没有把它作为必修的教学要求,只是提出有条件地“选取适当的教学内容”的教学意见。因此,从1999年到2007年国家统一的高中信息技术教材和省编教材中,都将有关程序设计的内容删除,没有把BASIC语言编程的学习内容编写进教材。随着现代教育技术的发展和信息技术的普及,国家以及各省也都举办了中小学信息技术奥林匹克编程比赛,很多学校为此采用不同的形式,开始把BASIC语言的教学作为选修模块。随着新课程的实施与发展,到2008年,BASIC语言编程才被编入选修教材,排上了课表。事实上,程序设计教学在培养学生分析问题、解决问题的能力、创造性思维能力上具有非常重要的作用。但是如何上好这个全新的知识却是教师们比较不好把握的问题。笔者在此,试提出一些看法,供同行参考。
一、以竞赛为动机,激发学生学习BASIC语言编程兴趣
学生对计算机的兴趣来自于计算机的神奇的功能,许多学生都喜欢信息技术和计算机,但如果让他们去学习BASIC语言,然后用这种计算机语言去编程就感到很难。其实更多的是,学生对学习BASIC语言编程有畏惧心理,不敢学而后不想学,因此也就没有兴趣去学。他们认为,程序设计是计算机专家的事,学生只要会用就可以了。要在教学中引导学生学习BASIC语言编程,首要的任务,就是要调动学生的学习兴趣。特别是高中学生,由于高考学习任务重,总担心学习编程会占用很多的时间和精力,会影响学习和高考。再加上BASIC语言编程单调枯燥,要反复地计算和输入信息,由此很难引起学生的学习兴趣。其实BASIC语言是一种逻辑性很强的语言,是训练理科思维能力的好教材。它不但不会影响其他科目的学习,反而能促进理科的学习。有一个同学他很早就接触计算机的BASIC语言,并用它来进行编程,设计了一些有意义的程序。经过3年的学习和练习,他的编程水平已经达到专业编程员的水平,在省信息技术奥林匹克编程比赛中获得了一等奖,他的数学和物理成绩在学校名列前茅。他对信息技术的兴趣和学习,不仅没有影响他的学习成绩,而且促进了他对数学和物理的学习。一般来说,数理学得好的人,学BASIC语言感觉更容易一些,反过来,数理成绩不太好的学生,学习了BASIC语言之后,数理思维能得到极大的发展,数理成绩也会提高上来。BASIC语言与其他学科的学习是相互促进,相辅相成的。让学生明白这个道理,相信学生对BASIC语言的学习会有非常大的兴趣。
新课标要求信息技术课程教学要以学生为主,教会学生掌握必要的计算机知识。BASIC语言编程教学的主要目的就是教会学生能从简单问题出发,设计解决问题的算法,并使用VB程序设计语言编制程序,以此来解决问题。信息技术学习的兴趣是学习BASIC语言编程的前提条件,没有兴趣和信心,就不可能取得成功。要用学习兴趣去激发学生努力学习BASIC语言编程的积极性。帮助学生克服各种困难。出于实际情况的考虑,我校并没有将BASIC语言纳入到正常的信息技术课堂教学中,而是从参赛的目的出发,以竞赛为动机,来激发学生的学习兴趣。一般在高一年级挑选出拔尖的学生以兴趣小组的形式进行教学。对高二和高三的学生就没有做具体要求。竞争是激发学生学习兴趣的直接动力,在教学中,可以采用竞赛的形式,以小组合作的方法定期评比,用竞争的手段激励学生学习BASIC语言编程的兴趣。同时向学生介绍一些游戏的编制程序,以此去调动学生的学习热情。鼓励学生只要认真学习,自己也能编出一些好玩的游戏来。开始学生将信将疑,直到学完随机函数后,许多学生也会编出了许多简单的猜数小游戏,学生也尝到了编程的甜头。尽管程序很很简单,但是自己编出来的,他们感受到了学习的成就,也激发了所有学生的学习兴趣。
二、利用学生心理特点,激发学习BASIC语言编程兴趣
随着《普通高中技术课程标准(实验稿)》的颁布与实施,BASIC语言编程作为选修模块设置于信息技术,程序设计的教学内容已经成为高中信息技术教育的主要模块。编制的教学内容也成为了高中信息技术教育的重点。BASIC语言编程的学习,比起动画、网页的制作等要枯燥得多。要让学生长期保持着持久的学习兴趣,引导学生坚持学习BASIC语言编程,教师在教学中,一定要善于观察,要多鼓励,要肯定学生的创造力。曾经发生过这样的一件事,在一次上机练习的过程中,两个学生吵了起来,当时,笔者非常生气,把两人叫到跟前准备要狠狠地批评一顿,可是在了解了事情的经过后,笔者改变了想法。事情是这样的,一个学生生气地说:“老师,他用箭射我,我很生气,所以就打他了!”我一听,这还了得,上课居然带“凶器”来,而且还敢伤人!于是,笔者也气鼓鼓的对另一个男孩说:“把箭交出来!你把箭藏哪儿带进机房的?你还敢射人,万一把人给伤了怎么办!”话音刚落,两个孩子异口同声地说:“老师,不会的!”第一个学生解释说:“老师,刚刚我们在做题目时,他偷偷地编了一个程序,让一把箭追着我的名字满屏幕跑,他还在旁边笑!”听完后,看着站地一边的“肇事”者忐忑不安的样子,笔者决定将计就计。笔者把这件事跟班里的学生说完后,让大家想着处理的办法。学生们七嘴八舌,讨论一通后,笔者趁着大家“群情激愤”时,出了个主意,让大家在三天之内,在完成学习任务之余帮那位同学“报仇”,可以利用一切能想到的“武器”进行攻击,当然,这只允许通过编程来实现。听了笔者的建议后,三天内大家的学习情绪高涨,经常看到学习结束后,几个学生凑在一起讨论问题,但是却没有一个同学能编出来。这时,笔者把那位学生叫到全班同学的面前,让他向大家介绍自己编的程序。经过三天的思考,大家都绞尽脑汁而未得结果,因此所有的同学,包括开始告状的同学都听得非常认真,当看到程序中还用到了当时没有学过的语句和函数时,大家都露出了佩服的神情。看到这里,笔者适时引导,问了那个孩子,这些大家都不知道的语句和函数他是怎么会用的?他经过三天的“过街老鼠”的生活后,终于挺直腰板自豪地解释道:“我是预习了后面的内容,而且在图书馆里借了很多这方面的书看到的。”听完后,当着全班同学的面,在批评了他错误的做法后,肯定了他的编程能力,表扬的他的自学能力和爱钻研的精神。这件事之后,这位同学的学习劲头更足了,不仅自己经常“加餐”,还主动地当起了小老师,在练习时帮那些有需要的同学。结果,那一年在比赛中,不仅那一位同学取得了优异的成绩,班里的好多同学也取得了很好的成绩。
三、利用信息技术工具和网站,培养学生的操作能力
在学生学习BASIC语言编程过程中,教师要教学生学会利用信息网站,并为学生提供BASIC语言编程工具,教会学生使用BASIC语言编程工具。
一是学会利用搜索引擎去搜索信息资料。利用搜索引擎是运用计算机的最基本常识,也是收集信息的第一步。通过互联网,可以很容易地查询到网络环境中相关的信息和数字化学习资源。在百度等文库中查询到我们所需要的数据和信息。目前,常用的网络搜索引擎主要有百度、google等。
二是学会利用各种信息网站。在互联网中,各类中文的信息网站很多,特别是教育类网站就有几十个网站,这些网站都有自己独特的信息资源,也有共享的信息资源,在学习BASIC语言编程的工具过程中,要帮助学生学会利用各类网站。网站从信息内容来看,主要有政府网站、教育类网站和专业网站三大类,当我们需要什么样的信息时,就可以到相关的网站去查询。以此培养学生的计算机操作能力,学会运用计算机来查找所需要的资料,包括学习方面的资料,而不仅仅是学会游戏、上Q聊天等简单的操作。
BASIC语言虽然比较难学,可是一旦把学生的学习兴趣激发出来后,他们很快就会掌握学习计算机语言的方法和技巧,学会用计算机语言思维来进行有效的学习。学会用BASIC语言来编程,提高逻辑思维能力,对其他学科的学习有比较大的帮助。
轻量级JavaEE编程技术研究 第12篇
1.1 轻量级开发的原则。
(1) 尽量保证简单性。工程开发人员应尽可能采用最简单最直接的方法对问题进行解决, 避免繁杂与啰嗦; (2) 对漏洞进行修补。一些开发的技术方法或许不支持在过程中对程序进行变更或重构, 这是因为产生客户代码并不直接来源于这些行为。轻量级开发技术对这方面进行了改善, 它要求可以自由地对充斥bug或太复杂的代码进行修补; (3) 对单元进行自动化测试。轻量级开发时, 测试用例应该进行有限编写。广泛的单元测试可对代码设计水平进行有效提高, 并改善了客户的亲身体验, 这是由于在编码前, 它强迫客户对过于紧密的代码进行了解耦联系。
1.2 轻量级开发的过程。
快速、紧凑的开发过程常常会从一些敏捷开发过程中得到启发。通常来讲, 敏捷开发涵盖了下述几条原则: (1) 专注现场代码及客户, 而非别的设计方法。其他技巧可以被采用, 但本方案无需此类技巧; (2) 对文档进行简化。实际开发过程中, 为了遵循简单性, 忽略令人困惑的用例图, 而采用简洁明了的电子表格中的一行进行阐述; (3) 对于自己应该完成的任务尽力完成, 不要过分考虑技术的后期性能, 以免影响本阶段的工作, 使自己的工作陷入无法动弹的地步; (4) 为了保证开发进展的顺利性, 对技术进行努力简化, 并尽量对每天所构建的程序进行集成或者重构, 以进行自动化测试。
1.3 轻量级开发常用技术
(1) 依赖注入。轻量级容器是最新一代产生的容器, 此类容器拥有共同的设计原理, 即依赖注入。相对于轻量级开发技术来讲, 依赖注入是一个较为复杂的专业术语。依赖注入将对象及对象所依靠的信息向第三方进行提交。由第三方对这些整体进行创建, 并将其捆绑。例如, ds数据源是my Dao访问对象的基础, 因此容器会将他们一同创建, 并对属性进行统一设置;
(2) 面向对象编程 (AOP) 。使用AOP, 可以对通用功能性模块进行编写, 比如, 事务、日志及安全或持久性。AOP可以帮助客户将POJO和这些方面进行联系, 然后指定另一个需联系方面和一个时间点。比如, 客户要对一个外观事务对象进行创建。对方法进行调用时, 可将外观方法关联到Transaction Begin方面。产生异常后, 再将外观的异常关联到Roll Back方面。
(3) 持久透明性。持久性模型基础的建立通常为较简单的编程。透明持久性框架为应用程序添加持久性时, 并非通过编写代码, 而是通过配置。这是由于多数应用程序是直接针对设计对象的, 并对关系数据库进行访问。
2. Java_EE各层开源开发框架
2.1 表现层框架技术。
Struts属于MVC框架, 它的基础为Sun J2EE平台, 它通常通过JSP及Servlet技术加以实现。Struts敏捷迅速、简单易用, 能充分满足开发应用的要求, 因此这些年一直受到很大的关注。Struts把信息资源、自定义标签、JSP和Servlet在框架中进行统一整合。开发设计人员可方便的实现MVC的全套模式, 不用再亲自编码进行开发, 从而大大节约了设计时间, 因此Struts成为广受欢迎的应用框架。
Open Symphony对Web Work进行了组织开发, 主要致力与代码重用及组件化的MVC框架结构。其中Xwork1和Web Work2为Web Work的两个主要项目。其中Xwork灵活、简介, 具有强大的功能, 它通过Command标准模式来实现, 并同web层进行了完全脱离。Xwork为客户提供了诸多关键性功能, 包括IOC容器, 强大的语言表达式, 前段拦截机等。Xwork是Web Work2建立的基础, 用来对HTTP的请求和响应进行处理。Web Work2通过Servlet Dispatcher把request, application, session以及Action等参数进行映射。Web Work2支持XML, Jasper Reports, Free Marker, Velocity, JSP等多视图表示。并添加了Web Work2.2对AJAX的支持, 其中Dojo及DWR两个框架是构建的基础。
2.2 持久性框架技术。
Hibernate框架用来对开放源代码的对象关系进行映射, 它以轻量级为基础对JDBC进行了对象封装, 从而编程人员可对数据库进行随心所欲的操作, 操作时应利用编程思维。Hibernate可以在使用在Servlet/JSP中Web应用中, 也可以应用在Java客户端程序中, 从一定程度上来讲, 任何JDBC的使用场合都可应用Hibernate。持久性框架的革命性意义在于, Hibernate可在J2EE构件中对CMP进行取代, 进而对数据进行持久化。
对业务逻辑操作人员来说, 面对的为单纯的Java对象, ORM机制通过i BATIS来进行提供, 这与通过Hibernate实现ORM的机理大体一致, 然而对具体的数据操作而言, SQL语句会由Hibernate自动生成, i BATIS要求具体的语句, 需开发者编写SQL。同Hibernate等ORM机制不同, i BATIS具有更大的设计空间。i BATIS是ORM实现的重要补充, 因此具有重大意义。
总结:
本文阐述的Java_EE编程技术将Struts及i BATIS与Spring的关键部分进行了融合。并加以包装, 形成了具有明显使用优势的轻量级Java_EE编程技术, 此技术具有革命性的意义, 它克服了J2EE普遍存在的缺陷。希望在今后的生产中, 轻量级Java_EE编程技术能够发挥其实际效应。
摘要:随着社会的发展, J2eEE已成为企业开发软件最有效的平台之一。它将企业多年的软件开发经验和java编程的诸多优点进行了结合。实践证明, J2EE还存在缺陷。例如在项目的投资中, J2EE项目通常表现出来的价值较小, 绝大部分都超出了预算范围。研究发现, 导致bug的重要愿意便是开发的复杂性。因此研究轻量级JavaEE编程技术显得尤为必要。本文对轻量级JavaEE编程应用平台技术和开源框架进行了介绍。
关键词:轻量级,JavaEE,研究
参考文献
[1]李德兵.Java_EE基于Hibernate的ORM框架[J].电子技术, 2010, (02)
编程技术范文
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


