AI脚本助手
AI脚本助手通过自然语言描述控制逻辑或数据处理流程,自动生成符合语法规范的C#脚本,同时支持现有脚本的解释、调试与优化,核心用于快速完成脚本类工程开发。

功能说明
- 支持通过自然语言描述脚本需实现的触发条件、操作步骤(如数据读取、API调用、变量更新),AI自动生成合规的C#脚本
- 可对现有无注释、逻辑晦涩的工程脚本进行逐行分析,生成通俗易懂的功能说明,降低脚本理解门槛
- 针对脚本运行错误(如逻辑漏洞、数据解析失败)或效率问题,提供智能排查与优化建议,减少脚本调试耗时
核心优势
1. 降低编程门槛
非专业编程背景的OT工程师(如工艺工程师、电气工程师),无需深入学习C#语法,即可完成系统集成、数据处理类脚本开发。
传统方式 vs AI方式:
传统方式:
学习C#语法 → 学习API文档 → 编写代码 → 调试错误 → 优化性能
需要:编程能力 + 大量学习时间
AI方式:
描述需求 → AI生成代码 → 测试验证 → 微调优化
需要:清晰表达逻辑的能力
2. 提升脚本质量与效率
- 语法规范:生成的脚本符合工业编程规范,减少语法错误
- 异常处理:自动添加必要的异常处理逻辑,提升脚本健壮性
- 性能优化:优化功能可提升脚本运行效率,降低系统资源占用
- 代码注释:自动添加清晰的注释,便于后期维护
3. 加速工程知识传递
快速解释旧脚本功能,助力新工程师或维护人员快速上手,避免因人员流动导致的工程知识断层。
场景示例:
- 接手旧项目,面对数百行无注释代码
- 传统方式:逐行阅读理解,可能需要数天
- AI方式:粘贴代码,AI生成功能说明,30分钟内理解核心逻辑
典型使用场景
场景一:第三方系统集成脚本开发
背景:需将生产数据上报MES系统或从ERP获取生产订单。
需求描述:
当工单ID改变时,通过API获取MES数据并写入本地变量。
具体要求:
- 监听变量:WorkOrderID
- API地址:http://mes.company.com/api/getWorkOrder
- 请求方式:POST
- 请求参数:{"orderId": "工单ID值"}
- 返回数据:{"productModel": "产品型号", "targetQty": 目标数量}
- 写入变量:ProductModel, TargetQuantity
AI生成脚本:
using System;
using System.Net.Http;
using System.Text;
using Newtonsoft.Json;
public class MESIntegration
{
private string lastWorkOrderID = "";
public void OnWorkOrderChanged(string currentWorkOrderID)
{
// 检查工单ID是否改变
if (currentWorkOrderID != lastWorkOrderID && !string.IsNullOrEmpty(currentWorkOrderID))
{
lastWorkOrderID = currentWorkOrderID;
try
{
// 调用MES API获取工单数据
var workOrderData = GetWorkOrderFromMES(currentWorkOrderID);
// 写入本地变量
CMS.SetVariable("ProductModel", workOrderData.ProductModel);
CMS.SetVariable("TargetQuantity", workOrderData.TargetQty);
CMS.Log($"工单数据获取成功:{workOrderData.ProductModel}, 目标数量:{workOrderData.TargetQty}");
}
catch (Exception ex)
{
CMS.LogError($"获取MES数据失败:{ex.Message}");
}
}
}
private WorkOrderData GetWorkOrderFromMES(string orderId)
{
using (var client = new HttpClient())
{
// 设置超时时间
client.Timeout = TimeSpan.FromSeconds(10);
// 构建请求内容
var requestData = new { orderId = orderId };
var jsonContent = JsonConvert.SerializeObject(requestData);
var content = new StringContent(jsonContent, Encoding.UTF8, "application/json");
// 发送POST请求
var response = client.PostAsync("http://mes.company.com/api/getWorkOrder", content).Result;
response.EnsureSuccessStatusCode();
// 解析返回数据
var responseJson = response.Content.ReadAsStringAsync().Result;
return JsonConvert.DeserializeObject<WorkOrderData>(responseJson);
}
}
}
public class WorkOrderData
{
public string ProductModel { get; set; }
public int TargetQty { get; set; }
}
价值:
- 无需手动编写复杂的HTTP请求代码
- 自动处理异常情况
- 缩短系统集成工程周期从数天到数小时
场景二:旧工程脚本维护
背景:接手无注释的旧项目脚本,需要快速理解功能。
原始脚本(无注释):
public void Process()
{
var v1 = CMS.GetVariable("V001");
var v2 = CMS.GetVariable("V002");
if (v1 > 100 && v2 < 50)
{
CMS.SetVariable("V003", 1);
CMS.CallAPI("http://api/alarm", "POST", "{\"type\":\"high\"}");
}
else
{
CMS.SetVariable("V003", 0);
}
}
提问AI:
请解释这段脚本的功能
AI解释:
这段脚本的功能是监控和报警处理:
1. 读取两个变量:
- V001:可能是温度或压力等监控值
- V002:可能是另一个相关参数
2. 判断条件:
- 当V001大于100(超过阈值)
- 且V002小于50(低于正常值)
- 同时满足时触发报警
3. 报警处理:
- 设置V003为1(报警状态标志)
- 调用外部API发送高级别报警通知
4. 正常状态:
- 不满足报警条件时,设置V003为0(正常状态)
建议:
- 为变量添加有意义的命名(如Temperature, Pressure)
- 将阈值100和50定义为常量,便于后期调整
- 添加异常处理,防止API调用失败影响主流程
价值:
- 快速理解旧代码逻辑
- 减少维护耗时
- 获得优化建议
场景三:脚本调试与优化
背景:脚本运行报错或效率低。
问题脚本:
public void UpdateData()
{
for (int i = 0; i < 1000; i++)
{
var data = CMS.GetVariable("Sensor_" + i);
CMS.WriteToDatabase("INSERT INTO data VALUES (" + i + ", " + data + ")");
}
}
提问AI:
这段代码性能很差,如何优化?
AI优化建议:
问题分析:
- 循环中频繁调用数据库插入,性能极差
- 字符串拼接方式不安全,存在SQL注入风险
- 没有批量处理机制
优化方案:
public void UpdateData()
{
// 使用批量插入提升性能
var dataList = new List<SensorData>();
// 先收集所有数据
for (int i = 0; i < 1000; i++)
{
var data = CMS.GetVariable($"Sensor_{i}");
dataList.Add(new SensorData { Id = i, Value = data });
}
// 批量写入数据库(性能提升100倍以上)
CMS.BatchInsertToDatabase("data", dataList);
}
public class SensorData
{
public int Id { get; set; }
public double Value { get; set; }
}
性能对比:
- 优化前:1000次数据库操作,耗时约10-30秒
- 优化后:1次批量操作,耗时约0.1-0.3秒
- 性能提升:100倍以上
价值:
- 定位性能瓶颈
- 提供优化方案
- 提升脚本运行效率
5分钟快速上手
步骤1:打开AI脚本助手
在脚本编辑器中,点击工具栏的"AI助手"图标,或右键选择"AI辅助编写"。
步骤2:描述你的需求
在对话框中输入您的需求,可以是:
- 生成新脚本:描述需要实现的功能
- 解释现有脚本:粘贴代码,请求解释
- 调试优化:粘贴问题代码,描述问题
步骤3:等待AI生成
AI会在5-15秒内分析需求并生成代码或解释。
步骤4:测试验证
- 将生成的代码复制到脚本编辑器
- 在测试环境中运行验证
- 根据实际情况微调
步骤5:部署应用
测试通过后,部署到生产环境。
提问技巧(精准生成/调试脚本)
技巧一:脚本生成 - "条件-动作"结构
清晰描述触发条件与执行操作。
示例1 - 简单条件触发:
当变量"扫码完成"为true时,
根据扫码结果调用MES的API接口"api/check_material"
示例2 - 复杂条件组合:
当满足以下所有条件时触发报警:
1. 温度大于80度
2. 压力小于2bar
3. 设备状态为"运行中"
触发后执行:
1. 设置报警标志为true
2. 发送邮件通知
3. 记录报警日志到数据库
示例3 - 数据处理脚本:
编写脚本实现以下功能:
1. 读取D:\reports下的生产日志CSV文件
2. 解析文件内容
3. 将数据插入数据库"daily_log"表
4. 备份文件到D:\backup目录
5. 删除7天前的备份文件
说明:此脚本可通过计划任务模块配置为每天凌晨1点自动执行