编程系统(精选十篇)
编程系统 篇1
Microsoft公司的Access是一种非常简便的数据库, 支持SQL语句, 可靠性高, 但它是一种单用户的数据库管理系统, 不能支持多用户并发访问;
自由软件MySql是网络版的数据库管理系统, 不需要购买, 可自由下载, 支持多用户并发, 但由于没有商业支持, 因此许多开发软件对其支持不是太好;
Oracle公司的Oracle是市场上使用非常广泛的数据库管理系统, 它支持多用户并发, 稳定性可靠性均极高, 但是Oracle数据库系统体积庞大、结构复杂, 使用也比较复杂, 一般用于大型系统。
1 SQL简介及优点
SQL server是目前应用最广泛的数据库之一, 支持多用户并发, 开发平台对其支持良好, 规模适度, 使用与开发难度均较低。
为方便升级为网络版软件, 我们需要采用能支持多用户并发的数据库;同时, 硬件条件与使用人员的计算机使用水平决定了数据库管理系统的结构与使用方法不能过于复杂, 选择开发过程中能获得开发平台良好支持的数据库。
2 编程语言
2.1 常用开发语言
目前常用的开发语言有Visual Basic、Delphi、Visual C、C#、.Net等。它们均为图形界面、面向对象的编程语言。但不同语言具有不同的特点及使用场合。VB编程简单、快捷, 但对于系统级的应用较为不便;VC功能强大, 对于系统层的访问相对方便, 但其界面生成较慢;C#、C、.NET等语言规模较大, 适用于大型系统的开发, 对于中小软件不适用。Delphi是由Borland公司开发的, 是Object-oriented Pascal, 对操作系统的操作能力适中, 界面生成快, 可资利用的控件资源丰富。
2.2 Delphi简介
开发平台可以选择著名的Borland (现在已和Inprise合并) 公司开发的可视化软件开发工具Delphi。“真正的程序员用c, 聪明的程序员用Delphi”, 这句话是对Delphi最经典、最实在的描述。Delphi被称为第四代编程语言, 它具有简单、高效、功能强大的特点。和Vc相比, Delphi更简单、更易于掌握, 而在功能上却丝毫不逊色;和V B相比, Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。它一直是程序员至爱的编程工具。
Delphi实际上是Pascal语言的一种版本, 但它与传统的Pascal语言有天壤之别。利用Delphi的开发程序向导, 在不编一行代码的情况下, 程序开发员可以快速获得一个带有菜单与标题栏的用户窗体。因此, 在快速原型法的使用过程中, 程序开发员可以在短时间内生成界面, 通过随后与软件使用者的沟通从而实现快速判断用户对界面的满意程序, 加深程序开发员与用户的沟通, 提高程序开发质量, 缩短开发周期。
3 Delphi与SQL server连接方式
在明确了数据库类型与开发语言后, 需要着重考虑开发平台与数据的连接方式。此处我们将介绍D e l p h与S Q L Server2000数据库连接的方法。
与其它有些语言需要编写专门的代码实现软件与数据库的连接不同, Delphi语言可以利用控件方便的实现软件与数据库的连接。Delphi7.0中有三个控件组用于实现软件对数据库的连接、访问与回写, 分别为Data Access Component控件组、Data Control Component控件组以及ActiveX Data Objects控件组。其中Data Access Component控件组用于实现与SQL Server2000的连接;Data Control Component控件组用于实现对数据库中内容的显示与编辑;ActiveX Data Objects控件组也用于对数据库中内容的显示与编辑。可以看到, Data Control Component控件组与ActiveX Data Objects控件组均用于实现对数据库中内容的显示与编辑, 但它们的功能侧重点各有不同, 但ADO组件现已渐渐成为主流, 因此我们也采用ADO实现对数据库的连接与使用。
摘要:当前各类计算机语言、数据库系统繁多, 我这里选择了开发效率高、界面形成快的Delphi 7.0, 通用性强、硬件要求低的SQLserver2000作为介绍的对象。该语言和数据库制作的系统具有功能完善、界面简便、操作方便、扩展性强的特点。
关键词:数据库系统,编程语言,连接方式
参考文献
[1]刘艺.Delphi6企业级解决方案及应用剖析[M].北京:机械工业出版社, 2006, 5.
[2]毛峻.Delphi7数据库开发技术[M].北京:机械工业出版社, 2004, 3.
[3]RayLiscbner著, 肖雪莲, 朱腾辉译.Delphi技术手册[M].北京:中国电力出版社, 2005, 1.
[4]苗雪兰, 刘瑞新, 王怀峰.数据库系统原理及应用教程[M].北京:机械工业出版社, 2005, 3.
数控系统的编程安全规程 篇2
2、实习前必须穿好一切劳保用品,女同学必须将长头发挽入帽内。
3、要经常润滑导轨、防止导轨生锈,并做好机床的清洁保养工作。
4、数控车床的开机、关机顺序一定要按照机床说明书的规定操作。
5、主轴启动开始切削之前一定要关好防护罩门,程序正常运行重严禁开启防照门。
6、在每次党员接通后,必须先完成各轴的返回参考点操作,然后再进入其他运行方式,以确保各轴坐标的正确性。
7、机床在正常运行时不允许大楷电器柜的门。
8、加工程序必须经过严格的检验方法可进行操作运行。
9、手动对刀时,应注意选择合适的进给速度;手动换刀时,刀架距工件要有足够的专为距离不至于发生碰撞。
10、加工过程中,如出现异常危机情况,可按下“急停”按钮,以确保人生和设备的安全。
11、机床发生事故;操作者要注意保留现场,并向维修人员如实说明事故发生前后的情况以利于分析问题,查找事故的原因。
12、操作机床时,只能一个人操作,不能同时两人或多人同时操作,互保对子到位互保。课间休息和下课必须挂掉机床电源,未经教师同意不得私自送电实习。
13、未经教师同意,不允许擅自动用数控设备,严禁其他人员随意动用自己实习的数控设备,实习时必须按教师安排的课程进行练习,不得随意更改课题。
14、不得随意更改数控系统内部制造厂设定的参数。
数控编程系统的智能化探讨 篇3
关键词:数控技术智能化知识工程UG
0引言
在数控加工飞速发展的今天,包括数控机床及控制系统在内的硬件设备日益更新。目前的控制系统还是通过NC代码来传递、识别和控制加工信息,NC代码需要软件平台的支撑,因此数控编程系统就这样伴随着控制系统的发展而发展。智能化已经成为控制系统发展的明确目标;控制系统的智能化可以给数控设备带来高效和高质量的同时,还提供了更方便更人性化的操作界面及操作方法:数控编程系统作为NC代码的产生平台,也象控制系统一样有着自己独立的发展轨迹,数控编程系统的智能化也是人们在这个领域内不断最求的目标之一。
1数控编程系统智能化的基础
数学模型作为编程系统工作的目标和对象,它所包含的信息量将直接决定了智能化的程度。另外,数学模型所包含的信息在这个加工过程中的传递的方式也会对数控编程系统的智能化有很大的影响。数学模型的发展从线框模型到曲面模型再到现在常用的实体模型,不同类型的模型结构在描述同一个物体时,它所能表述出来的信息容量是不同的。
2数控编程系统智能化的研究现状
目前实体模型结构基础上,数控编程系统已经实现了部分智能化。由于实体模型是通过特征造型的手段获得的,因此在编程过程中,如何获得这些特征,然后直接针对这些特征直接进行编程操作,并在操作过程中根据专家系统的支持提供更多的自动操作选项,成为当前智能数控编程系统的一个主要的发展方向。
很多的CAM系统都提供了一些常用的二次开发的工具。包括如何将一些经常使用的编程过程以一个固定的方式置入现有的系统中,以便在以后的编程过程中随时调用。二次开发工具的开放程度和可操作性成为评价一个系统的重要的参数。
3基于UG的模具智能化数控系统的开发
3.1知识库获取数控编程是一个经验性很强的领域,经验知识对加工效率、加工质量都有着较大的影响。数控编程经验知识的主要特点有:①无形性。②差异性。③修正性。为了最大限度地获取和利用CNC工程师的经验知识,针对上述这些特点,本文制定了经验知识的获取步骤,如图1。
知识获取(Knowledge Acquisition,KA)就是把用于问题求解的各种专门知识从知识源中提炼出来,并将其转换成计算机上可执行代码的过程,其中知识源可以是多种多样的,包括书本文献、领域专家以及各种数据、信息等。
3.2体系的搭建在研究了知识工程技术应用于数控编程领域的基础上,设计了智能数控编程系统的体系结构。分为数据层、基础层、集成层、功能层四个层次。如图2所示。
数据层提供平台运行的数据库环境,该层次采取开放式结构,根据应用需求设立或扩展。
基础层该层包括硬件基础和软件基础。硬件基础提供系统运行所必须的硬件条件,保证数据需求顺利执行,对系统发出的指令快速、精确响应。
集成层为功能层提供集成环境,主要包括面向工程师专业应用的专业应用集成平台、研发流程管理平台和产品数据与知识管理平台。
功能层在集成层基础上构建,面向设计人员终端用户。本层次也采取开放式体系架构,采取插入式软件方式,平台提供一个高度柔性的软件基础结构。
3.3系统的实现UG提供的二次开发功能可以方便用户定制个性化的功能,便于为用户开发有针对性的专用系统,本文采用UG作为开发应用平台,系统数据库系统选用SQL Server2000,开发工具为UG/openAPI、VC++6.0及UG后处理构造器。
在系统的开发实现过程中,遵循软件工程理论,为用户提供了良好的人机交互界面,采用模块化思想,按照设计过程和模块实现的功能将系统划分为几大功能独立的模块,模块之间以及模块的各组成部分之间也具有一定的独立性。
参照了uGS NX系统中自身对话框的风格,在模块设计过程中基于标准化思想和模块化思想建立各模块,通过定义标准接口实现系统的扩展性。图3为根据CNC工程师经验知识设计的模具自动生成系统界面。
4结论
中职招生系统的编程设计研究 篇4
1 建立中职招生系统的必要性
由于在中职招生工作的进行中所遇到的问题复杂多样, 包括一年制中专、三年制中专和五年制大专三个部分, 在录取 (补录) 、报名、资料统计、发放录取通知书, 报到流程、上报省考试院等方面的工作遇到了人力物力流动困难, 工作效率低的问题。
按照以往的招生工作的步骤, 初中学生参加中考并获得初中毕业证, 中职学校根据考生的志愿和学校的录取分数线对学生进行录取工作, 如果录取之后学校预订人额未满, 则在采取下调分数线或者开始没填报志愿而后又想重新选择就读的学生中选择的方式补录, 学生到学校报名填写新生报名表, 相关工作人员对新生报名表的内容进行汇总输入电脑, 对学生发放录取通知书, 学生前来学校报到, 报道后再次确认学生的信息, 对学校的招生情况和学生资料由Excel形式转换成DBF形式上报省考试院。在这整个过程中, 每一个步骤都需要大量的人力完成、浪费时间、而且纸质的资料不易保存、书写过程中容易出错, 因此设计中职招生系统非常必要。
2 中职招生系统的编程设计研究的技术原理
在面对上述问题, 我们中职招生系统必须紧跟时代的步伐, 运用现代化的手段进行招生工作, 中职招生系统也随之产生。
Visual Fox Pro 6.0是在x BASE (d BASE, Clipper, Fox BASE, Fox Pro) 的基础上发展而来的32位数据库管理系统。这是微软公司在1998年和Windows 98操作系统同时推出的数据库管理系统。VFP6为使用者带来了极大的方便, 让使用者对数据库的设计更加方便简捷, 满足了不同使用者的多种要求。VFP6的最大特点就是面向对象编程, 而且增加了表的字段和直接结合的设置, 广泛应用在编制数据管理系统方面, 并且在各高校的计算机课程中均有开设, 也是学生毕业论文的研究课题。因此针对我们在中职招生工作中遇见的问题, 以VFP6为基础设计中职招生系统。
运用VFP6系统设计中职招生系统的方案有很多, 包括单纯PRG文件的程序编制方案、由主程序PRG和基于表单Form、菜单Menu的编程方案和由主程序PRG和基于表单Form、菜单Menu的编程方案等方案, 三种方案各有优缺点。以宜宾职业技术学院为例, 该学院采用的就是第三种方案, 以主程序定义全局变量, 在登录表单的时候输入密码显示主界面的各个表单, 密码输入错误则退出程序。这种方案在运用中的特点就是方便编程, 写出代码即可实现对数据的简单处理, 每个模块的创作可以多人进行, 维护方便, 适用于流程多变动多的数据, 和中职学校招生工作的步骤繁多, 病名人员的变数大等特点相吻合。而且这种中职招生系统分模块进行, 对模块的修改不影响整体的数据库。如果数据库发生变化, 相关编程人员只需要修改部分代码则可完成。
3 中职招生系统设计的思路及效果
针对中职招生工作的复杂性, 为了保证招生录取工作能够高效的进行下去、学生信息的正确录入保存、数据格式的自由转换等方面设计中职招生系统, 主要运用VFP6.0设计软件对各种数据分模块单独存放, 单独管理。并且在开发方面对开发编制人员增加培训交流的机会, 确保开发工作的进行, 同时对中职招生系统的日常维护和更新方面增加开发力度。
根据中职招生系统的实施, 能解决中职学校在招生报名工作中遇到的复杂问题, 提高工作效率, 中职招生工作全由电脑完成, 录取通知书自动设置条形码, 学生在报道时只要刷条形码就能出基本报道流程信息。对各方面的资料储存更加清晰有条理, 系统自动识别年份并备份数据。在把招生情况和学生信息上报省考试院的过程中, 系统自动转换格式并导出。招生工作不再是启用大量的人力进行工作, 减轻了招生人员的工作负担, 在对学生的信息录入时, 更加简单快捷, 在很短的时间就能完成信息录入, 报名缴费, 录取通知书的下发工作。对整个招生工作的高效进行和学校形象的树立, 学校知名度的宣传都有明显的效果。
4 结语
综上所述, 中职招生系统的编程设计的中职学校招生发展的必然选择, 能减轻招生人员的工作负担, 提高工作效率, 也对中职学校的发展有重要意义。
参考文献
[1]吴婉如.进化职业技术学院招生信息系统设计与实现[D].电子科技大学.2012
[2]颜石磊.来华留学生招生信息系统的设计与实现[D].电子科技大学.2012
如何系统有效的学习java编程 篇5
包括jre运行环境和jvm虚拟机,在oricle官网下载javaSE版本JDK包;配置好环境变量就可以使用了。
第二步:java初级语法学习,
1.基本数据类型整形,字符型,字节型,长整形,短整形,浮点型,双精度,布尔型;
2.运算符+,-,*,/,%等;
3.控制流(while,switch,if else);
4.数组的定义方式。
此阶段基本无难度,只要了解练习例题。
第三步:java面向对象学习,
1.类和对象;
2.java语言三大特性,封装、继承、多态;
3.一些关键字学习(static,final,abstract,extends)等。
这是重点,大家根据知识点一步步研究学习才是关键。
第四步:java应用编程,
编程系统 篇6
关键词: 聚合物分散液晶材料; 驱动电压; 功率放大模块; 升压模块
中图分类号: TP 335; TP 316.2文献标识码: Adoi: 10.3969/j.issn.10055630.2012.05.010
引言聚合物分散液晶材料(polymer dispersed liquid crystal,PDLC)[1]是液晶微滴分散于固态聚合物高分子基质之中而形成的新型光学材料,既能实现衍射效率的电场调控[2],又具有体积薄、质量轻、易于小型集成、响应时间快、衍射效率高等特点。为了使PDLC对光产生有效电控现象[2],驱动电源系统要求驱动电压在400 V范围内可调,每路可以独立控制,其输出波形为正弦波、方波或者三角波,特别是其信号频率、相位、幅度均可调。为了产生多种不同频率的波形,可用函数信号发生器实现,信号发生分调制信号和信号发生器直接输出的未调制载波信号。调制信号可用函数信号发生器产生,调制信号加上直流偏置电压,再和载波信号部分进入乘法器产生标准调制信号,载波信号和调制信号由波形选择器选择需要用的波形信号。信号波形选择和频率控制均由ARM控制,波形信号经功率放大模块后,由升压模块进行升压,驱动PDLC,驱动信号和PDLC输出的信号可以通过系统进行采集并在触摸屏显示。文中设计了一套驱动电源系统,具有独立单路可选可调,4路波形组合,用ARM主控,可移植性强的QT实现波形的触摸屏显示和调节,以及多点信号采集和存储等功能。系统满足了PDLC对波形、电压、频率和相位的要求。1系统架构根据系统要求,可将电源驱动系统分为信号产生模块、信号调制模块、ARM控制模块、功率放大模块、升压模块、信号采集模块和LCD触摸屏。信号产生基本原理如图1所示。
根据系统要求,要将信号调制成标准调幅信号,则要将调制信号加上直流偏压,再与载波信号相乘,即可得到标准振幅调制信号。系统采用数字频率合成DDS波形信号发生器,产生满足要求的正弦波、方波、三角波。载波信号和调制信号经乘法器得到标准调制信号,ARM控制波形发生器的相位、频率和波形,并且通过控制数字电位器调节偏置电压范围为1.2~2 V。乘法器输出调制信号最大幅度为0.26 V,采用运算放大器OP07放大,使多路选通器在选择调制信号时能在LCD上显示相对于载波信号较易观察的调制信号波形,调制信号和载波信号输入多路选通,ARM控制多路选通使能和通道号,多路选通后的信号进入功率放大模块进行放大,再给升压模块提高电压到低于400 V的范围内可调。ARM控制升压模块,升压模块输出信号直接驱动PDLC。经过PDLC的信号在输出PDLC时用信号采集模块进行终端信号的采集,观察和分析在4路驱动电源驱动下,PDLC对光的电控特性。光学仪器第34卷
第5期张燕华,等:嵌入式可编程PDLC驱动电源系统设计
2系统硬件设计系统以S3C2440A为主控制芯片,它有2个标准SPI接口;有130多个输入输出GPIO口,很多可复用的I/O口方便用户进行系统的拓展以及模拟各种总线的时序。也可用软件来设置和配置端口而满足不同系统的设计需求。AD9833是ADI公司生产的一款低功耗、可编程波形发生器件,能产生正弦波、方波和三角波三种波形,它具有三根串行接口线,可与SPI标准接口兼容。系统需要产生四路信号,MINI2440的主SPI接口用于数据采集模块,现采用8根I/O口模拟4路SPI总线,通过片选信号进行区分。AD9833外接25 MHz有源晶体振荡器OSC XTAL提供AD9833的主时钟频率。系统中MINI2440用主动工作方式所以用SPIMOSI1口发送数据[3]。当CH1_AD9833_CS1为低电平时,此DDS芯片被选通,写数据有效,反之无效。数字信号发生器的硬件电路设计如图2所示。
AD5160是ADI公司生产的低功耗可编程数字电位器,具有可兼容SPI的接口,控制调节幅度,使得偏置电压可调节范围为1.2~2 V,如图3所示。
3系统软件设计根据电源系统设计需求,使用Linux下可移植性强的QT实现ARM选择和控制波形发生器、数字电位器、数据采集、GUI窗口系统。可抽象出4个层:(1)软件应用层:需要建立GUI图形界面的,包括波形发生器、数字电位器、多路选通通道号选择,偏置电压和调制信号分微调等;(2)事件驱动层:进程管理,窗口管理,显示系统,信息反馈等;(3)高集成C++的QT库,如应用程序接口库等;(4)设备驱动层:如触摸屏驱动,接口驱动[4]等。如图5所示。GUI窗口可实现信号发生器、数字电位器的路数选择,实时调节信号的频率、相位、电压等相关参数,多路选通的通道开关和通道号选择,功率放大输入端和输出端波形的显示及调节,终端信号的波形数据采集和存储,AD转换器的开关。数据采集模块GUI对PDLC输出信号采集显示和存储,波形显示和图形显示均可直观看到波形、时间、电压、频率等参数的当前值和变化,如图6所示。
4结论AD9833数字频率合成器件代替了传统信号源的模拟设置,实现了产生高稳定度、高精度、高分辨力的信号。该系统集成了驱动电源、可控可调信号源、波形显示、数据采集等功能于一体,且体积小,控制和使用灵活方便,已成功用于驱动PDLC液晶材料,实现PDLC产生电控后波形的显示、调节和数据的采集。该驱动电源系统为研究PDLC材料的光电特性提供实验基础。PDLC液晶材料的高衍射效率和高分辨力使得它们在光通信领域如全光开关、光衰减器件等无源光通信器件、可调窗口、液晶显示、遥感及军事方面有广泛的应用前景[5]。参考文献:
[1]阎斌,王守廉,何杰,等.聚合物结构对PDLC性能的影响[J].液晶与显示,2007,22(2):129-133.
[2]郑继红,顾玲娟,庄松林,等.基于全息聚合物液晶光栅的动态增益均衡器的设计与模拟[J].中国激光,2006,33(8):1087-1091.
[3]黄斌,洪赢政,朱康生.基于AD9833的高精度可编程波形发生器系统设计[J].电子设计工程,2009,9(5):6-7.
[4]董志国,李式巨.嵌入式Linux设备驱动程序开发[J].计算机工程与设计,2006,27(20):3737-3740.
火焰切割专用自动编程系统的开发 篇7
AutoCAD是一个中低档、具有普及性的软件, 并且是目前国内外使用最为广泛的二维CAD软件, 其丰富的绘图命令、强大的编辑功能和良好的用户界面受到广大工程技术人员的普遍欢迎。同时, AutoCAD是特有的开放性平台, 可以基于其平台技术内核向各种特定的应用环境不断地延伸发展, 为基于它开发自动编程系统提供了可能。但AutoCAD只是一个通用的绘图平台, 不具备CAM功能。因此, 本文以AutoCAD2002为平台, 对其进行二次开发, 开发出一套使用简单、方便并且实用的火焰切割自动编程系统。
1AutoCAD图形存储格式
AutoCAD图形存储格式通常有DWG (Drawing) 格式、DXF (Drawing Interchange Format) 格式、WMF (Windows Metafile Format) 格式、EPS (Encapsulated Postscript) 格式等4种[1]。基于AutoCAD的自动编程系统的开发通常采用DXF格式, 用AutoCAD的命令把图形数据写到外部DXF文件, 然后通过诸如C/C++、VB等高级语言编程去读取图形的DXF文件, 以便获取图形的数据。
2实体数据的提取及G代码生成
2.1 切割轨迹的选取
AutoCAD图形数据库中描述零件轮廓的图形实体中除了包含有轮廓实体外, 还包含有大量诸如尺寸、剖面线、标注文本、中心线等非零件轮廓的实体, 而且在同一个图形文件中可能有多个轮廓实体, 如左视图、局部视图等等, 在加工时往往只需要切割其中的某些轮廓。因此, 为了从AutoCAD图形数据库中正确地提取零件轮廓的图形实体, 需给出描述零件轮廓的图形实体特定的相关联的共同性质。本系统将描述零件轮廓的图形实体连接为一条POLYLINE (多段线、或称为多义线、组合线) 。 POLYLINE在图形数据库中以顶点 (即相连点) 子实体的形式保存信息, 与位置、形状有关的信息主要有两个:一是顶点 (Vertex) 坐标值, 二是顶点凸度 (Bulge) 。这样就得到了零件轮廓线上各子实体的起点、终点坐标及圆弧的相关几何信息, 将这些数据进行必要的处理即可生成数控加工代码。
2.2 多段线直线部分的数据获取及G代码生成
多段线的数据可以通过用ObjectARX读取AutoCAD数据库获取。AutoCAD数据库用来存储组成AutoCAD图形的对象和实体。AutoCAD图形其实是一个存储在数据库中的对象的集合, 通常打开AutoCAD数据库通过选择获得对象, 并且以ads-name形式返回。然后, 需要将ads-name转换为AcDbObjectId并打开它, 当用读的形式打开对象以后, 就能取得保存在数据库中的实体的所有基本信息。
除此外, 在AutoCAD中的每个实体还有一个数据的缓冲区, ObjectARX定义了一个名为resbuf的通用结果缓冲区。此数据由AutoCAD管理和维护, 用户对图元操作后, AutoCAD将对这部分数据进行编辑、修改和保存, 可以通过分析实体的结果缓冲区实现获得多义线的数据信息。实体的结果缓冲区可以由ObjectARX处理实体的函数acdbEntGet () 返回, 所返回的结果中的restype字段包含有DXF组码, 通过DXF组码能够很容易地读出多义线的数据信息。其中, 顶点 (Vertex) 坐标数值保存在10组码中, 顶点凸度 (Bulge) 保存在42组码中。
若Bulge=0, 则该顶点与下一顶点间为直线, 对应NC指令为G01。多段线直线部分数据的获取及G代码的生成程序如下:
2.3 多段线圆弧部分的数据获取及G代码生成
根据几何原理, 用户在编制圆弧插补程序段时, 除了要给出起始点坐标外, 还要给出有关圆弧半径和圆弧优劣性的信息。通常有两种方式:一种是用R表示半径大小并在其前面加上分别表示圆弧优劣性的正负号;另一种是用起点相对于圆心的坐标矢量I、J、K来表示。当插补段为半个或整个圆弧时, 用第一种方式会使得系统对R的正负性判断出现歧义, 从而造成系统不稳定, 本编程系统采用第二种方式。
圆弧部分的起始点的坐标获取方法和上述直线段的获取方法类似, 不同的是对于圆弧仅有起点和终点数据还不够, 还需要由凸度计算出圆弧的圆心坐标和半径。求圆心坐标程序如下:
多段线圆弧部分的几何信息经过处理后, 对照NC加工程序准备功能指令可生成G代码指令, 有以下两种情况:①若Bulge<0, 则该顶点与下一顶点间为顺圆弧, 对应NC指令为G02;②若Bulge>0, 则该顶点与下一顶点间为逆圆弧, 对应NC指令为G03。
火焰切割自动编程系统算法流程见图1。
3火焰切割自动编程系统运行实例
如图2所示, 利用AutoCAD2002绘制一幅切割轨迹图。将各个端点及圆心坐标手工标注出来以便和自动编程的结果相对照。在AutoCAD中加载本文开发的zdbch.arx自动编程应用程序, 当加载成功后输入命令“zdbch”, 接着按随后出现的对话框进行操作, 即可生成如图3所示的自动编程结果。将结果与图2中的手工标注比较后可得出自动编程结果完全正确的结论。
4结论
本文介绍了利用ARX开发基于AutoCAD2002的数控火焰切割专用自动编程软件的过程, 该软件具有良好的人机交互性, 可极大地提高编程效率。但由于时间和经验的限制, 本文开发的自动编程软件还不具备自动套料功能, 还尚未充分利用自动编程的优势, 在以后的研制中应当予以完善。
参考文献
准实时测控系统异步编程模型分析 篇8
研究的某型测控软件编程模型,主要解决与多路遥控设备间信息交换、本地网络数据收发以及系统双机热备份等功能需求下的软件结构优化、线程调度、存储控制、通信管理问题。为确保数据吞吐量和实时性达到要求,选择高效可靠的编程模型至关重要。
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.
编程系统 篇9
1 参数编程基本知识
SIEMENS系统中的参数编程与FANUC系统中的“用户宏程序”编程功能相似, SIEMENS系统中的R参数就相当于用户宏程序中的变量。同样, 在SIEMENS系统中, 可以通过对R参数进行赋值、运算等处理, 从而使程序实现一些有规律变化的动作, 从而提高编程的灵活性和适用性。
1.1 R参数
R参数的表示:R参数由地址符R与若干位 (通常为3位) 数字组成。
例如R1、R20、R100
1.2 赋值方式
除地址符N、G、L外, R参数可以用来代替其它任何地址符后的数值。为程序的地址字赋值时, 在地址字之后应使用“=”, 这一点与FANUC系统的宏程序编写格式有所不同。
例:G01 X=R2 Z=R5 F100
当R2=20.0, R5=5.0, 上式即表示G01 X20.0 Z5.0 F100;
1.3 计算参数种类
SIEMENS系统宏程序应用的计算参数如下:R0~R99——自由参数, 可以在程序中自由使用;R100~R249——加工循环传递参数 (如程序中没有使用加工循环, 这部分参数可自由使用) ;R250~R299——加工循环内部计算参数 (如程序中没有使用加工循环, 这部分参数可自由使用) 。
1.4 控制指令
控制指令主要有:IF条件表达式GOTOF标号;IF条件表达式GOTOB标号。
说明:IF——如果满足条件, 跳转到标号处;如果不满足条件, 执行下一条指令;GOTOF——向前跳转;GOTOB——向后跳转;标号——目标程序段的标记符, 必须要由2~8个字母或数字组成, 其中开始两个符号必须是字母或下划线。标记符必须位于程序段首;如果程序段有顺序号字, 标记符必须紧跟顺序号字;标记符后面必须为冒号。
常用的比较运算符见表1。
例如, IF R1>R2 GOTOB MA1;
条件表达式为单一比较式, 如果R1大于R2, 那么跳跃到MA1。
例如:IF R1>=R2+R3*31 GO-TOF MA1;此处的条件形式为复合形式。
2 参数编程加工实例
例1:R参数用于椭圆加工。数控加工中把除直线与圆弧之外可以用数学方程式表达的平面轮廓曲线, 称为非圆曲线。零件上常见的非圆曲线有二次曲线 (椭圆、双曲线、抛物线) , 圆的渐开线、摆线, 螺旋线, 函数曲线 (正弦、余弦、正切、余切曲线等) 等。在不具备非圆曲线插补功能的数控系统中加工这类曲线, 常用直线或圆弧逼近的数学方法来处理。这时, 需要计算出相邻二逼近直线或圆弧的节点坐标。数控编程中, 将这些不断变化的节点坐标设为变量, 在SIEMENS系统中变量用R参数表示。如图1所示, 试用参数编程的方法编写椭圆加工程序。
2.1 编程思路:
本例编程时, 采用直线进行拟合其精加工轮廓, 以椭圆短半轴X作为自变量, 椭圆长半轴Z作为应变量。编程时采用调用子程序的方式进行循环加工, 直到将其轮廓精加工完毕。
2.2 加工参考程序如下:
例:2:用R参数编写如图2等速螺线凸轮轮廓加工程序, 该曲线的极坐标方程为:
编程思路:根据曲线方程的形式, 编程中宜采用极坐标方式指定节点的坐标值, 即以极坐标半径和极坐标角度来确定点的位置。以上半段为例, 以凸轮转角θ为自变量, 将凸轮曲线按角度分为180段, 用直线段拟合该曲线, 相邻二逼近直线的节点坐标中, 极坐标角度增量为1°, 极坐标半径ρ由公式ρ=40+20/180*θ计算得出, 加工程序如下:
例3:R参数在直线均布孔系样式循环中的应用
指令格式:HOLES1 (SPCA, SPCO, STA1, FDIS, DBH, NUM) ;
直线均布孔系样式循环用于加工直线均布孔, 在加工时首先要用MCALL指令以模态方式调用单个孔加工循环, 再根据孔的分布情况设定直线均布孔循环的各项参数, 最后用MCALL取消循环。循环参数可以设置为变量, 通过调用循环及进行简单的变量运算, 可加工矩形均布或菱形均布的网格孔。
例:试用R参数及钻孔样式循环编写如图3所示菱形均布网格孔系的加工程序, 孔加工循环采用CYCLE81, 通孔深为20mm。
编程思路:建立如图工件坐标系, 根据循环指令中各参数的定义设定各项参数:排孔参考起始点的横坐标SP-CA=0;四排孔参考起始点的纵坐标SPCO设为变量R1, R1的初值为0, 终值为45, 递增量为15;排孔的中心连线与横坐标的夹角STA1=-15;第一个孔到参考起始点的距离FDIS=0;孔间距DBH=15;每排孔数NUM=6。
…
3 结束语
R参数编程功能是SIEMENS系统制造厂家为用户提供的在数控系统平台上进行二次开发的工具, 使用户可以对数控系统进行一定的功能扩展。尽管相比较其他同档次的数控系统而言, SIEMENS系统所提供的软件功能已相当强大, 但R参数编程仍有很广阔的应用天地, 有待于编程人员不断的去做进一步的探索和发现。
摘要:以椭圆加工, 等速螺线凸轮轮廓曲线的加工, 菱形均布的网格孔系的加工为例, 阐述了R参数编程在数控加工中的应用。
关键词:R参数编程,非圆曲线
参考文献
[1]沈建峰.数控机床编程与操作 (数控铣床、加工中心分册) [M].北京.中国劳动社会保障出版社, 2005.
[2]陈海舟.数控铣削加工宏程序及应用实例[M].北京.机械工业出版社, 2006.
基于VC++的仿真训练系统编程 篇10
关键词:仿真训练,半实物仿真,硬件设计,编程
为解决部队装备使用维护人员岗前训练时间受装备数量的限制、院校学员无实装的专业实习等问题,提出研制某型飞机照相专业仿真训练系统。半实物仿真是工程领域内一种应用较为广泛的仿真技术,是计算机仿真回路中接入一些实物进行的试验,因而更接近实际情况[1];同时具有提高系统研制质量、缩短研制周期、节约研制经费等优点已成为仿真领域研究的重要方向[2]。为此某型飞机照相专业仿真训练系统采用以计算机仿真技术为核心的半实物仿真训练平台。半实物仿真系统又称硬件在回路[3]仿真系统,在综合考虑部件的使用频率和系统成本的情况下,采用实物仿真器件与和计算机图形仿真器件相结合的方式仿真飞机座舱内的硬件,再利用软件编程驱动图形仿真器件及仿真照相专业通电检测程序,简要介绍仿真训练系统,在此基础上主要研究其编程方法。
1 仿真训练系统
某型飞机照相专业仿真训练系统是由主机、显示器、控制面板构成的立式仿真训练平台。仿真训练系统硬件结构如图1所示,主机选用具有PCI插槽的工业控制计算机,内插有PCI-I64IOT型I/O卡;控制面板上有侦察专业训练常用的硬件如侦察控制盒、火控盒、配电盘、DTC卡(数据传输卡)和主机电源开关;显示器为触摸显示屏。PCI-I64IOT型I/O卡为32路输入、32路输出通道的光隔离开关量I/O卡,用以实现主机与控制面板间的信息交换,训练系统界面操作利用触摸屏来实现,通过USB接口给主机输入信息,主机通过显卡更新界面。照相专业训练常用的硬件用实物仿真器件安装在控制面板上,其他相关硬件如LMFD(左多功能显示器)、RMFD(右多功能显示器)、ICP(综合控制面板)等设计在仿真训练系统软件操作界面上,采用图形化设计,通过软件编程驱动。控制面板上的侦察控制盒、火控盒及配电盘组件,由按键、指示灯和断路器等组成,采用实物进行仿真,即用真实的民品器件替代,其大小、功能和操作方法与飞机座舱内部的器件完全相同;而DTC卡则采用仿制件,其外观与飞机座舱内部的DTC卡相同,操纵方法也相同,其功能通过软件编程来实现。
2 软件设计
该仿真训练系统软件开发平台选用Windows XP操作系统,应用软件开发环境为Microsoft Visual C++6.0,界面采用对话框方式,采用模块化设计,主要由主控模块、虚拟挂装模块、数据采集与驱动模块、故障设置模块、通电检查模块、操作演示模块组成,其中主控模块、数据采集与驱动模块及通电检查模块是软件的核心部分,是实现全部训练科目的关键。
2.1 主控模块
主控模块负责仿真训练系统界面的图形化器件的静态显示和动态显示。主要包括飞机座舱内的两个多功能显示器的外观模拟,亮度调节旋钮、对比度调节旋钮、周边键和显示区的功能模拟;座舱内侦察专业用到的驾驶杆和油门杆等的部分按键、断路器及ICP上旋钮、开关的静态显示和操作时的动态实时更新。
2.2 虚拟挂装模块
虚拟挂装模块负责模拟通电检查前各种配挂方案的配挂过程。
2.3 数据采集与驱动模块
数据采集模块包括PCI-I64IOT型I/O卡的初始化、数据采集、指示灯驱动程序,主要负责通过I/O卡的输入端口获取控制面板上按键、开关等的状态,进行数据分析后,通过输出端口驱动按键上指示灯。
2.4 故障设置模块
故障设置模块是对侦察设备进行虚拟故障设置,以便受训者可以看到侦察设备发生故障时故障清单的查验画面。
2.5 通电检查模块
通电检查模块包括地面通电检查和空中通电检查程序两个部分,地面通电检查包括侦察任务加载、参数匹配、故障清单的查验和系统时间查询或修改、操纵员启动自检测等操作;空中通电检查包括侦察设备参数设置,相机准备、工作、传输等命令操作。系统通过数据采集与驱动模块获取仿真器件的状态、通过主控模块获取触屏对图形化器件的操作,由通电检查模块进行数据分析、逻辑判断后由数据采集与驱动模块驱动按键上指示灯、主控模块更新仿真软件操作界面的图形化器件的状态和模拟显示器的显示内容。
2.6 操作演示模块
系统操作演示模块为了帮助受训人员尽快学会使用该仿真训练系统设置的。主要利用Photo Shop处理图片、桌面录像精灵录制屏幕操作再利用绘声绘影处理各种素材形成视频流,编程时插入Media Player播放控件,即可播放。
3 编程
仿真训练系统软件设计比较复杂,现将涉及的编程方法与技巧进行总结,供相关人员参考。
3.1 定时器的使用
为了保证仿真系统操作界面实时刷新及控制面板信息的动态输入,仿真软件中使用了多个定时器,定时器设定使用Windows API函数Set Timer(UINT n IDEvent,UINT u Elapse,TIMERPROC lp Timer Func)函数[4],n IDEvent为定时器的标识符,u Elapse为指定超时值,以毫秒为单位,lp Timer Func为指向函数的指针,赋值为NULL,在Class Wizard窗口将WM_TIMER消息与添加的定时器成员函数On Timer(UINT n IDEvent)关联,这样当某一定时器超时就产生WM_TIMER时,在On Timer中根据n IDEvent值转向不同程序分支。
3.2 模拟显示器的亮度和对比度调整
仿真训练系统的界面中要模拟飞机座舱内的多功能显示器,显示器有亮度旋钮和对比度旋钮,因而当对这两个旋钮调整时,模拟显示器显示区内的显示内容应能动态调整,为方便起见,将亮度和对比度的调整用一个自定义函数来实现,定义为DBD-LD_Vary(float color,int bright,float contract),形参分别为打开显示器开关时颜色分量的初始值、当前亮度档位和对比度档位。调用该函数时,初始颜色分量由模拟显示器开关的初始位置(日或夜)决定;当前亮度档位和对比度档位是两个全局变量,当调整这两个旋钮时,由于使用了定时器事件全局变量同步改变;返回值为当前颜色分量调整后的数值。
3.3 播放视频文件
播放视频具体编程步骤包括:在对话框中右击,在弹出的快捷菜单中选择Insert Active X Control命令,打开Insert Active X Control窗口;在窗口中,滑动垂直滚动条选择Windows Media Control控件,单击OK按钮将其添加到对话框中;打开Class Wizard窗口为添加的控件命名成员变量如“m_avi”;向对话框中添加“操作演示”按钮,处理按钮的单击事件,利用m_avi.Set Url播放制定的AVI文件。
3.4 显示JPEG图像
在VC++中显示JPEG图像并不像显示BMP图像那么简单,它通过流操作来实现[5]。具体思路是将JPEG文件加载到堆中,然后在堆中创建一个数据流,接着调用Ole Load Picture函数加载流中的数据到IPicture接口中,最后调用IPicture接口的Render方法输出图像信息。程序代码如下:
加载图片时,调用函数Add JPG(char*filename,int x,int y)时,只需用包含路径在内的文件名作为参数的第一项,x、y方向的坐标值替代第二项、第三项参数即可。仿真系统的界面通常根据操作情况实时更新,但其状态只限于几种,因而可将Add JPG函数放入定时器响应函数内,先判断当前的操作情况,然后加载不同的图片即可。
4 结语
某型飞机侦察专业模拟训练系统是基于部队使用维护人员和院校培训需要而研制的,已配备于院校专业实习室,目前已培训学员两期,使用结果表明:其具有很强的实用性,受训人员毕业到部队后,很快能胜任岗位需要;系统操作简单,只需触摸显示屏和手动操作控制面板即可完成;由于采用了定时器,界面的模拟显示器、图形化器件和控制面板的仿真器件动态更新速度与真实情况一致;软件采用模块化设计,可以用于开发其他型号的仿真训练系统。当然也具有一定的局限性:图形化仿真器件视觉效果较好,操作时缺乏真实感。
参考文献
[1]单家元,孟秀云.半实物仿真.北京:国防工业出版社,2008.
[2]高江林,吴晓燕,李勇君,等.半实物仿真系统VV&A研究.航天控制,2011,29(1):67-71.
[3]康凤举.现代仿真技术与应用.北京:国防工业出版社,2001.
[4]朱友芹.新编Windows API参考大全.北京:电子工业出版社,2001.