You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cimplicity界面需求:单对象随300台机器人故障闪烁实现方案咨询

Cimplicity实现全局故障闪烁指示方案

实现思路

  • 遍历所有机器人故障指示点,判断是否有任意点位触发故障(值为高)
  • 通过全局脚本控制指定界面对象的闪烁状态,故障时开启闪烁,正常时关闭

具体实现步骤

1. 准备全局变量

在Cimplicity的全局变量中创建一个布尔型变量 g_Robot_Fault_Exist,用来标记是否存在机器人故障,减少重复遍历点位的开销。

2. 编写全局扫描脚本

新建一个周期扫描的全局脚本(推荐扫描周期设为1-2秒,兼顾实时性和系统性能),脚本代码如下:

' 默认标记无故障
g_Robot_Fault_Exist = False

' --- 方式1:前缀匹配遍历(推荐,无需硬编码所有后缀)---
Dim objPoint, pointName
For Each objPoint In PointList
    pointName = objPoint.Name
    ' 替换成你的故障点实际前缀,比如"Robot_Fault_"
    If Left(pointName, 12) = "Robot_Fault_" Then
        ' 根据点位类型判断故障:布尔型用=True,数字型用>0,这里以数字型1为故障示例
        If objPoint.Value = 1 Then
            g_Robot_Fault_Exist = True
            Exit For ' 找到故障就停止遍历,提升效率
        End If
    End If
Next

' --- 方式2:硬编码后缀(前缀匹配失效时用)---
' Dim suffixArr, i
' ' 把300台机器人的后缀按格式填进数组,比如"001","002"...
' suffixArr = Array("001", "002", "003")
' For i = 0 To UBound(suffixArr)
'     pointName = "Robot_Fault_" & suffixArr(i)
'     If PointExists(pointName) Then
'         If PointValue(pointName) = 1 Then
'             g_Robot_Fault_Exist = True
'             Exit For
'         End If
'     End If
' Next

' 控制目标闪烁对象
' 替换成你界面上闪烁对象的实际名称,比如"Global_Fault_Light"
If g_Robot_Fault_Exist Then
    ' 启用闪烁:直接调用Cimplicity内置的闪烁属性
    ObjectSetProperty "Global_Fault_Light", "Flash", True
Else
    ObjectSetProperty "Global_Fault_Light", "Flash", False
End If

3. 配置界面闪烁对象

  • 在你的大型界面上添加需要闪烁的对象(比如红色圆形、警示文本)
  • 进入对象属性的动画设置,确保闪烁功能已启用;如果默认闪烁效果不符合要求,也可以改成通过脚本切换对象的颜色或可见性(比如每隔0.5秒切换一次背景色)

4. 调试与优化

  • 先拿少量点位(比如前10台)测试脚本逻辑,确认无误后再扩展到300台
  • 检查故障点前缀的字符长度是否正确,避免漏判或误判
  • 如果系统性能有压力,可适当延长扫描周期,或者优化遍历逻辑(比如只遍历已配置的故障点列表)

内容的提问来源于stack exchange,提问作者user19446458

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 09:33:30