【图】西门子plc cpu扫描周期监视时间与程序扫描时间

来源:电工天下时间:2015-10-25 22:40:03 作者:老电工手机版>>

一、cpu扫描周期监视时间与程序扫描时间

问题:程序循环执行500次,需要多长时间?cpu的扫描周期时间是150ms,有可能超出cpu的监控时间而报故障嘛?CPU扫描一个network1的时间是多少?用的是CPU 315-2DP。

cpu扫描周期监视时间与程序扫描时间1

cpu扫描周期监视时间与程序扫描时间2

解答:

1、程序循环执行500次,想请问下这样需要多长时间?

如果cpu的扫描周期时间是150ms,程序循环执行500次,则是150ms X 500的关系。

2、有可能超出cpu的监控时间而报故障嘛?

如果启用了看门狗功能,则报故障。

3、cpu扫描一个network1的时间是多少?用的是CPU 315-2DP。

一个network1的指令数量是可变的,其扫描时间是指令数量的函数。

用户不需顾及一条指令、一个程序段的扫描时间。注意一个周期的扫描时间。可以通过OB1 的临时变量确定其循环周期。

相应的临时变量已存储于 OB1 声明变量部分并各对应不同的局部地址字。

详见:
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&objId=24558650&load=treecontent&lang=zh&siteid=cseus&aktprim=0&objaction=csview&extranet=standard&viewreg=CN

-- 分隔线 ---

程序循环执行500次,需要的时间与循环间代码的多少有关。
建议自己写好代码后,联机测试或者PLCSIM仿真以下,可得到响应的数据。

PLC工作过程包括两部分:

自诊断及通信响应的固定过程和用户程序执行过程.PLC在每次执行用户程序之前,都先执行故障自诊断程序、复位、监视、定时等内部固定程序,若自诊断正常,继续向下扫描,然后PLC检查是否有与编程器、计算机等的通信请求。如果有与计算机等的通信请求,则进行相应处理。

当PLC处于停止(STOP)状态时,只循环进行前两个过程。而在PLC处于运行(RUN)状态时,PLC从内部处理、通信操作、输入扫描、执行用户程序、输出刷新五个工作阶段循环工作。

每完成一次以上五个阶段所需要的时间称为一个扫描周期。

扫描周期的长短没有决定因素,任何一个因素都会造成周期的长与短:我觉得一般有以下几个因素
1)你写的程序的长短。
2)PLC的CPU的性能。
3)挂接通讯设备的多少。

参考 利用临时变量确定OB1的循环时间
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&objId=24558650&load=treecontent&lang=zh&siteid=cseus&aktprim=0&objaction=csview&extranet=standard&viewreg=CN

这能有多少时间,不就3个指令(1个加法指令、1个比较指令和1个跳转指令。)
315-2dp(2AG10)正常的是1000个指令约0.1ms(新cpu(2AH14)0.05ms),所以用不了几个毫秒的。
150ms是cpu监控时间,只要cpu的一个循环时间不超过150ms都没有问题,所以根本不需要担心。
一个network的时间和你这个network里写的程序量有关,正常315cpu你就按1000个指令约0.1ms来算吧。

二、s7-300的扫描时间显示方法

可以采用把你的电脑连接到CPU上,在SIMATIC管理器中打开你的项目,选择菜单PLC/Module Information(模块信息),打开CPU的模块信息对话框,选择Scan Cycle Time“扫描循环时间)子项,可以在线检查所选择的CPU的最小循环时间、最大循环时间和当前循环时间。

可以打开你的硬件组态界面,双击CPU,选择”Cycle/Clock Memory(循环/时钟存储器)子项,检查你设定的“Scan Cycle Monitoring Time (ms)(循环扫描监视时间),它是组态的最大扫描循环时间,一个扫描周期如果超过了这个时间,CPU就会进入停机状态。

如果最长时间大于上面组态的最大循环时间(即循环扫描监视时间),由于循环时间的波动可能产生时间错误,此时应增大设置的用户程序最大循环时间(循环扫描监视时间)。

三、如何修改西门子300的扫描周期时间?

在主站用315DP、从站是314DP网络中,采集同一个接近开关(采集频率30000/H)从站采集可以达到29997以上,主站只能采集到29950左右,主站程序量比较大(输入卡是一样的)。
请问这问题可以用修改PLC的扫描周期时间去解决吗?

plc的扫描周期与cpu的主频和程序的大小有关。是不可以修改的。
根据程序的大小 ,扫描周期在几个毫秒到100个毫秒之间。

采样频率为30000/h也就是1秒有8.3个脉冲。按9个脉冲算。这样的话,你的cpu必须在1秒内运行18个周期才可以完全统计这些脉冲。也就是扫描周期要在55毫秒内。

因为cpu运行要处理各种事件,每一次的扫描时间也不尽相同。因此才会有脉冲不相同或漏计现象。

解决办法:
采用高速计数模块。
采用带输入中断的di模块。用上升沿中断计数。
在程序中采用定时中断。ob30-ob38为循环中断。将其中一个ob的时间改成你的需要的时间。比如将ob37改成40ms.然后将计数程序移入ob37。

注意,不可再直接使用缓冲区的地址。因为这个地址的状态更新时间受扫描周期的影响。需要直接读通道地址的状态。比如通道地址为i1.0。则正确的方法为:
l pib1
t mb1
然后在ob37中对m1.0计数即可。

四、西门子300plc运行时,如何查看扫描周期?

1、电脑连接到cpu上,在simatic管理器中打开你的项目,选择菜单plc/module information(模块信息),打开cpu的模块信息对话框,选择scan cycle time“扫描循环时间)子项,可以在线检查所选择的cpu的最小循环时间、最大循环时间和当前循环时间。

2、可以打开硬件组态界面,双击cpu,选择”cycle/clock memory(循环/时钟存储器)子项,检查你设定的“scan cycle monitoring time (ms)(循环扫描监视时间),它是组态的最大扫描循环时间,一个扫描周期如果超过了这个时间,cpu就会进入停机状态。

五、如何知道整个程序扫描完的时间?

想自己编采样功能块FB,必须知道CPU扫描完一次整个程序得需要多少时间,但不知道怎样才能够知道这个扫描时间,怎么办?

参看附图说明,2种办法帮你解决问题。

整个程序扫描完的时间3

整个程序扫描完的时间4

大家还可以参考如下答案:

OB1里面 有3个临时变量,CYCLE_TIME_MIN,CYCLE_TIME_MAX,CYCLE_TIME_PREV。分别代表OB1最小扫描时间,OB1最大扫描时间,和上一次OB1的扫描时间,你可以吧上一次扫描时间,移到DB块里,供你的采样程序用。不过定时采样最好在循环中断里面编写程序,比如OB35。

1、可以采用把你的电脑连接到CPU上,在SIMATIC管理器中打开你的项目,选择菜单PLC/Module Information(模块信息),打开CPU的模块信息对话框,选择Scan Cycle Time“扫描循环时间)子项,可以在线检查所选择的CPU的最小循环时间、最大循环时间和当前循环时间。

2、在OB1临时变量提供上次扫描周期、本次开机最大扫描周期、最小扫描周期等信息:
 OB1_PREV_CYCLE//前一循环的时间,单位ms
 OB1_MIN_CYCLE//OB1的最小扫描时间,单位ms
 OB1_MAX_CYCLE//ob1的最大扫描时间,单位ms

相关文章
  • 西门子s7-200同一数据源不同时间的比较方法

    西门子s7-200同一数据源不同时间的比较方法

    西门子s7-200同一数据源不同时间的比较方法,问题:s7-200同一数据源不同时间怎么比较?同一个地址在不同的时间下获取的数值,然后把这些数值进行比较。

    时间:2021-10-23 07:06:27

  • 西门子s7-300定时器的剩余时间参与比较的方法

    西门子s7-300定时器的剩余时间参与比较的方法

    西门子s7-300定时器的剩余时间参与比较的方法,要求剩余时间值与5s比较,所以MW10中BI剩余时间值应与50(单位为100ms,即5s)比较,在脉冲定时器定时时断开输入端,剩余时间值保持不变。

    时间:2020-04-23 10:19:13

  • 西门子s7-300子程序执行时间的是多少

    西门子s7-300子程序执行时间的是多少

    有关西门子s7-300执行子程序时间的查看方法,分享了西门子s7-300执行子程序时间的具体查看步骤,可在主程序调用该子程序的前后分别读取cpu的系统时钟,利用时钟指令fc34进行相减进行编程运算。

    时间:2020-04-08 13:32:13

  • 西门子s7-300 cpu系统扫描循环时间的查看办法

    西门子s7-300 cpu系统扫描循环时间的查看办法

    如何查看西门子s7-300中cpu系统扫描循环时间,有二种方法,方法1:将程序下载到plc中,在线连接并查看cpu信息,方法2:通过将OB1对应的临时变量传到M区中,读取CPU的扫描循环时间。

    时间:2020-04-08 11:52:20

  • 西门子s7-300中cpu扫描时间过长系统停机怎么办?

    西门子s7-300中cpu扫描时间过长系统停机怎么办?

    西门子s7-300中cpu扫描时间过长导致系统停机的解决方法,CPU会因看门狗超时而导致系统停机,同时会触发定时错误OB80,可以参考下本文的解决方法与步骤。

    时间:2020-04-08 11:51:37

  • 【问答】西门子s7-300定时器的剩余时间参与比较的问题

    【问答】西门子s7-300定时器的剩余时间参与比较的问题

    西门子s7-300定时器的剩余时间参与比较的问题,定时器的bi是十六进制数剩余时间值,bcd端输出的是s5t#格式的bcd码,用bi输出值参与比较会方便。

    时间:2020-03-09 10:03:01

  • 西门子plc S7300定时器剩余时间

    S7300定时器剩余时间

    西门子plc S7300定时器剩余时间,西门子S7-300定时器的设定时间为S5T#10S,其剩余时间值要和5s比较,MW10中BI剩余时间值应与50比较。

    时间:2016-05-30 10:24:52

  • 【图】西门子plc二分频电路图及扫描周期

    西门子plc二分频电路

    有关西门子plc二分频电路图的知识,介绍了二分频电路的扫描周期与分析程序,PLC运行过程就是不断的一次又一次的从头到尾的询问判断每一个指令,即循环扫描。

    时间:2015-11-29 02:20:51

推荐文章

Copyright © 2015 - 2022 dgjs123.com All Rights Reserved

电工天下 版权所有