西门子s7-200时间设定读取编程实例

来源:电工天下时间:2015-10-18 05:54:48 作者:老电工手机版>>

西门子s7-200时间设定读取编程实例

读实时时钟(todr)指令从硬件时钟中读当前时间和日期,并把它装载到一个8字节,起始地址为t的时间缓冲区中。写实时时钟(todw)指令将当前时间和日期写入硬件时钟,当前时钟存储在以地址t开始的8字节时间缓冲区中。

必须按照bcd码的格式编码所有的日期和时间值(例如:用16#97表示1997年)。时间缓冲区(t)的格式:t:年00~99;t+1:月01~12;t+2:日01~31;t+3:小时00~23;t+4:分钟00~59;t+5:秒00~59;t+6:0;t+7:0~7。对于星期表示法,1表示星期日,7表示星期六,0禁止星期表示法。

时间日期(tod)时钟在电源掉电或内存丢失后,初始化为下列日期和时间:日期:01--jan--90;时间:00:00:00;星期:星期日。

s7-200 cpu不会检查和核实日期与星期是否合理。

无效日期february 30(2月30日)可能被接受。

故必须确保输入的数据是正确的。不要同时在主程序和中断程序中使用todr/todw指令。如果这样做,而在执行tod指令时出现了执行tod指令的中断,则中断程序中的tod指令不会被执行。sm4.3指示了试图对时钟进行两个同时的访问(非致命错误0007)。s7-200 plc只使用年信息的后两位,不会受到世纪跨越的影响。

但是,用到年份进行计算或比较的用户程序必须考虑两位的表示方法和世纪的变化。在2096年之前可以进行闰年的正确处理。

西门子s7-200设定与读取时间的程序实例。
 

复制代码 代码示例:
organization_block main:ob1
title=程序注释
begin
network 1 // 将当前时间设定到s7-200当中
//vb100:年  vb101:月  vb102:日  vb103:时  vb104:秒  vb107:星期  
// 将当前时间移动到vb100--vb107
ld     m0.0
movb   16#09, vb100
movb   16#03, vb101
movb   16#26, vb102
movb   16#09, vb103
movb   16#30, vb104
movb   16#0, vb105
movb   16#0, vb106
movb   16#04, vb107
network 2 // 通过m0.0的一个上升沿将上一步设定的时间写入到s7-200的时钟当中。
// 当m0.0出现一次上升沿,将上面所设定的时间写入到plc当中
ld     m0.0
eu
todw   vb100
network 3 // 设定时间后,可以通过这句话实时读取plc当中的时间
// 从plc中读出当前的时间
ld     sm0.0
todr   vb110
network 4 // 将读到的结果从bcd码格式转换到整数格式。
//vw200:年  vw202:月  vb102:日  vb103:时  vb104:秒  vb107:星期 
// 将当前时间移动到vb100--vb107
ld     sm0.0
lps
bti    vb110, vw200
aeno
bcdi   vw200
lrd
bti    vb111, vw202
aeno
bcdi   vw202
lrd
bti    vb112, vw204
aeno
bcdi   vw204
lrd
bti    vb113, vw206
aeno
bcdi   vw206
lrd
bti    vb114, vw208
aeno
bcdi   vw208
lrd
bti    vb115, vw210
aeno
bcdi   vw210
lrd
bti    vb116, vw212
aeno
bcdi   vw212
lpp
bti    vb117, vw214
aeno
bcdi   vw214
end_organization_block
相关文章
  • 西门子s7-200同一数据源不同时间的比较方法

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

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

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

  • 西门子plc cpu模块中断(lnterrupts)设定的分类

    西门子plc cpu模块中断(lnterrupts)设定的分类

    西门子plc cpu模块中断(lnterrupts)设定的分类,包括硬件中断(Hardware Interrupts)设定、延时中断(Time-Delay Interrupts)设定、PROFIBUS-DP中断(lnterrupts for DPVl)设定、异步出错中断(Asynchronous Error Interrupts)设定。

    时间:2020-04-25 13:50:53

  • 西门子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

  • 【图】西门子plc程序结构显示与设定方法

    【图】西门子plc程序结构显示与设定方法

    西门子plc程序结构显示与设定方法,利用程序结构显示查看用户程序内的所有组成块的分层调用情况、调用结构等,对部分程序结构进行检查,可以使用step7的过滤器功能进行筛选、设定。

    时间:2020-03-10 10:45:11

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

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

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

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

推荐文章

Copyright © 2015 - 2022 dgjs123.com All Rights Reserved

电工天下 版权所有