智能家居。脑子

铺设好所有电线后,安装好开关,制作好电气面板(所有这些都在第一部分中介绍),然后您可以进行最有趣的事情-对控制器进行编程。由于我不是使用智能控制器专用的控制器,而是工业自动化的控制器,因此我必须从头开始编程-有输入,有输出,其他所有东西都需要编程-按下按钮(不固定开关),如何对调光器进行编程,脚本等。

图片

但是首先是第一件事。最初,我的智能家居的体系结构包括以下组件:
  • PLK110-32工业控制器白羊座(主脑)
  • MU110-6U模拟量输出模块(用于控制调光器)
  • 用于输入模拟信号MV110-8A的模块(稍后添加以获取传感器的读数)。

所有这些都通过RS-485和Modbus RTU穿刺连接在一起。主控制器连接到以太网以与外界通信。

为了通过电话进行控制,我最初使用了Iridium Mobile,制造商将其提供给我(是的,将我的官方职位用于个人目的!)。后来,我将其替换为基于Node JS的Web服务。后来还添加了基于z-wave的无线部分。我打算分别写所有这一切,但是现在我们回到羊身上。

控制器的编程在CoDeSys环境中进行,该环境支持5种专用语言,其中我掌握了两种-FBD(功能块语言)和ST(类似Pascal的语言)。实际上,起初我以为只对FBD感到满意,因为用这种语言进行编程就像在编辑器中绘制图表一样。

图片

因此,在走廊中处理开关的FBD子例程(或功能块)看起来像这样。除了打开和关闭走廊上的灯之外,此开关还用于关闭整个公寓的灯。只需按一下即可切换走廊中的灯,长按(1秒)可激活命令以关闭所有灯。

随着越来越多的功能的添加,我得出的结论是功能图的语言根本就不那么方便-事实证明,这些代码繁琐,编程缓慢且调试非常不便。因此,我逐渐切换到ST语言,而不再使用FBD语言。

为了进行比较,看起来这是ST语言中的调光器功能块的一部分(同意,这是完全不同的事情!):

图片

由于我们正在谈论调光器,因此我们需要专门谈论它。事实证明,要为智能家居找到合适的调光器(熨斗)并不容易。我并没有考虑各种杂种选项,因为所有基本功能都应在有线技术上实现-我之前已经写过。我遇到的调光器的价格标签并不令我满意。另外,必须确保与我的智能家居兼容。最初,我选择了由ModBus控制的INSYTE LDD-400D,它使我可以直接将其连接到控制器,而无需其他模块,但是在项目中使用它的朋友对此不太满意,因此,我决定问题与调光器,所以-放置一个固态继电器。

图片

通过0-10V信号控制继电器(通过模拟量输出模块),并分别输出10-220V。请注意,固态继电器输出的最小电压不是0,而是10V-在此电压下,白炽灯的螺旋灯会明显发光。该问题的解决方法如下:除了固态继电器外,电路还包含常用的中间(机械)继电器,并且在程序级别,当需要完全关闭灯光时,控制器会关闭中间继电器并断开电路。

考虑到我使用的是常规开关而没有固定作为控件的事实,调光灯的第二个困难是如何制作一个方便的界面。

界面的第一个版本看起来像这样(现在我不记得了):
  • 短按-开启或关闭灯光(灯光以最后的亮度打开)
  • 灯亮时长按-亮度逐渐降低,然后增加零
  • 灯熄灭时长按-从零开始平稳增加
  • 双击即可以全亮度打开灯。

我使用此选项已经使用了几个月,但随后得出的结论是,它仍然不是很方便,并且通常仅使用3种模式-灯亮,灯灭或灯最少的怒气。因此,我实现了一个更简单的离散选项(到目前为止仍然存在):
  • 短按-打开/关闭灯光(以全亮度打开)
  • 长按-以25%的亮度打开灯光并切换到调光器模式;
  • 随后的每一次按移到下一步+ 25%。退出调光器模式-超时。

正如我在上一篇文章中所说的那样,控制单个按钮而不进行固定仍然不是最佳解决方案。除了我刚才引用的带有调光器的示例外,我还实现了一个复杂的场景来打开客厅的灯光。我们不希望在客厅使用高架灯,而要立即打开台灯和壁橱里的灯。我使这个过程自动化,现在客厅的灯光控制如下所示:
  • 一键(如果灯泡熄灭)-打开灯泡和背光
  • 一键(如果指示灯点亮)-打开或关闭上方的灯
  • 一秒钟后立即按一下(当头灯熄灭时)-熄灭台灯
  • 长按-关闭房间中的所有灯

从行为模型的角度来看,此方案的前两点非常合适。最后一点是类推走廊。第三段极富争议性,未使用。问题在于家庭在抱怨,但是这个脚本是过道的,但是没有一个客人可以应付。因此,对于脚本,您需要触摸面板或多功能按钮。

CoDeSys系统具有制作可视化和控制面板的能力。 PLC110不支持Web界面,因此可视化仅在CoDeSys复合体本身中起作用。

图片

这就是我的智能家居的技术控制面板的外观。技术,因为在日常生活中没有人使用它。除了一个小例外,该面板用作管理智能家居的远程界面。如果我需要远程操作,则可以通过TeamViewer到我的家庭服务器并使用此面板。这种需求很少出现,因此我什至没有为Web服务设置远程访问。

总之,利弊。

优点:
  • 可靠性-该解决方案已经很好地证明了自己(尽管该解决方案基于用于工业自动化的组件基础)。一直以来,没有任何一个(!!!)故障。即使在电涌之后,系统启动也没有任何问题。
  • (, , ).

:
  • Modbus TCP — ( )

就像我在第一篇文章中所说的那样,现在我将更加关注替代方案,但是如果有人突然想研究该解决方案,我将在CoDeSys中制作的源代码发布在github上(只是请屈服于代码的质量。

在以下部分中-电话控制和无线解决方案。

Source: https://habr.com/ru/post/zh-CN389053/


All Articles