免费获取学习方案
ARTICLE DETAIL

资讯详情

深耕编程基础知识与建站技术分享的一线实战洞察。

# 少写脚本才是好产品 —— 绑定与脚本的分工> 鲲鹏恒控是一套工业 HMI / SCADA 上位机组态软件。它的脚本引擎很强(真 C# + 易语言式简写),但这一篇想说的恰好相反:>> **

# 少写脚本才是好产品 —— 绑定与脚本的分工> 鲲鹏恒控是一套工业 HMI / SCADA 上位机组态软件。它的脚本引擎很强(真 C# + 易语言式简写),但这一篇想说的恰好相反:>> ** # 少写脚本才是好产品 —— 绑定与脚本的分工 鲲鹏恒控是一套工业 HMI / SCADA 上位机组态软件。它的脚本引擎很强(真 C# 易语言式简写),但这一篇想说的恰好相反: **衡量一套组态软件好不好用,有个反直觉的指标 —— 你写脚本的次数在变少。**【配图左边「声明式」(拖拽属性绑定),右边「命令式」(脚本),中间一条分界线】---## 一、同一件事,两种表达让「温度超过 80 度时那个灯变红」,有两种做法:**声明式(不写代码)** —— 把灯的亮色/灭色配好,再用一条**绑定**把「亮/灭」挂到一个「温度是否超限」的条件上。改完就完事,画面上看得到。**命令式(写代码)** —— 写一段周期脚本,每次跑的时候读温度、比 80、判断、再去设灯的颜色。两种都能实现。但它们的**维护成本差一个数量级**:| | 声明式 | 命令式 ||---|---|---|| 谁看得懂 | 任何人都看得懂(界面上就是配置) | 得看得懂代码 || 改了画面 | 拖一下就行 | 可能得回去改代码 || 出问题查哪 | 属性面板 | 脚本编辑器 || 现场能不能自己调 | 能 | 通常不能 |**所以一个成熟的组态软件,第一优先级永远是:这件事能不能不写代码就解决。**---## 二、这些事,根本不用写脚本鲲鹏恒控把绝大多数日常需求做成了声明式的:| 需求 | 怎么做 | 不用脚本 ||---|---|---|| 显示一个点值 | 元素属性**绑点**(单向) | ✅ || 控件反过来改点(输入框、滑块) | **双向绑定** | ✅ || 一个灯表示「运行/停机/故障」 | 指示灯 亮色/灭色 绑定 | ✅ || 液位/压力/开度 | 棒图 填充比例绑定 | ✅ || 点一下按钮去写一个点 | 事件(左键单击) 动作「写入点位」 | ✅ || 点一下按钮切画面 | 事件 动作「切换画面」 | ✅ || 点一下按钮弹确认框 | 事件 动作「确认弹框」 | ✅ || 点一下按钮跑一段脚本 | 事件 动作「执行脚本」 | ✅ || 按钮换个风格/皮肤 | 属性面板选样式预设 / SVG 皮肤 | ✅ || 参数配方下发、回读 | 配方表格,表格与编辑框双向联动 | ✅ || 越限报警 | 报警规则(四级限值) | ✅ || 存历史、查趋势 | 历史规则(变化死区 / 定时) 趋势控件 | ✅ || 做个报表 | 报表定义 报表控件 | ✅ || 画面文字多语言 | 一键抽取 逐语言对照填写 | ✅ |**事件是固定的 12 种**(左键单击/双击/按下/松开、右键同理、鼠标进入/悬停/移动/离开),**动作是固定的 6 种**(写入点位 / 切换画面 / 确认弹框 / 执行脚本 / 弹出登录 / 注销)。从清单里选,不用记、不用拼字符串。【配图属性面板上的「事件 动作」配置 —— 下拉选事件、选动作、填参数】---## 三、这些事,该上脚本就上脚本声明式不是万能的。下面这些,**用脚本反而更清楚**:| 需求 | 为什么必须脚本 ||---|---|| 跨点运算 | 「AB 的和再开方」这种,绑定表达不了 || 状态机 | 设备要按「待机→启动→运行→停止」的顺序走,还要判时序 || 复杂时序 | 「启动后 3 秒再开阀,再 5 秒确认反馈」 || 外部数据 | 读写 CSV、拼字符串、查关系数据库 || 算法 | 滤波、PID、单位换算链、自定义统计 || 和子系统深度联动 | 按条件补一条历史、按条件触发/确认报警 || 条件分支很多的逻辑 | 三五个 if-else 叠起来,配置界面上反而更难看懂 |一句话分界: **「一个点 ↔ 一个控件」是绑定的事;「多个点之间的逻辑」是脚本的事。**---## 四、为什么「少写脚本」是好事不是嫌代码麻烦,而是三条实打实的账:1. **交接成本。** 项目要交给别人维护。配置是所有人都看得懂的,代码只有写它的人看得懂。2. **改需求成本。** 现场说「这个灯改成绿的」,配置改一下一分钟;代码改完还得重新编译、重新交付。3. **出问题定位成本。** 声明式的东西出问题,查属性面板就知道;命令式的东西出问题,得先看懂那段代码想干什么。**一个项目里脚本越少,它就越「活」** —— 越容易被别人接手、被现场调整、被时间考验。---## 五、但该强的时候,必须真的强省脚本不等于弱化脚本。真需要写的时候,鲲鹏恒控给的是:- **真正的 C#**,编译执行,不是阉割版表达式 —— 性能、类型、语言特性都在。- **易语言式简写** —— #窗口.组件.属性 值,改界面不啰嗦。- **十五类现成函数** —— 点位、日志、系统、数学、文本、位、文件、表格、定时器、报警、历史、报表、界面、数据库、通信,常用的都备好了,**而且都能写中文名**(点位.读浮点、历史.平均值),不用背英文。- **编译校验能跳到出错行**,不用等运行才发现写错。- **沙箱 超时** —— 拦危险操作,死循环拖不垮运行。**先用配置解决,配置解决不了再写代码;真要写的时候,别写别扭的代码。**【配图同一个需求的两条路径 —— 首选配置,退而脚本】---## 六、一句话总结**能绑定的不写事件,能配事件的不写脚本,能配脚本的不写周期脚本。**好的组态软件不是让你写更少的代码,而是让你**越来越不需要写代码** —— 但真需要的时候,给的是真家伙。
返回列表