想学好PLC必须掌握的循环扫描工作过程!
1 CPU自检阶段
CPU自检阶段包括CPU自诊断测试和复位监视定时器。
在自诊断测试阶段,CPU检测PLC各模块的状态,若出现异常立即进行诊断和处理,同时给出故障信号,点亮CPU面板上的LED指示灯。当出现致命错误时,CPU被强制为STOP方式,停止执行程序。CPU的自诊断测试将有助于及时发现或提前预报系统的故障,提高系统的可靠性。
监视定时器又称看门狗定时器WDT,它是CPU内部的一个硬件时钟,是为了监视PLC的每次扫描时间而设置的。CPU运行前设定好规定的扫描时间,每个扫描周期都要监视扫描时间是否超过规定值。这样可以避免由于PLC在执行程序的过程中进入死循环,或者由于PLC执行非预定的程序造成系统故障,从而导致系统瘫痪。如果程序运行正常,则在每次扫描周期的内部处理阶段对WDT进行复位(清零)。如果程序运行失常进入死循环,则WDT得不到按时清零而触发超时溢出,CPU将给出报警信号或停止工作。采用WDT技术也是提高系统可靠性的一个有效措施。
2 通信处理阶段
在通信处理阶段,CPU检查有无通信任务,如果有则调用相应进程,完成与其他设备(例如,带微处理器的智能模块、远程I/O接口、编程器、HMI装置等)的通信处理,并对通信数据做相应处理。
3 读取输入
在读取输入阶段,PLC扫描所有输入端子,并将各输入端的通/断状态存入相对应的输入映像寄存器中,刷新输入映像寄存器的值。此后,输入映像寄存器与外界隔离,无论外设输入情况如何变化,输入映像寄存器的内容也不会改变。输入端状态的变化只能在下一个循环扫描周期的读取输入阶段才被拾取。这样可以保证在一个循环扫描周期内使用相同的输入信号状态。因此,要注意输入信号的宽度要大于一个扫描周期,否则很可能造成信号的丢失。
4 执行程序阶段
可编程控制器的用户程序由若干条指令组成,指令在存储器中按顺序排列。当PLC处于运行模式执行程序时,CPU对用户程序按顺序进行扫描。如果程序用梯形图表示,则按先上后下、从左至右的顺序逐条执行程序指令。每扫描到一条指令,所需要的输入信号的状态均从输入映像寄存器中读取,而不是直接使用现场输入端子的通/断状态。在执行用户程序过程中,根据指令做相应的运算或处理,每一次运算的结果不是直接送到输出端子立即驱动外部负载,而是将结果先写入输出映像寄存器中。输出映像寄存器中的值可以被后面的读指令所使用。
5 刷新输出阶段
执行完用户程序后,进入刷新输出阶段。可编程控制器将输出映像寄存器中的通/断状态送到输出锁存器中,通过输出端子驱动用户输出设备或负载,实现控制功能。输出锁存器的值一直保持到下次刷新输出。
在刷新输出阶段结束后,CPU进入下一个循环扫描周期。
西门子1200PLC基础篇——连续控制程序编写
西门子1200PLC基础篇——连续控制程序编写
今天开始我们一起学习西门子S7-1200PLC的简单梯形图程序编写,后续还会有复杂梯形图程序、SCL语言程序等更新。
今天我们一起学习的是连续控制程序编写。编写程序前,我们首先要做的是创建项目,添加设备,保存工程。如果不会操作,可以看我之前发的文章。
之后在右边项目树打开“PLC变量”的“默认变量表”
在默认变量表中,我们添加变量,就是我们给I0.0这样的地址添加注释。其实我们在梯形图的编写过程中也可以添加注释,但是后续我们用SCL语言编程的时候只能在变量表里添加,我们现在开始就要养成这个习惯。
在添加变量的时候,系统默认的数据是“bool”,所谓的布尔量就是数字量,就是“0”和“1”两个量,西门子S7-1200PLC除了布尔这个类型之外还有很多的数据类型,具体可以看下表
在软件里我们可以看到有50种左右的数据类型,以上是常用的一些数据类型。今天我们只用到“bool”,其他的数据类型等我们用到了,我们再一一学习。
我们在编辑变量表的时候可以在右边的下拉菜单中编辑数据类型和地址,也可以在栏中直接输入修改,改成我们想要的数据类型和地址。
设置完之后,我们可以在项目树的“程序块”中打开Main[OB1],进行编程。
程序编写的时候我们可以直接在下图的红框(收藏栏)中直接拖到程序段里,也可以在右边基本指令“位逻辑运算”中寻找。从左往右依次是常开触点、常闭触点、线圈、空功能框、打开分支、嵌套闭合和置复位指令,收藏栏中的便捷按钮我们也可以根据自身的习惯进行修改。
拖到位之后,双击上面的问号,输入地址
如果需要并联,可以用红框中的“打开分支”和“嵌套闭合”两个按钮来实现
由于我们之前变量表中已经编辑过了,所以在程序编写过程中当我们输入地址之后,会有对应的注释自动显示出来。程序编写好之后,我们编译下载进PLC就可以了。
接通程序中接通启动常开触点I0.0,输出线圈Q0.0工作,输出线圈Q0.0的自锁触头闭合自锁,使Q0.0保持工作。断开停止常闭触点I0.1,输出线圈Q0.0停止工作,输出线圈Q0.0的自锁触头断开。
相关问答
气缸来回连续工作.怎么接线需要加什么.不用PLC?
可以实现。参照自保持启动电路(注意:气缸的通断方向不要弄错了);一个磁性开关为常开型,到位接通,相当是自保持启动电路里的启动按钮;另一个磁性开关为常闭型...
plc点动和连续控制程序线怎么接?
要将PLC的点动和连续控制程序线连接起来,首先需要确定PLC的输入和输出点位。然后,根据点动和连续控制的逻辑需求,编写相应的程序。在程序中,可以使用条件语句...
plc可以连续运行多少年?
这个是没有具体的时间,要看平时的维护工作如何,一般五年就差不多了,电子产品的寿命也基本上如此。PLC可编程逻辑控制器,它采用一类可编程的存储器,用于其内部...
三菱plc如何控制步进电机连续运行?
回答如下:步进电机是一种开环控制的驱动方式,因此需要使用外部的控制器,如PLC来控制步进电机的运行。以下是控制步进电机连续运行的步骤:1.选择适当的PLC型...
plc中连续性任务和周期性任务什么区别?
连续性任务指不断循环执行的任务,大部分程序都属于连续性任务,如S7-300中的OB1;周期性任务指间隔一段时间执行一次的任务,如S7-300中的OB35。连续性任务指不...
在西门子的PLC里,利用定时器指令编程产生连续方波输出,其周期为3秒,占空比为2:1?
开启一个100毫秒的定时器,定时3秒,3秒计时到将定时器复位让其自动重新计时,然后判断计时当前值,小于2秒时为1,大于2秒时为0,大概就这样吧,话说嘛叫占空比...
PLC的输入点一直接通?
检查你的程序,看实际上是否就是输出的,如果不是就看输出点是否有故障检查你的程序,看实际上是否就是输出的,如果不是就看输出点是否有故障
西门子plc数据如何连续加减运算?
西门子plc数据使用DIV指令来连续加减运算。DIV指令即两个整数类型的数据进行除法运算(目标为双整数,其中高16位字存余数、低16位字存商)。当条件I0.1接通时...
plc闪烁电路为什么会循环?
PLC闪烁电路的循环是由PLC扫描周期决定的。PLC扫描周期是指PLC从读取输入信号、执行程序、更新输出信号到下一次读取输入信号的整个过程所花费的时间。PLC扫...
plc时间继电器一直计时不停?
关于这个问题,PLC时间继电器是一种可以进行时间计时的继电器。它可以根据设定的时间参数,在特定的时间间隔内进行计时并触发相关的操作。当PLC时间继电器启动...