1.概要
本节主要说明了不受顺控程序(主程序)的运算周期的影响,将下述的中断功能作为触发信号,立即执行中断程序(中断子程序)的功能。
在一般的顺控程序处理中,由运算周期造成的延迟以及时间的偏差给机械动作带来影响,这样的情况可以得到改善。
1)输入中断功能[外部信号输入(X)的中断]
使用输入X000~X005的输入信号,中断一般的顺控程序,优先执行中断子程序。
此外,输入中断的执行时序,可以通过指定指针的编号,指定信号的上升沿或是下降沿中任意一个。
2)输入中断延迟功能[外部信号输入(X)的中断]
使用输入X000~X005的输入信号,中断一般的顺控程序,在以1ms为单位设定的延迟时间之后优先执行中断子程序。
此外,输入中断的执行时序,可以通过指定指针的编号,指定信号的上升沿或是下降沿中任意一个。
3)定时器中断功能[按固定周期动作的定时器中断]
按照10~99ms的固定周期间隔,中断一般的顺控程序,优先执行中断子程序。
4)高速计数器中断功能[增计数时的中断功能]
当高速计数器的当前值达到规定值时,中断一般的顺控程序,优先执行中断子程序。
5)脉冲捕捉功能
通过输入X000~X007的输入信号从OFF变为ON,特殊辅助继电器M8170~M8177被设置为中断处理。通过在一般的顺控程序中使用M8170~M8177,可以方便地获取在一般的输入处理中无法获取的ON宽度的信号。
但是,如果在1个运算周期中要执行几次ON/OFF这样的处理时,请使用输入中断功能。
6)脉宽/周期测量功能
通过输入X000、X001、X003、X004的输入信号OFF→ON,将输入信号上升沿的1/6μs环形计数器值保存到特殊数据寄存器中。此外,通过输入信号的ON→OFF,将输入信号下降沿的1/6μs环形计数器值保存到特殊数据寄存器中,同时将上升沿与下降沿的计数器值的差设定为1/60后,将脉宽(10μs单位)保存到特殊数据寄存器中。
设定为脉冲周期测量模式时,通过输入信号的OFF→ON,将上一次输入信号上升沿至此次输入信号上升沿的差设定为1/60后,将10μs单位的脉冲周期保存到特殊数据寄存器中。
2.通用事项
(1)中断功能及脉冲捕捉功能的禁止方法
1)程序的中断范围的限制[中断功能、脉冲捕捉功能
a)编程方法:通过编写FNC05(DI)指令,可以设定中断禁止的区域。
在DI~EI指令之间(禁止中断区域)即使发生中断,也是被存储下来,在EI执行之后再执行。
b)程序举例:如图6-1所示。
c)注意事项:
①禁止中断用的特殊辅助继电器(M8050~M8059)不包括已经置ON中的中断输入。
该特殊辅助继电器对脉冲捕捉功能无效。
②禁止区域的时间较长时,虽然接收中断,但是转移到中断处理会延迟。
不需要禁止中断时,请只编写EI指令。未必一定需要DI指令。
图6-1 中断的允许及禁止
2)中断指针(每个中断子程序)的禁止中断[中断功能]
a)编程方法:分别准备了禁止中断用的特殊辅助继电器(M8050~M8059)。
在中断禁止标志位(M8050~M8059)为ON时,产生了禁止的中断,此后即使中断禁止标志位断开,也不执行中断程序,见表6-1。
表6-1 中断指针
①从RUN→STOP时清除。
b)程序举例:通过M20使M8053置ON时,来自X003的中断输入I301被禁止,如图6-2所示。
(2)相关事项
1)输入输出刷新功能(REF指令)的使用
通过中断程序控制输入继电器和输出继电器时,使用输入输出刷新指令(REF/FNC50),可获得最新的输入信息,并能立即输出运算结果,从而可以实现不受PLC运算周期影响的高速控制。
2)关于FROM/TO指令执行过程中的中断动作
通过特殊辅助继电器M8028的ON/OFF,实现以下的动作。
a)M8028=OFF时,在FROM/TO指令执行过程中自动处于禁止中断的状态,不执行输入中断和定时器中断。
在此期间产生的中断会在执行完FROM/TO指令后被立即执行。
当M8028=OFF,FROM/TO指令可以在中断程序中使用。
图6-2 禁止中断
b)M8028=ON时,在FROM/TO指令执行过程中如产生中断,则中断执行,然后执行中断程序。
但是,当M8028=ON时,不能在中断子程序中使用FROM/TO指令。
(3)使用上的注意事项(通用)
说明了使用中断功能和脉冲捕捉功能时的通用的注意要点。
关于各中断功能个别的注意要点,会在各中断功能的说明中解释。
1)关于发生多个中断时的处理
依次发生多个中断时,先发生的优先执行,完全同时产生时,指针编号小的优先执行。
在执行中断子程序的过程中,其他的中断被禁止。
2)想实现双重中断(中断中的中断)时[中断功能]
一般的中断子程序(程序)中禁止中断。FX3U、FX3UC的情况下,如果在中断子程序中编写EI(FNC04)、DI(FNC05)时,可以接收到双重的中断。FX3G PLC中不能执行双重中断。
3)关于使用定时器时的动作[中断功能]
使用普通的定时器不能执行计时,除此以外,使用1ms的累计定时器时也需要注意。中断子程序中的定时器,请使用子程序用定时器T192~T199。
4)禁止重复使用输入[输入中断(有/无延迟功能)、脉冲捕捉功能]
输入X000~X007用于高速计数器、输入中断、脉冲捕捉以及SPD、ZRN、DSZR、DVIT指令和通用输入。因此,请勿重复使用输入端子。
5)使用SFC程序(STL指令)时
使用SFC程序(STL指令)时,在中断程序中请勿使用SET指令或OUT指令驱动状态S。
6)关于已经置ON的软元件的动作[中断功能]
中断子程序中被置ON的软元件,在结束子程序后仍然被保持。此外,对定时器和计数器执行RST指令后,定时器和计数器的复位状态也被保持。
这些软元件在子程序内、或是子程序外执行复位和OFF运算时,请使该指令断开。
a)输出被保持的例子:有对X001进行计数的C0,当X000从OFF变为ON时,中断程序I001只执行1个扫描,计数器复位后输出Y007的程序。
①程序举例,如图6-3所示。
②时序图,如图6-4所示。
图6-3 程序举例
图6-4 时序图
b)复位被保持的输出的例子(对策)。
①程序举例,如图6-5所示。
图6-5 程序举例
②时序图,如图6-6所示。
图6-6 时序图
3.输入中断(通过外部信号中断)[不使用延迟功能]
(1)输入中断(通过外部信号中断)[不使用延迟功能]
1)概要
使用输入X000~X005的输入信号,执行中断子程序。
2)用途
由于可以不受PLC的运算周期的影响处理外部输入信号,所以适用于执行高速控制和获取短时间脉冲。
3)基本程序(见图6-7)
图6-7 编程要领
4)中断指针(6点)的编号及动作(见表6-2)。
表6-2 输入中断指针
①从RUN→STOP时清除。
5)输入中断的个别禁止方法
在程序中使M8050~M8055置ON后,则其各自对应的输入编号的中断被禁止(对应内容参考表6-2)。
6)注意要点
a)禁止输入的重复使用:用作为中断指针的输入继电器的编号,请勿与使用相同输入范围的“高速计数器”、“脉冲捕捉功能”、“脉冲密度(FNC56)”等应用指令重复。
b)关于输入滤波器的自动调节:指定了输入中断指针I□0□后,输入继电器的输入滤波器会被自动更改为高速读取用。
因此,不需要使用REFF(FNC51)指令和特殊数据寄存器D8020(输入滤波器的调节)更改滤波器的调节。
此外,没有作为输入中断指针使用的输入继电器的输入滤波器以10ms(初始值)动作。
c)输入中断的脉宽:为了能通过外部信号执行输入中断,所以需要输入表6-3所示的宽度以上的ON信号,或是OFF信号。
表6-3 输入中断的脉宽
①使用5μs的输入滤波常数时,以及用高速计数器读取50~100kHz的脉冲时,请按如下所示设置:接线长度请勿超出5m;在输入端子中连接1.5kΩ(1W以上)的漏电阻,与主机的输入电流相符合,对方一侧机器的开路集电极型晶体管输出的负载电流需要在20mA以上。
d)指针编号的重复使用:对象I001和I000等那样的同一输入的上升沿中断和下降沿中断,不能被同时编写。
7)程序举例
a)上升沿外部输入中断和输出刷新(REF指令)的组合使用:通过外部输入(X000)的上升沿,即刻使输出Y007置ON的程序,如图6-8所示。
图6-8 程序举例
注:对使用REF(FNC 50)指令刷新的输入/输出的点数必须指定8的倍数。指令了8的倍数
以外时,会出现运算错误,REF(FNC50)指令不能执行。
b)输入中断和输入刷新(REF指令)的组合使用:使用最新的输入信息执行中断处理的程序,如图6-9所示。
图6-9 程序举例
注:同图6-8一样。
c)输入发生次数的计数(与单相高速计数器相同):对外部输入进行计数的程序,如图6-10所示。
图6-10 程序举例
d)短时间脉冲的捕捉:短时间脉冲为ON后,在一定时间之内保持ON的程序,如图6-11所示。
图6-11 程序举例
(2)实用程序举例(短时间脉宽的测量程序)(见图6-12)
如果使用累计型的1ms定时器或是特殊数据寄存器D8099(高速环形计数器),就可以以1ms或是0.1ms为单位测量短时间的脉冲宽度。
1)使用累计型的1ms定时器测量短时间脉冲宽度的程序举例(见图6-13)。
程序举例的时序图,如图6-14所示。
图6-12 程序要求
图6-13 程序举例
图6-14 时序图
2)使用高速环形计数器测量短时间的脉冲宽度的程序举例(仅适用于FX3U、FX3UC PLC)(见图6-15)
图6-15 程序举例
4.输入中断(通过外部信号中断)[使用延迟功能]
(1)概要
在输入中断中,有以1ms为单位的延迟执行中断子程序的功能。通过执行以下格式的程序来指定要延迟的时间。(www.xing528.com)
如使用该延迟功能,那么在调整输入中断中使用的传感器的安装位置时,就可以进行与实际位置没有偏差的电气调节。
(2)编程要领(见图6-16)
(3)时序图(见图6-17)
5.定时器中断
(1)定时器中断(一定周期的中断)
1)概要
不受PLC运算周期的影响,每隔10~99ms执行一次中断程序。
2)用途
适用于当主程序的运算周期较长时,对特定程序进行高速处理,或者需要在顺控运算时
图6-16 编程要领
①指定延迟时间的程序:在图中的指定延迟时间的程序,必须要编写在中断子程序的开头位置中。由于这个程序是模板程序,所以届时只需要更改延迟时间。此外,该指定延迟时间的程序,只可以使用常数(K)或是数据寄存器(D)。
②中断程序的终止。
间隔一定时间执行程序时的情况。
3)基本程序(见图6-18)
图6-17 时序图
4)定时器中断指针(3点)的编号及动作(见表6-4)
图6-18 编程要领
每隔指定的中断循环时间(10~99ms),执行中断子程序。在PLC的运算周期以外,需要循环中断处理的控制中使用。
表6-4 定时器中断指针
①从RUN→STOP时清除。
注意:定时器中断时间设定在9ms以下时,在以下情况下有可能出现不能按照正确的周期处理定时器中断,所以建议在10ms以上使用。
①中断程序的处理时间较长时;
②主程序中使用了处理时间较长的指令时。
5)注意要点
①指针编号(I6、I7、I8)不能重复使用;
②在程序中接通M8056~M8058后,其各自对应的定时器中断被禁止。
6)程序举例
每隔10ms对数据进行加法运算,并与设定值比较的程序举例,如图6-19所示。
图6-19 程序举例
(2)实用程序举例(应用指令的定时器中断程序)
RAMP(FNC 67)、HKY(FNC 71)、SEGL(FNC 74)、ARWS(FNC 75)、PR(FNC77)指令是与扫描时间同步的,执行一连串动作的指令。
在这些指令中,由于会出现整体时间过长或在时间波动上有问题,所以使用定时器中断,使指令按照一定时间间隔执行。
此外,未使用定时器中断时,请使用恒定扫描模式。
1)HKY(FNC71)指令的定时器中断处理(见图6-20)
图6-20 程序举例
2)RAMP(FNC 67)指令的定时器中断处理
使用10ms的定时器中断,编写如下所示的斜坡信号输出回路。
a)斜坡输出模型:D4被作为计算执行次数用的寄存器而占用,如图6-21所示。
图6-21 斜坡输出模型
b)程序:如图6-22所示。
6.计数器中断(根据高速计数器的计数到位来中断)
(1)概要
使用高速计数器的当前值的中断。
(2)用途
与DHSCS(FNC 53)的比较置位指令一起使用,当高速计数器的当前值达到规定值时执行中断程序。
图6-22 程序举例
(3)基本程序(见图6-23)
图6-23 编程要领
注:更改数据寄存器等中指定的比较值时,这个值在执行END指令时被更新。
(4)定时器中断指针(6点)的编号及动作(见表6-5)
表6-5 定时器中断指针
①从RUN→STOP时清除。
(5)使用高速计数器执行中断输出(Y、M)的ON/OFF
根据高速计数器的当前值,仅仅执行ON/OFF输出继电器(Y)和辅助继电器(M)的控制时,使用DHSCS(FNC 53)、DHSCR(FNC 54)、DHSZ(FNC 55)指令可以简单地编程。
(6)注意要点
a)指针编号的重复:不能重复使用指针编号。
b)中断的禁止:在程序中使特殊辅助继电器M8059为ON后,则所有的计数器中断都被禁止。
7.脉冲捕捉功能[M8170~M8177]
脉冲捕捉功能是指,PLC能够准确的捕捉到通常容易被遗漏的短信号。脉冲捕捉功能在执行中断处理时,因可以作为一般触点所以编程内容及其简单。
执行FNC04(EI)指令后,当输入继电器X000~X007从OFF变为ON时,特殊辅助继电器M8170~M8177通过中断处理被置位。
在FX3G PLC中,不需要FNC04(EI)指令。
(1)输入编号和特殊辅助继电器的分配(见表6-6)
表6-6 输入编号和特殊辅助继电器
①从STOP→RUN时清除。
②仅对应FX3U、FX3UC PLC。
(2)程序举例(见图6-24)
(3)使用注意事项
①为了再次读取输入,需要通过程序对被置位的软元件进行复位;因此被置位的软元件到被复位之前,不能读取新的输入。
②需要读取连续的短时间脉冲(输入信号)时,请使用外部输入中断功能或高速计数器功能。
③不需要调节滤波器的程序。
④与分别禁止中断用的辅助继电器M8050~M8055的动作无关而执行。
图6-24 程序举例
注:在5μs情况下使用脉冲捕捉功能时,以及用高速计数器读取50~100kHz的响应频率的脉冲时,请如下
所示设置:接线长度请勿超出5m;在输入端子中连接1.5kΩ(1W以上)的漏电阻,与主机的输入电
流相符合,对方一侧机器的开集电极型晶体管输出的负载电流需要在20mA以上。
(4)应用案例(自动照明控制系统)
1)系统图(见图6-25)
图6-25 自动照明控制系统
2)动作要求
大厅入口的自动照明系统,在入口处设置传感器,探知是否有人出入,控制照明在一段时间内的断路器。传感器在捕捉是否有人进出时,如人的行动很快的话,对于短信号的捕捉有可能遗漏,但是通过PLC控制,即使是一瞬间的动作也不会遗漏,对短时间信号能够迅速捕捉及进行执行。因此,通过脉冲捕捉功能可以达到准确无误的控制效果。
3)I/O分配(FX3G PLC,见表6-7)
表6-7 I/O分配
图6-26 程序
5)程序说明
程序说明见时序图,如图6-27所示。
执行中断允许指令EI(中断允许)后,当X00~X07从OFF变为ON时,特殊辅助继电器M8170~M8177通过中断处理立即置位。再次使用M8170~M8177时,需要手动复位。
8.脉宽/周期测量功能[M8075~M8083、D8074~D8097]
脉宽/周期测量功能将根据输入信号的上升沿或者下降沿,将(1/6)μs环形计数器值保存到特殊数据寄存器中。此外,将上升沿和下降沿的计数器值的差(脉宽)或者从上一次上升沿至此次上升沿的计数器值的差(脉冲周期)设定为1/60后,将脉宽(10μs单位)/脉冲周期保存到特殊数据寄存器中。
脉宽/周期测量功能通过描述以M8075为触点的程序来激活,接着使用OUT指令指定脉宽/周期测量标志位,设定使用的输入端子。
图6-27 时序图
脉宽/周期测量定功能有效时,在RUN过程中,脉宽/周期测量功能一直动作。特殊辅助继电器和特殊数据寄存器的分配,见表6-8。
表6-8 脉宽/周期测量定功能
①D8078、D8079不被更新。
②可测量脉宽最小为10μs,最大为100s。可测量脉冲周期最小为20μs。
(1)程序举例
1)脉宽测量
测量X000输入信号的脉宽,如图6-28所示。
图6-28 脉宽测量程序
2)脉冲周期测量
测量X000输入信号的脉冲周期,如图6-29所示。
时序图,如图6-30所示。
将PLC从STOP→RUN后的输入信号初次为上升沿时,或者将脉冲周期测量模式(M8080)从OFF变为ON后的输入信号初次为上升沿时,不执行脉冲周期测量。D8078、D8079不被更新。在输入信号下一次变为上升沿时,执行脉冲周期测量。D8078、D8079被更新。
图6-29 脉冲周期测量程序
图6-30 时序图
此外,脉冲输入中断时,请OFF脉宽/周期测量设定标志位1个运算周期以上。如果没OFF1个运算周期以上时,将下面[a]的周期作为脉冲周期保存。
3)信号延迟时间的测量测量X000输入信号上升沿与X001输入信号上升沿的延迟时间,如图6-31所示。
注:环形计数器为包括最高位在内的32位数据。在DSUB(FNC21)指令中,将最高位作为符号位进行处理,因此不能得到正确的值。请增加虚线内的处理。
图6-31 信号延迟时间的测量程序
(2)使用时的注意事项
①脉宽/周期测量功能和输入中断可以在同一输入端子中同时使用。
②在 脉 宽/周 期 测 量 功 能、SPD(FNC56)指 令、DSZR(FNC150)指 令、ZRN(FNC156)指令中,输入端子重复时,指令执行时会发生运算错误。
③使用了脉宽/周期测量功能的输入,就不能再使用脉冲捕捉功能。
④在脉宽/周期测量功能和高速计数器中,输入端子重复时,会发生语法错误。
⑤使用脉宽/周期测量功能时,请将输入4通道的合计频率设置在50kHz以内。
⑥将脉宽/周期测量功能和高速计数器组合使用时,将会对高速计数器的综合频率产生影响。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。