这里能搜索到更多你想要的范文→
当前位置:好范文网 > 实用范文 > 经验交流材料 >

编程经验交流

发布时间:2016-09-11 06:17:12 审核编辑:本站小编下载该Word文档收藏本文

第一篇:编程经验

1. 当性能遇到问题时,如果能在应用层进行计算和处理,那就把它从数据库层拿出来。排

序和分组就是典型的例子。在应用层做性能提升总是要比在数据库层容易的多。就像对于mysql,sqlite更容易掌控。

2. 关于并行计算,如果能避免就尽量避免。如果无法避免,记住,能力越大,责任越大。

如果有可能,尽量避免直接对线程操作。尽可能在更高的抽象层上操作。例如,在ios中,gcd,分发和队列操作是你的好朋友。人类的大脑没有被设计成用来分析那些无穷临时状态——这是我的惨痛教训所得。

3. 尽可能简化状态,尽可能局部本地化,适用至上。

4. 短小可组合的方法是你的好朋友。

5. 代码注释是危险的,因为它们很容易更新不及时或给人误导,但这不能成为不写注释的

理由。不要注释鸡毛蒜皮的事情,但如果需要,在某些特殊地方,战略性的长篇注释是需要的。你的记忆会背叛你,也许会在明天早上,也许会在一杯咖啡后。

6. 如果你认为一个用例场景也许“不会有问题吧”,它也许就是一个月后让你在发布的产品

中遭受惨痛失败的地方。做一个怀疑主义者,测试,验证。

7. 有疑问时,和团队中所有相关人交流。

8. 做正确的事情——你通常会知道这指的是什么。

9. 你的用户并不傻,他们只是没有耐心理解你的捷径。

10. 如果一个开发人员没有被安排长期的维护你们开发的系统,对他保持警惕。80%的血、

汗、泪水都是在软件发布后的时间里流的——那时你会变成一个厌世者,但也是更聪明的“行家”。

11. 任务清单是你的好朋友。

12. 主动让你的工作更有乐趣,有时这需要你付出努力。

13. 悄无声息的崩溃,我仍然会为此从噩梦中惊醒。监控,日志,警报。清楚各种的假警报

和不可避免的感觉钝化。保持你的系统对故障的敏感和及时警报。

14. 复杂是大敌。

第二篇:plc编程经验详谈

plc编程经验详谈

(晴天)2014-3-17 13:31:00

--------------------------------------------------------------------------------

plc程序调试步骤

人的脑力是有限的,并且记事情也有时间性。过了n天就会忘记每次修改的原因,为什么要加这条指令,为什么要删除这个网络,让自己以后看自己以前编写的程序时都会很困惑。做到以下步骤,对所有程序理解与修改会有很大帮助的。

1、 把原有程序另存一个, 在另存的程序上作修改。文件命名一个主要的程序名称,标注第几次修改,并加上修改的日期,最好是在文件名外加上简要的修改标题。例如: 《 捆扎程序5(06.10.23翻板步进电机加条件) 》

2、 用.doc文件记录修改的年月日。

3、 在日期下面记录修改程序的步骤,增加或是删除了哪些指令等。并在程序的编辑条注释中做记录,以备下次修改。

4、 在.doc文件中详细记录修改程序的原因,所出现的故障现象是什么,故障是如何排除的。

5、 在.doc文件中标注修改后所现用的程序全名,包括日期与简要的修改标题。

6、 把过时与现用的程序用,过时文件夹与现用文件夹分开整理,按日期排列。

这样每次所作的修改就有了详细的档案,便于以后的程序修改。现用的程序是标有最近日期的程序。

这样的工作步骤同时也适用于电气图纸的修改

plc编程经验

弄通有关plc程序设计理论是重要的。没有这方面的理论准备或指导,仅靠在实践中摸索,简单的问题还好办。复杂的就不好办了。不仅无从下手,而且花了很多时间与精力,也难编出效率较高、质量也较高的程序,常常是事倍功半。

但是,编程的具体实践,以及在这个实践中得来的知识或技能,即经验,也是重要的。没有经验,仅有理论,既无法深刻理解理论,又无法灵活应用理论。这正如学数学,如仅了解一些定理或记住一些公式,没有作相应的练习,肯定是学不好的。更不用说,任何理论也都只是经验的总结,归根到底也都有是来自实践。

1、 经验积累

经验有别人的,也有自己的,都很重要。前者要靠细心学习,后者要靠用心积累,都要在一定的时间与必要的精力。

别人的经验有上了书的或登载在杂志上的。有的是细心学习别人的,但多数是我自己的经验。所有的例子都经我测试过,都经实践证明是可行的。我想,别的书本或杂志上介绍的也会是这样的。所以学习这样杨功的经验是必要的。

还有就是你同事的经验,也是值得学习。这种经验离你很“近”,很易借鉴。

自己的经验则是最重要的。要在自己的实践中,积累自己的经验。同时,最好在学别人的经验时,也能亲自作些测试,能使自己也有类似的经历,进而把这些经验变成自己的。这也是自己经验的重要积累。

还有一些失败的经验,这往往是不会公开的,但这些经验也要学习,也要积累。

经验的积累要用自己的脑记,更要用电脑记。最好作些分类,建立一个自用的程序库,以便于随时引用。

2、 经验升华

经验还有待升华。升华有三个层次:

最低的层次就是建立一个典型的程序库,供今后再用。若程序复杂,还可建一些功能块,或子程序,以便以后引用。

其次,要总结出有效算法。如单按钮起停程序库等。

最高层次的升华是把经验上升到理论的高度,为丰富plc程序设计理论作贡献。我想,随着plc使用的普及与提高,是会有越来越多从经验中升华出来的,而又能用以指导实践的plc编程理论的。

3、 经验应用

经验积累、经验升华都是为了应用。经验应用有三方面:

1) 用作工程设计模板。设计新系统时,选用一个或几个与现设计工程类似的,已取得成功的工程,作样板进行设计。这既可减轻设计的工作量,又增加设计的成功率。这也是信息可重用的一大好处。

2) 用作程序设计参考。在无成功的工程可作样板时,在新设计的逻辑中,仍有相当一部分控制逻辑,可采用或借用已有典型逻辑,这也可减少设计的工作量,增加设计的成功率。

3) 用作算法设计参考。在既无样板可参照,又无典型可采用时,还可运用过去的一些成功的算法。

经验是宝贵的,但是经验特别是个人经验,总是有限的。所以,经验的应用也还要与编程理论相结合

plc现场工程师工作指南

一、出发前的准备

从事plc的技术支持的人,如果是要到现场开始进行系统调试,无论是对oem客户,还是对一个过程控制的系统集成,都要在事先做好一些准备工作。就像一个“驴友”出行前,要更换自己的服装尤其是鞋子,带好水、食品,还要准备在野外的一些防身用品,如果是过夜的话,还要有帐篷、手电筒等一样,作为一个职业的plc技术支持工程师,也有不少的东西是要准备的。

首先要安排自己的行程计划和衣食住行。如果是需要住宿的话,那么如何定机票、酒店(旅馆、招待所),这里就不多说了。如果时间很长(如超过一个月),为了省钱,就要考虑在当地租房子了,尤其是出发的是一个小组,而不是一个人的时候。衣食住行,这些问题与普通的旅行是一样的,虽然这些问题对你完成任务的影响力并不亚于你的专业水平。想

象一下,你到了现场,因为食物中毒导致一个星期拉痢疾的情况会对工作造成什么样的影响,就知道该准备那些东西了。通常,有经验的自动化公司的行政部门会为工程师考虑好这些情况,但是,作为工程师自己一定要进行确认,看看是否所有的事情都已经安排好了。

安顿好了衣食住行的后,要准备自己的工具。作为plc的现场调试工程师,并不需要很多的调试工具。但是,一个螺丝刀、一台万用表,还是必备的。另外,如果要与现场的仪表传感器进行系统联调的时候,还要有一台信号发生器来模拟现场仪表的信号,以确定当发生问题时,现场的信号是完好的。还有,一台结实的手提电脑,是你编程和调试的必需的工具。虽然这些工具你可以要求用户准备好,但是,作为一个职业的plc工程师,如果连这几样工具都没有,会被用户怀疑你的职业水平的。其它的一些仪器仪表,如果需要的话,你可以向公司或者客户提出来,让他们提前准备,比如,示波器、稳压电源等等。毕竟这些不那么通用的仪器,通常是不可能随身携带或备用的。

有一些常被忽视的小东西,你准备了之后一定有用的。如,电气胶带、热缩套管、打火机(你吸烟的话自然会有,没有别人也会有),束线带、还有,如果现场接线已经完成了,要准备好一些与信号线相同的电缆,和一些固定基座的螺丝。你可能怀疑要这些做什么用,相信我,带上这些,虽然有些只值几分钱,但到了现场后,可能会节约你一天甚至几天的时间,尤其是你去的地方是在一个偏远的山区的时候。虽然在发货的时候厂家都有螺丝钉,但是到了现场什么都有可能发生,如果螺丝钉不够(而这是每次都必然发生的),会引起许多问题。

除了以上的东西,就是这次调试所要带的备品备件了。虽然现场的货物清单可能会已经考虑了备品备件的问题,但为了应付万一的情况,有些备件你最好还是自己要随身携带。首先是plc的基板(有的成为机架)、电源、cpu模块,因为这些是一台plc能够工作的基础,如果现场只有一套系统,那么这些模块就只有一个,假如没有备分的话,一旦出现故障,你的所有的工作都必须停下来。因此最好带上一套。

其它的i/o模块和通讯模块,如果现场只有一个的,你都要考虑在多带一个。对于那些现场已经有两块以上的模块,你就不用考虑自己带了。

二、设计交底工作

如果系统设计不是你自己做的,那么在出发前,就要与系统的设计人员进行充分的沟通,对于不清楚和不明白的地方,一定要弄清楚,确保自己清晰地理解了要完成的工作目标,和设计者的意图。不要轻易否定设计者的方案,也不要轻易地说别人那里设计得不行。

但是,因为你是从事现场的工程师,因此,也不必过于迷信设计者。你可以提出自己的建议。比如,plc的机架和cpu模块和i/o模块的搭配原则,可能有时候,设计师不知道你所用的 plc的机架有4槽、6槽和8槽,甚至12槽的,因此,也许全部都选了8槽的,而导致了几个槽的空缺,你可以建议它修改为4槽或6槽的。

方案设计中,最容易出问题的地方是通讯,现场调试最麻烦的地方也是通讯,所以对于通讯的部分,你必须清晰了解系统的框架结构,并且对需要进行通讯的东西在出发前就要全部进行一遍调试,而且要确认其中的所有需要通讯的模块是可以通讯的。比如,操作台电脑、触摸屏、plc、变频器、其它的plc、一些智能仪表和仪器,如果这些东西需要通讯的话,你必须要确认它们相互之间是可以通讯的,如果你不确认的话,就要与厂家联络,并亲自再试一次。如果plc的节点数较多,要考虑距离和厂家cpu的限制。

如果系统较大,远程单元、本地机架数量、每个机架的模块数量的限制,并非出于系统功能和技术上的限制,而是由于使用规范性的限制。在系统硬件组态时,要考虑这些模块的搭配作用。

对于电源模块的配置,一个资深的工程师应该能够做出比较合理的搭配。例如,电源模块通常有5a和10a的分别,如果模块较少,可以选用功率小的电源模块,如果模块较多,则应该选用大功率的电源模块。而一般,如果现场仪表需要plc也供应24v直流电源而不是采用外部电源供电(如rtu)的情景,通常cpu所在的机架上选用大功率的电源比较合理。

此外,在i/o模块的安装时,根据不同的系统,通常同型号的模块放置在一起。但是,如果对于输出模块与输入模块形成回路的,则可以将一个回路的参量所涉及的模块放置在一个机架上(或一个cpu所控制的机架上)比较合理。有的设计师在设计的时候不会考虑这一点,你可以调整过来。

在选型的时候,因为各种plc都有大型、中型、小型的分别,这些分别主要是由cpu模块的性能不同造成的。在实际上,并非一定大型的功能就是合适的。除了价格方面的考量之外,主要是,如果控制点数不多,小型的cpu模块完全可以胜任,则小型的cpu反而比大型的cpu模块工作还要可靠一些。因为,小型的cpu所涉及的资源少,而大型cpu的资源多,在程序执行中,为处理那些程序不需用到的资源时,也要分配时间去处理,这样不仅造成资源的浪费,可能在程序处理上不及小型cpu可以更单纯和稳定地工作。

在设计交底的过程中要指出的是,对于设计中的任何变更,你只能提建议,而不是擅自做修改。因为,你的职责是按照设计施工,而不是设计,因此,对于任何你发现的不合理的东西,你可以提出意见,但必须要等到设计变更确认书下到你手里后,你才能按照变更后的设计工作,尽管这个变更可能是你的意见。还有,即使最初的设计也是你做的,你在变更后,也要通知客户,并取得客户的书面同意。

三、装机步骤

到了现场后,进行系统安装前,需要考虑安装环境是否满足plc的使用环境要求,这一点可以参考各类产品的使用手册。但无论什么plc,不都能装设在下列场所:含有腐蚀性气体之场所,阳光直接照射到的地方,温度上下值在短时间内变化急遽的地方,油、水、化学物质容易侵入的地方,有大量灰尘的地方,振动大且会造成安装件移位的地方。

如果必须要在上面的环境使用,则要为plc制作合适的控制箱,采用规范和必要的防护措施。如果需要在野外极低温度下使用,可以使用有加热功能的控制箱。如何做这些防护箱或控制箱,各制造商和和资格的系统集成商将会为客户提供相应的供应和设计。

在使用控制箱时,在控制箱内openplc安装的位置要注意如下事项:控制箱内空气流通是否顺畅(各装置间须保持适当的距离),变压器、马达控制器、变频器等是否与plc保持适当距离,动力线与信号控制线是否分离配置,组件装设之位置是否利于日后之检修,是否需预留空间,供日后系统扩充使用。

除了上述注意事项之外,还有其它注意事项要留意。

首先比较重要的是静电的隔离。静电是无形的杀手,但可能因为不会对人造成生命危险,所以许多人常常忽视它。在中国的北方、干燥的场所,人体身上的静电都是造成静电损坏电子组件的因素。虽然你被静电打到的话,只不过是轻微的酥麻,但这对plc和其它任何电子器件就足以致命了。

要避免静电的冲击有下列三种方式:在进行维修或更换组件时,请先碰触接地的金属,以去除身上的静电;不要碰触电路板上的接头或是ic接脚;电子组件不使用时,请用有隔离静电的包装物,将组件放置在里面。想象plc里的元器件是一个娇嫩的婴儿,而那些静电会导致这个婴儿死亡,你就会更容易以正确的态度对待这个问题了。

基座安装(rack)时,在决定控制箱内各种控制组件及线槽位置后,要依照图纸所示尺寸,标定孔位,钻孔后将固定螺丝旋紧到基座牢固为止。在装上电源供应模块前,必须同时注意电源线上的接地端有无与金属机壳连结,若无则须接上。接地不好的话,会导致一系列的问题,静电、浪涌、外干扰,等等。由于不接地,往往plc也能够工作,因此,不少经验不足的工程师就误以为接地不那么重要了。这就像登山的时候,没有系上保护缆绳一样,虽然你正常前进的时候,保护缆绳没有任何作用,但一旦你失足的时候,没有那根绳子,你的生命就完结了。plc的接地,就相当于给plc系上保护缆绳。

在i/o模块安装时,须注意如下事项:i/o模块插入机架上的槽位前,要先确认模块是否为自己所预先设计的模块;i/o模块在插入机架上的导槽时,务必插到底,以确保各接触点是紧密结合的;模块固定螺丝务必锁紧;接线端子排插入后,其上下螺丝必须旋紧。由于现场的变压器、电机等影响,多少会有振动,如果这些螺丝钉松动了,会导致模块从机架中松开

第三篇:fpga编程经验

整个verilog中是以module为编写基本单元的,module不宜过大,目标是实现一些基本功能即可,module的层次不宜太深,一般3-5层即可,给module划分层次原则:实现最基本功能的为底层module,然后中层是调用这些基本module,实现大的功能,最高层是系统级模块,统筹各大块之间端口连接,时序关系等。

在module内部编写中,最基本块是initial,always,以及assign块(此外还有一些udp原语,在行为级暂且不谈),其他语句都要包含在这些块里面。这其中,initial块是不可综合语句,可以用来编写testbench,这里面的内容在程序运行时只执行一次;assign语句是在不用寄存器的情况下直接编写组合逻辑;always块是最常用的块,其语法格式是always @(*);其中括号里称为敏感列表,即对于组合逻辑而言,必须是所实现逻辑的所有输入变量,意思是当组合逻辑的每一个变量发生变化,结果立刻发生变化(这与实际情况一致,对于任何组合逻辑,输入变化,输出立刻变化)。对于时序逻辑,常为

always@(posedge/negedge clk),指在时钟上升沿/下降沿到来时,输出才根据那一时刻的输入来决定输出结果。

编程思想:

这一部分是我的心得体会,一般讲verilog的书肯定不会讲这个,因为这部分感觉的东西比较多,完全靠理解应用,没什么固定模式,呵呵,玄了点。不废话了,开始切入正题。verilog归根到底还是编程,同时它是对电路的编程,所以就可以利用这两个特点,充分利用高级语言编程(例如c)的思想和数字电路的知识,就会很大程度上帮助你。首先牢记,编写verilog依据的是时间轴,根据时间顺序确定各种信号何时进入你的电路,可以在编写时先把几个主流信号(即贯穿于整个系统的信号,比如数据流信号)用always写出来,这些信号就是你的基准,其他控制信号根据所处的位置在介入这些主流信号,分别用 always

模块写入。这样,这种时间轴顺序跟c的编程思想就一致,在编写这种顺序性信号时,带着c的思想,基本就容易的多。同时,verilog有个很重要的电路特点,就是在每一时刻,同时会有多个电路有信号(即在运行),这样就必须从传统的顺序语言中跳出来(跳出c的思想),然后进入数字电路的思想,即你的编程要时刻跟实际电路模型联系到一起,比如a<=b,c<=a,即可以想象成两个d触发器,其中c的输入就是a的输出,这样当时钟沿到来时,两个d触发器同时运行,b的值就给了a,而a的输出就给了c,不考虑电路延时,就可以认为二者在时间轴的同一时刻运行成功,a在此时刻的值为b,c 在此时刻的值就是a前一时刻的值。这里只是举了简单的例子,但是时间轴的思路、高级语言编程思想和数字电路模型化思想以及这几个思想的转换对于编程来说帮助很大,帮你在编程时头脑时刻冷静,即使有很多信号,也会让你从全局把握整个电路,避免头脑一团糟。

关于复用:

复用对于硬件设计来说,尤为重要,在实现功能的前提下,电路比的就是主频和资源,而资源的减少思路就是复用。比如多次调用一个子函数a,如果直接写,在结构上就是这个子函数电路块a的复制,电路完成后就会看到你调用了几次a函数,你的结构中就有几个一模一样的a电路,当你的a电路本身资源很大,而且你调用的次数很多时,就很少有fpga能装的下了。这当然跟我们的思想不符,我们只是想让整个电路中只有一块电路a,只不过把a电路在不同时刻用了几次而已,这时就要用到电路复用的思想。电路复用并不神秘,简单来讲,就是把控制端放在a电路两边,用计数器之类的东西,控制在时间轴的不同时刻把值写入a和从a输出端读取值。补充一点,对于电路的同步,计数器是一个很好的东西,因为本身计数器资源并不很大,用它来对于相差多个周期的信号进行同步,非常实用。但是,当信号相差的时间过于大,计数器的计数规模

就变的不可接受,这时就要用到状态机划分状态的方法进行同步了。有了同步,复用就变得简单的多。

关于task:

这是前段时间论坛里讨论比较热的东西。语法上说,task是比always低个等级,即task必须在always里面调用,task本身可以调用 task,但不能调用module(module的调用是与always,initial,assign语句并列的,所以在这些语句中均不能直接调用 module,只能采用给module端口送值的方法达到调用的目的)。task有什么用呢,个人觉得,用task来封装大的逻辑语句不错,使代码显得简单明了,这个对于testbench尤为有用,但在实际电路中用处不大,因为顺序调用task对于电路来说就是电路块的复制,顺序多次调用就是多次复制电路,资源会成倍增加,不能达到电路复用的目的,同时用task封装的纯逻辑代码会使得电路的周期变大,主频降低,不利于为了提高主频而采用的大逻辑切分的方法!

第四篇:vc++编程经验总结

vc++编程经验总结

vc++如何实现远程调试

*假设调试机ip 192.168.0.182 远程机ip 192.168.0.161

*远程机为调试机分配权限,使调试机可以使用远程桌面登陆到远程机器上(这样调试起来方便)。

*调试机上安装visual studio .net 2014

共享调试机上的visual studio上的远程调试目录(以我的机器为例)

c:\program files\microsoft visual studio .net

2014\common7\packages\debugger

*远程机将上面的共享目录考贝到本地,比如:d:\\debugger

*调试机共享要调试的程序所在目录,比如:

d:\important\cvsroot\dv-to-dvd\bin\debug

*远程机将调试机上的目录影射为本地目录。比如:z:\\

*远程机上以命令行形式执行 d:\\debugger\msvcmon.exe –tcpip –anyuser

*调试机启动vc. 打开要调试的工程。比如dvtodvd. 选择菜单project->properties 选debuging->remote setting

connection :remote via tcp/ip (native only)

remote machine: 192.168.0.161

remote command: z:\dvtodvd.exe

*debug->start

*就可以调试了。

1.如何在release状态下进行调试

project->setting=>projectsetting 对话框,选择release状态。c/c++标签中的category选general,optimizations选 disable(debug),debut info选program database。在link标签中选中generate debug info复选框。

注:只是一个介乎debug和release的中间状态,所有的assert、verify都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下quickwatch、调用队列跟踪功能仍然有效,和debug版一样。

2. release和debug有什么不同

release版称为发行版,debug版称为调试版。

debug中可以单步执行、跟踪等功能,但生成的可执行文件比较大,代码运行速度较慢。release版运行速度较快,可执行文件较小,但在其编译条件下无法执行调试功能。 release 的exe文件链接的是标准的mfc dll(use mfc in a shared or static dll)。这些dll在安装windows的时候,已经配置,所以这些程序能够在没有安装visual c++ 6.0的机器上运行。而debug版本的exe链接了调试版本的mfc dll文件,在没有安装visual c++6.0的机器上不能运行,因为缺相应的dll,除非选择use static dll when link。

3. assert和verify有什么区别

assert里面的内容在release版本中不编译,verify里面的内容仍然翻译,但不再判断真假。所以后者更安全一点。

例如assert(file.open(strfilename))。

一旦到了release版本中,这一行就忽略了,file根本就不open()了,而且没有任何出错的信息。如果用verify()就不会有这个问题。

4.workspace和project之间是什么样的关系

每个workspace可以包括几个project,但只有一个处于active状态,各个project之间可以有依赖关系,在project的setting..中可以设定,比如那个active状态的project可以依赖于其他的提供其函数调用的静态库。

5. 如何在非mfc程序中使用classwizard

在工程目录下新建一个空的.rc文件,然后加入到工程中就可以了。

6.如何设置断点

按f9在当前光标处增加一个断点和取消一个断点。

另外,在编辑状态下,按ctrl+b组合键,弹出断点设置对话框。然后单击【condition…】按钮弹出设置断点条件的对话框进行设置。

7.在编辑状态下发现成员变量或函数不能显示提示是如何打开显示功能

这似乎是目前这个visual c++ 6.0版本的一个bug,可按如下步骤使其正常,如再出现,可如法炮制:

(1)关闭project

(2)删除“工程名.ncb”文件

(3)重新打开工程

8.如何将一个通过classwizard生成的类彻底删除

首先在工作区的fileview中选中该类的.h和.cpp文件,按delete删除,然后在文件管理器中将这两个文件删除,再运行classwizard,这时出现是否移走该类的提示,选择remove就可以了。

9. 如何将在workspace中消失的类找出来

打开该类对应的头文件,然后将其类名随便改一下,这个时候工作区就会出现新的类,再将这个类改回原来的名字就可以了。

10. 如何清除所有的断点

菜单【edit】->【breakpoints…】,打开“breakpoints”对话框,单击【remove all】按钮即可。快捷键是“ctrl + shift + f8”。

11. 如何再classwizard中选择未列出的信息

打开“classwizard”对话框,然后切换到“class info”页面。改变“message filter”,如选择“window”,“message”页面就会出现window的信息。

12. 如何检测程序中的括号是否匹配

把光标移动到需要检测的括号前面,按快捷键“ctrl + ]”。如果括号匹配正确,光标就跳到匹配的括号处,否则光标不移动,并且机箱喇叭还会发出一声警告。

13. 如何查看一个宏(或变量、函数)的定义

把光标移动到要查看的一个宏上,就比如说最常见的declare_map_message上按一下f12(或右键菜单中的相关菜单),如果没有建立浏览文件,就会出现提示对话框,按【确定】按钮,然后就会跳到该宏(或变量、函数)定义的地方。

14. 如何添加lib文件到当前工程

单击菜单【project】->【settings…】弹出“project setting”对话框,切换到“link”标签页,在“object/library modules”处输入lib文件名称,不同的lib之间用空格格开。

15. 如何快速删除项目下的debug文件夹中临时文件

在工作区的fileview视图中选中对应的项目,单击右键弹出菜单,选择【clean(selection only)】菜单即可。

16. 如何快速生成一个现有工程除了工程名外完全相同的新工程

在新建工程的“new”对话框中选择“custom appwizard”项,输入新工程的名字,单击

【ok】按钮。出现“custom appwizard”项,输入新工程的名字,单击【ok】按钮。出现“custom appwizard-step 1 of 2”对话框,选择“an existing project”项,单击

【next】按钮。出现“custom appwizard-step 2 of 2”对话框,选择现有工程的工程文件名,最后单击【finish】按钮。编译后就生成一个与现有工程相同但可以重新取名的工程appwizard。

现在就可以项用mfc appwizard一样用这个定制的向导。如果不想用了,可以在visual c++ 6.0安装目录下common\msdev98\template目录中删除该wizard对应的.awx和.pdb文件。

17. 如何解决visual c++ 6.0不正确连接的问题

情景:明明改动了一个文件,却要把整个项目全部重新编译链接一次。刚刚链接好,一运行,又提示重新编译链接一次。

这是因为出现了未来文件(修改时间和创建时间比系统时间晚)的缘故。可以这样处理:找到工程文件夹下的debug目录,将创建和修改时间都比系统时间的文件全部删除,然后再从新“rebuild all”一次。

18. 引起lnk2014的常见错误都有哪些

遇到的lnk2014错误主要为:unresolved external symbol “symbol”

如果链接程序不能在所有的库和目标文件内找到所引用的函数、变量或标签,将产生此错误信息。

一般来说,发生错误的原因有两个:一是所引用的函数、变量不存在,拼写不正确或者使用错误;其次可能使用了不同版本的链接库。以下是可能产生lnk2014错误的原因:

<1>由于编码错误导致的lnk2014错误

(1)不相匹配的程序代码或模块定义(.def)文件导致lnk2014。例如,如果在c++源文件了内声明了一变量“var1”,却试图在另一个文件内以变量“var1”访问改变量。

(2)如果使用的内联函数是在.cpp文件内定义的,而不是在头文件内定义将导致lnk2014错误。

(3)调用函数时如果所用的参数类型和头函数声明时的类型不符将会产生lnk2014错误。

(4)试图从基类的构造函数或析构函数中调用虚拟函数时将会导致lnk2014错误。

(5)要注意函数和变量的可公用性,只有全局变量、函数是可公用的。静态函数和静态变量具有相同的使用范围限制。当试图从文件外部方位任何没有在该文件内声明的静态变量时将导致编译错误或lnk2014错误。

<2>由于编译和联机的设置而造成的lnk2014错误

(1)如果编译时使用的是/nod(/noderaultlib)选项,程序所需要的运行库和mfc时将得到又编译器写入目标文件模块,但除非在文件中明确包含这些库名,否则这些库不会被链接进工程文件。这种情况下使用/nod将导致lnk2014错误

(2)如果没有为wwinmaincrtstartup设定程序入口,在使用unicode和mfc时将出现“unresolved external on _winmain@16”的lnk2014错误信息。

(3) 使用/md选项编译时,既然所有的运行库都被保留在动态链接库之内,源文件中对“func”的引用,在目标文件里即对“__imp__func”的引用。如果试图使用静态库libc.lib或libcmt.lib进行链接,将在__imp__func上发生lnk2014错误。如果不使用/md选项编译,在使用msvcxx.lib链接时也会发生lnk2014错误。

(4)使用/ml选项编译时,如用libcmt.lib链接会在_errno上发生lnk2014错误。

(5)当编译调试版的应用程序时,如果采用发行版模态库进行链接也会产生lnk2014错误;同样,使用调试版模态库链接发行版应用程序时也会产生相同的错误。

(6)不同版本的库和编译器的混合使用也能产生问题,因为新版的库里可能包含早先的版本没有的符号和说明。

(7) 在不同的模块中使用内联和非内联的编译选项能够导致lnk2014错误。如果创建c++库时打开了函数内联(/ob1或/ob2),但是在描述该函数的相应头文件里却关闭了函数内联(没有inline关键字),只是将得到错误信息。为避免该问题的发生,应该在相应的头文件中用inline关键字标志为内联函数。

(8)不正确的/subsystem或entry设置也能导致lnk2014错误。

19. 如何调试一个没有源码的exe文件调用的dll

在visual c++ 6.0中,进入“project setting”对话框然后选择debug标签页。通常visual studio默认“executable for debug session”为可执行文件名,但可以将他改成任何你想要的程序。甚至可以指定不同的工作目录以及传递参数到你的程序。这个技术常用来调试dlls、名字空间扩展、com对象和其他从某些exe以及从第三方的exe中调用的plug-in程序。

20. visual c++ 6.0工程中的项目文件都表示什么

.opt:工程关于开发环境的参数文件。如工具条位置等信息。

.aps(appstudio file)资源辅助文件,二进制格式,一般不用去管它。

.clw:classwizard信息文件,实际上是ini文件格式,有兴趣可以研究一下。有时候classwizard出了问题,手工修改clw文件可以解决。如果此文件不存在的话,每次用classwizard的时候回提示是否重建。

.dsp(developstudio project):项目文件,文本格式,不过不熟悉的不要手工修改。 .dsw(developstudio workspace):是工作区文件,其他特点和.dsp差不多。

.plg:是编译信息文件,编译时的error和warning信息文件(实际上是一个html文件),一般用处不大。在单击菜单【tool】->【option】弹出的对话框里面有个选项可以控制这个文件的生成。

.hpj(help project):是生成帮助文件的工程,用microsoft help compiler可以处理。 .mdp(microsoft devstudio project):是旧版本的项目文件,如果要打开此文件的话,会提示你是否转换成新的.dsp格式。

.bsc:是用于浏览项目信息的,如果用source brower的话就必须有这个文件。如果不用这个功能的话,可以在project options里面去掉generate browse info file,这样可以加快编译速度。

.map是执行文件的映象信息记录文件,除非对系统底层,这个文件一般用不着。 .pch(pre-compiled file):是与编译文件,可以加快编译速度,但是文件非常大。

.pdb(program database):记录了程序有关的一些数据和调试信息,在调试的时候可能有用。

.exp:只有在编译dll的时候才会生成,记录了dll文件的一些信息,一般也没有用。 .ncb:无编译浏览文件(no compile browser)。当自动完成功能出问题时可以删除此文件。编译工程后会自动生成。

第五篇:mastercam编程经验分享

mastercam编程经验分享

在写刀路之前,将立体图画好后,要将图形中心移到坐标原点,最高点移到z=0,加缩水率后,方可以加工,铜

公火花位可加工负预留量。

在加工前还要检查工件的装夹方向是否同电脑中的图形方向相同,在模具中的排位是否正确,装夹具是否妨碍加

工,前后模的方向是否相配。还要检查你所用的刀具是否齐全,校表分中的基准等。加工铜公要注意的事项:

火花位的确定,一般幼公(即精公)预留量为0.05~0.15,粗公0.2~0.5,具体火花位的大小可由做模师父定。

铜公有没有加工不到的死角,是否需要拆多一个散公来。

加工铜工的刀路按排一般是:大刀(平刀)开粗-小刀(平刀)清角[$#0]光刀用球刀光曲面。开粗一般教师用平刀不用球刀,大刀后用小刀开粗,然后将外形光到数,接着用大的球刀光曲面,再用小球刀光

曲面不要图省事,为了些小的角位而用小刀去加工大刀过不了的死角可心限定小刀的走刀范围,以免直播太多的

空刀。

铜公,特别是幼公,是精度要求比较高的,公差一般选0.005~0.02,步距0.05~0.3。铜公开粗时要留球刀位的过

刀位,即要将铜公外形开粗深一个刀半径。

d)铜公还要加工分中位,校表基准,火花放电时要校正铜工,一般校三个面(上,下,左,右)加工出的铜工必

须有三个基准面。

e)铜料是比较容易加工的材料,走刀速度,转速都可以快一点,开粗时,留加工余量0.2~0.5,视工件大小而定,

加工余量大,开粗时走刀就可以快,提高效率。加工铜料的有关经验参数:刀具大小

1~2

3~5

6~10

12~20

进给率(feed rate)

50~200

(50~100)

200~500

(50~300)

500~1000

(200~600)

1000~2014

(600~1000)

主轴转速(spindle)

3000

3000~2500

(2400~1200)

2500~2014

(1200~700)

1500~2014

(600~250)

注:括号内为高速钢刀对钢料开粗时的参数,以上走刀速度是指开粗时,要光外形f=300~500,钢料光刀f为

50~200。

前模开粗的问题,

首先将铜公图在前视图或边视图内旋转180o即变成了前模图,当然还要加上枕位,pl面;原身要前模留的地方,

不要用镜身的方法将铜工图变成前模图,有时会错(当铜公图x方向y方向都不对称时)。前模加工时有二个难点

:材料比较硬;前模不可轻易烧焊,错不得。

前模开粗时用刀原则同铜工相似,大刀开粗→小刀工粗→大刀光刀→小刀光刀,但前模应尽量用大刀,不要用太

小的刀,容易弹刀,开粗通常先用刀把()开粗,光刀时也尽量用圆鼻刀,因这种刀够大,有力,有分型面的前模

加工时,通常会碰到一个问题,当光刀时分型面因碰穿机要准娄数,而型腔要留0.2~0.5的加工余量(留出来打

火花)。这是可以将模具型腔表面朝正向补正0.2~0.5,面在写刀路时将加工余量设为0。

前模开粗或光刀时通常要限定走刀范围,要记住你所设的范围是刀具中心的范围,不是刀具边界的范围,不是刀

所加工到的范围,而大一个刀具半径。

前模开粗常用的刀路方法是曲面挖槽,平行式光刀。前模加工时分型面,枕位面一般要加工到准数,而碰穿面可

以留0.1余量,以备配模。

加工后模常碰到的问题:

后模有原身科或镶科二种,后模同前模一样是钢料,材料较硬,应尽量用刀把加工,常用刀路是曲面挖槽外形,

平行铣光刀,选刀的原则是大刀开粗→小刀开粗→大刀光刀→小刀光刀。

后模图通常是铜公图缩小料位加上pl面,枕位,原身留出的东西而成,如果料位比较均匀,可以直接在加工信息

量里留负料位即可,但是pl(分型面),枕位,碰穿面不能缩料位。这时可以先把这些面正向(更多精彩文章请关注好 范文网wwW.hAOWOrd.Com)补正一个料位或者

把科画出来。

原身科常碰到的一个问题是球刀清不到利角,这时可以用平刀走曲面陡斜面加工清角,如镶科,则后模分为藏框

和科芯,加藏科时,要注意多走几遍空刀,不然框会有斜度,上边准数,下边小,很难配模,特别是较深的框, 一定要注意这个问题,光框的刀也要新好,并且选用大一点的刀。科芯如果太高,可以先翻过来加工框位,然后装配进框后,再加工形状,有时有支口,要注意,不要过切用球刀

光形状时一定要保护支口台阶。

为了方便配模式,框尺寸可以比科芯外形尺寸小-0.02/s

科芯光刀时公差和步距可以稍大一点,公差0.01~0.03进给0.2~0.5。

散铜公加工中的问题:

有时整体铜公加工有困难,有加工不到的死角,或者是不好加工,所需刀具太长或太小,就可以考虑分多一个铜

公,有时局部需要清角铜公,这种铜公的加工并不困难,但一定要搞清楚的确良火花时的偏数,校表基准。

薄盘位铜公的加工:

这种铜公加工时很容易变开,加工时要用新刀,刀要小点,进刀也不能太大,加工时可以先将长度a做准,但d留

大点余量(如1.0mm)再二边走,每次深度h=0.2~1,深度进刀不要太多,也不要一周绕着走刀,而要分成二边分别

走。

左、右件和一出二的方向:

有时一套模会出二个零件,对于分左右件的,图形能过

镜射来制作。如果是出二个相同的零件,则图形一定要在xy内平称或旋转,一定不可以镜射,务必小心,不要搞

反方向,

模具的方向:

模胚的四个导栓孔,不是完全对称,有一个是不对称的,所以加工前后模时这末搞清楚,每一块模板上都有基准

,加工完的前后模合起来一定要基准对基准,特别是对原身模胚成形的模具一定要注意。画图时也注意方向,铜

公的方向和正视图(俯视图)的方向一致,科芯,藏科框的方向和铜公一致,前模则相反。曲面上的槽或凸台等一些装饰线条,因为比较窄,所以不好加工。对于凹槽,我们一般将槽避空,即铣深一些,

然后再补一个散公做出沉面,凸台一般只能分开做一个散公,大铜公不做,这样才能保证质量。

模具,产品的配合公差:

一套产品通常有几个及十几个零件,这些零件的主要配合尺寸都是电脑锣加工保证的,选择合理的公差就很重要

,尤其是有些产品设计图没有考虑配合问题。

底,面壳的配合,外形无疑是0对0配合,定位是靠支口保证的,凹支口和凸支口的公差一般0.1mm,单边。

大身上的配件如透明镜,一般配件外形要比大身上的尺寸小单边0.1~0.2.大身上的活动配件,如按钮,配件外形要比大身上的外形比单边小0.1~0.5。大身上的配件表面形状一般要和大身上的表面形状一致,可以从大身表面修剪下来。

出模斜度(拔模角)

朔胶模都要做出模斜度,不然会擦花,如果图纸没有标明,可以同做模师傅商量,出模斜度一般0.5o~3o如果蚀

纹的模具,出模角要做大一点,2o~5o,视蚀纹粗细而定。

下刀问题

很多时候,鳘刀刚铣时,吃刀量都比较大,容易引起断刀,弹刀,这时可以先将下刀位开粗

或者鳘刀抬刀走,或

者昼在料外边下刀,总之要充分考虑这个问题。

抢刀,弹刀,掉刀

当加工量比较大时,刀夹得太长,刀太小时常会发生这种情况。

加工量比较大,特别是浓度进刀较多时,容易发生,如光侧面深度h=50mm直径3/4刀,我们可以分25mm二次加工

,就不容易发生。

刀具夹得太长,刀具装得长短对加工很重要,应尽量装夹短一些,初学者都很容易忽略这个问题,程序纸上一定

要标明刀具的装夹长度。

转角时很容易抢刀,解决的办法是先用小一点的刀分层将角清过,再换大的刀光侧面。

象如图直径8的半圆槽,如直接用r4的刀加工,下刀位置,就很容易抢刀,解决的办法是

(1)用r3走扫描刀路(2

)先用r3开粗,最后用r4的刀清角光刀。

磨小刀

电脑锣要加工的形状各异经常需要磨各种小刀,各种成形刀磨损了,也需磨,要达到以下几占才可以磨出一

把能用的刀1。刀具的四个角要一样高2。a点要比d点高3刀具的前锋(刀面)要比后而高,即有一定后角。

过切检查

过切是mastercam经常会发生的问题,千万要小心。过切可能出现在多曲面开粗,光刀,刀路修剪,外形,挖槽

时,即使胸的参数设定、立体图都正确,也有可能发生,有些是软件本身的失误,最主要的检查方法是将刀路模

似一遍,在顶视图,边视图反复检查,没有检查的刀路不允许上机。外形铣削时,下刀位置选择不当,也会过切

,可以改变下刀位,即可避免。

铣削方向:

电脑锣一般都是顺铣,不象铣床逆铣,原因是电脑锣的刚性比较好,不易让刀,背隙小,铣外形或者内槽都是左

补偿。当加工左右对称的形状时,外形刀路不能镜射,否则镜射过的那边加工效果就不好。程序纸的写法为了和操作机床的人员沟通,程序纸应包括1)程序名2刀具大小及长度3加工刀路方法4加工余量

5开粗或光刀6图档名称

.图形管理

电脑图应妥善分档管理,最好是一个产品建一个目录,一个零件起一个别名字,如铜公图名为a10,后模图可为

a10c,前模图名为a10cav,散铜公图名为a10s1,这样就比较清楚。不同软件间格式转换:

和autocad的沟通,mastcam7以上版本的可以直接读dwg文件,低于7版本可以先在autocad转成dxf格式。其它cam软件如(cimtron,pro/e,ug)等可以先转成iges. step等等格式。

dnc用法:

程序完成后,经过检查,没有问题就可以抄到dnc电脑里实际加工了,抄程序有二种方法1用磁盘抄2通过局域网

传送。然后启动dnc软件,找到要运行的程序,按enter键就行了。坐标系:

有三种,机械坐标系,加工坐标系,临时坐标系三种。机械坐标系,机械零点是机械上一个基准点,每次开电后

,原点归零后就被确定下来,机械零点的位置由机械厂定,不要改变。加工坐标系是用于工件加工的,是机械坐

标系的子坐标系,取机械坐标系中的一个点(一般是工件中心点)作为坐标原点,将这个点的机械坐标值记录下

来,作为加工坐标系列的原点,即可设加工坐标系。临时坐标系:随时以每一个点清零作坐标原点。对应于坐标

值也有三种坐标值:机械坐标值,加工坐标值,临时坐标值(也称相对坐标值)常用过滤值:

常用过滤值0.001~0.02,过滤半径r=0.1~0.5。开粗刀路取大值,光曲面刀路取小值,曲面半径较小取大值,曲

面半径较大取小值。

过滤可有效地减小程序容量,走刀更加畅,但过大则影响加工精度。

word该篇DOC格式编程经验交流范文,共有18392个字。好范文网为全国范文类知名网站,下载本文稍作修改便可使用,即刻完成写稿任务。立即下载:
编程经验交流下载
编程经验交流.doc
下载Word文档到电脑,方便编辑和打印
编辑推荐: 星级推荐 星级推荐 星级推荐 星级推荐 星级推荐
下载该Word文档
好范文在线客服
  • 问题咨询 QQ
  • 投诉建议 QQ
  • 常见帮助 QQ
  • 暂无