西门子plc s7-200 224cpu如何实现给用户试用期,一段时间后程序停止运行 100
展开全部
1 例如当时间达到09年6月3日20点31分20秒的时候,CPU转到停止,前提是CPU有硬件时钟,并且正确设置了时间。
LD SM0.5
EU
TODR VB0 //读取时间
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点开机
LD SM0.5
EU
TODR VB0
LDB>= VB3, 16#06
AB<= VB3, 16#20
= Q0.0
3 PLC运行一段时间停止
LD SM0.4
EU
INCD MD0 //每分钟累加一次,
LDD= MD0, 4320 //3天后CPU停止,4320=3天*24小时*60分钟
STOP //在系统块里将MD0设置为断电保持,那么计时不受停电影响,停电自动保存计时时间。
关键是如何读系统时钟:
S7-200的硬件实时时钟可以提供年、月、时、分、秒的日期/时间数据。
CPU221、CPU222没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。CPU224、CPU226和CPU226 XM都有内置的实时时钟。
为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的最小时间单位是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 指令库。
LD SM0.5
EU
TODR VB0 //读取时间
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点开机
LD SM0.5
EU
TODR VB0
LDB>= VB3, 16#06
AB<= VB3, 16#20
= Q0.0
3 PLC运行一段时间停止
LD SM0.4
EU
INCD MD0 //每分钟累加一次,
LDD= MD0, 4320 //3天后CPU停止,4320=3天*24小时*60分钟
STOP //在系统块里将MD0设置为断电保持,那么计时不受停电影响,停电自动保存计时时间。
关键是如何读系统时钟:
S7-200的硬件实时时钟可以提供年、月、时、分、秒的日期/时间数据。
CPU221、CPU222没有内置的实时时钟,需要外插“时钟/电池卡”才能获得此功能。CPU224、CPU226和CPU226 XM都有内置的实时时钟。
为了提高运算效率,应当避免每个程序周期都读取实时时钟。实际上可读取的最小时间单位是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 指令库。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询