【剑思庭专栏之siemens技术篇】PLC实现百叶窗帘的智能化

这是一个真实的故事

这是一个德国原来同事告诉我的一个小故事,这个哥们一直迷恋家居智能化,就连他们家的百叶窗也被赋予了智能化,我们来看看这个哥们疯狂到什么程度?薄暮开关被用来确定用于百叶窗控制的早上和傍晚的时间点。这个哥们用S7-1200控制百叶窗,但简单的控制可算不上智能化,最疯狂的是这个哥们在STEP 7项目中使用天文学算法确定日出和日落时间。仅需要指定所在位置的经纬度坐标值相关参数并设置CPU时钟为UTC时间。

此外,可以根据算法的黄昏时间推移打开或关闭百叶窗的时间。譬如,可以在日出前5分钟打开百叶窗并且在日落后5分钟关闭百叶窗。不受夏令时的影响。

剑指工控来献策

下面借助一个实例具体描述如何实现的。组织块"Main" OB1包含三个网段的程序。

在网络1中,调用了"SunSet_SunRise" 功能块FB2,用于计算给定经纬度的所在位置的日出和日落时间。FB2是使用SCL编程语言编写的。使用经纬度的坐标实际值对FB的变量 "Latitude" 和"Longitude"进行参数化。

图 01 显示了"SunSet_SunRise"功能块FB2的示例参数。德国纽伦堡GPS坐标值:

· 纬度: 49.4741

· 经度: 11.1296

图 01

"Sunrise" 和"Sunset"输出参数提供了日出和日落的时间,当然也可以通过 "SunSet_SunRise" 功能块FB2的背景数据块获得。

在网络2中,根据黄昏时间计算出百叶窗打开和关闭的时间。在本例中,百叶窗在日出前5分钟打开并且在日落后10分钟关闭。

· "T_SUB" 指令中背景DB的"SunSet_SunRise_DB.Sunrise" 变量减去5分钟并存储在临时变量 "SetpointSET"中。

· "T_ADD"指令中背景DB的"SunSet_SunRise_DB.Sunset" i变量加上10分钟并存储在临时变量 "SetpointRESET"。

图 02

在网络3中,"RD_LOC_T" 指令读出CPU的本地时间存储在"ActualLocalDTL"变量中。早上和傍晚转换点由两条指令“大约或等于”以及“小于或等于”决定。

输出"MyOutput" (A0.0) 提供了信号状态 "True"。

· 当变量 "ActualLocalDTL" 的值大约或等于 变量 "SetpointSET" 的值(日出前5分钟条件满足)

· 并且"ActualLocalDTL" 变量 小于或等于 变量 "SetpointRESET"的值(日落后10分钟条件满足)

图 03

迎刃而解

这哥们还给我发了一段视频,看他洋洋得意享受着阳光射入的感觉,并随着傍晚夜幕降临百叶窗缓缓的关上,并没有任何遥控也没有指令的输入,就完成了这样一个自动识别的高度智能化的家居控制。感叹呀!TIA的功能块真是越来越强大了!