如何读取S7-300/400CPU的扫描周期时间?

如何避免CPU扫描时间过长导致CPU系统停机?

S7-300CPU的看门狗时间默认为150ms,最大值可以设置6000ms。如果用户程序的执行时间大于硬件组态中所设定的CPU的扫描周期的监控时间,则CPU会因看门狗超时而导致系统停机,同时会触发定时错误OB80。

操作步骤:在“SIMATICManager”编程软件中的硬件组态“HWConfig”的机架中双击组态好的S7-300的CPU中,在弹出的属性对话框中选中“周期/时钟存储器”,然后修改“扫描周期监视时间(ms)”,该时间的取值范围为1-6000ms。如图所示:

如何读取S7-300/400CPU的扫描周期时间?

如何查看S7-300CPU的系统扫描循环时间?

方法1:将程序下载到PLC中,然后进行在线连接,然后查看CPU的信息。

操作步骤:将“SIMATIC300站点”下载到PLC中,然后在菜单栏中选择“PLC”-“诊断/设置”-“模块信息”。如下图所示:

如何读取S7-300/400CPU的扫描周期时间?

然后在弹出的模块信息窗口中点击“扫描循环时间”。

如何读取S7-300/400CPU的扫描周期时间?

方法2:通过将OB1对应的临时变量传到M区中,即可读取CPU的扫描循环时间。如下图:

如何读取S7-300/400CPU的扫描周期时间?
如何读取S7-300/400CPU的扫描周期时间?

如何查看执行S7-300中一个子程序大概需要多长时间?

使用S7-300/400CPU时,如果工程师需要了解某个子程序大约执行的时间,可在主程序调用该子程序的前后分别读取CPU的系统时钟,然后利用时钟指令FC34进行相减进行编程运算。

操作步骤:首先,先设置CPU的系统时钟,在菜单栏中的“PLC”-“诊断/设置”-“设置时钟”

如何读取S7-300/400CPU的扫描周期时间?

然后在弹出的设置时钟窗口中点击“应用”。

如何读取S7-300/400CPU的扫描周期时间?

创建一个符号名为“Time”数据块(DB),并创建如下变量。

在需要测试的子程序首尾网络中读取系统调用读取系统时钟SFC1,然后运用时钟相减指令FC34进行计算。

操作步骤:在OB1中打开“库”-“StandardLibrary”-“System Function Blocks”中调用“SFC1 Read CLK FUNC”。

如何读取S7-300/400CPU的扫描周期时间?

接着调用打开“库”-“StandardLibraray”-“IEC Function Blocks”中调用“SFC 34 SB_DT_DTIEC”。然后进行如下操作:

如何读取S7-300/400CPU的扫描周期时间?
如何读取S7-300/400CPU的扫描周期时间?


分享到:


相關文章: