当前位置:首页 > 工业控制 > 工业控制
[导读]工业现场触控不可靠,多数不是屏坏了,而是把消费电子单指逻辑直接搬过来:裸手调好的阈值,戴上劳保手套信号衰减;屏面沾切削液形成水膜,控制器看到“一大片触点”就乱报。 防误触不是把灵敏度拉到最高,而是在驱动层做介质区分、在HMI层做区域和确认约束。


工业现场触控不可靠,多数不是屏坏了,而是把消费电子单指逻辑直接搬过来:裸手调好的阈值,戴上劳保手套信号衰减;屏面沾切削液形成水膜,控制器看到“一大片触点”就乱报。 防误触不是把灵敏度拉到最高,而是在驱动层做介质区分、在HMI层做区域和确认约束。

一、物理根因先搞清楚

投射式电容靠手指耦合电场引起互电容下降来定位。两条失效路径相反:

厚手套:指尖与电极间多一层介质,ΔC低于阈值→无响应

油污/水膜:表面形成半导电薄层,多点同时变化→鬼影误触

所以“调高灵敏度兼容手套”的代价是水膜更易误报,正确做法是模式可切换:裸手/手套/防水三套阈值,由HMI设置或PLC信号切换。

二、驱动层:斑点检测+面积阈值

触控IC给出原始电容矩阵后,先基线消除再做斑点(blob)提取:

#define MAX_BLOB 5

typedef struct {

   int cx, cy;        // 质心

   int area;         // 超过阈值的节点数

   int peak;         // 最大ΔC

   int life;         // 稳定帧数

} blob_t;


blob_t blobs[MAX_BLOB];

int blob_detect(int16_t diff[][RX_N], int thresh){

   int n=0;

   for(int i=0;i<TX_N;i++)

   for(int j=0;j<RX_N;j++){

       if(diff[i][j] > thresh){

           /* 连通域合并到就近blob */

           update_blob(&blobs[n], i, j, diff[i][j]);

       }

   }

   return n;

}

判断是不是“真手指”看三个特征:

面积:手套按压面积大但ΔC弱;水膜面积大且边缘模糊

稳定性:手指位置连续几帧稳定,水会随倾角漂

形状:手指斑点集中,水膜连成片

int is_valid_finger(blob_t*b){

   if(b->area < MIN_AREA) return 0;        // 噪声

   if(b->area > PALM_AREA) return 0;       // 掌压/水膜

   if(b->life < 2) return 0;               // 单帧抖动丢弃

   return 1;

}

水膜抑制别靠“全屏禁触”,而是屏蔽大面积斑点、保留稳定小斑点——湿手还能划。

三、手套模式:提增益+降去抖帧数

切换手套模式时:

触摸阈值下调、扫描增益提高

去抖确认帧从3帧降到2帧(手套信号弱,多帧会更钝)

水膜抑制阈值同步放宽,否则水膜误报暴涨

void touch_set_mode(touch_mode_t m){

   if(m==MODE_GLOVE){

       tp_set_threshold(GLOVE_TH);

       tp_set_gain(GAIN_HIGH);

       debounce_frames=2;

   }else{

       tp_set_threshold(NORMAL_TH);

       tp_set_gain(GAIN_NORMAL);

       debounce_frames=3;

   }

}

厚皮/防割手套超过0.5mm基本别硬靠电容屏,单点工位直接上电阻屏更稳。

四、HMI层:禁用区域+关键动作确认

驱动层筛完点,HMI还要兜底:

1. 禁用区域(Touch Zone)

系统状态栏、返回桌面、关机区域直接不派发事件,避免袖口扫过退出HMI。

int in_disabled_zone(int x,int y){

   for(int i=0;i<N_ZONE;i++)

       if(pt_in_rect(x,y,&zone[i])) return 1;

   return 0;

}

/* 事件分发前 */

if(is_valid_finger(b) && !in_disabled_zone(b->cx,b->cy))

   ui_dispatch(b->cx,b->cy);

2. 按钮尺寸与间距

工业HMI按钮至少比裸手设计大一号,相邻控件留间隙,启动/停泵/开阀不挨着普通按钮。

3. 关键命令二次确认

启停设备、开阀、改设定值→先弹确认条,单点误触变“点+确认”两步。

4. 按压过滤(Alone模式)

屏上已有接触点再激活按钮不算新按,必须抬起重按——防手掌压屏边误触发。

五、EMI与结构别漏

变频器/伺服干扰会让坐标漂,软件再好也救不了:

触控板独立屏蔽地,FPC加磁环

触控信号线远离动力线30cm以上

整机PE接地可靠,浮地必飘

疏水AF涂层让水成珠不成膜

六、落坑清单

灵敏度一把梭拉满→水膜狂误触

手套模式不重新标阈值→要么点不动要么乱跳

只信单帧峰值→切削液点滴误报

重要按钮放屏幕边缘→线性度差点偏

系统栏不禁用→袖口扫出HMI

开阀按钮和页码键挨着→fat-finger误触

关键动作不确认→手掌蹭一下泵启动

校准用裸手、现场戴手套→整体偏

触控线和伺服线绑一起→带载就飘

上电时屏压着扳手→那块区域永久失灵

七、落地顺序

触控IC开三模式:裸手/手套/防水

每帧基线跟踪+斑点提取

面积/稳定帧/形状三维过滤

水膜抑制保留稳定小斑点

HMI设禁用区域屏蔽系统区

启动/开阀类按钮加确认

按压过滤防掌压误触

动力线屏蔽+PE接地+涂层选型同步做

工业防误触的本质是“分层拒假”:驱动层把水膜和手套信号认出来,HMI层把致命误操作挡住。只调灵敏度是伪解,水膜和手套是互斥工况,必须模式切换+面积判据;屏上逻辑再补禁用区和二次确认,才算把“油污+手套+袖口蹭屏”三件事都兜住。真现场验收别在实验室裸手点,戴现场同款手套、喷一层切削液再测,才有参考价值。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭