首先理解 "中断的原理",再去理解中断的编程方法。
这里做个比喻:
你正在一口一口的吃饭,突然手机响了,你停止吃饭,开始接手机;接完手机后 继续一口一口的吃饭。
这就是一个中断的过程。
正常情况下PLC的程序是 按顺序扫描执行的,按照从上到下,从左到右的顺序循环执行。
当出现一个中断信号时,PLC 就停止当前的“顺序扫描执行”,去执行“中断服务子程序”;当“中断服务子程序”执行完毕后,在从刚刚中断的位置 开始按顺序扫描执行。
不同厂家的PLC 中断编程方式有些差异,但是原理是相同的。
“中断子程序” 一般都是用来处理一些“紧急事件”
中断事件类型分 “内部中断事件”和“外部中断事件”两种类型。
举例:
比如生产塑料管的生产线,需要计米,当管子到达需要的长度后,需要马上切断,不能有延时,否则就会产生误差。这种情况就需要用到“中断”编程来处理。
希望我的回答 能对你有些帮助,很高兴和你一起讨论和学习。因为篇幅有限,这里不能说的更详细期待你的理解和支持。
意义:
中断相当于子程序,子程序相当于主程序,说起来 PLC里的中断平时根本没什么用。这么说,像告诉脉冲处理,不用中断,只用1MS的计时能实现其功能,但是却没有中断计时来的精确,毕竟不用中断,程序扫瞄受扫描周期束缚。
但有些程序,必需要用到中断,典型的就是PID,检测读取周期必须精确。不管是以前自己编PID中断程序,还是现在集成的PID中断程序块,都使用到了精确的时间控制,立即处理信息的中断。
标准电信号、数字量之间的转换就要用到各种运算。这就需要搞清楚模拟量单元的分辨率以及标准的电信号。
例如: PLC模拟单元的分辨率是1/32767,对应的标准电量是0—10V,所要检测的是温度值0—100℃。那么0—32767对应0—100℃的温度值。然后计算出1℃所对应的数字量是327.67。如果想把温度值精确到0.1℃,把327.67/10即可。
扩展资料:
PLC的工作方式为:
循环扫描:也就是从程序的首端到底端、从左端到右端,逐行扫描,不断地重复!
PLC控制器数字量输出类型分为:继电器输出、晶体管输出和晶闸管输出三种类型。
1 继电器输出
不同公共点之间可带不同的交、直流负载,且电压也可不同,带负载电流可达2A/点;但继电器输出方式不适用于高频动作的负载,这是由继电器的寿命决 定的。其寿命随带负载电流的增加而减少,一般在几十万次至几百万次之间,有的公司产品可达1000万次以上,响应时间为10ms。
2 晶体管输出
适应于高频动作,响应时间短,一般为0.2ms左右,但它只能带 DC 5—30V的负载,最大输出负载电流为0.5A/点,但每4点不得大于0.8A。
3 晶闸管输出
晶闸管(可控硅)带负载能力为0.2A/点,只能带交流负载,可适应高频动作,响应时间为1ms。
参考资料:百度百科——PLC系统
中断连接指令(ATCH)使中断事件(EVNT)与中断程序号码(INT)相联系,并启动中断事件。根据指定事件优先级组,PLC按照先来先服务的顺序对中断提供服务。
任何时刻只能激活一个用户中断。其它中断处于激活状态时,CPU发出中断暂时入队,等待以后处理。如果发生的中断数目过多,队列无法处理,则设定队列溢出状态位。当队空时,重置这些位。
中断程序必须由三部分构成:中断程序标号(即中断事件的编号)、中断程序指令和无条件返回指令。在中断程序中不能使用DISI、ENI、HDEF、LSCR和END指令。
扩展资料:
中断优先级
给中断源指定处理的次序就是给中断源确定中断优先级。中断按以下固定的优先级顺序执行:通信(最高优先级)、I/O中断和定时中断(最低优先级)。在上述3个优先级范围内,CPU按照先来先服务的原则处理中断,任何时刻只能执行一个用户中断程序。
如果发生中断过于频繁,使中断产生的速率比可处理的速率快,或中断被DISI指令禁止,中断队列溢出状态位被置1。只应在中断程序中使用这些位,因为当队列变空或返回主程序时,这些位会被复位。
参考资料:百度百科-中断指令
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)