以下是引用460629608在2011/6/5 13:49:05的发言:
要是没有特殊继电器,那怎样理解廖常初老师的《S7-300/400PLC应用技术》中的例6-3第3程序段的第三行和第四行,及例6-4中的第3程序段第三行和269页到270页的:"将程序下载到仿真PLC,进入RUN模式时,M5.4马上变为1状态,表示OB20已经下载到了CPU中。用I0.0启动延时中断后,M5.2变为1状态,延时时间到时Q4.0变为1状态,M5.2变为0状态"
廖老师的那段程序是OB20的例程,该组织块完成的功能是延时中断功能,不清楚你是否完整的看了该例子。
该例子在Network2中查询延时中断部分调用了SFC34,其STATUS引脚接驳了MW4,用于返回中断的状态。
如果你有阅读过Step7软件附带的《S7-300/400系统功能手册》中关于SFC34的章节,那么你应该可以看到:
其中的位4表示未能加载OB,也就是说,如果M5.4为1,那么就说明已经加载了延时中断组织块。
其中的位2表示延时中断未被激活或已完成,那么M5.2为1,说明正在进行延时中断。
这就解释了廖老师的那段文字,程序下载后进行RUN,系统通过SFC34查询中断状态,反馈回M5.4为1,那么说明系统已经加载OB20,如果不为1,那么廖老师没进行处理,作为程序员,你可以为程序添加不为1的处理。而M5.2为1,说明中断处于运行状态,当Q输出(也就是OB20中的程序结束时),那么中断调用结束,M5.2为0.
另: 本人使用的该书为廖老师早期版本,可能存在页码上的差异以及文字上的差异。
以上仅代表本人浅见~
Good Luck~