怎么做才能编写出合格的PLC程序?技术高手告诉你这九点
科学的PLC编程步骤其实很简单,但往往大多数工程师就是认为简单而忽略很多细节。细节的忽略,必然会在以后出现问题。想避免日后的问题,只有好好的遵守规则,没有规矩不成方圆,plc编程一样有其自身的规矩。
第一步:阅读产品说明书
第一步看起来再简单不过了,但很多工程师都做不到。认为这一步是浪费时间,甚至只从供货方培训来了解设备。
仔细阅读说明书是编程的第一步,首先要阅读安全守则,知道哪些执行机构可能会对人身造成伤害,哪些机构间最容易发生撞击,当发生危险时如何解决,这些最致命的问题都在安全守则中,为什么不去看呢?
此外,关于设备每个元件的特性,使用方法,调试方法也在说明书中,不去阅读,即使程序正确,如果元件没有调试好,设备一样不能工作。再有,所有的电路图、气动液压回路图、装配图也在说明书中,不去阅读它怎么知道没种元件可以做何种改造呢。
第二步:根据说明书,检查I/O
检查I/O,俗称“打点”。检查I/O的方法很多,但是一定要根据说明书提供的地址依次进行检查,在绝对安全的情况下来检查。
在检查输入点时,一般输入信号无非是各种传感器,如电容、电感、光电、压阻、超声波、磁感式和行程开关等传感器。检查这些元件比较简单,根据元件说明将工件放在工位上,或是移动执行机构检查传感器是否有信号即可。当然,不同的设备检测的方式可能不同,这要看具体情况而定了。
但是在检查输出信号时就要格外小心了。如果是电驱动产品,必须在安全情况下,尤其是保证设备不会发生撞击前提下,让执行机构的驱动器得电,检查执行机构是否能够运动。如果是液压或气动执行机构,同样在安全情况下手动使换向阀得电,从而控制执行机构。在检查输出信号时,不论执行机构的驱动方式是什么,一定要根据元件说明书,首先要保证设备和人身安全,要注意并不是所有设备的执行机构都可以通电测试的,所以有时个别的输出信号可能无法手动测试。
无论是输入还是输出装置,当传感器有信号或执行机构的驱动装置得电后,必须同时检查PLC上的I/O模块指示灯是否也点亮。很多设备中,输入输出信号是通过接线端子与PLC连接,有时接线端子的指示灯有信号 ,但不能保证由于连接导线内部断路,而PLC上相应的地址没有信号接通。这一点要特别注意。
在测量输入输出信号后,要同时将测量的地址记录下来,保证信号地址和说明书中一致。如有不同,再次测量设备地址,多次测量仍然不一致,先联系设备厂家,因为此时不能保证厂家提供的地址没有错误。
第三步:打开编程软件,进行硬件配置,并将I/O地址写在符号表中
不同的PLC使用不同的编程软件。但是对于任何一种软件来说,编程前的第一步就是进行硬件组态,根据实际PLC的类型建立硬件配置及相应的通讯配置。硬件组态完成后,将之前在纸上记录下来的I/O地址写在软件的符号表中。由于软件不同,对于符号表的定义可能不同,但一般的软件都有该功能,这一步是至关重要的。在编写符号表时,不仅要把设备输入输出的绝对地址写正确,最好再给每个地址命名并添加注释,这对后面的编程会非常方便。不需要在编程时每次都查询绝对地址,只要填写命名好的名称即可。当然,这也取决于软件是否具备此功能。
第四步:写出程序流程图
在编程之前,一定要在草稿上写出程序的流程图。一个完整的程序,应该包括主程序、停止程序、急停程序、复位程序等部分,如果软件允许,应该将各个程序按“块”的形式编写,即一个程序是一个块,最终将每个块按需求来调用即可。
PLC最擅长的就是处理顺序控制,在顺序控制中主流程是核心,一定要确保制定好的流程是正确的,要在草稿上仔细检查。如果主流程存在问题,当程序被PLC执行后,很可能发生撞击,损坏设备或对人身造成危险。
第五步:在软件中编写程序
确保主流程没有问题后,便可以在软件中编写程序了。此外,还要注意停止、急停和复位程序的正确性,尤其是停止和急停程序,这是关系到人身安全和设备安全的最重要的程序,万万不可小视。一定要保证无论在任何情况下,只要执行停止或急停程序,设备绝对不会对人身造成伤害。
第六步:调试程序
在调试程序这一步中,可以分成两个方面。
1.如果条件允许,或是你的逻辑能力超强,可以先用软件的仿真功能做测试,但是很多繁琐的程序很难用软件仿真看出程序是否正确。
2.将程序下传到PLC中进行在线的调试。如果设备不动或运行中出现异常情况,先不要去修改程序,很可能是传感器没有调试到位,如果确保传感器无误,再去修改程序。
第七步:调试完成后,再次编辑程序
在上一步的调试中,由于对程序有所修改,故必须再次整体检查或编辑一下程序,然后将最终的程序下传到PLC中。
第八步:保存程序
在这一步中,要注意一个问题,就是应该将程序保存在什么地方?PC硬盘?闪存设备?移动硬盘?当然这些都不可以,所有这些存储设备都可能感染病毒。所以,必须且只能将程序烧制到光盘上。而且还有一个问题,烧制的程序是哪个程序?在之前我们已经将最终调试并修改完成的程序下载到PLC中,如果PLC在执行该程序时完全无误的话,就将该程序上传到PC中,将此程序烧制到光盘中。上面的一切都是为了安全。
第九步:填写报告
完成编程后,应该填写最后的调试报告,将遇到的问题和程序的一些难点问题一一记录下来。因为长时间以后,自己也会对程序的某些技巧的地方遗忘,同时也方便其他同事能够理解你所编写的程序。
西门子S7-1200PLC 程序块之组织块介绍
关注“PLC发烧友 ”,一起涨知识!
回复:西门子全套,领西门子全系列电子资料包!
一、S7-1200程序块
S7-1200CPU采用块的概念,将程序分解为独立的,自成体系的各部部件块的功能类似于S7-200系列中的子程序,但类型更多,功能更强大
简而言之就是比如一个项目分成不同的功能(任务)和工艺,每个任务可做成不同的代码块;每个代码块可完成不同的任务或工艺,并且每个代码块是独立的;这些块与S7-200的子程序块更强大,在200系列中如果采用带形式参数的子程序去编写程序的过程中,如果去使用计数器、定时器等没有相应的变量类型的存储区时,在需要被重复调试这带形参的子程序时,计数器、定时器就会出现双线圈;但在1200中的FB/FC块中可以使用计数器、定时器、沿脉冲信号等反复调用不受影响
二、使用块的优点
使用块的概念有以下好处:
(1)便于大规模程序的设计和理解
将不同的任务分成不同的程序块,在大的项目中我们按照,任务、功能的划分不同的任务段,每个任务段编写不同的程序块,完成这个任务块的程序就行,
(2)可设计标准化的程序块,方便进行重复的调用
如一个电机的控制,涉及到电机的启动方式、运行参数如速度的反馈、电压电流的反馈等等;如果设计一个标准的程序块时,不同的工程师不需重新设计,把标准块直接调用即可。
(3)程序结构清晰明了,修改方便,调试简单。
(4)增加PLC的组织透明性,可理解易维护。
三、程序块详解
S7-1200CPU提供了不同类型的程序块,主要分为组织块(OB)、函数(FC)函数块(FB)数据块(DB)
组织块:由操作系统调用,决定程序的结构
函数(功能)块:具有存储器的代码块,可将值存储在背景数据块中,即使在执行完后,这些值存在背景数据块中仍然有效。
函数:不带存储器的代码块,数据存储在局部存储区L里面,函数没有背景数据块,执行完成后,数据不保存
数据块:存储用户数据的区域,类似于200系列的V存储区;它分为全局数据块和背景数据块。可根据不同的任务段,建立不同的数据块来存储任务
组织块OB
组织块的基本功能是调用用户程序,在S7-1200中可以使用的组织块OB有启动组织块、循环组织块、循环中断组织块,定时中断组织块,硬件中断组织块,故障中断组织块等。
启动组织块 (OB100)在添加OB块的时可选择多个启动组织块,根据组织块的编号大小顺序依次执行。启动组织块通常用来做出初始化的程序(在一些需要做初始化的程序可以放到OB100中)
循环组织块 :(OB1)PLC的主程序MAIN CPU会循环的对程序扫描执行,然后有循环组织块调用不同FB/FC,也就是CPU在处于RUN模式时,操作系统每个周期调用循环OB一次,所有的循环OB执行完后,操作系统重新调用循环OB,S7-1200CPU支持多个程序循环OB,执行顺序一样是根据编号大小依次执行;
硬件中断组织块 :在RUN模式下,CPU立即响应硬件中断事件,调用相关的硬件中断OB,中断程序的执行不受主程序的扫描和过程映像更新时间的影响,适合需要快速响应的应用。比如高速计数的当前值等于预设值时,可启用硬件中断
一个硬件中断事件只允许一个硬件中断OB,而一个硬件中断OB可分配给多个硬件中断事件。
中断硬件触发后,操作系统将识别输入通道并确定所分配的OB,在识别和确认的过程中,同一模块上发送了触发硬件中断的另一事件,必须遵循以下规则:
1、如果该通道再次发生相同的中断事件,操作系统不予响应,硬件中断将丢失
2、如果发生不同的中断事件,则在当前正在执行的中断确认后再响应这个新的中断事件
时间中断组织块 :时间中断OB用于在时间可控的应用中定期运行一部分用户程序,可实现在某个预设时间到达只运行一次,或在设定的触发日期到达后,按时、分、秒、天、周、月等周期运行,只有设置并激活了时间中断,且程序中存在相应组织块的情况下,才能运行时间中断,通过以下指令对时间中断进行操作:
“ACT-TINT”激活时间中断
“SET-TONTL”设定时间中断的参数
“CAN-TINT”取消未执行的时间中断
“QRY-TINT”查询时间中断的状态
循环中断组织块 :循环中断OB按设定的时间间隔循环执行,如间隔时间为1000MS,则在程序块执行期间会每隔1000MS调用该该块一次。在添加块的时候可添加一个循环中断组织块,同时可设置该组织块的执行时间间隔
故障中断组织块 :在发生故障时,可启用故障中断
延时中断组织块 :延时中断OB在一段可设置的延时时间后启动,可通过以下指令对延时中断进行操作:
“SRT-DINT”用于启动延时中断,该中断在超过参数指定的时间后调用延时中断OB。延时时间范围在1~60000MS
“CAN-DINT”取消启用的延时中断
“QRY-DINT”查询延时中断的状态
时间错误组织块 :时间错误组织块是操作系统用于处理时间故障的中断组织块,当程序和执行时间超过最大的循环时间或发生时间错误事件,CPU将触发时间错误中断OB80
诊断错误组织块 :诊断错误组织块是操作系统用于响应诊断错误的中断组织块,如激活诊断功能的模块检测到故障状态发生变化时,向CPU发送诊断中断请求,触发诊断错误组织块OB82
拔插中断组织块 :拔插中断组织块OB83是操作系统用于响应对模块移除或插入操作的中断组织块,S7-1200 PLC的本地模块不支持热插拔,拔出或插入中央机架模块将导致CPU进入STOP模式
机架错误中断组织块 :机架错误中断组织块OB86是操作系统用于响应PROFIBUS-DP和PROFINET-IO分布式IO站通信故障的中断组织块
回复:西门子全套,领西门子全系列电子资料包!
相关问答
plc程序主程序与副程序关联?
在PLC编程中,主程序和副程序之间可以通过调用和跳转指令进行关联。主程序是PLC程序的入口点,负责执行主要的逻辑控制任务。而副程序是主程序的一个子程序,用于...
PLC控制器程序是由什么构成的?
PLC的控制程序由主程序、子程序和中断程序组成。1.主程序主程序(OBI)是程序的主体,每一个项目都必须并且只能有一个主程序。在主程序中可以调用子程...PLC...
plc主程序怎么分多段?
在PLC主程序中,可以通过不同的跳转指令和条件语句来实现程序的分段。一般情况下,可以将程序按照执行顺序和功能进行划分,每一段程序都有独立的跳转指令,通过...
plc主程序和子程序的区别?
PLC(可编程逻辑控制器)主程序和子程序是两种不同的程序结构,它们在PLC控制系统中发挥着不同的作用。主程序是PLC控制系统中最大的程序单元,它在整个控制...
如何用PLC编辑暂停程序?
1.编程思路:编程之前首先需要弄清楚动作的具体要求,实现的先后顺序。在动作运行过程中,总避免不了实现启动、暂停的功能,而暂停设置即使整个过程停止在当前运...
PLC怎么连接电脑?怎么把在电脑编程好的程序放入PLC运行?
三菱FX系列PLC如何接线及如何通过RS232进行下载程序今天简单给大家介绍下三菱FX系列PLC如何接线和如何通过RS232进行下载程序,简单的说明帮助大家能快速与PLC通...
s7-1200plc编程程序块类型分为哪四种?
S7-1200中程序块分为组织块(OB),函数块(FB),函数(FC),数据块(DB)。不严谨的说,组织块(OB)可以相当于主程序,函数块(FB)和函数(FC)可以相当于...S7-1200中程序....
什么是三菱PLC主程序和子程序?
主程序是指PLC主要正常运行就不受其他程序段影响其扫描的程序段,就是说主程序只要在PLC正常的时候就是一直执行每次都扫描的,除非有中断程序发生。子程序就是...
请问一下西门子PLC,S7-200,如果主程序到子程序的条件停止了,子程序里面的线圈是保持呢,还是断开?
子程序断开,里面的Q,M等线圈是保持的,但有些是继续动作的,比如时间继电器等。子程序断开,里面的Q,M等线圈是保持的,但有些是继续动作的,比如时间继电器等。
西门子plc控制一个灯怎么编程?
编写西门子PLC控制灯的程序,首先需要创建一个输出点,该点连接到控制灯的电路。然后将该输出点的初始状态设置为关闭。在程序的主循环中,通过读取输入数据,判...