定时功能
郑志武
发布于2013-11-17 22:04
42
0
标签:
我需要程序运行2个月就不能运行需要怎么用定时器和计数器
佳答案
1例如当时间达到09年6月3日20点31分20秒的时候,cpu转到停止,前提是cpu有硬件时钟,并且正确设置了时间。
ldsm0.5
eu
todrvb0//读取时间
ldb>=vb0,16#09//读取的时间是bcd码,这样用省去格式转换
ab>=vb1,16#06
ab>=vb2,16#03
ab>=vb3,16#20
ab>=vb4,16#31
ab>=vb5,16#20
stop
2如果定时开启关闭外部设备,那plc可以轻松完成。
例如每天早上6点到晚上8点开机
ldsm0.5
eu
todrvb0
ldb>=vb3,16#06
ab<=vb3,16#20
=q0.0
3plc运行一段时间停止
ldsm0.4
eu
incdmd0//每分钟累加一次,
ldd=md0,4320//3天后cpu停止,4320=3天*24小时*60分钟
stop//在系统块里将md0设置为断电保持,那么计时不受停电影响,停电自动保存计时时间。
关键是如何读系统时钟:
s7-200的硬件实时时钟可以提供年、月、时、分、秒的日期/时间数据。
cpu221、cpu222没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。cpu224、cpu226和cpu226xm都有内置的实时时钟。
为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的小时间单位是1秒,可每秒读取一次(使用sm0.5上升沿触发读取指令)。
使用程序读取的实时时钟数据为bcd格式,可在状态图中使用十六进制格式查看。
cpu靠内置超级电容(+外插电池卡)在失去供电后为实时时钟提供电源缓冲;缓冲电源放电完毕后,再次上电后时钟将停止在缺省值,并不开始走动。
要设置日期、时间值,使之开始走动,可以:
用编程软件(micro/win)的菜单命令plc>timeofdayclock...,通过与cpu的在线连接设置,完成后时钟开始走动
编用户程序使用set_rtc(设置时钟)指令设置
micro/win可以通过任何编程连接实现实时时钟的设置。
使用s7-200的read_rtc(读取实时时钟)和set_rtc(设置实时时钟)指令时,读取和设置的数据格式都是bcd码的。如果觉得不便计算、处理,可使用clockinteger指令库。
要使用clock_integer指令库,须遵循下列步骤:
请见《《西门子s7-200·logo!·sitop参考》v0.92版(更新版)(2008.02.15)》,其中有关如何读系统时钟及如何添加库指令的说明,下载:
https://www.ad.siemens.com.cn/download/searchresult.aspx?searchtext=a0136
参考资料:https://www.ad.siemens.com.cn/service/answer/solution.aspx?q_id=97758&cid=1028