MicroworkConfidential2008苏州著微PLC控制系统开发流程及规范苏州著微电子科技有限公司2013-04-20MicroworkConfidential2008苏州著微目录项目开发流程客户需求采集需求分析工作流定义模块化设计PLC程序书写规范X,Y点的基本规则M,L点的基本规则D寄存器使用基本规则正常及异常工作流设计规则报警设计MicroworkConfidential2008苏州著微项目开发流程-概述读书破万卷,下笔如有神破万卷:善于学习和吸收别人的精华,在万卷的对比和参照中,找出各种之间不同的差异,并分析差异产生的原因,以及原因背后的参差不齐的智商。其关键在于绞尽脑汁之后的破中有立。如有神:你想做什么样的文章,怎么开始结束、起承转合,怎么遣词造句、修饰润色,大套路烂熟于胸,小细节信手拈来,至高境界乃无需多费脑筋。PLC开发流程有相通之处:流程设计需发散思维,费心费力,程序书写则要循规蹈矩,无需动脑。MicroworkConfidential2008苏州著微客户需求采集客户的需求是零碎的,断续的,不全面的;客户需求:取决于客户的目的,客户的目的是简单的,往往一句话就可以说完;客户目的客户需求时间维度:工作流程单模块单行工作流,并行、交错或嵌套的工作流;空间维度:多模块并行、交错、嵌套或非相关工作流;性能参数的采集:单点采集,多点并行相关采集;限制条件和超限报警:时间空间限制,性能参数超限;以上拼接成设备雏形+成本控制+其他因素设备需求全貌。MicroworkConfidential2008苏州著微需求分析用Excel做《XXX设计记录》至少包含Sheet如下:工作流设计:描述设备实现的整个过程硬件架构及接口设计:电路原理图中难以表现的架构性的概念,可以罗列于此,简单设备可以直接表现在硬件列表;硬件列表:过程中所涉及的硬件,品牌参数及数量;PLC点位设计:硬件和PLC对接的点位(X,Y),工作流控制需要用到的寄存器(M,D,T,L,S…);数据存贮配方,涉及工控软件的,还要有“数据库结构”.关键性能参数:例如电流电压的RS485通讯读取、校正算法;设计Log:每天的问题流水账;MicroworkConfidential2008苏州著微工作流定义包括序号,工作步骤等如上;工作步骤:如果每个步骤循环中还有小步骤循环,需要详细定义;正常工作循环,异常循环;数据对象:定义到D寄存器,M寄存器;输入/输出点位:X,Y点;涉及硬件:以及硬件的扩展接口;以上文档亦可改进适用于机械/软件设计师的设计文档;其他Sheet都是基于该表格衍生出来的,不赘述。MicroworkConfidential2008苏州著微模块化设计大的系统需要切成小块实现;降低单体难度,降低对设计师要求;并行制造调试,提高效率;切分原则:按机械空间分布切分;按照工作流相关度切分;模块之间线缆沟通和相互约束越少越好;单个模块方便维护,可替换;多个模块间流程重组容易;MicroworkConfidential2008苏州著微目录项目开发流程客户需求采集需求分析工作流定义模块化设计PLC程序书写规范X,Y点的基本规则D寄存器使用基本规则PLC工作流设计规则报警设计MicroworkConfidential2008苏州著微X点的基本规则X点在程序中最多出现4次;例如X0为常开光电感应器;X0有效:LDX0OUTM0X0无效:LDIX0OUTM1X0防抖动有效:LDX0TMRT0K1X0防抖动无效:LDIX0TMRT1K1其他地方调用时,调用M0,M1或T0,T1即可;多个X点可以形成常用的组合条件;运动控制中如果以X点作为原点或INP,Error,为保证实时性,请勿用M代换;MicroworkConfidential2008苏州著微Y点的基本规则Y点在程序中只出现一次;而且非常简单:例如,内部以M10作为Y0点的替代;LDM10OUTY0;Y点的输出一定是OUT,线圈方式输出,不采用SET,RST;M10的输出一定是OUT,不采用SET,RST;运动控制中输出脉冲的Y,不可以代换;其他有实时性要求的程序中,谨慎代换;MicroworkConfidential2008苏州著微D寄存器使用基本规则D寄存器有各种用途:存贮变量:赋值计算,自动增减计数等;存贮计算结果:注意结果是Word或DW;用作多状态标识Flag:多个状态中只能同时有一种状态;例如等于1就不能等于2;注意事项:DW或float运算中,用到多个D,不要拦腰截断;有些指令会占用较多的连续的D寄存器;MOVD0K1操作占用5条指令的资源;MicroworkConfidential2008苏州著微PLC工作流设计规则以Y点作为索引,以工作流作为主线;每个设备都可以分成不同的部件;每个部件都有各自的工作循环,其中可能并行,交叉或顺序执行;大的工作循环内嵌套有小的工作循环;每个工作小循环有不同的时间阶段或状态(Ds);每个阶段,都会对不同的Y点提出动作请求(Mq);每个Y点在不同的阶段(Ds)都对应一个动作允许(My)同一个Y点,动作请求都是相同的Mq;同一个Y点,如果阶段不同,可能动作允许My的条件是不相同的;MicroworkConfidential2008苏州著微PLC工作流设计规则以Y点作为索引,以工作流作为主线;DS1My1My_LastDS2My2DS3My3MqMy_LastMx(Y点替代)MxYxMy_Last[RSTMq]MicroworkConfidential2008苏州著微PLC工作流设计规则Ds阶段的划分:根据工作流小循环的动作分段;一般采用D寄存器=1,2,3,4…进行阶段区分;切分的依据为X点代理的上升沿或下降沿;My:动作允许的定义:所有X点代理(M,T)包括Ds组合成的阶段条件组合起来,形成Y点动作的允许;条件包括两种:动作的约束条件:比如原点过位行程开关,超时超速报警等;动作的终止条件:比如运行到某个光电处停止;Mq:动作请求的产生:通常进入某个阶段的同时,产生对某个Y动作的请求;或是由人工操作人机界面或按钮触发的动作请求;以上均可以按照工作流的方式进行编写;以上Ds为SET模式设置值;根据工作流需求变更其数值;Mq以SET,RST模式操作,提出请求者SETMq,Mq被执行后进行复位,一般在My_Last下降沿进行复位;这个地方有一个问题:如果某个条件不满足,手动了一下满足了,会产生突然的动作,可能会卡住人手造成伤害;所以每个动作请求应该在合理的时间之内结束;--报警设计;手动模式:模式和自动模式之间的切换;Dm-Dauto,或Da-Dm,都要进行复位和检查;MicroworkConfidential2008苏州著微PLC工作流设计规则工作阶段划分:首先是工作模式的划分:自动模式,手动模式;手动模式下:运行的几个阶段,相对较简单;手动模式下的运行约束要到位;自动模式下:要注意每个部件之间的并行或交叉;进入和退出某个运行阶段,需要启动或复位一些Y点动作;---这个有待确认合理的程序逻辑;MicroworkConfidential2008苏州著微报警设计报警:程序设计以Y点动作为索引,以X点作为前提内容,挨个进行编写;报警部分可以和正常工作流写在一起,也可以分开;看方便程序而定;每个X,每个Y都要做报警的确认:确认每个X失灵的状态下,都有警报,每个Y动作超出正常执行范围后都有报警;报警需要和工作流的阶段结合起来;复位阶段也是每个机械部件工作流的必须且重要组成部分;MicroworkConfidential2008苏州著微谢谢见微知著苏州著微