编程分析(精选十篇)
编程分析 篇1
1 零件编程分析及仿真
要加工的零件图如图1所示, 毛坯为45号钢。
1.1零件编程分析
1.1.1编程方法的选择
通过分析图1, 可知:零件右侧含有一阶梯内孔, 对这一部分可以采用手动编程, 对于FANUC数控系统而言, 采用的关键指令为G71 (外圆粗车循环指令) 、G70 (外圆精车循环指令) ;零件的中间部分含有四个圆环, 其形状较为复杂, 可采用自动编程来完成, 采用的关键指令为CAXA数控车软件中的切槽指令;左侧部分含有一双线螺纹, 可采用手动编程指令, 其关键指令为G92 (螺纹切削循环指令) 。
1.1.2 G代码
零件右侧的外圆加工部分相对简单, 在此不做陈述。对于内孔部分, 在车床加工之前需要首先在铣床中铣出直径为20, 长度为23的内孔。然后用内孔粗车车刀 (1号车刀) 与内孔精车车刀 (2号车刀) 加工内孔。其G代码如下:
G71与G70指令的使用注意事项:G71指令一般用于零件尺寸在轴线方向上为单调递增或单调递减的零件。对于G71指令而言, 当加工内孔时余量应该为负值, 在切外圆时应为正值。G70指令相对简单, 只需把程序行号注明即可。加工结束后, 如果测量的零件在尺寸中还没有达到要求, 只需在刀补中添加相应数值, 从N18开始执行即可, 而不需要从N1开始执行。
对于零件的中间部分, 形状较为复杂, 可采用CAXA数控车自动编程软件进行编程, 采用切槽刀 (3号槽刀) 进行加工。其软件填写内容如下: (如图2) 。
其最终生成的加工轨迹线如图3所示。
最后点击软件中的轨迹生成按钮, 就可以得到所需要的G代码。
左侧部分的加工, 需要首先调头, 然后加工外圆部分与退刀槽部分 (在此不做详细说明) , 重点说明双线螺纹的加工程序, 可采用手动编程, 其关键指令为G92 (螺纹切削循环指令) , 所用刀具为螺纹车刀 (4号刀) 。其代码如下:
G92指令的使用注意事项[3]:对于多头螺纹加工而言, G92代码中的F数值应为导程, 而不应是螺距。
2 结论
(1) 本文分析了数控车自动编程与手动编程的优缺点, 并结合一具体的典型实例做了应用说明。
(2) 给出了FANU C数控系统常用的G71、G70、G92代码的相关使用注意事项。
(3) 结合实例, 对CAXA数控车切槽指令进行了参数设置。
参考文献
[1]朱传福.基于CAXA制造工程师的数控加工编程与仿真[J].机械工程师, 2009 (11) :103-104.
[2]吴子敬.CAXA制造工程师2008实用教程[M].北京:北京航空航天大学出版社, 2010.
手工编程影响加工精度的分析 篇2
关键词:数控;加工;质量;措施
数控车床是应用最为广泛的一种数控加工机床。数控车床的加工过程是按预先编制好的程序自动执行的。零件的加工精度在加工前编程阶段就已形成,程编阶段的误差是不可避免的,这是由于程序控制的原理本身决定的。对于加工形状简单、计算量小、程序不多的零件,采用手工编程较容易,而且经济、快捷。因此,手工编程仍广泛应用。在分析了数控车床工艺装备和编程特点的基础上,下面将结合配置GSK928TA系统的数控车床重点讨论手工编程方法影响加工精度的几个方面。
一、编程原点选取不当带来的误差
同一个零件,同样的加工,由于编程原点选得不同,尺寸字中的数据就不一样,所以编程之前首先要选定编程原点。当编程原点选在不同位置时,对刀的方便性和准确性就不同。尽可能简便,减少计算误差,就应选择一个合理的编程原点。编程原点应尽量选择在零件的设计基准或工艺基准上,它的正确选择将直接影响到零件的加工精度和坐标尺寸计算的难易程度。
二、尺寸公差处理不当产生的误差
这样的问题主要出现在尺寸公差不对称的时候。例如加工尺寸,若按基本尺寸编程,考虑到车削外尺寸时刀具的磨损及让刀变形,实际加工尺寸肯定偏大,难以满足加工要求,所以必须按平均尺寸确定编程尺寸。在编程时应将此数据处理成(56.015±0.015,33.985±0.015,29.9835±0.0165)mm,这样才能够保证加工出来的零件更好地符合图纸要求。按照基本尺寸进行编程是初学编程者常犯的错误,应当遵循将尺寸转换成平均差再进行编程的原则。
三、应尽量使用绝对尺寸编程
数控编程中,可选择绝对尺寸、相对尺寸进行编程。绝对尺寸编程是以工件坐标系原点为坐标原点,根据刀尖在工件坐标系中的位置来编程的,每一条程序的基准都是工件坐标系原点,整个加工过程中始终使用同一基准;而相对尺寸编程是以刀尖所在位置为坐标原点,根据刀尖相对于坐标原点所产生位移来编程的。因此相对尺寸编程的坐标原点在不断变化,每一条程序执行时是以当前刀尖点为基准控制刀具位移量的,连续执行多条指令时必然产生累积误差。所以用绝对尺寸编程可以提高零件加工精度。
四、对机床操作系统的特性不太了解而产生的误差
螺纹在切削过程中,从螺纹切削开始到结束部分,一般由于升降速的原因,会出现导程不正确的部分。考虑到此项因素影响,螺纹切削指令中的螺纹长度就应该比需要的螺纹长度长一些,为了加工长度为L的螺纹,应该提前L2进入切削,在需要的螺纹长度加工完成之后,要延长L1距离,这样就能够在需要的长度内得到均匀的螺纹导程。
五、丝杠副间隙产生的误差
对数控车床而言,中拖板丝杠副间隙由于采用的是滚动丝杠副,并且都进行了预紧,从理论上讲是达到了零间隙,无反向空行程。实际上,对于有相对运动的传动部件,间隙是不可避免的。对高精度的滚珠丝杠副而言,只是间隙非常微小,如果真正达到零间隙,运行的阻力就会增大。因而,在丝杠反向运动时,还是存在微小空程,这个空程就足够影响加工精度。使直径40的外圆直径加工出来,每次的加工尺寸都会偏大或偏小,达不到精度要求。误差消除方法:可采用多退回一段距离,再前进到所需的加工位置的编程方法,使丝杠副始终以同一个侧面相接触来消除丝杠副间隙误差。更改加工路线适合于一般精度的数控车床在加工重要尺寸时使用,避免了采用机械方法来减少间隙而带来的阻力增大和调整困难等问题。
结束语
使用数控机床加工零件时产生的误差来源是十分复杂的,本文仅对手工编程引起加工精度的常见误差来源进行了分析,可以看出编程质量的优劣,直接影响到加工零件的精度。合理编制较为复杂的数控加工程序并调试、修改,加工出合格的产品,是数控编程人员综合能力的一种体现。
参考文献:
[1]赵长明,刘万菊.数控加工工艺及设备[M].高等教育出版社,2003.
[2]金淘,王卫兵.数控车加工[M].机械工业出版社,2004.
编程分析 篇3
我国的制造业发展迅速, 数控设备正逐步替换原有的普通设备。包括数控车、数控铣、数控车铣复合等机床正越来越多地应用于机械加工领域。数控技术不断向前发展, 对产品质量的要求也不断提高。要高效地制造高精度产品, 对于复杂零件手工编程方式必须替换为自动化编程, 这样上游CAD的设计也能得到很好的继承。计算机辅助编程系统能使数控设备的巨大优越性得到充分发挥。
当前独立的计算机辅助编程 (简称CAM) 软件需求愈发重要, 计算机辅助编程 (CAM) 是现代制造加工企业计算机应用的主干。对于制造加工企业, 产品质量和生产周期是重要的数据指标, 而手工编程这种传统的编程方式早已无法满足这些要求。为适应现代工业的发展要求, 采用CAM技术可以大大提高企业市场竞争力, 是目前和将来整个加工制造业发展的重点。目前大多制造加工企业都已采用计算机辅助编程 (CAM) , 均有效地提高了数控加工的效率和质量。
GibbsCAM是一套简单而功能强大的CAM系统, 主要应用于机械零件加工领域。用户界面直观, 简单易学。用户可在同一个界面下建构几何图形、设定刀具、产生刀具路径、路径模拟、设定后处理及输出优化的NC程序。GibbsCAM在数控车、数控铣、数控车铣复合和多任务复合加工领域优势十分明显。尤其是在MTM多任务加工方面加工领域更加突出。GibbsCAM正在被我国数控人员接受。
2 GibbsCAM软件编程与普通手工编程对比
(1) 几何数据识别快捷
GibbsCAM编程:一般公司都有二维CAD图档或实体图, 客户只需把现有的AutoCAD图档调入GibbsCAM, 选取要加工的曲线段或面进行编辑 (取代手工点位坐标的计算) 即可, 且精度相对较高。
手工编程:需分析图纸点位坐标, 再书写G代码指令, G代码书写繁琐缓慢, 易人为出错, 不安全。
(2) 卓越的2.5轴孔加工
GibbsCAM编程:可以自动识别孔特征参数, 并根据孔特征对不同孔分组分类, 自动定义刀具、编排工艺 (一道程序即可编出所有孔程序) , 大大节省了编程时间。
手工编程:每个孔程序都需单独输入指令, 如果孔数量较多, 则工作量较大。
(3) 强大的同步切削运动
GibbsCAM编程:同步管理器结合机床仿真应用于多任务机床 (MTM) 加工, 可以协调多主轴多刀塔同步切削运动, 避免碰撞, 使程序最优化。
手工编程:完成多主轴多刀塔的同步编程是一个巨量的工程。由于是多刀塔同时运作, 手工要逐个程序拼凑, 再输入机床试切, 危险性极大, 且时间浪费严重。
(4) 强大的干涉检查
GibbsCAM编程:可以进行实体模拟加工, 检查刀路是否安全。还可加载机床模拟, 进行机床、刀具、工件、工作台等的协作干涉检查, 使安全性更高。
手工编程:无干涉检查, 往往要机床实际切削才能验证是否安全。
(5) 独特的时间预览
GibbsCAM编程:可以根据设置的加工参数和工艺步骤预览加工时间。
手工编程:不能预览加工时间。
(6) 工艺调整灵活
GibbsCAM编程:可结合模拟实时编排程序顺序, 调整程序参数, 优化工艺步骤极其方便, 可在软件上模拟优化结果。
手工编程:工艺优化不够直观, 且往往要重新书写G代码程序。
(7) 基于毛坯加工
GibbsCAM编程:基于毛坯加工, 安全性和效率更高。
手工编程:不基于毛坯, 如果毛坯不规则, 只能人工判断, 严重影响加工效率的提高。
(8) 强大的曲面加工
GibbsCAM编程:能处理复杂曲面的零件的编程。
手工编程则无法完成。
(9) 编程高度集中, 易学易用
GibbsCAM编程:可针对不同机床、不同控制系统, 采用标准的Windows编程界面, 全中文菜单, 通用性强, 易学易用。GibbsCAM只需根据不同机床要求, 使用配套的机床后置, 即可生成和机床对应的G代码指令, 编程可高度集中。
手工编程:面对不同的机床、不同的控制系统时, 操作界面和机床代码识别均不统一, 需要不同的编程人员。
(10) 文档管理方便
GibbsCAM编程:便于文档的统一管理, 程序以图形化形式存在, 查阅直观, 修改方便。
手工编程:程序管理不便, 程序以G代码形式存在, 比较散乱, 易混淆, 且和几何图档分割放置。
(11) 程序修改便捷
GibbsCAM编程:如果程序需要修改, 只需打开原来编程对话框更改参数重新计算即可。
手工编程:要书写大量的G代码。
软件编程可以更好地优化企业加工工艺方案、调整或重组工艺流程、充分利用有限的设备资源、缩短零件加工周期等, 从而提高生产效率, 创造可观的经济效益。
3 零件加工实例
为了比较的客观性我们选取了中等复杂程度零件主要在加工时间和安全性方面对比。零件三维图如图1。
(1) 原来客户使用AutoCAD完成产品设计, 打印出二维图纸交接给编程人员, 编程人员再根据尺寸标注计算点位, 此过程大概需要2min时间;使用GibbsCAM即可直接调入图档, 鼠标拾取加工曲线即完成点位计算, 如图3。用3s完成原来2min才完成的点位计算, 而且还省去打印图纸时间。
(2) 计算点位坐标后, 客户书写G代码指令 (手工键入机床) , 粗车外径, 精车外径, 攻螺纹, 铣键槽, 打孔, 车内径, 铣六边, 用时37min;使用GibbsCAM软件, 选取对应加工策略, 打开编程对话框图4, 输入加工参数即可快速计算出结果, 然后通过指定后置生成机床可识别的G代码, 再通过网络将程序直接传入机床控制系统, 所有程序完成用时5min。
(3) 客户那里有两种不同系统的机床, 编程格式都不一样, 手工编程每次都要书写2次程序。客户使用GibbsCAM软件后, 由于是在通用的编程环境下进行, 一次程序即可, 所需要的只是配备不同的后置系统, 2s即可完成程序输出。GibbsCAM目前有市面上所有车, 车铣复合和大多数的多任务加工机床的后置处理。两种编程方式用时分析如表1。
(4) 原来客户手工编程只能在操作面板上查看大概的刀路轨迹, 需机床实际切削才能最终验证程序是否正确安全。现使用GibbsCAM编程加工, 直接读取零件曲线, 确保零件外形读入无误, 而且还基于毛坯。通过调节模拟速度按钮, 可以清晰观测仿真机床的每一个动作, 模拟出加工的效果图。零件过切或发生刀具碰撞, 都会发出报警信号。而且直观的模拟效果和时间预览功能又支持我们更好地优化加工工艺 (如图5) 。
(5) 该客户使用GibbsCAM后每天一个人就可以编制大量的程序, 而且还节省了原来手工键入G指令占用的大量机床时间;对文档的管理也更加系统, 以图形化形式存在程序保证图形和程序一起存档, 查阅修改都更加方便。
4 结语
对于简单零件, 手工编程不存在复杂的运算并省去了计算机绘图及传输时间, 应用较为方便。对于存在大量曲线和曲面的复杂零件来说, 软件编程具有高速度、高精度、高效率的特点, 程序修改和管理十分方便。随着时代的发展和人们对产品的个性追求, 产品的模具和机械零件越来越复杂, 软件编程早已得到制造业的肯定, 是现代加工必然使用的工具。
摘要:以GibbsCAM软件编程为依据, 详细对比了计算机编程与手工编程的优缺点, 并通过加工实例分析了两种编程在加工中的时间效益。
关键词:GibbsCAM,计算机编程,手工编程
参考文献
[1]关颖.数控车床操作与加工项目式教程[M].北京:电子工业出版社, 2011.
编程分析 篇4
课程设计题目:离散时间信号与系统的频域分析及其编程实现
初始条件:
1.Matlab6.5以上版本软件;
2.课程设计辅导资料:“Matlab语言基础及使用入门”、“信号与系统”、“数字信号处理原理与实现”、“Matlab及在电子信息课程中的应用”等;
3.先修课程:信号与系统、数字信号处理、Matlab应用实践及信号处理类课程等。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.课程设计时间:1周;
2.课程设计内容:离散时间信号与系统的频域分析及其编程实现,具体包括:离散时间信号的傅里叶
变换、离散傅里叶变换、系统的幅频和相频特性等;
3.本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题目进行理论分析,针对具体设
计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结,按要求进行实验演示和答辩等;
4.课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括:
① 目录;
② 与设计题目相关的理论分析、归纳和总结;
③ 与设计内容相关的原理分析、建模、推导、可行性分析;
④ 程序设计框图、程序代码(含注释)、程序运行结果和图表、实验结果分析和总结;
⑤ 课程设计的心得体会(至少500字);
⑥ 参考文献(不少于5篇);
⑦ 其它必要内容等。
时间安排: 1周(第18周)
附——具体设计内容:
1.已知序列xn=[1 1 1 1 ],试用MATLAB编写程序,计算该序列的离散付里叶变换及逆离散付里叶变
换。
2.取一个周期的正弦信号,作8点采样,求它的连续频谱。然后对该信号进行N个周期延拓,再求
它的连续频谱。把N无限增大,比较分析其结果。
3.一个三阶滤波器由以下的差分方程描述:
y(n)= 0.0211x(n)+ 0.0443x(n-1)+ 0.044x(n-2)+0.0181x(n-3)
+1.76y(n-1)-1.272y(n-2)+ 0.3181y(n-3)
编程分析 篇5
关键词:内螺纹 数控编程 G功能
中图分类号:TG659 文献标识码:A 文章编号:1007-3973(2013)012-049-02
1 前言
对于一些特殊类型的加工零件我们可以采用手工编程当中一些特殊的方法,合理运用一些手工编程当中G功能指令,可以使程序步骤得到精简,使一些中低档数控机床系统运行要求降低,加工效率和精度得到提高。
2 零件图样分析
编制如图1所示程序并加工。工件材料为45#钢,毛坯为 50棒料,要求完成工件内螺纹加工,毛坯以预制 20mm、深26mm底孔。
3 零件加工完成
3.1 零件螺纹分析
根据图样中螺纹标注可知,零件右端内螺纹为普通细牙螺纹,公称直径为24mm,螺距为2mm,单线,右旋,螺纹长度21mm,螺纹中、顶径公差带代号为7H。
3.2 确定工艺及编程加工路线
用三爪卡盘自定位,一次装夹依次完成外形轮廓、粗、精加工,螺纹孔底加工,内螺纹加工,加工步骤:
(1)G71循环指令外形轮廓粗加工。
(2)G70循环指令外形轮廓精加工。
(3)G90指令粗、精加工内孔轮廓。
(4)G76循环指令加工内螺纹。
3.3 工艺参数确定
3.4 根据实体模型和加工工艺分析自动生成编辑程序(参考)
4 结语
正确掌握数控车床手工编程和工艺设计特殊方法的加工运用,可以大大简化加工程序,节省了零件加工时间还能保证零件的加工精度,在实践工作中有一定的现实意义。
参考文献:
[1] 唐勰.浅析FANUC-0iT系统数控车床的螺纹加工[J].中国现代教育装备,2010(01):74-75.
[2] 赵歧刚,于世忠.数控车床零件加工技术[M].北京:电子出版社,2013:94-100.
准实时测控系统异步编程模型分析 篇6
研究的某型测控软件编程模型,主要解决与多路遥控设备间信息交换、本地网络数据收发以及系统双机热备份等功能需求下的软件结构优化、线程调度、存储控制、通信管理问题。为确保数据吞吐量和实时性达到要求,选择高效可靠的编程模型至关重要。
1 编程模型特征
逻辑上讲,编程模型是基于系统环境和应用服务需求的程序设计架构和代码、资源管理模式。广义上的编程模型是沿革计算机及网络应用发展而划分的,有单层应用模型、双层(C/S)应用模型、多层(C/S/S)应用模型等[1]。此处指特定应用环境下,完成一定功能需求的软件结构设计思路及编程方法。
1.1 同步模型
通常采用的同步编程模型基于同步I/O操作,当应用程序执行同步I/O操作时,基本上会放弃对正在工作的设备的控制。例如,应用程序调用ReadFile方法从多路数据通道读取实时数据,由于通信数据随机性,几乎无法预计每次操作时间。若某次操作未能即时返回,则ReadFile操作很可能超时并引发异常。在此期间,发出同步请求的线程会被占用。如果该线程是UI线程,则用户的输入将被冻结并停止响应。
正在等待同步I/O完成的线程受阻,意味着该线程虽然空闲,但无法执行有用工作。即使创建更多线程,每个线程都会带来相当大的管理开销,如其内核对象、用户模式和内核模式堆栈、增加的环境切换、调用带有线程附加/分离通知的DllMain方法等。最终的结果是可伸缩性被降低了。
1.2 异步模型
要保持对用户的响应能力,提高软件可伸缩性、数据吞吐量和运行可靠性,则应考虑异步编程模型。其特征是:当异步I/O启动后,无论其完成与否,都立即返回,一旦监视到I/O操作完成,便转入相应处理,因此异步I/O是基于事件响应的。于是,便可将所用到的多个异步I/O设计在同一线程中,而不必为每个I/O单独分配线程,达到减少系统开销、提高运行效率的目的。
2 系统环境及功能
该测控软件运行于主、副双机热备份的硬件平台,外围系统有中心主干网络、时统终端、操控显示面板,以及负责双机通信和远端设备互连的数据通信接口,如图1所示。
由主干网络传送过来的实时测控信息包经主、副双机筛选处理后进行分类显示。同时,主、副双机通过对各自多通道串口卡、双工/时统/中断卡、COM2的控制访问,与远端设备、双工/时统/中断控制器、显示控制模块之间传送信息。并且,用户可以通过操控显示面板控制主、副机工作状态及数据链路切换。
3 编程模型解析
软件采用多线程设计,其中主线程负责人机交互任务,完成状态显控、指令处理、界面维护等功能;而子线程负责所有设备的I/O处理,由主线程创建,操作系统统一管理。这里设计两个子线程,分别完成异步串口通信及网络通信等功能。所有的设备以异步方式打开,并全部由子线程启动设备的读写操作,然后等待每个设备的I/O完成,另外还要等待主线程发出的“终止”事件,以实现与主线程的同步,软件工作流程如图2所示。
3.1 关键模块及功能
软件设计4个关键类:CCOM,CDTI,CNET,CLOG。分别完成通信接口管理,内部硬件管理,网络数据处理,日志数据记录等功能。其定义如下:
为确保实时数据高效记盘,采用双缓冲区轮转控制,每个缓冲区尺寸由宏定义设定,一个缓冲区填满后记盘,然后启用另一缓冲区。
3.2 线程创建和启动
子线程在后台处理特定任务,不参与前台的人机交互,所以比较适合处理设备I/O。控制函数作为线程的行为实现,是线程创建的基础,这里两个子线程的部分示例代码如下:
其次,启动线程。主线程创建线程时,调用AfxBeginThread函数,在调用参数中要提供控制函数的地址,以及传递给控制函数的参数等信息。接着设置进程和线程的优先级。由于Windows NT系统具有抢先的内核,如果负责输入/输出的子线程具有较高优先级,那么当有数据需要处理时,它就可以打断优先级较低线程的运行,优先获得CPU资源[2]。线程初始化函数定义如下:
3.3 线程间通信机制
线程间的通信包括线程间的同步控制以及线程间消息传递。首先是线程间的同步控制,其操作须指定一个OVER-LAPPED数据结构(基于TCP/IP的通信操作对应为WSAOVERLAPPED数据结构),并初始化它的hEvent成员。当I/O完成后,hEvent事件句柄变为有信号状态,通知线程I/O已完成。
主线程中将结束子线程事件动作设置在CCOM的析构函数中,示例代码为:
其次是实时数据传递,采用MFC提供的全局API函数PostMessage。该函数应用十分灵活,可以在接收完数据后随时向系统发送消息,由系统通知主线程进行处理。如在某处理模块中使用下述语句:
4 结语
异步编程模型简洁、灵活、高效,给予那些需要管理数目巨大的请求并负担不起请求等待代价的实时系统以更好的可伸缩性。实践表明,异步编程模型的引入从根本上解决了大型测控系统中复杂的多路并发I/O处理问题,能够有效监管若干路外部时钟定时中断及开关动作,同时完成网络UDP数据报的收发,具有很好的实时性、通用性和可靠性。
摘要:通过编程模型特征的分析,介绍某型测控软件的应用场合、功能需求等,并对其内部机制进行了详细分析,讨论了处理复杂的多路并发I/O问题的软件结构设计和实现。结果表明,异步编程模型很好地满足了系统硬件备份冗余需求,同时兼顾系统并发运行的工作量、优先级和效率。
关键词:编程模型,异步I/O,线程同步
参考文献
[1]冯东雷,应刚,顾春华.Itranet的原理与应用———企业应用系统的建设[M].上海:上海交通大学出版社,1998.
[2]孙鑫,余安萍.VC++深入详解[M].北京:电子工业出版社,2006.
血生化分析机串口通信编程一例 篇7
1 问题的提出
我院化验室新进一台美生MS-500A半自动血生化分析机, 这台机器通过串口和电脑连接, 化验结果通过串口传到电脑进行保存、打印。但经过对厂家提供的电脑端软件的测试发现, 在PC端接收到化验数据后, 软件没有导出数据功能, 化验结果不能整理到医院HIS数据库。在我校教工体检期间, 需要把各种体检数据汇总在一起, 由体检软件为每一位教工产生体检报告。为了满足打印体检报告的需要, 我们通过重新进行串口编程来解决问题。
2 使用Perl编程实现串口通信
Perl是得到广泛应用的脚本程序语言, 易于学习和使用, 由于Perl有庞大的模块库CPAN的支持, 在软件开发周期上Perl相比其他编程语言要短。
Perl处理串口通信需要安装相应的模块, 在Linux上需要安装Device::Serialport模块。在Windows系统, 如果使用Strawberry Perl, 需要安装Win32::SerialPort和Win32::API两个模块。
医院化验室的PC安装的是Windows XP系统, 为了方便编译模块程序, 我们选择使用Strawberry Perl。在Strawberry Perl里安装模块的过程是:从CPAN网站下载模块压缩包, 解压后从windows的cmd命令行进入解压目录, 运行如下的命令:
在安装所需要的串口通信模块后, 在Perl的编程环境下进行串口编程, 以下是部分关键程序代码:
3结论
在现代化的医疗设备中, 串口通信的应用仍然十分广泛。使用Perl高级编程语言, 可以方便地编写出所需要的通信程序。本文的Perl程序简单地实现了PC接收血生化分析机数据的过程, 对于类似的应用, 比如其他医疗设备需要进行串口通信的应用场合, 对本文程序稍加修改即可满足要求。
在Perl串口编程的基础上, 可以根据医院的需要进一步扩展软件功能, 比如增加图形化的管理界面、把化验数据导入到体检数据系统LIS中, 限于篇幅, 本文不再叙述。
摘要:目的:PC接收生化分析机通过串口发送数据。方法:通过串口编程, 实现生化分析机数据传递到PC机。结果:生化分析机导入HIS数据库, 提高了工作效率, 也扩大了HIS的应用范围。结论:通过Perl编程可以方便地实现串口通信的编程处理。
关键词:血生化分析机,医院信息管理,串口编程,Perl
参考文献
编程分析 篇8
Android系统手机一般存放着用户个人的许多隐私数据,比如手机号码、QQ、微信聊天记录、通讯录、短信及支付宝交易密码等等。这些数据都是用户非常有价值的隐私,一旦泄密将造成不可估量的后果。然而在现实中,这些数据的存储并没有我们想象中的那么安全,本文将从程序开发的角度来分析Android系统手机的安全性。
1Android系统手机外存储安全
在Android系统手机中,内存一般在10G左右,经常不能满足用户的需求,所以大多数的手机在购买后都会加一个30G左右大小的SD卡,用于存储照片、视频及其它外部文件。而一些国内较早版本的IM软件,直接把聊天记录保存在手机的外部SD卡中,但是在Android系统中的外部存储的安全隐患最大,任何软件只需要在Android Manifest.xml中声明如下一行权限,即可读写外部存储设备。
<uses-permission android:name=” Android.permission.WRI TE_EXTERNAL_STORAGE”/>
其它软件只要拥有内存卡读写权限,就可以访问它的内容, 若即时聊天软件的聊天记录存放在SD卡中的话,就给了一些恶意软件留下了可乘之机,从而造成用户数据的悄无声息的泄密。
所以在Android系统程序开发中,可以适当的采用外部存储来保存数据,但是若涉及到用户隐私的,即使加密了的数据, 最好也不要放到外部存储设备上,通过上面分析,只要是Android程序开发员掌握了软件数据的解密方法,可以简单的获取用户的隐私。
2Android系统手机内存储安全
Android系统的内部存储是所有软件存放私有数据的位置, 在Android系统安装 包中提供 了open File Input ( ) 和open File Ouput()方法来读写程序的私有数据目录。如一段常见的存储内部数据的代码1片段如下:
open File Output()方法的MODE_PRIVATE参数指定了文件创建的模式,表明该文件是不能被其他程序访问的,Android系统内部存储的访问是通过Linux文件访问权限机制控制的。
若我们在程序开发时,将MODE_PRIVATE参数更改为MODE_WORLD_READABLE,则文件允许其他用户进行读操作。当内部存储文件可以被访问时,程序开发者可以通过以下代码2片段来获取该数据的内容。
从上面程序代码我们可以知道,create Package Context() 方法允许创建其他程序包的上下文,即Context对象,通过这个对象,程序可以启动其他程序的Activity,并且访问其它程序的私有数据。经过Context.CONTEXT_IGNORE_SECURITY指定程序忽略创建Conetxt时的安全异常,将会始终创建Context对象,由于程序赋予了相应的权限,程序不会发生异常。
所以我们在程序代码1片段中,即使把参数设置为MODE_PRIVATE,恶意程序依然能够通过其他途径获取高一级的访问权限,从而通过系统漏洞来提升访问权限,进一步来访问软件的内部存储的隐私数据。
3结束语
编程分析 篇9
在数控加工时, 如果工件的设计基准与定位基准不重合, 且工件的设计基准与加工面不在一次安装内同时加工, 即使编程原点设在了设计基准上, 也会产生基准不重合误差。这是因为加工时编程原点与工件的设计基准是否真正重合也要看批量生产时设计基准是否与定位基准重合, 单件加工时设计基准是否与测量基准重合, 只有重合了编程原点才在设计基准上。也就是说, 无论编程原点与设计基准或定位基准 (或测量基准) 重合与否, 只有当工件的设计基准与定位基准 (或测量基准) 不重合且设计基准和加工面不同时加工时, 才会产生基准不重合误差。
1 基准不重合时误差处理原则
通常基准不重合时确定工序尺寸需用尺寸链原理解算。由于数控加工的工艺特点不同于普通加工, 所以在工艺尺寸链的解算上有别于传统的工艺尺寸链:传统的尺寸链的本质是在定位基准或者测量基准依次转换获得尺寸中的加工误差的积累。在数控加工条件下, 工件上的一组尺寸一般是在一次安装中直接获得的, 不存在基准转换和误差的多次积累问题。无论采取绝对编程还是相对编程, 工件各加工面到编程原点的误差都应控制在数控机床加工精度范围内。所以利用尺寸链分析数控加工的工序尺寸和公差不能简单地照搬普通加工的尺寸链分析方法。
2 基准不重合时的零件加工时编程处理
图中所示零件为一轴类零件, 该件的A、B面已加工合格, 需在数控车床上车削C、D、E、F面及有关外圆。下面分析其轴向工序尺寸及编程尺寸确定问题。
2.1 零件工序尺寸分析
工件以B面为轴向定位基准装夹, 用G54建立工件坐标系。对该零件来说, 设计尺寸Z1、Z2、Z3、Z4的设计基准与编程原点都不重合, 定位基准也不与编程原点重合。
若认为编程原点与设计基准不重合即存在普通工艺设计基准与定位基准不重合的基准不重合误差, 设Z′1、Z′2、Z′3、Z′4分别为C、D、E、F面到编程原点的工序尺寸, 则根据尺寸链计算, Z′1、Z′4的公差为0, Z′2、Z′3的公差为负, 也就是采取这种方式加工无论使用多高精度的数控车床加工, 也不能保证精度要求。若依照编程原点与设计基准重合才能消除基准不重合误差方法, 解决的方法只能是:加工C面、F面时按B面对刀, 将编程原点移到B面;C面加工合格后在加工D面, 并且再按C面对刀, 将编程原点移到C面。加工E面以此类推。这种加工方法需要一次次的对刀, 一次次的移动编程原点, 并且还要将作为原点的表面先加工出来再对刀建立坐标系, 这显然不符合数控加工的实际。所以不能认为编程原点和设计基准不重合即存在类似普通工艺中设计基准与定位基准不重合时的基准误差。
事实上, 编程原点0在工件安装后并不一定在工件的A面, 其位置也并不随一批工件的安装后A面的位置的变化而变化, 与尺寸15undefined无关, 15undefined的误差不会累加到尺寸Z1、Z2、Z3、Z4的误差中。所以工艺尺寸链分析必须结合具体的工艺过程才能进行。同一个零件, 采用不同的工艺过程加工, 其尺寸链的封闭环和组成环可能完全不同。例中零件加工中, 虽然编程原点与设计基准和定位基准都不重合, 但是Z1、Z4的设计基准与定位基准重合, Z2、Z3的加工面与其设计基准是在一次安装中一同加工出来, Z1、Z2、Z3、Z4本身都是直接保证的工序尺寸, 与编程原点选在哪一点无关的, 不存在编程原点与设计基准不重合而产生误差问题。
2.2 编程尺寸确定
关于编程尺寸确定问题, 可按前述方法, 将基本尺寸换算成为平均尺寸, 按平均尺寸编程, 本例中, 若采用绝对编程, 加工C、D、E、F面的编程尺寸分别为:35.85;64.75;94.65;114.85。
采用上述尺寸编程是在一次安装中同时加工Z1、Z2、Z3、Z4。只要机床的实际定位精度足够+0.02 mm, 则任意两点间实际值与给定值的偏差应在+0.04 mm内 (按实际误差值为定位精度的2倍考虑) , 完全能满足Z1、Z2、Z3、Z4的精度要求。
3 结束语
综上所述, 在数控加工条件下, 工艺尺寸链分析必须结合具体的工艺过程才能进行。这样确定的工序尺寸以及公差才能保证编程尺寸的准确, 加上数控机床自身较高的定位精度, 保证加工出零件具有较高的精度。
参考文献
[1]李业农.数控机床及编程加工技术[M].北京:高等教育出版社, 2009.
编程分析 篇10
单按钮;起停控制;PLC编程技术
随着科技的飞速发展,工业自动化的要求与程度也越来越高,正是由于PLC具有程序简单、易使用、便维护、高可靠性等等的优点,在工业中得到了越来越广泛的应用。在PLC的设计系统中,系统的启停是最基本的要求,传统的方法是使用两个按钮分别作为启、停的控制按钮,这使电路的接线大大的增加,加大了成本,同时系统也会面臨很多的故障风险。所以,要充分利用PLC多功能性的特点,只用一个按钮控制系统的启、停,减少接入点的同时,降低成本,提高安全性。下面介绍几种单按钮起停控制的PLC编程技术。
原理:在PLC控制系统中,用单按钮来进行操作控制,只需按一下按钮,就会有相应的输出信号,并且是有效的。当再一次按下按钮时,则相应的输出信号就会无效例如,电动机的启动和停止。即当每按下一次按钮时,其相应的输出信号的状态就会反转。这就是单按钮的起停控制。可以有效地节约I/O控制点,并且操作非常简便,经常在实际的应用的使用。
在PLC的内部,有着非常丰富的软元件,例如辅助继电器、计数器、定时器等等,充分的利用这些资源来进行程序的设计,实现单按钮的起停控制的PLC程序设计方法。PLC的控制器,由于通用性和实用性都非常的好,而且硬件设备齐全,编程方法也简单易学,所以广泛的应用在工业领域。下面简单介绍几种不同的控制方法,仅供参考。
1.上升沿微分、下降沿微分指令
XO为输入信号,YO为输出信号,DF为上升沿微分指令,DF/为下降沿微分指令,利用这两个微分指令来检测XO每个上升沿、下降沿,然后用辅助的继电器记录,使XO的第一个上升沿,控制YO,使其等于1,XO的第二个上升沿控制YO,使其等于O。
2.计数器
当检测到XO的上升沿指令时,辅助继电器RO就会ON一个扫描周期,同时设置计数器的预置值为2,RO为计数触发信号,复位的信号是R9O13+C1OO。其中R9O13是初始的闭合继电器,它只有在PLC运行的第一次扫描时才会合上,而第二次扫描就会断开,而且会保持断开的状态,以此来保证上电复位。C1OO则是计数器CT1OO常开的触点。在下图中,当XO第一次为ON时,RO为其ON扫描的一个周期,当CT1OO计数为1时,YO就会为ON。当XO继续第二次为ON时,RO就会再次扫描一个周期,同时CT1OO再计一次数,C1OO的常闭触点就会断开,使YO变为OFF。且常开触点闭合,CT1OO复位,其预置值变为2。如此的循环下去。
3.定时器
如图,其中设定TMR0的值为l,时间为0.01s,这里要尽可能的减小设定值的值,可以在启动后出现异常时更快速地停止。按下SB,X0扫描一个周期,接通Y0的线圈。定时0.0ls启动后,其常闭触点就会端开,而当常开触点闭合时,系统准备Y0的复位;当SB再次被按下的时候,X0就又会接通一个扫描的周期,而XO、TMR0的常开触点都处于接通状态,使得Y0复位,同时断开YO的线圈。如此的循环往下去。
4.移位寄存器
移位寄存器指令编程的程序,如图所示,在图中对WR0进行了向左移1位操作,由R0的状态决定移入的数据是0还是1,X0为移位的触发信号,R1为复位信号的常开触点。
其工作过程如下:如图,当SB第1次被按下时,X0接通,R0触点闭合,向寄存器SR的WR0输入信号,l移入R0,接通Y0的线圈,R0的触点断开,当SB第2次被按下的时候,X0接通,向寄存器输入信号,移位寄存器SRWR0向左移一位,l移入Rl,R0触点断开,R0移入0,复位,断开Y0的线圈,Rl触点闭合,WR0继电器的状态全部为0.电路恢复到最初的状态,准备下次起动。
MC,MCR指令
主控指令编程的程序,如图所示,其控制过程如下:
当SB被按下时,接通X0,进入MC,MCE的指令程序,但因为初始时YO常闭触点的状态为闭合,所以接通R0的线圈,并使其进行自锁,而R0常闭触点分断与对R1的线圈进行互锁,闭合R0常开触点,接通Y0的线圈,并使其进行自锁,当松开SB后,执行MC,MCE之间指的令程序,使R0复位;当SB再次被按下的时候,接通X0,重新进入到MC,MCE的指令程序,但因为Y0的线圈已经接通,所以R0线圈的通路被Y0常闭触点断开,不再接通R0的线圈,而Rl的线圈通路,则被Y0常开触点闭合接通,并进行自锁,Rl常闭触点分断,而其一对触点,会断开Y0的线圈,另一对触点则会对R0的线圈进行互锁,而且不会因Y0常闭触点的复位而导致R0、Y0的线圈被再接通的错乱控制现象。当松开SB后,执行MC,MCE之间的指令程序,使R1复位。然后依次按下SB,控制过程同上述过程。
5.S,R指令
按下按钮,接通X400,使M100产生脉冲,M100常开触点闭合,将M206置为1,为Y430供电,使电机起动,闭合M206另一对常开触点,准备为M101供电。再次按下按钮,瞬时接通X400,使得M100再次产生脉冲,闭合M100常开触点。M101得电,闭合M101的常闭触点,复位M206为0,Y430失去电源,电机停止工作。
6.保持指令KP
其相应的工作过程如下:
令XO=YO=1并保持不变。
令XO=O,同时YO=RO=1并保持不变。
令XO=1,同时RO=1,YO=O。
令XO=O,同时YO=RO=O。准备下次循环。若XO=1,则从按上述过程从(1)开始循环,实现单按钮的起停控制。除了本文列举的单按钮控制起停的方法外,还有很多方法,而且在实际中也会经常用到,因为PLC的指令集非常丰富,而且编程又十分的灵活,同样的一个控制可以用多种不同的的指令来进行编程,达到所要求的目的。而且PLC也将计算机的很多特点融入其中,使得在编程的时候不只局限于继电控制图的一种思路。同时对编程人员的需要也很高,必须要在使用实践中不断的探索,提高编程技巧,不断进步,这样才能使PLC的优势更充分的发挥出来,满足各种不同的控制要求。文中提到的几种设计方法,相对来说PLC的程序设计方法还很简单,但却都很实用,相关人员可以自行选择使用。
[1]孙克礼,谢忠志.单按钮起停控制的PLC编程技术[J].自动化技术与应用,2008.10
[2]孙克礼.单按钮起停控制的PLC编程技术[J].机床电器,2008.04
[3]薛 云.几种单按钮起停控制PLC程序设计方法[J].机床电器,2006.33
[4]章绍东.单个按钮实现电机起停的PLC程序设计方法[J].电气开关,2003.41