都说自己是PLC编程高手,这6个标准达到了吗?
下面我们就请前方专业的技术工程师来给我们介绍一下什么样的PLC程序算是好的程序呢?好的PLC程序中有哪些特点呢?大体有如下几个方面:
1、正确性(调试成本低)
PLC程序首先一定要能正确地工作,满足实际控制工艺要求。这是PLC程序的根本,若这一点做不到,其它一切没有任何意义。
2、可靠性(维护成本低)
不仅要正确,还要可靠。不能三天两头时不时地出问题。
可靠反映着PLC程序的长期稳定性,这也是对PLC程序的基本要求。有的PLC程序,在正常的工作条件下或合法操作时能正确工作,而出现非正常工作条件(如临时停电,又很快再通电)或进行非法操作(如一些按钮不按顺序按,或同时按若干按钮或者连续按多次)后,程序就不能正常工作了。这种程序,就不太可靠,或说不稳定,就是不好的程序。好的PLC程序对非正常工作条件的出现,能予以识别,并能使其与正常条件衔接,可使程序适应于多种情况,好的PLC程序对非法操作能予以拒绝,且不留下“痕迹”。只接受合法操作,即预防性健壮编程。联锁是拒绝非法操作常用的手段,继电电路常用这个方法,PLC及系统集成商也可继承这个方法。
3、可读性(学习成本低)
要求所设计的程序可读性要好,便于理解,便于调试,也便于别人阅读使用你的程序,便于维护;必要时,也可使程序作为标准模板而便于推广。
要使程序可读性好:
1)程序的设计脉络就要尽可能清晰,结构上有层次感;
2)功能层实现模块化,或者使用面向对象的方法进行设计;
3)使用一些标准设计、通用性设计;
4)变量层尽量使用符号名编程;
5)参数紧跟在使用它们之前再设定参数值(即设即用);
6)I/O地址分配要有规律性,便于记忆与理解;
7)内部器件的使用也要讲规律性,相同功能的地址分配要保有一定的不连续“断层裕量”(如x功能地址分配使用到k,那么下一功能的地址分配就不要从k+1开始,而要从k+n开始),以防功能更改;
8)必要时,还要做一些注释工作;可读性在程序设计开始时就要注意。这不容易做到。因为在程序调试的过程中,指令的增减,内部器件的使用变化,可能使原较清晰的程序,变的有些乱。所以在设计时就对调试增减留有一定的余地,然后调试完毕后再做一下整理,这样所设计的程序具有更高的质量。
4、简短性(存储成本低)
使PLC程序尽可能简短,也是应追求的目标。
简短的程序可以节省用户存储区;多数情况下也可节省执行时提高对输入的响应速度,还可提高程序的可读性。程序是否简短,一般可用程序所用的指令条数衡量,用的条数少,程序自然就简短。从大的方面讲,要注意程序结构,提取实现相同功能代码段的共性,使用子程序、中断等减少代码量的方法;用流程控制指令简化程序,减少某时间点的工作量,不需要做的就不做,能尽量少做的就少做;从小的方面讲还要用多处理能力的强指令取代单处理能力的弱指令(使用大级别的数据代替小级别的数据或者数据结构,如用字节、字、双字操作数代替位操作数的指令,故障字、状态字、控制字、通讯字等;使用间接寻址代替连续地址存储单元的相同操作;使用块传送指令代替多条字节、字、双字传送指令,这些可以总结为“批处理”类操作) 以及注意指令的安排顺序等,要注意兼顾程序的可读性。
5、省时性(运行成本低)
程序简短有可能会节省程序运行时间,但简短与省时并不完全是一回事。
因为运行程序时间虽与程序所拥有指令条数有关,而且还与所使用的是什么指令有关,也就是与程序算法相关。PLC算法不同,执行的时间也不同。而且,有的指令,在逻辑条件ON时执行与在OFF时执行其时间也不同。另外,由于使用了流程控制指令,在程序中,不是所有指令都要执行等。所以,运行程序的时间计算是较复杂的。但要求其平均时间少,最大时间也不太长是必要的。这样可提高北京天拓四方科技有限公司是西门子工业自动化和驱动集团核心分销商(一级代理商)及系统集成商PLC的响应速度。省时的关键是用好流程控制指令。按情况确定一些必须执行的指令,作必备部分,其余的可依程序进行,有选择地执行,或作些分时工作的设计,避免最大时间太长等。
6、易改性(变动成本低)
要使程序易改,也就是要便于修改。
PLC的特点之一就是方便,可灵活地适用于各种情况。其办法就是靠修改或重新设计程序。重新设计程序用于改变PLC工艺要求的情况,不仅程序重编,而且I/O也要重新分配。多数情况下不需要重编程序,做一些修改就可以了。这就要求程序具有易改性,便于修改。易改也就是弹性,要求只要作很少的改动,即可达到改变参数或更改动作的目的。1)参数设定尽量采用间接赋值的方法,常量参数值尽量使用符号名,做到见名知意;2)控制尽量使用中间存储器(如M、W)作为媒介、中间层,隔离I/O在逻辑上的直接耦合,便于更改逻辑;3)尽量实现功能插件化模块块,使用户可以“自由配置”,以实现即需即加、即加即用。在设计PLC程序的过程中,对于上述要求要同时兼顾和平衡,不能顾此失彼,得不偿失。
关于PLC编程,老工程师的12点建议:
1、PLC和上位机(或触摸屏)组成监控系统时,在画面上很多时候需要有“手动”、“自动”等控制模式(一般都是多个只能一个时)。在程序里面可以用“MOV”指令。如:当选择“手动”就将常数1MOV到一个寄存器VB10里面,当选择“自动”就将2MOV到同一寄存器VB10。只要判断寄存器的数据是多少,就知道系统是那种控制方式。这样的思路好处是容易理解,不需要互锁之类的麻烦程序。
2、程序有模拟量控制时,如果读取的模拟量基本上没误差,可以采取时间滤波的方式,延时一段时间。如果读取的数据误差很大,就需要采取其它的滤波方式,如算平均值等。可以查阅相关的资料。
3、在程序调试过程中(特别是设备改造时,你的程序是加入到原来设备的程序中时),当程序语句中出现条件满足,而输出线圈不接通时,可以检查你的这段程序是否是在这样的语句之间,如JUMPgoto等语句。还有一种可能就是在中断程序之后,条件满足而没输出不接通,一般都是这段的程序不被扫描。
4、在顺序控制程序时,即一个动作完成后,进入到下一个动作,等类似的顺序控制,采用+10+10控制模式,本人觉得很方便。其思路是:预置一个寄存器,在初始化时值为0,当系统启动后,对它+10,此时寄存器为10,寄存器等于10时可以做第一个动作;第一个动作完成后,再对寄存器+10,此时寄存器等于20,可以做第二个动作,第二个动作完成后又+10,此时寄存器等于30,这样只要判断寄存器里面数据为多少,就知道要完成那个动作。当需要跳跃动作时,可以不再+10,可以加+20+30....,看实际的需要而定。为什么加10而不是加1,因为加10之后,如果插入一段,只要在这10个空余的地方随便选择一个位置就可以了。
5、在设计程序的时候,当出现工艺上的故障(非控制系统控制),最好将故障现象保持,并有灯光声音报警。直到操作工复位,以让其知道系统出现了故障。不然停机了,别人还认为你的程序出问题了,一般在设计一个新系统时是要注意到这些。
6、对于经常调用的子程序,可以做成子模块,频繁调用。
7、由于生产机械在工作循环中的各工步运动在执行时需要一定的时间,且这些时间都有一定的限度,因此可以以这些时间为参考,在要检测的工步动作开始的同时,起动一个定时器,定时器的时间设定值比正常情况下该动作要持续的时间长20%~30%,而定时器的输出信号可以用于报警或自动停机装置。当生产机械某工步动作的时间超过规定时间,达到对应的定时器预置时间,还未转入下一工步动作时定时器发出故障信号,该信号停止正常工作循环程序,起动报警或停机程序,这就是我们常说的超节拍保护。
8、一些安全用检测开关(如急停按钮、安全光幕、极限开关等)使用常闭(NC)输入。
9、为安全、节能考虑,尽量将输出设计成需要动作时才动作,一旦到位就停止输出,而不要设计成平时一直输出,需要停止时才让输出断开。
10、执行元件的动作原则应当是宁可不动,也不要乱动!
11、单台设备控制:单台设备必须有软手操/自动切换以及软手操时可以启/停功能,由自动切换到软手操时,设备不能停机;由软手操切换到自动时,设备启/停取决于自动程序。
12、单台设备(泵、风机及其它大型设备)运行满24小时必须进行轮换,且必须有运行时间累计,如果由上位机设定启/停顺序除外,操作人员自行设定。
中文PLC如何进行启动、急停程序设置
PLC到了手上,还不会编程的宝宝们,不要着急,PLC采用电脑中文指令编程,基于流程的编程方式,很容易入手的。用心学好编程方法,你就能玩转PLC啦,编程神马的都是浮云
完整的控制动作,都是有头有尾的,有启动设置,有停止设置 ,也有紧急处理的急停设置。对于一个简单的控制动作,我们用到启动和急停的话,可以全部在时序逻辑中实现。
【控制要求】
有两条流水灯动作,用一个总启动开关X0控制:1号动作是a、b、c、d灯;2号动作是e、f、g、h灯。
按下总开关(带锁开关,按下键信号一直保持),1号动作开始动作:a、b灯同时点亮,延时2s,然后a灯熄灭,延时1s,c灯点亮,延时2s,接着是a,d灯点亮,并延时1s,然后a、b、c、d灯按顺序依次熄灭,每个灯熄灭都会延时1s。在1号动作的c灯点亮的同时2号动作开始动作:e灯点亮,延时1s,接着是f、g、h灯同时点亮,并延时2s,再按着e、f、g、h的顺序依次熄灭且每次熄灭保持1s。启动信号只有一次信号,等所有动作运行完成一次之后,程序自动跳回到第一个动作,又开始循环运行,共计数10次,10次后程序动作停止。
动作停止,就是当启动信号断开时,程序会运行完当前的动作,回到初始条件时停止运行,等待启动信号。
设置急停键,按下急停开关,使动作复位,所有输出全部断开。
【动作分析】
按下总开关,为一个等待输入的指令信号,总开关就是一个启动信号,也就是整个动作中的启动设置。动作分为两条线路,我们将1号动作作为主路线,2号线作为分支线。“在1号动作的c灯点亮的同时2号动作开始动作”,需要注意的是从c灯点亮开始,2号动作是与1号动作同时运行,这里就需要借助PLC的辅助标志将两条动作的动作连接起来。
设置的急停按键,急停有信号时,先要控制所有在运行的时序环为停止状态,再触发程序中用到辅助标志和输出端;控制每个用到的时序环跳回到第0帧,等待急停信号断开后,再是每个环恢复到运行状态。
【控制流程图】
按照动作分析,每一个动作就是一个指令,每个指令用流程图的方式连接起来。
【修改别名】
在软件别名处,对动作需要用到的端口进行别名修改:
输入端别名修改:X0:按键开关。
输出端别名修改:Y0:a灯、Y1:b灯、Y2:c灯、Y3:d灯、Y4:e灯、Y5:f灯、Y6:g灯、Y7:h灯。
辅助标志别名修改:M0:2号动作标志。
【程序编辑】
两条线分别用两个环编辑,在时序环0中编辑1号动作,作为主程序动作;在时序环1中编辑2号动作,作为分支线,在时序环2中编辑急停程序。
时序环0 :根据流程图按顺序动作编辑1号动作,当程序运行到触发c灯(Y2)点亮时,添加触发辅助指令,触发M0通,这时2号动作开始运行,1号动作继续运行。
1号动作程序全部完成之后,要等待2号动作程序完成,然后计数一次进入循环,所以在添加等待辅助M0断后,再添加一条计数跳转指令,计数后跳回到本环的第0帧,再次循环运行(计数10次之后,程序会自动停止运行)。
时序环1 :根据流程图编辑2号动作程序,2号动作开始的启动标志是M0通,在第0帧添加指令“等待辅助”,等待M0通,2号动作开始运行,运行完成,再添加“触发辅助”指令,触发M0断,断开2号动作的启动信号。
时序环2 :设置急停程序。急停开关就是添加一个等待输入,然后用帧环控制指令控制时序环0和时序环1为停止状态(不能控制时序环2为停止状态,也就是急停的程序所在环,如果停止了急停程序环,急停动作就不会奏效。);再触发用到的所有的辅助标志和输出端口为断状态;再用帧环跳转指令将用到的时序环0和时序环1的动作跳转到时序环0的第0帧和时序环1的第0帧(起到复位的作用);等待急停开关断开之后,将时序环0和时序环1恢复成运行状态(这样再次给入启动信号后,程序会再次运行)。
【程序调试】
当所有的程序编辑完成之后,我们就可以将程序通过串口下发至PLC中,程序调试有几种方式。
1、可以在编程软件上进行程序调试,在菜单栏中的调试框中,打开“在线调试环”,选择下发程序的端口,即可在线调试。
2、可在触摸屏软件上实现在线模拟,进行程序调试。
相关问答
PLC程序启动前需要确认什么?
这个是因人而异的,不过基本上都会有这几个步骤:第一、要对你所要控制的对象控制的工作控制原理要熟悉;对整个工况要求要心中有数第二、对PLC组态项目要了如...
PLC程序中怎么实现启动?
点动和连续的混合控制是异步电机控制的典型控制线路,随便找本电力拖动的教材就可以找到。因为你提供的信息太少,我假定你是将继电器电路图中元件直接用PLC软元...
plc自动启动需要停止程序吗?
LDSM0.5EUTODRVB0//读取时间LDB>=VB0,16#09//读取的时间是BCD码,这样用省去格式转换AB>=VB1,16#06AB>=VB...
PLC编程中的起保停?
“起保停”是PLC程序中常用的控制方法,它是指在自动化生产过程中,通过编程控制PLC,实现对设备的开启、运行和关闭的控制。起保停的实现方式是将设备的各个状...
plc怎么在电脑启动?
首先需要的就是编程软件,无论你是哪一种品牌的PLC,都会有对应的编程软件来提供编程,我们以三菱PLC为例,目前我所使用的是两款GXdeveloper和GXworks2,常用...
西门子200plc如何逻辑程序式启动?
要进行逻辑程序是启动是要先开启西门子app然后点击启动装置即可要进行逻辑程序是启动是要先开启西门子app然后点击启动装置即可
plc顺序功能图五个基本要素?
顺序功能指令是编制顺序控制程序的指令。顺序功能图主要由:步、有向连线、转换、转换条件和动作(或命令)组成。1、步顺序控制设计法将系统的一个工作周期划...
plc编程知识点?
1、低压电器是指工作电压在直流1500V或交流1200V以下的各种电器。2、触器按其主触头通过电流的种类,可分为直流接触器和交流接触器。3、继电接触器控...
PLC编程入门教学?
步骤/方式2星--三角起动主线路图设计出来以后,就可以把实物接触器线路接好,等待备用。步骤/方式3星--三角起动PLC接线图设计,把I/O点标号做好,以免接线的...
plc编程入门基础资料?
步骤/方式二星--三角起动主线路图设计出来以后,就可以把实物接触器线路接好,等待备用。步骤/方式三星--三角起动PLC接线图设计,把I/O点标号做好,以免接线...