01
概述
DI即数字输入(DI, Digital Input),用于接收二进制信号(0或1),通常用于接收开关、按钮、传感器(如接近开关、光电传感器等)的状态。数字输入只能识别两种状态:高电平(通常代表“1”或“开”)和低电平(通常代表“0”或“关”)。
02
相关技术描述
常开触点(NO)或常闭触点(NC)接入,
常开触点,也称为NO(Normally Open)触点,指的是一种当电气设备未被激活时处于打开状态的开关。换句话说,当电流通过该开关时,触点会关闭并允许电流流动;而当电流停止流动时,触点会自动返回到打开状态。常开触点通常被用于需要手动控制的电路中,例如呼叫按钮、灯开关等。
常闭触点,也称为NC(Normally Closed)触点,指的是一种当电气设备未被激活时处于关闭状态的开关。与常开触点不同,当电流通过该开关时,触点会打开并中断电流的流动;而当电流停止流动时,触点会自动返回到关闭状态。常闭触点通常被用于需要自动控制的电路中,例如安全继电器、保护装置等。
状态触发 可配置为脉冲计数接口
一种上升沿(按键释放计数),一种下降沿(按键闭合计数),第三种电平(按键闭合释放都会计数)。
滤波参数用于输入信号有效性判断,比如默认使用6即6ms以下的输入信号作为抖动不会进行计数也不会判断为有效的输入信号。
干节点信号输入或0~3.3V电平信号输入
干接点信号是一种电气开关信号,具有闭合和断开两种状态,其两个接点之间没有极性,可以互换。这种信号通常用于各种开关、传感器输出以及继电器、干簧管的输出等。干接点信号在工业控制领域中应用广泛,具有无需电源即可工作的特点,适用于多种设备和场景。
03
应用场景
3.1 计数器
统计接入设备触发的次数,涉及到DI的采样频率,频率太高,可能漏采,这一点在使用时必须考虑
3.2 门磁
门磁开关常用于门是否开启、关闭。两个磁铁靠近后会产生一个高电平,或者低电平信号,DI检测到后,可以识别门的状态,从而通知云端同步门的状态
3.3 红外感应
常用于热源检测,例如是否有人进入检测等。检测到热源后,会产生一个高电平或者低电平信号,DI接收到后,通知远端检测事件发生。
3.4 烟感
室内防火使用,检测到烟以后,DI检测到,配合DTU输出DO告警等。
3.5 水浸
检测是否有水进入,传感器会产生数字输出信号给DI,DI检测到后,进行下一步处理。
04
DI组件的使用
1 Gitee链接地址
组件位于amaziot_bloom_os_sdk\libraries\am\xtu\am_di.c
Gitee源码地址:https://gitee.com/ning./hongdou
Github源码地址:https://github.com/ayumid/hongdou
2 应用层组件功能介绍
提供DI实现实例。
使用该组件,必须同时使用AT组件,文件组件,TCP组件,掉线组件,掉线重连组件,DI组件,DO组件,AI组件,JSON组件,CLK组件。
3 代码讲解
1 dtu_di1_report_timer_callback
功能:该函数用于,DI1周期上报定时器超时回调函数,超时后,判断当前是否在透传模式,发送消息给JSON任务,上报到服务器。
参数:
参数 |
释义 |
tmrId |
参数,暂未使用 |
返回值:无
示例:
OSATimerStart(dtu_di1_report_timer_ref, uc_time * 200, uc_time * 200, dtu_di1_report_timer_callback, 0);
2 dtu_di1_report_timer_stop
功能:该函数用于,DI1周期上报定时器停止。
参数:无
返回值:无
示例:
dtu_di_report_timer_stop(channel);
3 dtu_di_report_timer_start
功能:该函数用于,DI1周期上报定时器开始。
参数:
参数 |
释义 |
index |
定时器索引 |
time |
时间 |
返回值:无
示例:
//开定时器
dtu_di_report_timer_start(channel, interval);
4 dtu_di_int_init1
功能:该函数用于,初始化DI1,配置为中断模式,判断NV项,是否需要打开周期上报定时器。
参数:无
返回值:无
示例:
dtu_di_int_init1();
5 dtu_di_times_init
功能:该函数用于,主动上报定时器句柄初始化。
参数:五
返回值:无
示例:
//初始化DI上报定时器
dtu_di_times_init();