第一篇:编程经验
1.当性能遇到问题时,如果能在应用层进行计算和处理,那就把它从数据库层拿出来。排
序和分组就是典型的例子。在应用层做性能提升总是要比在数据库层容易的多。就像对于MySQL,sqlite更容易掌控。
2.关于并行计算,如果能避免就尽量避免。如果无法避免,记住,能力越大,责任越大。
如果有可能,尽量避免直接对线程操作。尽可能在更高的抽象层上操作。例如,在iOS中,GCD,分发和队列操作是你的好朋友。人类的大脑没有被设计成用来分析那些无穷临时状态——这是我的惨痛教训所得。
3.尽可能简化状态,尽可能局部本地化,适用至上。
4.短小可组合的方法是你的好朋友。
5.代码注释是危险的,因为它们很容易更新不及时或给人误导,但这不能成为不写注释的理由。不要注释鸡毛蒜皮的事情,但如果需要,在某些特殊地方,战略性的长篇注释是需要的。你的记忆会背叛你,也许会在明天早上,也许会在一杯咖啡后。
6.如果你认为一个用例场景也许“不会有问题吧”,它也许就是一个月后让你在发布的产品
中遭受惨痛失败的地方。做一个怀疑主义者,测试,验证。
7.有疑问时,和团队中所有相关人交流。
8.做正确的事情——你通常会知道这指的是什么。
9.你的用户并不傻,他们只是没有耐心理解你的捷径。
10.如果一个开发人员没有被安排长期的维护你们开发的系统,对他保持警惕。80%的血、汗、泪水都是在软件发布后的时间里流的——那时你会变成一个厌世者,但也是更聪明的“行家”。
11.任务清单是你的好朋友。
12.主动让你的工作更有乐趣,有时这需要你付出努力。
13.悄无声息的崩溃,我仍然会为此从噩梦中惊醒。监控,日志,警报。清楚各种的假警报
和不可避免的感觉钝化。保持你的系统对故障的敏感和及时警报。
14.复杂是大敌。
第二篇:PLC编程经验详谈
PLC编程经验详谈
(晴天)2009-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封装的纯逻辑代码会使得电路的周期变大,主频降低,不利于为了提高主频而采用的大逻辑切分的方法!
第四篇:ASP+SQLServer2000编程经验积累总结
ASP+SQLServer2000编程经验积累总结
http://www.teniu.cc 更新日期:2007-04-21 22:13 出处:网页教学网 作者: 收藏本文
前几天帮人调试一个ASP+SQL2000+IIS5.1/6.0的网站程序,调试过程中遇到的问题如下:
一、SQLServer登录
原先存在备份数据库,通过附加数据库导入到SQL Server,原网站数据库不能正常登陆。并且已在安全中添加用户角色。赋予管理员权限以及数据库所有者权限。发现角色添加有问题,检查原因,原导入数据库中包含一个用户角色,去掉后再添加即可。
尝试登陆,仍然报错:未与信任的SQL连接。选择属性—〉安全性,修改身份验证为:windows和SQL Server。或修改注册表:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftMSSQLServerMSSQLServerLoginMode的值决定了SQL Server将采取何种身份验证模式。
1、表示使用“Windows 身份验证”模式
2、表示使用混合模式(Windows 身份验证和 SQL Server 身份验证).后正常登陆。
二、IIS5的http 500内部服务器错误
主要错误表现就是asp程序不能浏览但html静态网页不受影响,查询网络属于“IWAM账号在ActiveDirectory、IIS metabase数据库和COM+应用程序三处的密码无法同步”问题,解决方法参考网络尝试(括号内为尝试结果和处理):
手动修改:(我按照步骤但是手动修改并没有成功,郁闷)
1、重新设置IIS的IWAM账号密码。右键单击 我的电脑->管理,打开计算机管理界面打开 本地用户和组->用户 右键单击 启动IIS进程帐号 IWAM_****(注:****一般是计算机名)点击设置密码,设置为一个你想要的密码。
2、同步IIS metabase中IWAM_MYSERVER的密码,在CMD中:c:inetpubadminscripts>adsutil set w3svc/wamuserpass “yourpassword”也可:选择“站点 属性”->目录安全性标签->编辑“匿名访问和验证控制”->在弹出的框中选中匿名访问,单击编辑按钮->用户名浏览,选择IWAM_MACHINE,密码框中输入同一的密码,选中“允许IIS控制密码”->确定。
注意:
在WIN2000中,查看到的密码为星号,若要不为星号,必须要先修改adsutil.vbs文件。
a.到c盘 inetpubadminscripts找到adsutil.vbs(根据装系统时设定的不同,有的路径可能不一样)
b.右键单击,用记事本打开
c.查找 IsSecureProperty = True注意=前后各有一个空格
d.将 IsSecureProperty = True 改为 IsSecureProperty = False 获取 IWAM 帐户密码命令: cscript.exe adsutil.vbs get w3svc/wamuserpass 获取 IUSR 帐户密码命令: cscript.exe adsutil.vbs get w3svc/anonymoususerpass
输入以上命令,按回车可分别查看IWAM和IUSR的密码。
修改密码命令:
修改 IWAM 帐户密码 cscript.exe adsutil.vbs set w3svc/wamuserpass “password” 修改 IUSR 帐户密码 cscript.exe adsutil.vbs set w3svc/anonymoususerpass “password”
password 设置为你想修改的密码,即与第一步中你设置的用户IWAM_****的相同,按回车即可修改完成。
修改密码前请一定停止所有的Internet信息服务,否则后面可能会出错,并且IWAM帐户可能会被锁定。
3、同步COM+应用程序所用的IWAM_MYSERVER密码,在CMD中:
c:inetpubadminscripts>cscript synciwam.vbs –v。不成功。也可:
(1)启动组件服务管理单元: “运行”->“mmc”,启动管理控制台,打开“添加/删除管理单元”对话框,将“组件服务”管理单元添加上。
(2)找到“组件服务”->“计算机”->“我的电脑”->“com+应用程序”->“out-of-process pooled applications”,右击“out-of-process pooled applications”->“属性”。
(3)切换到“out-of-process pooled applications”属性对话框的“标识”选项卡。选择“此用户”,浏览,选择用户名“IWAM_MACHINE”。这些都是缺省的。在下面的“密码”和“确认密码”文本框内输入正确的密码,确定退出。
(4)系统如果提示“应用程序被一个以上的外部产品创建。你确定要被这些产品支持吗?”时确定即可。
(5)如果在iis中将其它一些web的“应用程序保护”设置为“高(独立的)”,那么这个web所使用的com+应用程序的iwam账号密码也需要同步。
但是在进行第三步操作时总是报8004e00f错误。进入组件服务,查看组件服务/计算机/我的电脑/COM+应用程序,结果报错“COM+ 无法与 Microsoft 分布式事务协调程序交谈”,无法查看里面的对象。在事件查看器中msdtc服务没有正常启动。解决方法:运行 msdtc-resetlog 最后解决:“COM+ 无法与 Microsoft 分布式事务协调程序交谈”在安装了Windows组件中的消息队列后,就不会出现这个错误了,同时“消息队列”组件又对服务中的“Distributed Transaction Coordinator”(即msdtc服务)有依存关系,这个服务必须启用,才可以安装消息队列组件!消息队列装好后,COM+应用程序菜单就可以打开了,表示其已正常工作!如果在这个时候再装IIS或者把IIS卸载重装,就正常了!实际上,手工同步密码太过麻烦,成功率不高!
三、数据库中的存储内容在ASP页面不解析
问题表现:网页原来使用正常,但是在使用了一段时间之后很多内容不能正常显示。
问题分析:开始以为是连接池问题,后来发现没什么关系,在页面上察看源码已经将数据库中的内容读了出来,却没有在页面上展现。发现是出现了"\"符号。这个符号在ASP中被认为是转义字符的特殊字符,无法解析,故无法正常显示。
第五篇: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~2000
(600~1000)
主轴转速(SPINDLE)
3000
3000~2500
(2400~1200)
2500~2000
(1200~700)
1500~2000
(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(分型面),枕位,碰穿面不能缩料位。这时可以先把这些面正向补正一个料位或者
把科画出来。
原身科常碰到的一个问题是球刀清不到利角,这时可以用平刀走曲面陡斜面加工清角,如镶科,则后模分为藏框
和科芯,加藏科时,要注意多走几遍空刀,不然框会有斜度,上边准数,下边小,很难配模,特别是较深的框,一定要注意这个问题,光框的刀也要新好,并且选用大一点的刀。科芯如果太高,可以先翻过来加工框位,然后装配进框后,再加工形状,有时有支口,要注意,不要过切用球刀
光形状时一定要保护支口台阶。
为了方便配模式,框尺寸可以比科芯外形尺寸小-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。开粗刀路取大值,光曲面刀路取小值,曲面半径较小取大值,曲
面半径较大取小值。
过滤可有效地减小程序容量,走刀更加畅,但过大则影响加工精度。