什么是PLC程序执行时间?如何设置?
系统执行时间
S7-1200 CPU的循环扫描时间(看门狗时间)默认为150ms,最大可修改为6000ms,如图1:
图1. 设置最大循环时间
当编程结束后,需要了解程序的循环周期,可通过如下方法查询。
将程序下载到PLC后,进行在线连接,查看路径:“在线和诊断”--->“循环时间”,如图2:
图2. 查看PLC循环时间
子程序执行时间
使用S7-1200 CPU时,若需要了解某个子程序的执行时间,依据如下方法进行编程。
首先,设置PLC系统时钟,按图3方法设置:
图3. 设置PLC系统时钟
接着,创建数据块DB1,块名称为“time”,并创建变量,如图4:
图4. 创建数据块
注:若选择“已优化”DB块,则创建的DB块变量不显示“偏移量”列,后续程序中变量则为符号寻址。
然后,在OB1中编程,读取子程序执行前、后的系统时间,再运用指令 T_DIFF 做时间相减。
如下例程中测试了“块_1(FC1)”子程序的执行时间,如图5:
图5. 子程序执行时间例程
最后,通过监控表查看该子程序的执行时间,如图6:
常问问题
为何程序下载完毕后PLC无法运行,PLC诊断信息中出现“超出最大程序循环时间”?
可能的原因:
1、程序过长,执行时间超过设置的最大循环时间;
2、程序中有死循环程序导致执行时间超过最大循环时间;
3、定时中断程序的执行时间大于所设定的定时间隔时间,导致定时中断事件缓冲区溢出而停机。
电气相关知识和经验是用来分享,希望本文能对你有帮助。与人玫瑰,手留余香。
欢迎大家关注,点赞,评论及转发。
西门子PLC的系统时间设置,这样学习很简单,早晚会用到,收藏吧
原创不易,请勿抄袭!
序:在工业应用中,很多时候我们需要使用PLC的日期与时间,比如在发生故障的时候需要追溯事件记录,然后分析故障原因,那么精确的时间就会使得追踪很方便;或者因为一些冬夏时至的功能控制发生了变化;或者我们需要在非常精确的现实时间点启动或者停止PLC命令等等。所以我们就需要读取PLC的日期时间并且在需要的时候对PLC的时间进行校准。
很多人觉得西门子日期格式很复杂,只是因为这些格式没有被系统的放在一起进行比较,通过本文的学习可以看出,西门子的日期格式虽然看起来复杂,但使用起来很方便,只要使用过一次后就可以对他们非常了解。
一 西门子S7-200/200smart系列
这系列的读取和写入指令非常简单,运用一个指令并填写地址即可,数据有固定格式。
二 S7-300/400、S1200、S1500系列
这一系列PLC的日期和时间数据类型较为复杂,包括;1日期( Date)、2日时间(Time_Of_ Day)、3长日时间LTOD (LTime_Of_Day)、4日期时间DT( Date_And_Time)、5日期长时间LDT (Date_And_LTime)、6长日期时间DTL。
对于西门子S7-300/400,S1200,S1500这些数据类型不是通用的。
其中“X”号为包含在该系统下
我们需要弄清这些日期格式
(1)日期 DATE
数据类型将日期作为无符号整数保存。数据中包括年、月和日;
数据类型 DATE 的操作数为十六进制形式,对应于自 01-01-1990 以来的日期值 (16#0000)。变量内容用距离1990年1月1日的天数以整数格式进行表示。常数格式为日期前加D#,例如D#2168 - 12-31表示的日期为2168年12月31日,相应变量的内容为W#16#FF62。下表列出了Date数据类型的属性。
DATE数据属性
(2)日时间 (Time_Of_ Day)
TOD (TIME_OF_DAY) 数据类型占用一个双字,存储从当天 0:00 h 开始的毫秒数,为无符号整数,常数表示格式为时间前加TOD#。
Time_Of_ Day数据属性
(3)长日时间 LTOD (LTime_Of_Day)
长日时间LTOD( LTime_Of_Day)数据类型占用2个双字,存储从当天0:00开始的纳秒数,为无符号整数。纳秒级的数据,只有S1500系列才拥有。
(4)日期时间 DT( Date_And_Time)
日期时间DT( Date_And_Time)数据类型存储日期和时间信息,格式为BCD。
(5)日期长时间 LDT (Date_And_LTime)
日期长时间LDT( Date_And_LTime)数据类型可存储自1970年1月1日0:00以来的日期和时间信息(单位为纳秒)。
(6)长日期时间 DTL
长日期时间( DTL)数据类型的操作数长度为12 个字节,以预定义结构存储日期和时间信息。
DTL数据类型的结构由几个部分组成,每一部分都包含不同的数据类型和取值范围。指定值的数据类型必须与相应元素的数据类型相匹配。表5-18给出了DTL数据类型的结构组成。
今天和大家分享一下数据格式;
下篇文章我会和大家分享具体的西门子PLC读取和写入日期和时间的实例以及注意事项。
喜欢的话请点赞并分享,您的支持是我坚持下去的动力!送人玫瑰,手有余香!
相关问答
PLC编程时间怎么设置以小时为单位?
很多小型PLC如西门子S7-200、三菱FX2N等并不提供以小时(或大于小时)为时基的定时器。这些PLC提供的指令最大只有100ms*32767,也就是约3200杪左右,不到一小时...
plc如何修改时间?
要修改PLC的时间,您需要访问PLC的编程界面或配置界面。在界面中,您可以找到一个选项来修改时间设置。通常,您可以输入日期和时间,然后保存更改。某些PLC还可...
plc通信为什么设置时间?
如果你不设置系统时钟,系统运行时,默认时钟是2001-1-100:00:00开始计时(具体时间不同版本PLC不同),所以你要设置系统时间与计算机的时间一致,保持同步。...
plc系统时间如何手动写入?
时间写入指令,即通过PLC将我们校准的数据写入到系统特殊寄存器中,使用TWR指令。往往新的PLC内部时钟是不对的,我们需要更新网络时钟,以上为一种方法,可以随...
S71200PLC如何设置时间为24小时制?
很多小型PLC如西门子S7-200、三菱FX2N等并不提供以小时(或大于小时)为时基的定时器。这些PLC提供的指令最大只有100ms*32767,也就是约3200杪左右,不到一小时...
plc周期指令?
首先我们说下PLC的运算周期,也就是扫描时间,PLC从上到下对程序扫描指导END指令,对所有的状态进行更新,每个运算周期后都会更新一次,在这个周期内,无论状态...
plc内部时钟可以计时吗?
PLC可以用来做计时器,例如,欧姆龙CPM1APLC有128个定时器和计数器,细分有普通计时器和高速计时器,计时器和计数器组合起来使用可以做计时开关,要看显示剩余...
三菱plc如何编写周期时间程序?
在三菱PLC中编写周期时间程序通常需要使用定时器(Timer)和循环控制指令,例如MitsubishiPLC的MELSEC系列。首先,设定一个定时器来设定周期时间长度,然后在循...
Plc时间是多少进制?
PLC时间通常是以二进制表示的,即每个时间单元可以用二进制数来表示。这种表示方法在控制系统中很常见,因为它能够更好地与计算机系统配合。而且,二进制表示方...
plc周期工作方法?
PLC在运行状态时,执行一个扫描操作所需要的时间为一个周期,这个是PLC的重要指标之一,其值为0.5~100ms。扫描周期T=(输入—点时间*输入端子数)+(指令执行速...