首先得清楚S7系列plc程序执行的过程,如下图所示。
- PLC得电或由STOP模式切换到RUN模式时,CPU起动,同时清除没有保持功能的位存储器、定时器、计数器,清除中断堆栈和块堆栈的内容,复位保存的硬件中断等。
- 执行“系统起动组织块”OB100,该组织块可以自定义编程,实现一些初始化的工作;
- 系统进入周期扫描,并起动循环时间监控;
- CPU将输出过程映像区的数据写入输出模块;
- 读取输入模块的状态,并写入输入过程映像区;
- CPU调用OB1,执行用户程序,期间,根据需要可调用其他逻辑块(FB、SFB、FC及SFC),来实现控制任务;
- 在循环结束时,操作系统执行所有挂起的任务,例如下载和删除块、接收和发送全局数据等;
- CPU重新启动循环时间监控,开始新的循环;
- 9、在执行用户程序的过程中,如果有中断事件发生,当前执行的块将暂停执行,转而执行相应的组织块,来响应中断。该组织块执行完成后,之前被暂停的块将从中断的地方继续开始执行。OB1具有很低的优先级,除了OB90外,所有的组织块都能中断OB1。