用s7200控制一个灯 周一到周五7:00到17:00关闭 其余时间打开。周六日全天打开。
最佳答案
关键是如何读系统时钟:
S7-200的硬件实时时钟可以提供年、月、时、分、秒的日期/时间数据。
CPU221、CPU222没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。CPU224、CPU226和CPU226 XM都有内置的实时时钟。
S7-200的时钟精度典型值是2分钟/月(25°C),最大误差7分钟/月(0 - 55°C)。
为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的最小时间单位是1秒,可每秒读取一次(使用SM0.5上升沿触发读取指令)。
使用程序读取的实时时钟数据为BCD格式,可在状态图中使用十六进制格式查看。
CPU靠内置超级电容(+外插电池卡)在失去供电后为实时时钟提供电源缓冲;缓冲电源放电完毕后,再次上电后时钟将停止在缺省值,并不开始走动。
要设置日期、时间值,使之开始走动,可以:
用编程软件(Micro/WIN)的菜单命令PLC > Time of Day Clock...,通过与CPU的在线连接设置,完成后时钟开始走动
编用户程序使用Set_RTC(设置时钟)指令设置
Micro/WIN可以通过任何编程连接实现实时时钟的设置。
使用 S7-200 的 READ_RTC(读取实时时钟)和 SET_RTC(设置实时时钟)指令时, 读取和设置的数据格式都是 BCD 码的。如果觉得不便计算、处理,可使用 Clock Integer 指令库。
Clock_Integer 指令库用于将 BCD 码格式的 S7-200 日期、时间转换为十进制整数格式,以及将十进制整数格式的日期、时间值设定为 S7-200 时钟。
要使用 Clock_Integer 指令库,须遵循下列步骤:
取得 Clock_Integer 指令库文件,并添加到编程软件 STEP 7-Micro/WIN 中;
按照要求编写用户程序调用 Clock_Integer 指令库。
请见《《西门子 S7-200·LOGO!·SITOP 参考》V0.92版(更新版)(2008.02.15) 》,其中有关如何读系统时钟及如何添加库指令的说明,下载:
http://www.ad.siemens.com.cn/download/searchResult.aspx?searchText=A0136
引用:计数器C0控制停机,VB0至VB7存实时时钟值,VB3为小时数,每天1点正,C0加1,当C0=365时停机。M0.0位为复位位
LD SM0.0
TODR VB0
A C0
STOP
LDB= VB3, 1
EU
LD M0.0
CTU C0, 365
注意关机断电保持问题(例子仅供参考,可根据自已实际情况修改使用)
提问者对于答案的评价:
谢谢
专家置评
大家的答案都不错!
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc299708.html