PLC中断是怎样起作用的?如何进行编程?本文为您清晰讲解!
配图单词并不能形容PLC中断,PLC的中断用interrupt!
一 首先我们来讲解以下什么是PLC的中断?
正常状态下,PLC按照扫描顺序从上至下循环工作。以西门子300系列PLC举例,它一直循环扫描OB1中的程序。
也就是说你让PLC按照一定顺序进行工作,它就严格遵守从上至下的方式进行扫描程序。
那么针对一些紧急情况,这种工作方式就有一些不足了。比如一些串口的通讯。
比如说这货!
上图是松下伺服驱动器与PLC通讯的方式,因为数据的重要性,需要多次接受和发送数据进行校正。而这一过程对于时间的要求就很严格。所以虽然PLC的正常扫描周期也不长,但如果不使用中断的话很难保证其工作正常。
再有就是对于一些安全装置的设计,在一些特定场合,需要对安全装置,比如说急停按钮,光栅等进行快速的处理,而不是将它们写在通用程序里循环扫描。
除此之外还有一些系统特定功能的中断,也可以通过中断进行处理等等。
最后就是一些特定程序不需要扫描时间那么快,这种是时间中断,比如说PID的程序必须写到时间中断里。
以上就是西门子PLC的常见中断。
二其次是中断的优先级,中断为什么有优先级?
因为与可能会同时触发两个中断,那么哪个更重要一些呢?
西门子S7-200smart系统中断优先级顺序
通讯要求实效性最高,所以排在首位,其次是外部离散量中断,这可用于急停等需要特殊处理的状况。在这里提示大家不是所有的急停都需要使用中断,对于一些一般场合,还是使用普通程序较好一些。
最后是时间中断,时间中断可以使用慢于PLC扫描周期的时间作为执行周期。以处理类似PID这种情况。
熟悉我文章风格的都知道,理论和实际相结合。下面用几个例子教大家如何使用中断。
中断理解起来困难一些,操作起来很简单。
1 对于非时间中断,大家可以理解中断的编程是特定的条件快速启动特定的子程序。
程序讲解,中断事件1为PLC扫描到I0.0下降沿,检测到该下降沿后暂停执行MAIN程序,而是直接执行INT0中断程序,在中断程序中,可以加一些对于该事件的处理,在中断程序执行后再返回到MAIN程序继续执行。
2 对于时间中断则更简单一些。时间中断大家可以理解为可以设定扫描时间的子程序。
西门子S7-200SMART共有两个时间中断,事件10和事件11。扫描时间由SMB34和SMB35设置。
首先将SMB34设定时间,然后事件10启动中断程序INT1。
在中断子程序里,可以写一些程序,里面的程序就按照100ms的执行时间进行工作。
切记时间中断里面不需要写返回程序。
好吧!你学会中断了吗?
学会的请点个赞吧!
西门子PLC自由口通讯+中断,这么用很方便,图文实例讲解!
以前我们讲过关于自由口通讯的实例,今天我们讲一下自由口通讯配合中断的实例。
在一些特定场合,比如说与松下系列伺服驱动器的控制时,为了保证数据的安全,我们需要进行多次往返的数据交换,这就需要严格控制通讯的时间。那么这个时候对于PLC来说通讯就是最重要的,所以我们需要打断PLC的正常功能,优先处理通讯,这就需要通讯中断。
实例:2台S7-200 SMART CPU(端口0)采用自由口通信方式实现相互通信
(本文仅为展示自由口通讯和中断,如果想要实现这两个PLC的通讯其实最好是使用向导进行以太网通讯,有机会我们也会进行讲解!)
通信任务:CPU1 每秒触发一次 XMT 指令将 CPU 的实时时钟发送到 CPU2;CPU2 接收到 CPU1 发送的信息后立即将 CPU2 的实时时钟回复到 CPU1。
接线:每个 S7-200 SMART CPU 都提供一个以太网端口和一个 RS485 端口(端口0),标准型 CPU 额外支持 SB CM01 信号板(端口1),信号板可通过 STEP 7-Micro/WIN SMART 软件组态为 RS232 通信端口或 RS485 通信端口。
CPU 通信端口引脚分配
1、CPU1 编程
1.1、CPU1 主程序编程如图 所示:
CPU1主程序
程序讲解:
1. 设置 SMB30 = 2#00001001 (自由口通信,波特率 9600 bps,8 位数据位,无校验)。
2. 设置 SMB87 = 2#10010100,使用空闲线检测为信息接收的起始条件,使用字符间定时器为信息接收的结束条件。
3. 设置空闲线定时器 SMW90 = 5 ms,字符间定时器 SMW92 = 5 ms,允许最大接收字符个数 SMB94 = 10。
4. 连接中断子程序 INT_0 到通信端口 0 发送完成事件,并启用中断。
5. 每秒钟读取一次 CPU 的实时时钟,并将发送缓冲区长度设置为 8 个字符。
6. 执行 XMT 指令之前设置 SM87.7 = 0,同时执行 RCV 指令,终止消息接收。
7. 每秒钟执行一次 XMT 指令将 CPU 的实时时钟发送出去。
1.2、 CPU1 发送完成中断子程序 INT_0 编程
中断子程序INT_0用于恢复 SMB87 的设置(SM87.7 = 1),并执行 RCV 指令开始接收 CPU2的应答信息。程序如图4. 所示:
CPU1 中断子程序 INT_0
2、CPU2 编程
2.1、CPU2 主程序编程如图所示:
CPU2主程序
1. 设置 SMB30 = 2#00001001 (自由口通信,波特率 9600 bps,8 位数据位,无校验)。
2. 设置 SMB87 = 2#10010100,使用空闲线检测为信息接收的起始条件,使用字符间定时器为信息接收的结束条件。
3. 设置空闲线定时器 SMW90 = 5 ms,字符间定时器 SMW92 = 5 ms,允许最大接收字符个数 SMB94 = 10。
4. 连接中断子程序 INT_0 到通信端口 0 接收完成事件,中断子程序 INT_1 到通信端口 0 发送完成事件,并启用中断。
5. 使用 SM0.1 调用 RCV 指令地执行。
2.2、 CPU2 接收完成中断子程序 INT_0 编程
中断子程序INT_0用于读取 CPU 实时时钟,并调用 XMT 指令将实时时钟信息发送出去。程序如图所示。
CPU2 接收完成中断子程序 INT_0
2.3、 CPU2 发送完成中断子程序 INT_1 编程
中断子程序 INT_1 用于执行 RCV 指令,并开始新的信息接收任务。程序如图 7.所示。
CPU2 发送完成中断子程序 INT_0
相关问答
cp1h中断实例?
欧姆龙CP1H型号的PLC编写定时器中断程序:在项目管理器中右键点击程序,选择插入新程序,任务类型中选择中断任务02(间隔定时器0),在此处理中断。PL...欧姆龙C...
plc暂停又继续程序怎么编?
工具材料:简思工控PLC电脑中文指令编程操作方法01编程思路:编程之前首先需要弄清楚动作的具体要求,实现的先后顺序。在动作运行过程中,总避免不了实现...
PLC暂停操作如何实现?单步的定义是什么意思?
其实啊,plc只要一上电就一直扫描plc的程序的啦,你想要终止扫描,那就把plc打到stop,也可以直接断电啊,还可以让m8037(三棱)得电,plc会强制运行stop指令。...其...
plc中断上升沿和下降沿例子?
在PLC中,上升沿和下降沿是指输入信号从低电平到高电平或从高电平到低电平的瞬间。例如,当一个按钮被按下时,它的信号从低电平变为高电平,这就是一个上升沿。...
如何搞清楚plc为什么要中断处理,哪些地方用到了中断?
如何搞清楚plc为什么要中断处理,哪些地方用到了中断,想要搞明白中断的功能首先要理解plc运算周期的意义,任何plc的cpu都有运算速度,速度越快性能越好,运算周...
三菱plc暂停运行程序怎么写?
如果你要在三菱PLC中编写一个暂停运行程序的功能模块,可以按照以下步骤进行:1、定义一个标记:定义一个标记,例如“Pause”,用于控制程序暂停和继续。这个标...
三菱plcfx3u中断程序怎么写?
您好,在三菱PLCFX3U中,中断程序可以通过以下步骤编写:1.在程序编辑界面中,选择“中断程序”选项卡。2.点击“新建”按钮创建新的中断程序。3.编写中断...
plc怎样理解中断功能,有没有例子说明下?
每个厂家的PLC程序都不一样,现在我以西门子smart200来对案例说明一下。中断指令S7-200SMART设置了中断功能,用于实时控制、高速处理、通信和网络等复杂和特...
plc中断程序启动熟停的原因?
1.plc中断程序启动熟停的原因可能有多种,以下是一些常见的原因:-外部输入信号:当plc接收到外部输入信号时,可以触发中断程序的启动。例如,当传感器检测到...
西门子pLC中断号有哪些?
西门子PLC中断号是指在PLC运行过程中,当有特定的事件需要触发处理时,PLC会通过中断来打断当前正在执行的程序,转而执行相应的中断程序。西门子PLC中断号包括5...