PLC程序开发中的结构化编程_第1页
PLC程序开发中的结构化编程_第2页
PLC程序开发中的结构化编程_第3页
PLC程序开发中的结构化编程_第4页
PLC程序开发中的结构化编程_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PLC程序开发中的结构化编程-杂谈本文描述了软件工程中的结构化思想在PLC编程中的一种运用方法,为自控项目中的PLC编程提供了一种方法论。通过分层次的编程来构成PLC程序,采用这中方法可以实现多人协作,为大型的控制程序进行共同工作,编写出风格一致,稳健可靠的程序,即使是小单机,使用这种编程思路的方式也可以为多个人维护一个程序,保持延续性!根据与多名自动化行业内工作多年的工控人交流,将编程的思路简单谈一下:一、程序结构设计的模块化思路;自动化控制的应用在汽车行业,电梯行业,门行业,自动上下料,自动装配,自动检测,自动包装行业应用都很成熟,不管是大的多个工位的项目工程还是小的单机项目,归根其控制思路是大致相同的;现在就一个实例解释说明,可以简单的理解为一个项目工程的单个工站或者单机的整个流程;但是不管是复杂的功能组成还是单个工位,都是有具体的流程,设计一个项目,关键之一就是工艺流程的分解,其二就是程序框架的搭建;针对该模块的划分有几点说明:1、 工位的划分划分标准:有明显的功能区分或者区域的跨界,则可分为一个工位;划分工位一般有机械工程师界定,这个有助于机械工程师在项目初期对设备工艺的了解,防止什么东西都混为一谈,设计毫无章法;工位的划分对于程序来说就是模块的划分,将一个复杂的动作机构,分成若干个单独的,就类似做项目分解时候的,一级任务,二级任务;对于没有明显功能区分的则要强制按照人为的界定进行,之后对电气采用信号对接的形式划分;这种情况常见于一个单机设备对另一个单机设备的信号交互情况;2、 程序块功能的定义,主要分为手动运行,手动维护,自动运行,自动停止,报警显示,通讯处理,选型,(如果并入工厂的MES系统,则在报警显示,产量,报警时长,设备使用效率等信息都要求的,对常规需求的选型,易耗品,原料投入,成品输出等都会有要求;这也是一个趋势;很多生产厂家都会有需求,但是往往又不愿意上MES系统,这就给PLC增加了很多工作量,想要PLC变成简易的MES系统;);对于手动模块,自动模块按照工位的形式进行单个划分,这样写起来是完整的,让别人读起来也是舒服的,不然会显得很零碎;如果几个工位动作顺序完成后,会输出一个标志性的信号,这个逻辑要写在单独的模块上;说着说着就跑题了,主要就是讲的是程序的功能模块的定义;3、 通讯对象的数据交互;目前一个设备自动化都是都是一个集成的,不是独立的;举例说明一个检测设备可能需要使用到相机CCD,可能是位置检测传感器,可能是激光切割,可能是打印机等这些设备都是标准的设备,有定义好的通讯格式,什么信号时触发,什么信号时结束,什么信号是检测OK信号等,按照说明书都可以很好的使用;遇到报警都可以直接查说明书得知;但是对于通讯的对象是另外一个机器时候,通讯的格式定义就不能这么简单,尽量要,必要采用“一收一发”的形式,亦或采取触发次数与接收次数对比的形式,确保你告知别人的是你想要告诉别人的;别人知道的是你想要告诉的;再闲言几句,这个文章也就是一个经验分享,谈不上正规的文章,格式之类的就不讲太多;之所以将通讯单独拿出来放在这里,也是想说通讯数据的重要性;4、 做项目设计的步骤这里就不赘述,其中电气原理图纸和电气流程图;下面单单就流程图进行着重强调;下图就是一个项目的流程图,

自动运行流程逻辑判断流程通讯某华客户的条码机手动模块如果工位多,可以分单分为多个独立模块、***自动流程主流程包含IO映射,各个工位动作流程,报警等;手动操作报警及显示IO映射自动停机流程选型,节拍模块反料检测流程手动调试探针1测试流程通讯驱动板卡(预 1V1D/JD SOL板数据 自动运行流程逻辑判断流程通讯某华客户的条码机手动模块如果工位多,可以分单分为多个独立模块、***自动流程主流程包含IO映射,各个工位动作流程,报警等;手动操作报警及显示IO映射自动停机流程选型,节拍模块反料检测流程手动调试探针1测试流程通讯驱动板卡(预 1V1D/JD SOL板数据 TTD/ID 相机板卡通讯 TTD/JD 入料自动流程排料1流程堵料反吹流程植入流程CCD排出流程下CCD检测输入点位输出点位初始化赋值初始化赋值LED灯的显示二、程序编辑的模块化思路对于电气控制来说,无外乎电机,电磁阀,机器人,激光器,位置传感器,磁开,接近/光电,对于其控制的变量掌握就逐渐清晰,譬如按钮开关,他不单单是一个输入信号,还有对应的一个灯信号,还有一个滤波型号(防止误动作);接下来就编程过程中一些规范性或者说形成自己风格的思路想法说一下;程序编辑的模块化思想,并不是要弱化对设备工艺流程的理解;对工艺流程理解的深刻,可以弥补机械设计的不足;举个例子(在一个狭小的空间内,机械的安全限位没有办法考虑周全,这个时候需要电气将程序的逻辑性严谨,且合理。)1、 程序编辑的规范性简单的说就是该写在那里就写在那里;手动部分的动作就写在手动模块里;切不可因为手动的这个变量恰好与自动的变量有关系,就直接写在了里面,或者报警自接写在了电磁阀动作的后面,一个动作的结束后面直接写报警;这样都是不可取的;这样写可能程序能正常运行,但是整体上看起来会很乱,可读性不强,给后来维护你程序的人带来麻烦;当然这个习惯也是渐渐养成的,得先有这个意识;这样写程序就会很清爽;这部分内容的事例后续的文章里我会专门做一个说明,本文章旨在说明结构化编程的一个思想;下面我简单介绍一下自动流程步的写法;E1EP24D阻曲缸忡出'(3.以方ft电机冋J*程佛段20:5TEP2aD阻旳I伸出W 翟回金pm•和師小车是奇V.FT禅去取托S'nnu^joria. E1EP24D阻曲缸忡出'(3.以方ft电机冋J*程佛段20:5TEP2aD阻旳I伸出W 翟回金pm•和師小车是奇V.FT禅去取托S'nnu^joria. xuii.wjofid.fffc12Swii-^_ 铀115mu«程疼恳2: S-=1K上轩电痕缔.鹹上斡知程疼段3:厂=2电机运行至耒一层.托-判断是舌小牟层數是否為程疼段4::“阪电机在莊一层的下芳位蛊.IS曲弓杠结回費亠程序恳5::TIH30电机住某一层的'T方僅蛊•-W.YVH工年位…程序恳6::耐鬧世ifi-twi於堆眩-以赴轩电砒移•程序恳1'.-T1PI55垃询出到位.阻肖气拉粹出.电机运行.程序耽:5HF16O轴一牛丹1m缩咽眩.以铤楠塑岂DV11.YV】聲回:葩恳9:SHF170汽盘缩巫险離盘拉回・葩恳1。:STEP-90钩atf盛细阴]&后 .之后W3艇以琵电机上務程J?得11;STEP!90电机运行至机器旳®紳遗:程序胃12:&1EP200电机在机芒人限訂恃畫.fl曲就箱可以肛糾等待机丹人堂空斛信号3*曲股13;S1EP2W电机珂搁第一层.関取鈴.进行議啟謝催:SjiS18:E1EP曲D计輕左弓欣叵必酣出弓缸如1.沏邈回EJ5B19:ETEP270电札1琲盘泣盍下方啊憐回MVAHh程席段IE:S1EP22Q在嘶竝五悴出弓缸丹心血亠将托蛊送回曲段1£17:S1EP2GD看情况是舌加延^电驱行對催下方站.1H1<hQ-FTLT1H1<hQ-FTLT,gMOVE1h■■:DUTI上料机程序监控页面嚥引I当前歩骤流程监控手極行・目施行培齐中读码结黑自戒坪诵运行斶停HEIDEF«H1JILMWRSTINHCrZiBLKDASCE-eFfiHuaiMPttsrufflrMcc上料机程序监控页面嚥引I当前歩骤流程监控手極行・目施行培齐中读码结黑自戒坪诵运行斶停HEIDEF«H1JILMWRSTINHCrZiBLKDASCE-eFfiHuaiMPttsrufflrMccrrmrr11JuuSTBPJO:—结睪sm伟稀盯伸帥!STEP©;STEFW20:审揪ES晌5STEP5D:-!-****常用PLC的编程软件的分析变量定义:目前所知欧系或者美系PLC的Siemens和AB,都支持数据块,自定义结构体,数组等;三菱系列Q系列也支持,欧姆龙对于NX系列以上都支持,编程语言1:对于国产的台达,汇川等编程软件他们都紧跟三菱系列的步伐,兼容了欧系,日系的软件特此,对于SFC这个顺序编程工具,其实大多软件都支持,Siemens里叫GRAPH,三菱,AB,汇川,台达等都叫SFC;编程语言2:都支持ST(西门子称呼SCL),其实都是一种类似C的语言;也是渐渐所有的编程软件都归于统一的电工协议;IEC61131-3(基恩士之前程序是脚本);另外对于行业内使用的CodeSys编程工具和VsCode编程工具是一种转移编程软件的一种方式,就是将程序可以在平台上编辑好,可以直接复制到对应的编程软件上的;使相似性的程序可以短时间内编辑完成;也是一种进步,但是最终调试设备程序时候,可读性有些差;编程语言3:支持功能块的建立;这个好处是方便编写多个同样使用方法的;譬如电机,电磁阀,同一种通讯方式(RS232,TCP/IP等)下面详细讲一下程序变量的规划和编程思路,对于设备的流程图当然是首位的,这里就不做赘述;2、 程序变量的规划这个也是一个思路的转变,就是类似于C语言的思路,编写程序前,先把所有的变量定义清晰;当然不会让工程师从第一个定义到最后一个;这个也是有方式方法的;这一点就可以按照常用编程软件上常用的什么全局变量和局部变量;再按照工位的分类进行编辑;目前大多软件支持结构体数据类型,三菱L,Q系列,欧姆龙NX系列及以上,西门子S7-1200,S7-1500,AB型号的Compactlogix1769-L31都支持;对于基恩士目前KV-8000刚刚支持;3、 编程语言的选择一个稳定运行,可读性很高的程序,当然不能局限于一个程序语言的;目前常用的有梯形图,SCL语言,FBD(功能块图)主要有这几种编程;详细说明一下,1、 对于IO映射,速度计算,选型等重复,使用梯形图编辑效率太低,就需要使用ST语言编辑;2、 对于工位的自动运行等程序需要采用便于后期维

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论