编写示例—窗帘控制逻辑编写

[复制链接]
crodigy 发表于 2018-12-5 20:06:36 | 显示全部楼层 |阅读模式
本帖最后由 crodigy 于 2019-3-4 13:56 编辑

一、通过干接点控制
1、一般窗帘电机干接点的控制线有3根:正转线、反转线、公共线。那么如果通过干接点控制窗帘电机,一个电机的控制就需要使用2个继电器。

2、接线方式
c1.png
说明:
  • 3个线的区分可以看说明书。也可以实际测试一下:任意两根线互碰在一起,看电机运转情况;
  • 找出正转线、反转线、公共线后再测试一下怎样让电机停止运转。
  • 部分电机是3根线同时互碰在一起时,停止运转;部分电机是正转的过程中再次正转就停止。

3、程序部分

根据上诉的测试说明,我们找出来电机的控制方式后,通过程序控制继电器的开关,模拟我们测试时的操作,进而达到电机的控制目的。

a、控制电机正转,即控制继电器“Relay1”吸合一下再断开。
c2.png

说明:
  • stepper的功能是1条触发,延时“delay”输出。delay中填写需要延时的时间,单位是s;“len”同样填时间,但是len的时间是定义输出变量状态值保持多长时间的1。
  • 在此处,我们只需要一条输出就可以了。
  • 那么当左侧开的变量触发时,“cl_relay1”立即输出2s宽度的高电平1;即IU8模块的load1继电器吸合2s,然后断开。
  • 对应的就是电机正转,窗帘打开。

b、控制窗帘反转,同上。

c、

情况一:同时互碰在一起,停止

c3.png


说明:
  • 停的stepper输出两个条目;
  • 停触发时,"relay1"和"relay2”同时变为1;那么两个继电器同时吸合;
  • 从而达到了 停的目的。


注:该情况下可以直接使用"组合块”进行编写控制。 e3.png

情况二、正转的过程中再次正转就停止
  • 干接点不能查询设备的当前状态;
  • 如果通过程序记忆当前设备状态,但存在窗帘开、关到位时会自动停下,且无法确定其当前需要多久才能开关到位;
  • 建议如果开在运行着就再次按下开;反之按下关。

d、如果要通过面板通知或通过APP控制,则直接调用变量“cl_open”、“cl_close”、“cl_stop”

二、通过485控制

1、修改窗帘电机的ID。这个根据窗帘电机的说明进行。

2、确定一个485口,完成接线。
     A----A+
     B----B-
3、程序编写

a、串口配置

c4.png

b、通过serial I/O下存储制数据
c5.png
说明;

  • serial i/o中间项可以填入协议数据
  • 当左侧的变量触发时,中间的数据就会赋予到右侧的“tx”串量的状态值上
  • 那么“tx”关联到串口上,硬件上的串口就会将这条数据发送给连接的设备。
  • 如果有多个电机,可以继续在serial I/O上增加条目。


c、如果要通过面板通知或通过APP控制,则直接调用变量“cl_open”、“cl_close”、“cl_stop”





13228751750 发表于 2018-12-14 17:30:48 | 显示全部楼层
讲述很清楚  感谢楼主
回复

使用道具 举报

13228751750 发表于 2019-2-12 12:50:24 | 显示全部楼层

感谢楼主分享,辛苦了!!!
回复

使用道具 举报

yuzmsh 发表于 2019-2-20 09:49:45 | 显示全部楼层
窗帘模块的逻辑是否可以使用一个单键,开和合循环,长按2S停呢?这样有什么问题没
回复

使用道具 举报

geekchi@163.com 发表于 2019-2-20 10:00:51 | 显示全部楼层
清楚明了,谢谢楼主分享
回复

使用道具 举报

 楼主| crodigy 发表于 2019-2-20 10:52:45 | 显示全部楼层
yuzmsh 发表于 2019-2-20 09:49
窗帘模块的逻辑是否可以使用一个单键,开和合循环,长按2S停呢?这样有什么问题没 ...

这样写也是可以的。但是如果连续按的频率比较快的时候,例如1s按2-3次,可能会出现中间操作没有响应的情况。
回复

使用道具 举报

小叮当 发表于 2019-2-22 08:44:02 | 显示全部楼层
分析很到位
回复

使用道具 举报

yang_vg6X6 发表于 2019-3-1 14:57:19 | 显示全部楼层
楼主辛苦,感谢分享
回复

使用道具 举报

ft2518626 发表于 2019-7-8 14:42:56 | 显示全部楼层


感谢楼主分享,辛苦了!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则