浔之漫智控技术(上海)有限公司总部
主营西门子模块 , PLC模块 , 变频器模块 , 触摸屏模块
S7-200程序指令中断

中断编程准则

中断例程执行 执行中断例程执行时会响应关联的内部或外部事件。 执行了中断例程的后一个指令之 后,控制会在中断时返回到扫描周期的断点。 您可以通过执行“从中断有条件返回指 令”(CRETI) 退出例程。 中断处理可快速响应特殊内部或外部事件。 可优化中断例程以执行特定任务,然后将控 制权返回到扫描周期。

说明 

• 中断例程中不能使用中断禁止 (DISI)、中断启用 (ENI)、高速计数器定义 (HDEF) 和结 束 (END) 指令。 • 应保持中断例程编程逻辑简短,这样执行速度会更快,其它过程也不会延迟很长时 间。 如果不这样做,则可能会出现无法预料的情形,从而导致主程序控制的设备异常 运行。

中断的系统支持 

由于中断能影响触点、线圈和累加器逻辑,所以系统会保存并重新装载逻辑堆栈、累加器 寄存器以及用于指示累加器和指令操作状态的特殊存储器位 (SM)。 这样可避免因进入和 退出中断例程而导致用户主程序中断。

从中断例程调用子例程

可从中断例程中调用四个嵌套级别的子例程。 累加器和逻辑堆栈在中断例程和从中断例 程调用的四个嵌套级别子例程之间共享 

主程序和中断例程共享数据 

可在主程序和一个或多个中断例程之间共享数据。 由于无法预测 CPU 何时生成中断,所 以好限制中断例程和程序中的其它位置使用的变量数。 如果在主程序中执行指令时被 中断事件中断,中断程序的操作可能会导致共享数据出现一致性问题。 使用中断块“变量 表”(块调用接口表)可确保中断例程仅使用临时存储器,从而不会覆盖程序其它位置使 用的数据。

确保对单个共享变量的访问 

● 对于共享单个变量的 STL 程序: 如果共享数据是单字节、字或双字变量并且程序以 STL 编写,则通过将对共享数据进行运算所得的中间值仅存储在非共享存储单元或累 加器可确保正确的共享访问。 ● 对于共享单个变量的 LAD 程序: 如果共享数据是单字节、字或双字变量并且程序以 LAD 编写,则通过规定仅使用传送指令(MOVB、MOVW、MOVD、MOVR)访问共 享存储单元可确保正确的共享访问。 许多 LAD 指令都是由 STL 指令的可中断序列组 成,但这些传送指令却是由单个 STL 指令组成,单个 STL 指令的执行不受中断事件的 影响。

确保对多个共享变量的访问

对于共享多个变量的 STL 或 LAD 程序: 如果共享数据由许多相关的字节、字或双字组 成,则可使用中断禁用/启用指令(DISI 和 ENI)来控制中断例程的执行。 在主程序中即 将对共享存储单元开始操作的点,禁止中断。 所有影响共享位置的操作都完成后,重新 启用中断。 在中断禁用期间,无法执行中断例程,因此无法访问共享存储单元;但此方 法会导致对中断事件的响应发生延迟。

发布时间:2023-11-04
展开全文
优质商家推荐 拨打电话