WinCC如何按系统设定时间工作

有一个污水处理项目S7-300,自控要求早8:00开始打开特定阀门排泥,8:25打开出水阀,8:30关闭排泥阀;10:00关闭出水阀,打开进水阀,达到要求液位时关闭进水阀。在WinCC界面中上面的时间是可设定的,但这必须是系统的北京时间。小弟刚入行,很多都不懂,请各位老大多多帮忙,谢谢

最佳答案

最终的处理肯定是在PLC中进行,由SFC1读出系统时间,再使用FC8(DT_TO_TOD)转换得到时间(TOD格式,及Time格式),TOD格式占用双字,可用GT_D、LE_D等比较指令,根据比较结果即可控制相关阀门。
 剩下要解决的问题就是如何在WinCC中将TOD显示为北京时间以及如何设定。
 -----------------------------
 显示问题:可以用静态文本来显示所设定的时间,以下的VBS脚本用于转换并获得类似20:01:05的时间字符串:
 Dim szTime,TodValue,iHour,iMinute,iSecond
 TodValue = HMIRuntime.Tags("你的时间设定变量").Read 
 iHour =Fix(TodValue / 3600000)
 iMinute =Fix( (TodValue - iHour*3600000)/60000)
 iSecond = Fix( (TodValue - iHour*3600000 -iMinute* 60000)/1000)
 szTime = CStr(iHour) & ":" & CStr(iMinute)&":" & CStr(iSecond)
 Dim szOutPut
 szOutPut=FormatDateTime(szTime,vbLongTime)
 -----------------------------
 设定问题:可以使用DateTimePicker控件来做,对象选项板->标准->控件->Microsoft Date and Time Picker Control,将控件拖入画面,设置Format为dtpTime,以下的脚本用于获取设定时间转换为TOD格式并写入变量:
 Dim DTValue,iTod
 DTValue = ScreenItems("DTPicker").value
 iTod =  Hour(DTValue)*3600000 + Minute(DTValue)*60000 + Second(DTValue)*1000
 HMIRuntime.Tags("你的时间设定变量").Write iTod '#将时间设定值写入TAG

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc275452.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2019年6月11日 上午11:35
下一篇 2019年6月11日 上午11:35

相关推荐