中央空调改时间控制启停西门子1200PLC和TP900触摸屏模拟仿真程序博途V16
【手把手玩转中央空调时间控制】最近在车间搞了个挺有意思的改造——用西门子1200PLC配TP900触摸屏实现中央空调的定时启停。今天就把实战过程扒给大家看看,连仿真都给你跑通了,记得自己备好咖啡。
先甩个核心思路:在PLC里搞个实时时钟,HMI上做两个时间设置框,让设备按设定时间自动开关机。听着简单?魔鬼都在细节里。
Step1:给PLC装个电子表
打开博途V16先整PLC的时钟同步。在OB1里塞这段:
"Clock_Data".ReadLocalTime(REQUEST:=#Start_Read, CDT=>#Current_Time);这行代码相当于给PLC装了块电子表,REQUEST触发后就能读取当前时间。重点注意CDT输出的数据结构是个包含年月日时分秒的结构体,后面做时间比较全靠它。
Step2:时间比较玩起来
在DB块里建两个TIMEOFDAY类型变量:StartTime和StopTime。关键比较逻辑长这样:
IF #CurrentTime >= #StartTime AND #CurrentTime <= #StopTime THEN #AirConditioner := TRUE; ELSE #AirConditioner := FALSE; END_IF;这里有个坑——TIMEOFDAY类型只认当天的时分秒,所以必须确保每天0点自动重置比较逻辑。建议在时钟同步后加个零点检测,触发日期更新。
HMI搞事情时间到
TP900界面放两个IO域,属性设置必须选TIMEOFDAY格式。重点来了:在连接变量里要勾选"周期性连续读取",不然你会遇到设置了时间但PLC没反应的情况。偷偷告诉你,把背景色改成浅黄色能有效防止操作员瞎搞。
仿真翻车现场
- 同时打开PLC和HMI仿真,务必勾选"允许来自远程对象的PUT/GET通信访问"
- 在仿真器右下角右键时钟图标,可以手动快进时间测试临界点
- 突发情况模拟:试试把停止时间设得比启动时间早,看程序会不会智障(正常应该触发立即关机)
Debug血泪史
- 时间同步失败多半是时区没设对,中国选UTC+8
- HMI显示时间乱码?检查格式字符串是不是"HH:MM:SS"
- 凌晨时段逻辑异常?加个日期判断包住时间判断
- 仿真时空调不启动?八成是没勾选"启动模块时清除保持性数据"
最后甩个骚操作:在HMI上搞个趋势视图,把设定时间和实际运行状态曲线叠在一起看,车间主任看了直呼专业。完整程序包已扔GitHub,需要自取。下期预告:用这个框架搞车间照明定时控制,还能顺手偷电(不是)...哦不,节能统计。