Compare commits

..
19 Commits
Author SHA1 Message Date
huangsucan 0050cb341b 示波器修改 2026-09-16 14:36:28 +08:00
huangsucan 96680fd4c6 修复监控bug 2026-09-16 09:01:27 +08:00
huangsucan 432ed2a70c fix: 步骤运行时间排除区间延迟(延迟期间暂停stepStopwatch,Delay命令只记实际命令耗时) 2026-09-14 17:21:39 +08:00
huangsucan 186eec4e75 feat: 新增CommandRunningTime步骤耗时统计命令(序号区间RunTime求和,依赖倒置+AsyncLocal作用域隔离) 2026-09-14 17:08:56 +08:00
huangsucan b1a160d159 feat: ZLGCANFD新增获取报文信号值函数(最新解码报文缓存+按通道/帧ID/信号名查询,失败报错返回0) 2026-09-14 14:36:05 +08:00
huangsucan 3d30d33f7b 删除不相关代码文件 2026-09-14 14:27:03 +08:00
huangsucan 1355753e41 fix: 调用方适配ConcurrentDictionary(Add→TryAdd、Remove→TryRemove),与ACP P0提交对齐 2026-09-14 13:59:02 +08:00
huangsucan dfbc5797bf P3: 数据库文件膨胀→启动时检查文件过期(默认180天),过期则归档重命名(SQL_归档_yyyyMMdd_HHmmss.db),不删除记录 2026-09-14 13:54:54 +08:00
huangsucan 7043a66a28 P2: Flexible四类通信锁从全局静态改为按端口/IP粒度(ConcurrentDictionary),不同物理端口互不阻塞 2026-09-14 13:53:46 +08:00
huangsucan 8d8df56544 fix: HardwareDataBroadcaster幂等Discover与静默异常增强(失败计数+通道暂停+日志) 2026-09-14 13:50:14 +08:00
huangsucan 8b53d8e921 fix: GlobalInfo四个作用域字典改为ConcurrentDictionary提升线程安全 2026-09-14 13:48:49 +08:00
huangsucan 31255fadeb feat: 移植DeviceHealthMonitor心跳重连机制并集成到DeviceManager 2026-09-14 13:46:45 +08:00
huangsucan c4fc2d80fd can修改 2026-09-12 20:31:45 +08:00
huangsucan 4acb4d8d13 启动加载页 2026-08-31 14:55:21 +08:00
huangsucan 7a56eb98d2 测试报告导出修改 2026-08-30 15:36:57 +08:00
huangsucan 61d7293afb 测试报告导出优化 2026-08-27 14:51:15 +08:00
huangsucan 47b4d3837b 弹窗添加 2026-08-27 14:26:22 +08:00
huangsucan 6a59552bc7 现场优化7 2026-08-27 11:08:36 +08:00
huangsucan 38f594e4aa 查询返回数据转double 2026-08-19 20:04:10 +08:00
78 changed files with 2453 additions and 25146 deletions
+57
View File
@@ -1,4 +1,5 @@
using Common; using Common;
using Command;
using ADP.ViewModels; using ADP.ViewModels;
using ADP.ViewModels.Dialogs; using ADP.ViewModels.Dialogs;
using ADP.Views; using ADP.Views;
@@ -12,6 +13,8 @@ using Service.Interface;
using System.Configuration; using System.Configuration;
using System.Data; using System.Data;
using System.Reflection; using System.Reflection;
using System.Threading;
using System.Threading.Tasks;
using System.Windows; using System.Windows;
using UIShare.PubEvent; using UIShare.PubEvent;
using static System.Runtime.InteropServices.JavaScript.JSType; using static System.Runtime.InteropServices.JavaScript.JSType;
@@ -23,6 +26,7 @@ using DeviceCommand.Base;
using AutoMapper; using AutoMapper;
using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Logging.Abstractions;
using ADP.Profiles; using ADP.Profiles;
using Prism.Dialogs;
using ; using ;
namespace ADP namespace ADP
@@ -60,6 +64,56 @@ namespace ADP
} }
protected override void OnInitialized() protected override void OnInitialized()
{ {
// 向命令库 CommandDialog 注入弹窗能力(命令库是纯 .NET 类库,不引用 WPF,这里通过委托实现依赖倒置)
var dialogService = Container.Resolve<IDialogService>();
CommandDialog. = (, , , , ct) =>
{
var tcs = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);
CancellationTokenRegistration registration = default;
if ()
{
registration = ct.Register(() => tcs.TrySetCanceled(ct));
}
// 命令可能在后台线程执行,统一切回 UI 线程弹窗
Application.Current.Dispatcher.Invoke(() =>
{
var param = new DialogParameters
{
{ "Title", switch
{
CommandDialog.DialogType.Warning => "警告",
CommandDialog.DialogType.Error => "错误",
_ => "信息提示"
} },
{ "Message", ?? string.Empty },
{ "Icon", switch
{
CommandDialog.DialogType.Warning => "warn",
CommandDialog.DialogType.Error => "error",
_ => "info"
} },
{ "ShowOk", true },
{ "AutoCloseSeconds", (double) }
};
if ()
{
// 阻塞:用户手动关闭或自动关闭后才继续执行步骤
dialogService.ShowDialog("MessageBox", param, _ =>
{
registration.Dispose();
tcs.TrySetResult(true);
});
}
else
{
// 非阻塞:弹出后步骤立即继续(不等关闭回调)
dialogService.Show("MessageBox", param, _ => { });
tcs.TrySetResult(true);
}
});
return tcs.Task;
};
// 配置全局日志分发器:按 CurrentScope 路由到对应 LogArea // 配置全局日志分发器:按 CurrentScope 路由到对应 LogArea
var globalInfo = Container.Resolve<GlobalInfo>(); var globalInfo = Container.Resolve<GlobalInfo>();
LoggerHelper.Progress = new ScopeLogDispatcher(globalInfo); LoggerHelper.Progress = new ScopeLogDispatcher(globalInfo);
@@ -67,6 +121,8 @@ namespace ADP
//初始化数据库 //初始化数据库
DatabaseConfig.SetTenant(10001); DatabaseConfig.SetTenant(10001);
DatabaseConfig.InitSqlite(); DatabaseConfig.InitSqlite();
// 启动时检查数据库文件是否过期,过期则归档(重命名加时间戳),后续会自动创建新库
DatabaseConfig.TryArchiveOldDatabase();
DatabaseConfig.CreateDatabaseAndCheckConnection(createDatabase: true, checkConnection: true); DatabaseConfig.CreateDatabaseAndCheckConnection(createDatabase: true, checkConnection: true);
SqlSugarContext.InitDatabase(); SqlSugarContext.InitDatabase();
//显示登录窗口 //显示登录窗口
@@ -152,6 +208,7 @@ namespace ADP
//注册服务 //注册服务
containerRegistry.Register<IMonitorValueService, MonitorValueService>(); containerRegistry.Register<IMonitorValueService, MonitorValueService>();
containerRegistry.Register<ITestReportService, TestReportService>(); containerRegistry.Register<ITestReportService, TestReportService>();
containerRegistry.Register<ITestCheckRecordService, TestCheckRecordService>();
} }
//指定模块加载方式(需要手动将模块生成的dll放入Modules文件夹中) //指定模块加载方式(需要手动将模块生成的dll放入Modules文件夹中)
protected override IModuleCatalog CreateModuleCatalog() protected override IModuleCatalog CreateModuleCatalog()
@@ -1,7 +1,9 @@
using UIShare.PubEvent; using UIShare.PubEvent;
using UIShare.ViewModelBase; using UIShare.ViewModelBase;
using System;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Threading;
namespace ADP.ViewModels.Dialogs namespace ADP.ViewModels.Dialogs
{ {
@@ -69,6 +71,11 @@ namespace ADP.ViewModels.Dialogs
public DialogCloseListener RequestClose { get; set; } public DialogCloseListener RequestClose { get; set; }
/// <summary>
/// 自动关闭定时器:自动关闭秒数大于 0 时启动,到时自动关闭弹窗(同时解除阻塞等待)
/// </summary>
private DispatcherTimer _autoCloseTimer;
public MessageBoxViewModel(IContainerProvider containerProvider):base(containerProvider) public MessageBoxViewModel(IContainerProvider containerProvider):base(containerProvider)
{ {
YesCommand = new DelegateCommand(OnYes); YesCommand = new DelegateCommand(OnYes);
@@ -93,6 +100,7 @@ namespace ADP.ViewModels.Dialogs
public override void OnDialogClosed() public override void OnDialogClosed()
{ {
_autoCloseTimer?.Stop();
_eventAggregator.GetEvent<OverlayEvent>().Publish(false); _eventAggregator.GetEvent<OverlayEvent>().Publish(false);
} }
@@ -117,6 +125,21 @@ namespace ADP.ViewModels.Dialogs
ShowNo = parameters.GetValue<bool>("ShowNo"); ShowNo = parameters.GetValue<bool>("ShowNo");
ShowOk = parameters.GetValue<bool>("ShowOk"); ShowOk = parameters.GetValue<bool>("ShowOk");
ShowCancel = parameters.GetValue<bool>("ShowCancel"); ShowCancel = parameters.GetValue<bool>("ShowCancel");
// 自动关闭:秒数大于 0 时启动定时器,到时自动关闭(供命令库 弹窗 命令的自动关闭参数使用)
if (parameters.TryGetValue("AutoCloseSeconds", out double autoCloseSeconds) && autoCloseSeconds > 0)
{
_autoCloseTimer = new DispatcherTimer
{
Interval = TimeSpan.FromSeconds(autoCloseSeconds)
};
_autoCloseTimer.Tick += (s, e) =>
{
_autoCloseTimer.Stop();
RequestClose.Invoke(new DialogResult(ButtonResult.OK));
};
_autoCloseTimer.Start();
}
} }
#endregion #endregion
} }
+1 -1
View File
@@ -208,7 +208,7 @@ namespace ADP.ViewModels
SilenceBuzzerCommand = new AsyncDelegateCommand(SilenceBuzzer); SilenceBuzzerCommand = new AsyncDelegateCommand(SilenceBuzzer);
GoBackCommand = new DelegateCommand(OnGoBack); GoBackCommand = new DelegateCommand(OnGoBack);
_globalInfo.ContextDic.Add("default", new ScopedContext()); _globalInfo.ContextDic.TryAdd("default", new ScopedContext());
_eventAggregator.GetEvent<LoginSuccessEvent>().Subscribe(() => _eventAggregator.GetEvent<LoginSuccessEvent>().Subscribe(() =>
{ {
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,932 +0,0 @@
{
"ID": "ccc7621f-6e03-429d-968a-ce36b5646a25",
"StepCollection": [
{
"ID": "9dc37d8e-e536-426b-9af1-8c097a6aac9c",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "d7f9ee6f-05c1-41b7-8310-0a8eecf79c1b",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 4,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2e6a892a-21ca-4281-ad5e-4604ae2ebf11",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e2e7c9f8-a894-4244-83ab-9bd3155778f5",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "736132bf-c760-4856-bc35-60935a8a41ec",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c06e9185-4c40-49a1-9d34-2649cfdd2341",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "13f97997-0d92-4b2e-8d4f-6efc43e5f113",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "f5f164b7-11b2-480c-99a5-348b11a4f9ea",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "53130b01-9cf3-4868-9b40-b7bacf802bb2",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6523d771-d585-4901-a08b-fedc42185cbb",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "709a5f65-6b27-46a2-ba79-2d52fbf9106e",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "02fa59ca-e70b-4e0e-9142-e001ffe29ee5",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e53820f0-be29-469a-ab4d-f74c49cd5b9c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a73ab236-2119-432b-862e-7ee767914ea8",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e62ab3b9-af36-49fc-aaf0-cecd4bb1a345",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "33988bca-1dc2-4dbc-9f85-0a474a6a1e98",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "afe86cd5-6f56-4caa-8eda-8e8ef1320bae",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "30225545-f70f-4c90-aa31-218d6fc5b7c4",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "0cf03cff-f297-4711-b548-800820a22613",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "1a8a673b-8bcf-4587-9919-14488b7c2355",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "03cc1eb0-4c78-4220-b1bf-1759e98d40ea",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "75bc52eb-66dd-4fd8-b40e-f7a4341aaf3a",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e9fa812b-6cd0-4d0e-8f47-1721bb581d57",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "29559982-d6e0-4cab-accd-a7c0be11071c",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8c700b55-5fe9-4be0-91cf-31b283be569e",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a5ad3b4f-98ca-4c89-bde8-04de51f1ed7a",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "03c50c9d-a381-4ef8-9ed9-42f3c47a0a40",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "cb01da4f-94d7-4e44-bd0c-619186a1d019",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4ef0bdc2-f484-4d89-9acc-93bf9c3641e4",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "dfa005ea-b70b-49e5-a3f7-20f55e3db5ce",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "60c9d111-4046-4541-a23e-b5fab106967e",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "175fd4f9-b6c3-43b6-9455-637f8927f795",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9c563754-a65b-4037-a606-696c82b13227",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "946fddb3-21aa-4748-ae98-863e154c735b",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2710f963-5509-4857-a7a3-6b75e623ad0e",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "5019bd1c-2deb-4f58-bdf5-7ec46c7b798c",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a2dc90c5-7d9c-4728-937e-ca6321916cbc",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "905ca132-7712-455a-b073-05827b3e8e64",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "ee0bdb30-951a-4dd5-b591-a4277f73c921",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "78d25df0-b53c-4cfd-99ea-f59e8a7a29ea",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9f7e60f2-de5e-4c87-97d5-bc3c5ed618e6",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "da88e445-fb4e-4c12-ac77-aad94437ae89",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "7f340882-3b1a-41b5-a00b-b585141599d1",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "47945a08-1d36-4e2d-b561-46934777919a",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "cca17eef-444f-4254-8c85-c47cbdf019e2",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5456db17-d063-43a2-a52d-bd480e757a2e",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b8e309f0-3190-48dc-861f-8c167e33b768",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a2a1c8c4-a2d6-487c-ac2d-bea18be2a03b",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "db8f8f82-f14d-4306-8f5d-b4830ae6a1bd",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "1026df5d-df48-4134-950b-c5b98f41b916",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f8f092e2-e90a-4011-acf7-5ca00fe92eb3",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "95d99a98-d1ec-4828-b7b9-670d0d1cd813",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9efa5c1c-b7de-416a-9072-b6edc2ea1c5d",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6b28a1e1-0edd-4ff7-b882-791c4d9f6d84",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "52c683c0-a6d2-4d99-b045-ef6139e7862c",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7529748d-0890-4de9-a256-c6493cdaf807",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": []
}
@@ -1,933 +0,0 @@
{
"ID": "a3e71a62-6d32-4de1-8175-eb50a362201f",
"StepCollection": [
{
"ID": "9b958036-628b-4a5a-8527-2a01ef9cbe8e",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "5f2d2664-5af5-430f-9981-e360193e76a5",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "625e3534-1063-442b-ad34-33586ce6e6d3",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f00b6a91-2c2c-4e32-8763-e2953194f90f",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "90d11e2c-5d5e-409f-9713-5213c514ea01",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2349d844-d6a7-4ccc-9faf-37326e1d6fb1",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "354cba91-9163-48c6-81bd-d5cd221dba56",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "d63f595c-cc3a-4745-b48f-089e9ac4d06d",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3cb0bb0a-550d-4755-bc23-de3120973a3f",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f4037ea8-a48c-4615-a466-4f819dbe6bcc",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a3deb867-a22a-4d7c-a42e-0dbbd573326c",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "10b9c7a2-415d-4370-a350-dd99d5877467",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2c80693a-69ed-4343-862c-d3176a1725dd",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b64744e9-f991-4ade-a3cb-cad597e1cec7",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a5133c35-e5e1-494a-8d45-a5061774bbe3",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "ef253f6d-8c75-4852-9f56-169da4cd335e",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "802d9686-8d6e-418c-85e4-339cf1d30cee",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3e870d94-9dcc-47ad-8bad-9f7ab347dc99",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "4816ce8c-a894-4b22-bea4-cac5e83e9bb4",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "aa882ea9-9097-4a35-9582-1fccea8bbd42",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "13a80ac0-b640-45b3-b5bb-5065c811919e",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d997d714-d333-44be-abbf-c3dbff3d7853",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "37e108fc-e2ad-4112-88ff-8522c4e798be",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "ecc23e23-9fbd-4c8d-bbe5-5633b09e13bf",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bbc28e5e-007f-47b2-903d-a3ac0a56055b",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "16de7d1b-df6c-4850-8c3b-8ee961bb3c76",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "ef5e3cb9-94cc-4c3c-85c9-4aca6d2ffbe6",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "613fd7f3-9712-48a5-be04-7754797889a0",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6e33fb85-f4e0-4500-b80a-a27d55cc2b50",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "55ddb144-7b79-44e2-8b44-c60038025299",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "93e2fd8d-1339-427e-afb9-8e95a0445dc8",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "5d0dc32d-3298-4f8a-b439-6232f389496b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e63320b3-d36d-4845-a098-64b61d038b1c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "69e987da-b33f-4043-bcec-85a44fe89894",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "36a83f4b-56b9-430d-8ef5-bf8bdf89eaa5",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "476a724b-ba83-4d54-82fb-4aed95d4e967",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "493010cf-0646-4bff-b908-2067f68101f7",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "86b468db-a03d-41ca-9554-1ec7fa384e3f",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f8b304d1-b550-4e5c-ad08-7f996db75e4e",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "9fa6b1ac-4c6d-49f6-99c1-8ed6f14702f4",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1d75c778-0830-4e9a-b79b-f166180d28d1",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8c633e49-88e7-4169-b8d3-d9be6786ebce",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "71f3f390-51bb-4d8a-bd06-0253d1a78436",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "7254b77f-2572-4d16-b834-2ff624c147f9",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e3739e61-6b66-4c3f-b44d-13124c0affb0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3c49f60f-9d3e-44e1-b78d-d0e6c64d1a03",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "697a241c-2b1d-4348-bbae-795c36299d03",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "70163f97-f2fb-4d77-a059-c404852895f8",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "96213f78-6a8b-4a2c-8668-e58c3c6cd361",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "e0de8625-b719-4763-95e2-de240023358c",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b63544c4-5219-4751-9997-6eb20e1958e2",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "386c9aef-c505-4b8f-8104-968fa977db6c",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3780caf1-1fd4-4395-9380-19e426b5b254",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "80546cd8-5ef9-4859-9fb9-6b0652c0f56f",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ee256ad0-b3e5-474b-9a85-786c9ed7b2ec",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "189cc396-d70a-40f1-ad6e-1e5930afa8d9",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "输入频率范围45~65Hz,系统输出正常"
}
@@ -1,933 +0,0 @@
{
"ID": "96e67cec-a3af-49bb-8e74-e470b0d7754b",
"StepCollection": [
{
"ID": "530751bf-5cbd-4f05-8ade-b10b53680a67",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "373d2945-8c8f-4cea-885d-cc4d8ad3bda7",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "9cdcd48e-a212-447d-814c-c976981877c2",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "bf2dbb0c-d527-4922-a5ca-da454f4a9425",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "052fa491-bf84-4c73-94e4-bd07eb7dbdae",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1df7f9bd-0a99-4f49-8222-4adc04bbd4b7",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "162c43a7-f5b2-40ef-b4e4-1583a580824e",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "f3e6f4a7-89f8-4b75-85ef-8f51d92f713f",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c069b514-ed18-47e2-a42d-05a8c77839ea",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e63b8b6a-056e-46f5-8df5-d6513b55e3cd",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "4bd56d7f-8b21-4426-8150-ebffb2b973e9",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "941b7155-b309-4b1e-a894-80d332023963",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "130aa39b-5bf1-4044-869c-1a2b2c8af415",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ec0a6973-6d6c-4a3e-b6e4-d62336b07674",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f286fd31-7760-4aab-99d7-ec9031e7bc94",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "4a37d0bd-3d68-4281-ac2e-421fcc17bd71",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c045c597-750a-49a4-b2df-544cdbbce8e9",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "836352e3-268e-4e62-8ed2-7f0f9141d616",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "184ad35a-f792-4e87-b9e7-362982fa935d",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "8c17e860-e62e-40b9-a5d7-bf9c4fae1b04",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "07664086-ec80-4567-ac7d-0c50112484b1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "25e0bc83-c8fa-472c-af5c-a41f64bfb338",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "efd12fcc-c676-4fb4-a1e6-357a97fe9a06",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "dc592a25-44c4-46e1-bc4b-1914dd752e71",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "91ae5f80-d118-4296-b617-27509cb86b6d",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "554c7399-d562-433b-8754-e0798a0df922",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "817f3816-642f-4eee-bd99-f790df07d96c",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "720a3ba1-4783-41ae-b8eb-6666eddb5168",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1707bc62-b74b-44e4-8a3e-b009b98538d4",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "267ea073-b0d9-4e62-9ce8-05df006ba699",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "b865e207-ef04-430e-8d30-6fc8ab78fbf0",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "198f155b-7c98-4139-9cd1-9c990f80b75b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d1611330-2b0b-43f7-a050-cb8fb7935d24",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "de179236-8379-45d2-b3cf-e2f7e97d1d52",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8579ee2f-c7f5-4d37-a4b3-0763a3401db8",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "25bffcdf-0b73-4391-ac2a-5eeca4f9ca7e",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5bf4c7e6-edee-4e15-be77-ed3391e17594",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6df32e86-54e3-4658-8ea3-3c995cc28f3f",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "3f944034-25b3-4f8e-8a11-f593b5f8aa51",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "85c4bfc8-0967-496a-817d-f029b4f3c8fa",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "293af100-b82c-406f-8657-8121ec860d55",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "56fe5358-a517-4406-8bf2-3a974f03c6f1",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "c5804ce7-6061-484c-a108-e7266bf682ce",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "ec8e15ca-993d-4462-9d04-7e1df3a60054",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3a2de27b-0e23-456a-84ee-d658ce6061e8",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "24a440da-b3d9-48a3-b6f9-6ef0a795d563",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6bfe6509-fe97-409a-a95c-a04ec25833dc",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "778fecb1-6f87-4147-ad8e-d88a2e97851e",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8c0b47b9-00d9-4dc0-821b-5db9e2edfb97",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "18c14aa0-eee7-4722-93e3-6882b9321188",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "50bbadc5-4907-40b7-8482-b71b83fa1c6f",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "42bf1614-3c05-496c-b880-fb682b809d8e",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c3920953-b816-4bfb-b6f6-5e1128bfe6f4",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8f199eaf-748b-4dc2-a436-f61529046633",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c320d427-5858-4f36-b23d-72772286c866",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "192c0afc-5b0e-447c-9713-4b1a966e5f92",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "满载效率≥95%"
}
@@ -1,933 +0,0 @@
{
"ID": "63de8545-7ceb-47dd-8e50-660ba9de4983",
"StepCollection": [
{
"ID": "7fed9b43-b8f4-44d3-a362-9bfc8847606e",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "92935211-a2eb-4aef-93d7-0019833a6042",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2929776e-a25a-4d04-9dc3-a77f852b0e8e",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8aa487de-c259-4b8f-898e-25cda00875bf",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "f07a8aec-fe2b-489e-b92b-53d3a3907779",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b4151b4f-ff28-4935-a06b-d3c3f74ae7f3",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f2d59c59-9c95-4f9c-b482-35d1bd0f4564",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c0c1e207-134e-4e09-a63b-0eb380b55470",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "967cb924-c11b-46bb-b7b1-55971c68c89b",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6e0a4e34-4636-4247-98b6-818fc4d9eb72",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "0b6f9990-d1c3-4f07-b061-5f57325f5970",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "ab1e2773-8d91-4134-99f4-ec1707a26b99",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f74f953b-a747-4549-a8e9-48fa23cba42e",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "eb349249-becb-4ca4-8374-391510388462",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "7dcdd4f1-f855-4aaa-85f0-0a5792a7886e",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "a78b2b89-de69-4cfa-808b-612bac8f55d3",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fabfb080-853b-4654-96cd-0bda8c7508ff",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7aab0f27-08d4-45c4-8faa-7b0b841a7d86",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "30f119ea-fb4e-4b41-87c9-f2077485b57d",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "d5213f5c-470b-4100-ba4c-f641c2ed4b80",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "19e12409-a557-4898-bd1b-bbdf56b2125e",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7dc937bf-2774-4765-a37d-3be8faa528c5",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "82eb7c98-723d-4e80-bfcf-15ecac2dd367",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "aae9714f-ec94-4ee9-b7f1-ea8d384697ab",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "592efa26-d376-45d5-90e6-c9e1335586e7",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "07340d29-0004-41ed-9f4f-6e3b44f68fd7",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "219e1559-1cbe-4d50-b0af-44fff503f2e2",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "69d999f2-84f9-4b3e-acdb-09b05eca5fea",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "17850c6c-fce4-471e-a200-a8a8159f93cf",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "444ffe2b-0a5a-4c64-8a33-f8ee1dffd41d",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "0948fdf9-0320-4ddf-bab8-db52be1def8e",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "61120b04-e8b5-40ae-844c-e42331127969",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "35477836-e183-4ee2-afa7-eac59226df76",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "657b3e2a-bbc5-40e7-803e-b0ef454b61a8",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "7483afa3-014a-4d38-93c2-623f2f695b91",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "6350503e-b8b0-4d87-b637-cbd3f3a72a48",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "36ab0b8d-ab93-4921-b791-846ef7929e10",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "79d8a5c8-bab3-47e5-8840-9523d976d339",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "57c23707-fcf0-4342-b2dc-c31dfa6ca14a",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "a23d62cd-04a2-4b22-a3db-662dd0d4f6f0",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "93b06538-b67b-4d2f-8fb3-e18b1d3d03b8",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "17102a37-6aed-4582-ac06-eedc676edaaf",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "7fa5d6aa-ff6b-4948-a0c7-d249ebe88412",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "c703947a-d6bf-455c-8b59-9a9ca0319f75",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b3861c85-da9c-4edb-a069-8ca01431a387",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "382175fa-157c-456e-a00b-a0b930096f88",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ee9d4258-edaf-45e2-85ae-441090035d4d",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "b11799d7-543c-4400-807c-738b3bcdeb01",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a79e8833-4b22-4999-a6f4-79d4241876ee",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "27644051-dd46-4d67-abff-b2b7fdc08ead",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5d41ff0c-6904-4a9b-8d25-3d1b4b097a7d",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "344d3aae-f842-4aa6-bbe9-97017c92d035",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e6d12ff4-1b33-48ed-a193-e6a6be2be60c",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "82ce2f43-8fee-4a6b-9084-e2f920329e48",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ba2fe72d-21db-4953-90f3-0c8d41922b46",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "550f4768-dc61-4160-82d7-c5944653ea2d",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "满载功率因数≥0.99"
}
@@ -1,933 +0,0 @@
{
"ID": "bbdb1cd0-5e71-4981-be56-6f8221e92a4d",
"StepCollection": [
{
"ID": "0a246547-2fd0-46aa-b7c5-e5391933e0fa",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "f9df25d9-8087-4cb9-9d85-7ce24149191d",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a1f43591-91c5-4166-9c03-28b9be9fafec",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8e1e558d-2cc5-4aa0-96c9-6ebdd8052ec6",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "07e966b8-db6d-4667-9b19-bb814f1d8f84",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "30701798-e265-439a-9c46-3916bd6056c7",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a259ffb5-8b1e-40bb-baa6-0c1ba0f2aa27",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "362b97a6-65b7-4f8e-a83f-654d78a63aa6",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d818a78d-76d2-4105-bc4f-2c4a98668e1b",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9172529e-e634-44d4-aeee-00e2a3861e80",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "abeccf11-6ec1-4b12-a9de-b149b81d9d9f",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "97f96126-5463-4613-b558-3bf2cc898389",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3eedff42-3ccb-439c-88ec-312e202606fe",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "19314c1b-f3f4-4c4a-8961-1c88460fd49c",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "550d3860-97b4-4708-b654-e55be764e50d",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "5f5e18fb-a775-4ee4-b1d3-b37edde8ee7f",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "29d7fb75-badb-4c04-b106-dd00127ddf73",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f0a16870-a4ee-46b3-9c09-c9196935b8e8",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "c9f0c2ca-55d9-4826-9bad-305053124a17",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "9fb3825d-9e60-4242-891c-7a2c3e62ddcb",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "872d7bdd-1d01-4491-b843-e0cc972ced7d",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a1df6e3b-7853-43a6-8581-5c1e47a37d7d",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "262a608b-465c-4124-9e14-a198ec684d75",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "1b6f4d47-1da9-47fe-ad0c-1753e9be5c7b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "36965b7a-9eae-40c9-a4de-ba273fc540ef",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "39690584-40ad-4c88-a548-bd559faa8727",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e35c68e1-1ede-41ad-89c0-6fcc0bf6f24d",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "44965ab7-b2f0-4386-8e64-409435c1d67f",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "490c8791-4757-46b4-925c-40c08346285a",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "880495be-c902-45f5-b03e-b1d5d2736bed",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f88f22b6-e9a4-4039-b208-93f7a4f0c309",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "de67c4da-2d0e-4497-b34c-6869aa11e7e4",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "95cae63d-1442-43ed-9cad-28603c9fb10d",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "cb13c9ae-fa9a-4c10-b81c-4b6b6c1191ba",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "21848bc3-a837-4c74-9597-27316c010918",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "f13756a9-bcdd-4d7d-91e6-ec7ed34f7d57",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "02a3afcb-3216-4ae0-9709-b6a9a82bc7b8",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b006a3db-6563-4d40-8146-9385db97ba32",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "89c22d8d-79e3-4aa1-93a6-8f49b7e40351",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "c53756b1-7035-4dae-99e8-f7867b3278ff",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d1ffb648-2c1f-4c2a-9818-6dfeaf6bbb3f",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e840a80f-9218-4d50-a524-152bfe5d602e",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "accfa8f4-5c85-40e1-83c5-d11195f71913",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "67422d07-30f8-4481-a177-aa9e19e9ad49",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d136a9af-d442-4d67-b5af-aac8264c4f27",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7e8ec0ef-ea67-4ad3-a5a0-61576d4c18e3",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "209a652d-9f85-4e79-a342-6bebadb0e76d",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "3d6b0444-771d-41ca-8fbd-1dce3f1dc523",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "7d82f3b1-80da-4772-ba35-93dd9ce72d34",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "13a132d2-d187-43f0-a9af-2959a5bab9fa",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "dc3f048f-1f20-483c-92ff-63348ef26026",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e06cf19f-a5c4-40c5-92e5-347566522727",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "55ad6be7-ed6e-49c9-b9d6-c389e880a5e0",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "140c750c-d2e8-43f2-b564-400d28000761",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "acd542f4-53df-4584-8968-19526acfaf10",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "22410e58-77b9-4636-8e6b-034cce0d553d",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "谐波满足IEC61000-3-2标准"
}
@@ -1,933 +0,0 @@
{
"ID": "a18e7eb1-f7e1-43b8-ac3c-6a046e90119e",
"StepCollection": [
{
"ID": "7fface34-56c9-4f11-88b2-5780016cb39f",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "81e2a153-dbe8-43db-839b-f80d37ae49d0",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "3fa3eb1a-5f12-4ed4-b7e9-756a4c1521fa",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "212176ef-860c-4e06-9397-1cc5cfac21ff",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "a8a94baf-eec9-4e13-b7c1-cb06c5f4a120",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2b14d130-926d-4287-82ef-dbb0d41b5479",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "29b45367-84da-41c2-9d04-02217c0e2eff",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "7e995013-91f3-4f77-9928-330bafdca0ec",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "af91a27e-287b-40a1-a8a8-23cb369e1af3",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "55681df4-1dc0-4c61-ad2a-5e91db610167",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "6083ac7c-2b70-46b7-9677-0d48dc268cbe",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c784fa7f-28f9-4121-ab1d-4b80da75eef4",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4b5b091d-646d-4ee5-b066-083b795993c0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "18a4aad2-ee5b-4ff8-899a-2e3e18a566f2",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "5e949707-bba0-4711-ad7c-87986cd12e51",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "9f50b71c-f2b5-4afa-a67d-2d8b80e17915",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d47c2505-3b68-4292-ac51-b59385ff124b",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "274e0307-1db5-4c42-998f-94099b517e1a",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "edc7ff8b-da1f-44ff-a474-1ef7e9fe5336",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "d5ea0907-bd7e-4250-936c-34c3dce00ae7",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e4672796-2265-450f-9a47-080d97df13d0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "948612b5-7a60-4b07-a19e-59d9a11fc469",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "b10c3053-f98b-4dfb-8c12-324a44b1d46a",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "b291a16e-f16a-4667-9378-1013f966241b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "08583b7d-951e-4057-9696-ded8d22b39f4",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8d4e8581-d521-4261-8fed-086e780b59ad",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1e5e710b-f188-4be3-970b-70d8f347886f",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "ef0363bc-106e-41bf-8cd0-26df543fade0",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b0deec7c-9270-4838-84e9-180c3e7ac138",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2126ef43-33bb-4bda-bd8c-7c2aef5c7074",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8082f719-5b4f-43ed-9d40-b5f24912b385",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e3749909-8857-4e39-8c50-d03ddea271d0",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b4b7ef32-a67f-42ad-908d-a1fea7682ff0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "07bcc036-2517-4552-a88c-7766a0b144c7",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "40a6fbfc-cbc9-44e3-9450-5f8ff9f29b55",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "7eccd094-a9cc-42ee-bc52-027468203f12",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0232d4ec-e5f4-4b07-9a5c-7a8a26313521",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a24f46aa-319f-4c4e-8848-f6eada85a959",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "d763b035-8493-4baf-b6ab-1660f3580afd",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "bb9f25ac-6d4b-43a1-b2a3-213220a9fbc0",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2faff909-f73f-4784-8933-818bda2ad9aa",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "73da5279-ece9-4a26-8fd7-3257393a90e3",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "11458a95-9db7-42bc-bdf0-96e1db6853b7",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "4c933cf9-40a0-4673-80f4-c8488e4ee5eb",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2177d1d2-36a6-44cc-aeb3-1593532bf0e3",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "66279846-584e-4869-9a1f-777c9693fd33",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a8ffa5f4-2d60-4184-bd7f-2cfd3818bd82",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "519618f4-a591-4644-b1fe-5e5b5b10f2f0",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "c5229eab-4dfa-4ff2-bcc7-073a20607440",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "1153821f-c4c1-40af-8169-025bd4f5d3a9",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "42226eed-8876-43cf-86cb-3d5821016935",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f3d6768a-098d-4424-af11-833d407c3ebe",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a6048e56-0d93-4581-b9cf-821d05dd54bb",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "050e7e1c-a014-430f-973c-7196a416fc73",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "015dc8c2-1e63-4e1f-97d0-f5e427b309a2",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1e8d4659-e61f-45d7-8074-7f478c607338",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "输出电压范围220~490V"
}
@@ -1,933 +0,0 @@
{
"ID": "7042ed72-b5e0-4f93-9992-fa85bef1c415",
"StepCollection": [
{
"ID": "990bc64c-8b5c-45aa-acbe-1d8a9e591dec",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "935841c2-6e5e-4ca3-9aa9-206ae40a9fb2",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "bb283f31-dae2-4016-8abd-673a901166fa",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2c4e22da-c0cd-4f37-bd57-b5de326b7ee7",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "e9aa3cb3-7a79-49b0-943f-5a43b8da1609",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7ac27362-c4a2-46db-b7c0-7fbf3810ce35",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2a634e9e-5e44-47f3-865b-3bfc5edbfa58",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "77cd6668-382a-4a5f-82ff-c597fc514798",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6ba5f63b-92bc-46ef-948e-516e738e6756",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e0cb0e80-1a42-465f-afba-9426a11864c8",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f026bf8c-3fb7-45ba-90cb-02bdae955e3c",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "a0dddf4c-020f-4bf5-9d09-d26405eda75d",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "688df897-c811-4b59-8e89-3800ef8abc1a",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "33606744-b0cc-4a03-ba95-ede1d5e7a84d",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a97ffac3-6431-4a15-a8cd-586ec5a0d38a",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c66f9c53-1d4b-4239-b6ed-4b6da05d9f78",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d2659efd-3372-41b4-a82d-dbe062738f15",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "267ad88f-b9a7-4351-9809-0508a4f72440",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "5a59d13f-b75f-4694-8615-cbebc3c2f741",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "d6e3c7fc-a5d9-482d-9fd1-8f8f21e0b3b2",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ce34eb66-c6bb-4124-bf65-750a1a5ddebf",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3e0f1b4d-0180-4221-a90e-ab80b5fdf60a",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "fd33b833-6527-487f-ae46-11e70b90a06b",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e8570464-9b3d-471f-87a6-1ed02b51953e",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c94d4f51-355b-4c67-9711-3178b5bfa956",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f6432385-4e93-4e66-9f89-035d40d2c27e",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8c043ede-61a7-46e4-adae-60aca01e3093",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "a134175b-03f4-4947-832c-f75b6a1d30f3",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a63ed8e9-cfe4-41db-b809-dca4351e3fa5",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "dd589a0c-a733-4218-9a59-7ba2194f456d",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "b5e70ae2-22d4-4f8b-9194-da33dccbe021",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "bcdbd783-0462-4689-bfa3-bfa651292504",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "64eae477-3808-4ca7-9100-18135a2d91ee",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f13c4ff1-2720-431a-9c1f-3485ab66e188",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e8cc36e5-adbe-47e4-97b3-ba71cf1e1252",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "ab622016-2c2e-4cf3-a6ef-fb5f42cfeb71",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "03887b33-b0b2-4e03-9c86-c6a8e026a302",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "581f24cb-11aa-451b-a362-103f2d0ddb6a",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f43ee562-bfb9-41b1-a48e-55c944063ff5",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "7050d4f0-12c5-4b4a-9eed-5df81698ca82",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5046ebeb-963f-45db-8a81-71535214bbd3",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3ffa4fb4-dcde-465d-a6db-e1934199b0de",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "12b85fa1-38d7-4b0e-b5cb-ef10204f4860",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "0c524ba7-dabb-4b34-ad7e-1d408e1f1693",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f03610b1-c7be-4330-84f3-eefc2dcbf7a1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "53d35a04-e0d3-44ca-a0af-344bb0394407",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7f99228e-37f1-4aa0-a38c-7b8797948009",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "4c0a201d-56a0-4689-97a0-0cbdbe08a692",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f08dda5b-d15e-4e74-a2ec-a8e940043f14",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "9418874a-5d8e-4ee0-a78c-b9deade40a6d",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "58b781c3-ee47-4951-83df-7e345094d3c4",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "31ffdd48-322b-4730-b11f-18d079c37dce",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "da92b1b4-880d-49d6-b0f2-27e8fdb3b7c6",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "dd6de645-19fd-4648-ad71-cd210f954625",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ada8500f-5637-41f0-a545-acfd15a7ea05",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5ad7bccb-0852-4569-8910-bc1f7da58988",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "输出电流范围0~33A"
}
@@ -1,933 +0,0 @@
{
"ID": "d6b8c7ce-a9c6-4ea3-adc1-bbb2b02cbf88",
"StepCollection": [
{
"ID": "da5ff1fb-e777-4454-9b8e-fb963eb581a4",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "7c2f4e07-cf9c-48e2-b2b7-7c63caee3c20",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "7ce715ad-8031-4e35-a532-c449f45495a5",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "13889fea-0b42-452d-aff2-d21a8c9cffdb",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "5f890767-7f6e-4da8-9a04-5cd2f0342044",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "582f4b4c-bf6c-4ff9-8d72-d10da9a03e65",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "95d5d389-9d72-43a8-852c-1437f499074d",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "1928d2cc-cef7-4c3c-bbf6-c6e521e0430e",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e3633f7c-dc22-4b98-935b-2ff42a5aca7d",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0e958a6c-b231-4e30-93fc-9bc4792ba194",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "30ce6f6b-6942-4082-8dcd-e21ce65416f2",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "578f6f73-0396-44f1-86b2-5a9ec83efdde",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fcc3f633-061b-42d3-ad83-ef5536f2327e",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ec12946f-ec81-4252-9e05-e4d11eede69d",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2d519686-fe4b-47c1-a1b9-2cd8b81e9b96",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "4c61547d-9453-4f5e-aad9-042ecb87f93a",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3e2ddfa2-91e7-4533-81e9-fd5a3246eba6",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "63a3dc64-eb1b-4d41-907b-a09e05f75100",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "bfbc6b68-f20b-4fed-8541-30ae157ef510",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "6cad82ac-4432-4f98-a215-f37cb45af3c9",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "494ca7ba-1f44-46d9-a1fb-dffd9f35557a",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a7846ec3-fe34-4771-a6e0-c63c8485bce5",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "5f660a5c-1a06-4018-a5e9-b5c631a91d6d",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e7ba99ba-0749-46cd-a531-d2644eb19fc3",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "29bf6719-6440-47b2-ae37-d03ba5a96896",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7b7a1422-d56b-41b9-92de-0be990222cde",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8ea7eaa5-87fb-4930-9294-48cf39a4c61d",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "6b3d7ec4-743e-4a7d-b6c4-51578c4195ea",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fe6f0370-bd21-427b-ab6e-86771b8c65d8",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a4395823-54fa-4aac-9ffb-397941c30713",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "fc4b4340-4ad2-47cf-be3f-08b7bad12755",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "b3378fa1-1e82-4f1f-bc96-7c41f2e6c98a",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "040a12df-5fda-42e8-820d-474c157c6028",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8ae9e22c-effc-4c6b-b14c-137c6f805d80",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "3a90b504-2567-4f0d-a844-383e51898810",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "fc4b3e91-6c09-4068-b2e4-f31c8242df41",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "89fe014a-ef77-4aa0-a082-35d8c2be9b6e",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "50a497e6-1214-4f58-ac32-e8ff7cb49a5c",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "0376d7a4-2a0c-4b92-9cc1-915b52221da9",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "fd9612f6-2292-4b6e-85f4-84e55450ce5a",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "412cd66c-7335-4baf-bafb-ca3595b9f326",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2b002360-f97a-4974-be01-c0a41122b665",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e5ef7426-6078-4709-bb0e-034739e14b14",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "11326f44-5460-4b0c-8f22-7d158b1a7a48",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b2eee685-2268-4ce8-8bd3-816d5fa435c1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "97989324-9992-4ebc-b55d-aa00bd68f639",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d60bb910-af78-43ad-bbc3-bac0b1c26152",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "ae0a1dc5-8f74-4161-ae16-7b22e2adda0c",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "ccf81d60-a2a6-421f-9949-8c589140fa4d",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "d78bc02c-4b71-49c6-9ed5-8f96ea81aa29",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0bfe9095-7283-4de4-a6e3-27f2d50f7ccb",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ec91331e-cebc-4851-9aa7-95feaab80324",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9ea8fd1e-c9c9-44eb-b23f-2017fb26c85e",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "79db466c-4c13-4691-b2fb-94336a4f342b",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "032c30de-9445-4961-bcdb-e9fb079d19da",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b62f6b3e-1099-4c3f-bbd8-825795eae41f",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "输出电流纹波≤±5%"
}
@@ -1,933 +0,0 @@
{
"ID": "cc807464-d103-46e8-bc6b-9362fd4e316f",
"StepCollection": [
{
"ID": "fff7ce15-cc63-4def-8bfc-ed671ecbc7e6",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "31f595fe-fc92-42c4-91a4-5976207bd868",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "88f3e6b5-7f43-4171-adf5-5775f0c905c1",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e69b06d9-0af5-4f41-802f-6e41ba6f745e",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "b3b0b285-37b8-4dd6-83db-cb7e098015e9",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "dc4516bf-fedc-4b39-8d51-596fbdb13686",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "da4f5d2f-7a79-42a6-b07b-f4e8b25ac3cc",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "8ee39363-99a0-4b90-b86f-1cd39380972b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "21c1bbdf-6069-46c0-943c-aae2d70710ef",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "afbf7bc0-87fe-49ff-9ab3-d5a8149638ec",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "cd94fd1b-09bc-4d39-a7f6-38426b640144",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "f3995c7b-3a55-4505-b950-93f599d5a647",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6377e476-ee15-43c5-b4e4-fbc128be5039",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1d6a0103-1578-4da2-baf5-1c495a2c8340",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "6879feff-9135-4b47-abac-470000511f35",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "eb3d8f43-abf1-4d61-acf9-03583d47d827",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a144b418-9948-40d0-b348-791f7d3785ac",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a964d3b0-f48f-4d59-8fa7-6856d3c7833e",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "77bf00ab-694f-415a-9492-5c9dc1b4b452",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "18e6baf0-e9bd-4c4a-889a-80c11739b686",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5ba3c543-9634-4a97-8dda-3d6e0a70fa8c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ac3ad9f5-4da5-4dfb-a02e-60d5de17ffca",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "88aaa68d-ceea-46a7-a2f8-f5654b51e2cd",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "30539f2b-c88f-4263-8ee8-4606b12be9b4",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4bd8fa35-b975-4230-b4b3-36a3b98d1558",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b2b8ba81-05da-427f-99aa-18ee96f5ff5b",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "686ec53f-1657-45b6-bd66-55787950fb40",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "dae60953-c8bd-4d8a-8ffa-97e48d27fb19",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "aa46730b-f0e7-41aa-ba01-778cbb47fae3",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0d2660c9-794d-4dda-a425-f2a954df28d2",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "0517a257-d40b-4893-b79b-9b5c8a59a224",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "894a5ff4-46f4-4264-9171-ac27182b9569",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9cbae842-f790-4ee7-bbc2-6479e34b3e89",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5314ee8c-87ec-418e-a779-3f8554d17a52",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "dc386d9e-4080-4cd7-8965-a4b06bf62114",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "06d45d3c-82ce-4f07-a3d0-5b1d7449a3bb",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8cdf5617-2481-4a7e-b931-648ccbd03a26",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0f4daebd-e63a-42b4-8eaa-b8ac87e88748",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "51cf50c5-f85a-4ae8-b187-05d3bb76b951",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "11bc97da-62bd-4acc-aa52-39e021673737",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c8e8cfc4-eaf2-43c2-8568-8dcee649145f",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d077fbac-b772-4539-8499-53080f2eb4b6",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "4b37958c-e676-49cf-a8dc-a8d59bdfe8bd",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "80683521-05d7-4d02-91bd-52ed58d848c1",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "374de1a3-0f99-4026-aace-7d168181f090",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "85905554-a6c1-4b8c-9c9e-9f4e703d6e4e",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "db980a2c-14ff-48dc-92b6-fb7a5fb6308c",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "294bd434-2180-4b44-9468-a2920d5ef86b",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "cfcd377e-e151-40a1-994c-9f4991b4cf82",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "427ff448-ec80-4f8f-bc22-f2ef7ff1130a",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fe732df1-da66-4c46-9173-a7cb7394407b",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2b75d8eb-548f-4dfe-b737-575a83a0fe5f",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bf1ce95c-0da2-4327-ba11-60281e9d78ff",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4d28fd7b-f795-4fad-ab12-e4fbfd8a958a",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "29d85182-4402-4879-bda0-bdb7ccc87e73",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e3b9c3f3-ceb8-4ad2-a6c5-8f7dad2c3ff5",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "过压保护点≥500V"
}
@@ -1,933 +0,0 @@
{
"ID": "bdf34b84-df63-4b6b-89c2-8b1c2e380989",
"StepCollection": [
{
"ID": "56e5df0a-cf85-4dd1-bfe9-a1395c4be448",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "b065a449-eea2-4477-af4f-ef24d25e6ece",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e5f793c1-7a28-4eef-922e-25b1bab2eeb4",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "fb9ca7a0-1a49-4037-b9e8-01b50fbea88b",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "6c412ab4-e013-4878-9ec7-55285a21fda8",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a4fa8c90-f5c6-4e25-89e6-aa3ddf9401f6",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "cf67d5af-d43d-4351-a8f4-ecf34f4921d2",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "a5cd8b9e-87a7-4581-912a-55d45844f20d",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "22ce6956-b1a0-4cd9-8a6c-0adc72ab3b87",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1df06787-44c5-4f18-a78d-2896814ee91c",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "aac385b4-3799-40a4-bd6e-e3c092cb30f7",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "eefe3174-ae71-4a80-a434-4e5dc942b05a",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1bb09065-8b40-4422-91f1-10ddb4d73afa",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7d6983d6-f1de-4a96-b8b9-ef40b5abdb74",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "becc53f9-f811-4fa3-b610-67d8ad597729",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "82935955-0777-4f56-927d-5748c68be406",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b7bd7853-f69b-4189-a5fa-9fa6562ea19b",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f98da07a-1f9f-4f5f-86b5-dabf9a2f97eb",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "28d8a4e1-7e66-4bd7-98be-0e5b4487cc2d",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c2c145db-4c59-4aab-af5c-2acbc68caf44",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "162d8543-45f1-4e67-8e2e-9aa9c08ff28c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "35f26740-ffad-4445-aec8-4774147be9dd",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "522ca540-a703-4d21-9db6-21ac0cd81530",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "0566e908-d4d9-4294-a69b-8f33e2bddf94",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4160b030-ef28-4252-9388-7f227ce1559a",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bc5b9366-889d-43bd-a694-5b1a0ec01826",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "cf8a2f5e-fdc5-4b0f-861c-45896c59625b",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "7b9a8dbb-1f2a-4b08-8389-ed79968150aa",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ca330971-8698-4057-b501-fff130500881",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "897fc182-16e9-46c1-86be-c59f44ddd048",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "c6281558-cd30-45ed-a9e4-aa709478d32c",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "5b44c981-65ab-4c5f-8646-d16783378750",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9ac6ba43-bec8-4ed7-b7ba-37c1f71947e0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5e435700-a04d-4e61-9cce-bbfc73fabd74",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a5566263-1850-4b8e-8faf-6f99edde7fbb",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "2fec9171-07dd-4f38-bd8c-f3447978cb5e",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ea92f8a9-853c-4052-9a0d-21456d269781",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "eadb2ac5-7b8c-46f0-a790-1124ffa4517d",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "529827b5-5e27-47d0-89db-27bb5fd2ba87",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "558d6ce1-e27e-4432-98e2-031785a42358",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a4bd3ac0-1e98-4719-a01d-75a419bdc053",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7209592e-b9bf-4dd5-a0ce-5cb63c888f89",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "79efe164-1b64-48a2-9747-882112fe980a",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "35990f1a-6130-459d-9a8f-bd553ff75fe7",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "14896b13-9310-451a-bc3c-108d7441f74c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "498e54cb-38b9-429c-bc68-8bf6c9d21e88",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "02009b02-9017-41f9-9850-4966bc09dde6",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "ac10f188-1711-45e5-94b7-1fab894358b5",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "514c1a25-c36f-45d0-98e3-b87f32f6d4a9",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "8f863e62-8fd1-46ed-a599-fddd88aadeac",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7d112a68-996e-4802-a9d1-34044fd58a68",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4e63efe6-a0ef-47ea-b290-6ed98a41751a",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4fb7261f-a603-4415-8c7e-da7a3642bc5a",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7393e877-9eff-4606-bc23-1464877b720e",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3ed2f4ea-43b3-460e-a873-19ecf7426761",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bfce8c5e-a6ec-490a-8beb-ab0832073b73",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "过流保护点≥35A"
}
@@ -1,933 +0,0 @@
{
"ID": "25d5c8ac-8375-4233-89fb-9a668a026430",
"StepCollection": [
{
"ID": "7cfb5316-d6cd-4ce4-a9d3-ea78854e6226",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "0273c86e-24b7-4d39-981f-b4d84cced749",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e891466b-b028-475f-9607-af290bc82c2b",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "d7e570e9-940a-49bc-91a9-8923db8b224b",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "f5983adf-88c3-4d84-bc16-eab8b660698a",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "495dc4d8-e800-4b38-b0ef-500b450d0ae7",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "68c24aa1-fec7-43a7-b789-a94d294043cc",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e7561497-c820-44b4-9049-bc42d8f47aa7",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5cd1ad90-03fd-4261-ad1b-6fff864aa7ff",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d53161f7-8347-4ec2-8ccb-595e6505739e",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "483d197f-6e36-413a-96af-825eff36089c",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "b47d3918-b1de-4ef6-91ca-a66db7972c73",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f3257be5-159e-458c-9f6d-032cec2e58a4",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9a1a2a8c-9df5-45f1-a614-40d6e6f4700a",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "7ec91939-e4bd-4f7b-9c89-69421b006b37",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "06542e60-0d31-4f0c-adce-e7b8085849e2",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "80d20996-d027-49d0-a419-64f60dbd03c3",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4fc19ef8-de4f-44e8-a873-3c5313acca7c",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "927c001c-05b5-4011-bdd7-37eebace00f9",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c90aa2af-bc38-43bc-bf0c-83686289aae0",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bca19e4d-8dd6-4e15-b5cf-7ebc84a83185",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8d71d5ae-51e5-4470-844d-799326892bd5",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "633da1e6-f42f-4024-919f-6a7afad80638",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "cd08640f-58f1-4115-9886-f57980f3767b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f444e74e-cad3-444b-8aed-1f8f4e146827",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "be59e0d8-f0bc-43a7-9140-5cdc1e61378c",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "3d7d58e4-ffba-4595-87f8-5ebe952fdb72",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "b045fa45-cbe9-43e2-b518-f8dbcb7e27f4",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "794859c6-16e1-412d-8e1f-35e83ab8c012",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9820dfbc-1fb8-45cf-8316-90032eca7a6b",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "cd795a80-e9c8-4da0-b762-67697ec19223",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c710e0d5-aacf-4daf-824d-9fb119925c77",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1a4e2f9e-f27f-49f6-bc77-1a6b44a5bfe2",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "aa29b8d0-6ed8-45f5-b80e-b651b5d73003",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "efab0bde-a486-4681-be5b-4380d58b80f4",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e3ffd05d-eab8-4c5d-887b-e31d52943956",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f9ee92a8-2979-4da5-a757-c94da52f2abb",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "10771ae0-d6eb-4868-ae26-7972c1227ea2",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "05f43b07-08f3-49c8-b995-3ceecdc0c78a",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "1a86a114-8c06-4e80-bf64-71e48a6c0af4",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "befe1554-37b9-4c65-99a3-3e2e6b711de2",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e4daad06-8b51-499b-8d9b-4bfdb7125c6d",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "30159d4d-ad4c-4f16-bfdd-8c50cad7642b",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "39ae6a0d-fcf7-4bd2-9810-a80543c1671a",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1ce11445-af49-4f5a-aceb-1fd79418d3d4",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "594b04f1-3cef-4978-bd9b-c3028476f037",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "32d9e4a9-bea3-475b-8348-4072ac22441c",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1e890a21-305b-49bc-bb0d-afad9f6838c2",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "60ec4a3a-a6c3-423f-90a0-6393754b6f08",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "a32b60ed-e2f7-4dee-8498-517bb28fecd9",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1eb45041-88b2-42c8-93cf-e5cc120628fc",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fbd184fc-850b-46d5-9d88-aab1213d1e58",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2d589daa-1fde-4753-8abb-e44e3484b1f7",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6b2c5303-784b-4c2b-8a6b-0441586b02b0",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e83e1633-1bd0-4252-9fc4-cee249ba9aad",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f6ea46a4-5103-43aa-8b96-bb0810b563e6",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "短路保护正常"
}
@@ -1,933 +0,0 @@
{
"ID": "4902d65d-f151-4abe-98b2-1e23f14f4aec",
"StepCollection": [
{
"ID": "aba02472-8104-46de-bcdb-42c0571c05c0",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "e45b44a6-6bbf-46c7-85a9-df18a8749a4d",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "26d949da-0843-43fa-934e-e221d7858eb9",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "71a25c8f-a5b0-4c45-af64-be241304d8f5",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "5e8c84e9-1042-4ed2-a003-c20cbdc9707c",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c5e134ef-38fa-4e77-b266-575776fb5410",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "683adbf4-1a49-4643-a5b4-016d39fee504",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "53c9b64b-c5b9-4045-8389-d120bd69a68d",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "632c2a0c-163f-4d91-a658-1860c391674c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "de22313b-5438-43ab-a3e5-bf3e9c553441",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "5fc5108f-6d80-4ed1-b482-240973cb8dbe",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "4e8dd531-ada3-43f2-98b9-06d0940448cd",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "592a012c-08de-49ce-a750-c18b6c65f05d",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ae7186fa-af4f-4895-81c3-699d52b1e77a",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "6e68b25d-8f69-402d-bca9-7dedf7ddcbd3",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "2d0b2649-4b33-47db-98ea-5ac412e99343",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a3d36e53-2c7b-4563-916b-475f9daa597e",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fd8388ce-56df-4ce1-b265-e9f6368787fc",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2d0e5dfb-7779-4f41-b8c3-29c93860f4e7",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "b8a25f37-7d12-420d-9f55-9e5de157461d",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4186aa41-2087-40e2-b5eb-f0bf9a2951b1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9d7a1ac0-bf8c-4bc8-973f-48d63258b7ec",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1b73da82-c96d-4ec6-8264-dc7b06d0bb16",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "97441481-498a-47c1-8aa9-7247f4ce925c",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "93a57e5b-09dc-4f62-87a5-88582bc8ae64",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5a6873f3-d999-452b-b6ac-ba410ebfc1f5",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2aa2b4d6-c2b9-4116-8f8b-ff8e77707a1f",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "89b95f85-5fb2-42da-ab9d-72a55eda0122",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "16b5804a-16ac-4f9d-8688-249af097be38",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4ef60967-fc3e-4244-aa53-fff303f74acc",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "901d6d2a-0231-454b-927d-32d7d9472283",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "831d83ab-1d96-4a73-9d5e-a5397b5eae1b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "52efe565-95dc-430a-a3aa-68d23a9127a3",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e1590493-b2c1-4fce-a510-b274d911eff0",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a0f452db-d5eb-4e73-a0e4-c6e396b18ffb",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "713c9a05-917f-4f56-912a-83e74736065b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e4989964-6744-439f-87d2-8c18e81b8591",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b251e97f-23d9-4775-bbe0-e81d100122a3",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "cef1ee64-8226-4b18-b030-db6a0bcd3f77",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "0d51850a-d1f6-4a18-8eb1-8ad06ec9acf8",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "48c8ac79-5c73-4f53-b0b0-2f291888b30e",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "20180a26-8359-4fba-8864-4963cb3ddbf6",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "efbb230e-9299-46b6-ad74-fb190690798a",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "66b604f2-683f-488f-9b51-3a7cec3243d7",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4b7851c5-f89a-492e-ada6-e1d3b1e3aac4",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "112c8d21-4d27-4148-889f-b1ad85a23f69",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8b33186d-ed5b-4392-88be-dfe755527dfb",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "7a1e6441-5b7a-40d2-ab91-6f3162093e2a",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "0764267b-61bf-4ec4-be5f-d2073748ce61",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "1071ab4d-4373-4ea9-8fb4-e75614f7e8dc",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3946822a-c055-4260-afb8-165c9b458d05",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "90d67605-35bb-45a0-860b-08eafaafe02e",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bd39e630-16cc-4584-987a-705fe658be5c",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "46876883-624c-4c45-8d7f-90e8543395a6",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b6d52573-1018-465f-b0c3-2746e70091d5",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2a3358d8-f86c-4099-9ff9-d0e042386dd1",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "输出电压220-490V,输出电流33A,系统无异常"
}
@@ -1,933 +0,0 @@
{
"ID": "446684a1-d51e-468f-aa28-e3f9a6a798eb",
"StepCollection": [
{
"ID": "6983bf01-a881-43e1-b1f4-f3f1aad9e7dd",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "03ae8154-eda5-4400-88d2-3977c3edcd22",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a30391f6-20c4-4f64-a246-f542771bb619",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a2eef505-4d2e-4ff8-972f-00c3a6c5f717",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "b79fb55c-1b45-408b-8323-1efdeaeea8fb",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2f5e14b1-6874-4134-ae0c-51607c6518fa",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e62d9a91-64a1-4e3e-890a-300890a9d2d4",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "d1d0b753-4bfd-418a-9599-f4b43897407f",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f63f25cf-7160-4e7b-9b52-76d2f84cb35d",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "867a7b27-6eeb-4e4b-81e5-c6ac47331e44",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "99cd818d-b46a-4430-b19b-74525c728b77",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "6aacee7d-1354-435f-aeda-a05ee3ad3a39",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9d9f5851-af72-427c-b0b4-ec5a6753cb3f",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9094c5e5-be73-4c2d-b092-4911bdf886de",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "aa931870-04b8-439e-ac0a-2800a3b9e01c",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "cf9bcbba-4d9e-4191-b199-fb5c83fd2fef",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "363bf38c-8758-4018-a410-c6c8d9612acc",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "615486d9-3a9d-4ce1-bbf6-bb7d61bc970b",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "d5a82c4e-fd7d-4d7a-8ece-72e35dc1c960",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e43c006f-aca1-4afb-babc-329459a2cf53",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0ad5837d-3424-4a79-b146-79a080b99502",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "99fa97dc-c80d-4669-951a-51834fd04a1c",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "c5e8c574-d373-450a-bc20-2ca08197c404",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "fb36c8f2-867f-4e6c-aeda-34c42199cd41",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "037f5c00-85d9-433a-aa2e-98a9cbd3d5e0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "22cb1c91-aacc-4aab-8a95-7e87f7493776",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2f23d387-53b1-483d-8ee4-7eb67662a1b6",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "20ad7308-1abe-452f-8d96-e05b48b87404",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4987e637-adf4-4643-8afc-b2ce6220ac4b",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f0ee6551-b6d6-43d8-beeb-27664e5e6c83",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "36173f35-5886-43db-9c73-6fdc732fc8cb",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "cf8e853b-70b3-46c3-ae61-b76ad50fcbd4",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4c909eea-92c6-4f5f-acea-5ac07b559206",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "81ec427a-2ae6-4683-91a8-0c29608a8710",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "47085bd4-39ac-439f-aac2-7d3307efccae",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "10c6a571-be8b-45ff-9837-d38783bba50d",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5eff9bfa-c9b1-4e95-8a52-e89c09e3ffb1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fa9464e2-4eeb-40ec-9470-bffb122962b1",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "892aedd7-6679-496e-8702-635692c98e99",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "68ed035e-93d9-412d-8512-d37b8d98dd88",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a98b1961-21bc-4948-8a67-962ab4331634",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1f44ebdb-dc75-4d1c-85c9-fa7872dfe4ba",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "6df86ad1-2ab6-479d-898d-b0c7746fdf0a",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "5146e6e7-3e53-48d2-a244-f5680fab7f8d",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1e744a1a-b973-4a6f-9230-bcacaee78bdc",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "26b3df79-e320-4190-8710-60cdfc0b70c3",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "38f9267f-4d5b-4720-8651-3173e2820959",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "9cb1fe8f-d919-424c-a00e-773fc6e6d2e5",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "6abdacf3-a0a1-43e8-a8f6-c0c1eb4830e8",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "0151a671-ac09-4454-92dc-2af1cce261a5",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a74ad7f0-8cf3-4f0c-b63e-589d47cc42bc",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e4fb5b30-502c-4f33-bd9f-b559066b378c",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a5082f84-6225-44b3-aad6-dac977d3b0c2",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "56d92baa-4fdd-4902-a9b9-602b73dfd336",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c3d85c60-0c08-4095-a849-b40183fa17c1",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f5daeea3-6a11-4b99-a025-4f05823dbf2c",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "辅助电压范围9-16V系统正常"
}
@@ -1,933 +0,0 @@
{
"ID": "b316ef3a-e77e-4464-be06-5e66cb38e82f",
"StepCollection": [
{
"ID": "1da54c49-01f6-43ee-8362-f41c78701c50",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "86bf68a3-54d8-441d-96f4-c727b5bcc032",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "9d68ec73-0c93-4149-8b5f-62616de0f76c",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "4835fbaf-f74e-4cd4-b22c-17fc49315e62",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "1817e5b8-c05c-46e9-85e5-c4a6949899c5",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5f4dffcd-361d-4f62-aac1-64531597959c",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "cf137f3d-07c4-4852-a783-943332d6556e",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "9cb1f8c6-eaa1-4763-ae84-75a1ace55626",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9076c7cc-280c-4e74-9c13-696d174423d1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "97ef97f9-a63b-457d-b4ec-242b33603cb3",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f68d04f5-ce71-416c-aaff-e67fec4939c9",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "b3a13362-6d19-4468-a58e-7fab71b54e1b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b802bb05-97d3-4769-bc35-b956c7991678",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2850267f-b4b1-4957-81dc-09e7656d1bc4",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8e1941b1-73b1-4539-993b-b158bfe601fe",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "f57d6b43-16de-46e6-9a56-bee0e88410cf",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "61439c72-c434-4b8e-8a80-37e3ca3fa5ff",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2cd9a867-cc27-4a29-b1d9-b2726e49762e",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "ac74274d-34bd-4268-bfdc-882863d02640",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "7020f3b9-a862-4706-881f-cb947284cb4b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6eeb6407-1cc8-4a86-a050-66d2b9e59fc6",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a8746c55-bcbd-4a6b-aa26-d8dec2bbc68c",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "81748770-72bc-48f4-bda2-729e77c3eebe",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "aad6b993-9e02-4ffc-9153-03707b803480",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6b96bb1a-cde8-4a33-baa3-710f695dd118",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "db6c4c60-4ff4-48d2-a866-230081421f10",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a7aa188a-39a0-4685-9571-63e411417969",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "7877b99b-8d45-4984-9460-db182d2d3cc9",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2d5dfc3f-93fd-42ec-8eaf-854c4cd9a3d7",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4eedabba-d82e-426d-a76c-ea72e6cc8165",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "c48959d1-fa4e-45ee-9221-fb91ad5d880c",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "d117b0f8-5c85-45b7-b309-56510d123291",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ac8c1d89-7a57-421d-b2bc-735daba89e57",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "55fc6c34-8311-4c5d-985f-7ecb409818da",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "11e426fc-22c4-4f40-afe1-d52e43f3c929",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "08862ec7-e36c-4a94-b414-3151b2bb12b4",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "96b0f78f-0b66-489b-bb55-f786aafdbe4b",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "563ad2ef-47fd-4950-97fb-49cf0a872e39",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "857d98ce-3db2-4791-ae72-e5ab6b74011b",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "96cb6192-af9c-411c-b66d-3404270f9756",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "69775a14-caba-4f99-98f5-22c74baa7642",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ef4bf5a5-0598-47d7-a4c4-e0a0fc6acf79",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "0010e570-192e-4d20-92a2-2bf43852e10f",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "99de1c24-fc69-4d44-a448-69a7da4a4fa1",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9e1c478e-fb37-4337-ac81-9b556830106c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8a765444-e96c-4c64-9a0d-bab30e10c010",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e6b24d63-540a-42b5-8fb3-bec7d699d1b3",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "59015c7b-c35a-4108-b540-ea7d42e55361",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8c90741d-e9c3-4c57-92a7-628e757459b9",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "0d73915d-b883-4592-a011-b08289776166",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c97ab338-d67a-440a-aaa4-6b54c527470c",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1d24eec9-7d55-4f21-bf62-8cf398aec8b1",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b64c0693-fd46-4a3f-ae38-4e0ea7c63908",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1ed394d2-f305-461c-ba06-2f065ff975ce",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ccf58076-8f0c-4b6f-810e-97c3fbb530d2",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "95886305-9fd8-41d4-9bb0-c5e55163f213",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "满载功率因数>0.99,半载0.95"
}
@@ -1,933 +0,0 @@
{
"ID": "5205ba52-23c3-4dc2-aaab-54e0cd2d6991",
"StepCollection": [
{
"ID": "938e8210-b009-45ef-b800-d16d270cba34",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "1f5e67ab-1240-45e3-bef1-ce3ac2093e11",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "6f8f3429-7811-439e-80b6-c3c6879d0bc1",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "84bc9ee6-d98a-4ff0-ac2b-14ba78f79ac3",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "80ae78fd-1aba-422c-a620-d876aafda784",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fb57cd6c-c568-41f7-a28d-53f903979807",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "bad5afdd-8bf3-44b6-97ca-479566c9381f",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "400f4715-af4b-49dd-af6d-c0fea7f18654",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "17c26d92-93a6-4082-b731-bc7d92e0ccf4",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b311f97e-7d1a-484a-81da-c08795b5a896",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2cd20a10-d3e8-4f3b-9bd5-f47bd072d857",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "f3379df0-2d1f-48a0-bc2b-aabeb99ada01",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "aa1d520a-a8a3-4b73-a87c-dfad0c9aa6a1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d80d34f7-5652-4533-a636-7dadec917e54",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "9d6f66a0-e317-460c-8be1-eeac07b57c6a",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "029839d4-2ab3-4553-8a3b-77b399a1ced3",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "692b9b1f-f2bf-4c17-a570-6c702479ff0e",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "164d5962-fb83-419e-9032-9bcacc6b6c4d",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "842b6c6b-2160-45f5-85c8-4be0e17c7fe1",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "717f82ab-be88-4c0b-9dbc-040fe266ba5a",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0f5e372d-0fc4-4c39-b58d-24021ea827a0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6f76ccb3-4d82-4555-b442-87679b678438",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "b7caf56d-5ed6-4be4-bab7-a3d227cf23c2",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "8eea888b-133a-4736-ab6f-cfa7c8355226",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "213a1d88-688d-471b-897a-13b2cdb91a3c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "74463f12-37da-492d-a8fc-1909865b26f0",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "3b514afc-e1c6-48aa-81b7-06ce7a4b7685",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "8c8adcf3-4273-4a0a-83ad-7d5258373952",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c39f6a85-6b88-4dd1-9ba9-0fb1df0f75d0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f8f6c555-472b-4385-8836-dfe3011d1607",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "99cde55e-c581-4469-a59f-0bcd7db4e2c7",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "363eac59-2285-461e-93e0-8cabe83e2949",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "812932e2-d026-4af8-906d-adf50e00d35d",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "69af2d8d-4c75-45d4-8c61-04e2dbb7a8c7",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "5aa06b9e-47da-4237-a358-63ae9cadb5e5",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c670f77a-95bf-4b67-a23f-45369f35b2ae",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a6577d75-0593-4e52-8647-33aeee3020ea",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1f1149c3-732e-4f57-99ad-4afd4bb70d95",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "ebbb889b-7d34-484e-a8fc-e559d366f1d8",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "009a8403-85d3-436c-bd78-f2fd03a2027f",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "21f5c1da-f998-4f63-85a2-08a62ffaf126",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "58017280-7f7a-4800-9d7a-eb3cbd0f21f3",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "6a7b859b-665b-418f-b9d6-72f858f3f665",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "4874ba38-da86-4f95-b44d-83b25ab0b073",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9684b002-f642-4b61-a436-0ef6d9c1fbda",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8f76b775-a527-4c7d-9005-f5a814dcea4a",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "540a25eb-95f4-45f6-a8ad-4aa5ceca5695",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8efd328f-ccdb-4c6a-99ba-a98fb59b8145",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "c41818a4-f54d-4019-bdea-268b5ed1d898",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "302d4be1-5c40-41ca-b589-dbfb5df1192d",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f358bedc-f33e-495e-8d96-d776e8c1c056",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3f92bfec-3472-4186-874c-68b1f246d03b",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b47aef33-b318-4238-ae27-a35379f3b7ad",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5ee187ea-00a0-407d-bd71-2bdb8f6516b8",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "90d39f55-ebbb-46b5-9da3-3fe27be150e4",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0276ebc7-4879-4879-a72d-6f7a96604d8f",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "最大效率≥92%,最差不低于89%"
}
-933
View File
@@ -1,933 +0,0 @@
{
"ID": "b868b17c-b7ae-4b60-8904-4d3966f55b71",
"StepCollection": [
{
"ID": "4845e7f8-e564-4287-ac65-54431e82a1c0",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "a2268b22-f4d6-485c-b6ff-fde2a1e51112",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "901b15e2-21fb-423c-b123-9694f531b64b",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "dc1140ac-7b98-4c76-9cca-d4825769ac86",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "aa19dba8-338f-4e89-bb2a-e0e7e841f0ee",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "549aeccc-0ecf-4c0e-91d4-d94454df4988",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "de537cba-6be6-4654-b9d7-602a26ff7b48",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "f8248de9-36a7-47f7-b2f9-708c07020f0b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f6c61d30-2b38-4d44-a185-2957cb363b84",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3f01c16d-b784-4fe1-aba3-9e245db7c2a7",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "aed58652-1e6f-4c8d-81fe-f9462afc31ba",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "b37058fc-25fd-41d8-ba68-8f27f3840a3c",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "df397d12-b6a4-41a2-8cbb-4008b976f1d1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f77c3830-4b0b-40ba-ac00-4aa00b95a94b",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "29c516e6-ae5f-4ee2-8569-0d1a303ce083",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "a647e9ad-ea18-4cf1-be33-0dc87a4c3db4",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "20248438-9802-4913-85f3-ba2753a77bf1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "732bc1b0-e719-4933-a299-8fb149387e25",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1ce18e15-1b86-40d7-bdf2-b9f2299d1196",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "f2b24ea3-44e3-4640-873e-09d71ce254f0",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3b08ef5c-c858-49f1-8622-a73af873e980",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c5d9633f-e758-4f8c-9d69-54d5599726d8",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "b4225d6a-699d-4049-9400-1f887e250594",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "cd96d164-9d16-4b07-9303-89adcfe38339",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "27505ede-5154-41ed-8f7b-0c17aae438a3",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5bef417f-b2bb-4323-8168-35205dd8c024",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "b0ca8511-501e-46e2-966c-ac91bd74a009",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c71edab3-988a-4c81-ba37-617c355925e1",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2f71650b-41ab-402c-af37-a436e134fddd",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "cfaff9db-7f0a-4ce9-828f-71260e5c1934",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e0af2b75-23cd-447e-b3b6-9ae5a392956b",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e7607d14-3ddb-4b59-8792-0b70134521b9",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "06f30acf-e3fb-4f32-b997-8f54013d308c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "98c688f9-910a-4307-b2e3-18a8bf68dcf9",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "cbd3360b-08a7-4cfa-ade1-917b6a982b67",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c8d850b6-fd66-49c8-8ac1-8dca92b9ea71",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d636ac37-e40e-4c9c-b462-414401187236",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "eb6e67f7-949f-49a8-a1b1-aabaf2110ffb",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "74fd42f0-4182-41f7-9c2e-4daf5141e9c5",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "7cb96f19-a162-4f26-93e3-86ed85c2d872",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8295dcfd-87ae-4478-84c8-6b129158e4bf",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b3bb4c30-da9a-4a93-92d1-5c9e19ee911a",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "29579511-fb95-41c1-bb99-2f924815c121",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "3878b229-2c82-4668-9057-83b115013968",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f259f6e4-f244-42cb-a1e5-4796828c0e3d",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5d835588-9236-42b6-8d63-4368314fe167",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "64d3cb96-95d8-4c4d-9537-586298c0104c",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "71bd8e6f-2268-4593-b39a-a566719fba79",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1615a4d4-565a-4fb9-8285-4821dd02805c",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "d453318f-91ce-40f2-a580-0a29cffaf277",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c733e919-871c-4c57-806c-7a40478200c2",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "296e68c2-470e-43ff-8515-28b5ff61da58",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4b417c2e-c09f-4752-8757-4a061adbd170",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6a38d535-17a1-45c6-9c62-d6d225d37143",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "77cdbcc2-2ffc-4373-9a24-cb7c9ec5fcd5",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "cad5ea3f-8dc2-4f6b-ba60-6a9791fb3c24",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "wifi连接时间≤100s"
}
@@ -1,933 +0,0 @@
{
"ID": "f07f2633-444f-4699-85e5-e69c64a1fb35",
"StepCollection": [
{
"ID": "40e27c3d-a454-40c8-9b8d-58c33350367a",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "5bc833f4-3c24-4655-a4e8-8412d560d2ef",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "d9b0cfb5-52d3-4645-bcf1-6db1afaa0a7c",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "252700b1-84f3-4086-bfbd-ac53e5241144",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "e933270a-67b3-477d-adb3-692c91606a2d",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4cec89fe-2854-480d-97f8-6245dbb9b4c0",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "6e8ce216-a5d2-4685-9d02-9ab7843e1a86",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "228e60a4-3df8-43e5-8ced-0f6b0d09e30c",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8e909e52-2773-4766-91a6-00318b13b4c2",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "07a4bb4d-2ac8-4d6c-b753-71ef6759cb9c",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "08f044c1-9d21-4671-b8d8-8a50572ffd9b",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "dd9f79cb-d2d4-46dc-bfe7-c674fc0517e6",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a94a5ce7-ce4e-4e63-a23d-cc0b038a4860",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e29fe229-3965-4722-84ca-3dd02e9dec8c",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "729cf43a-8cbb-4c36-bb2c-7b1d8f195067",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "ed757547-3972-4797-b0f1-515e80aaf000",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "26e5aef7-0cc5-4d46-a6a4-48d597089b5c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8087ce94-4638-4642-9f17-c87c0b964c20",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "906e043e-1e25-47ed-9206-648130f080e6",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "bf2e24d0-7383-4fde-bd12-6271faf11ed2",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4d345dd1-25ac-40b0-b6d4-07bfd639ff9a",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "981fcfe6-5b23-4d5a-89af-532b5b887431",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "cfccd2b4-3434-4d6b-a027-5b64ef53a590",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "0614f2a0-6efd-4555-b9b5-69e9876a8151",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8168062d-fd1f-4261-be59-10cac88dbcf4",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3d78cff5-8300-4b5f-a40f-78cd4f0fbcfd",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "95e8a33e-af52-4bee-8add-c05e84467af2",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "96f5a460-85bd-4c78-9d96-8a20ac419717",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "09484fb5-663a-45d2-aa2c-3d82de2087c0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "35122b5e-02e3-4db6-8877-82ec211f9291",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "5a12e994-161d-4d30-8e4f-458fff0d7688",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "a84d1c48-5ad5-4b3f-8d16-f09ac19a1672",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ac6331bb-4bb6-4eb8-9794-189bdbf6eefb",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b5abae3e-09c5-4286-8d36-687968057ae0",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "6c07a2bb-8709-43f2-9325-af9836298e6e",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e4dac1a4-4c0f-4c1e-b7b7-e67039d2099a",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "daeb2fa4-cd53-42b5-a541-754e5f42e754",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d9680561-8686-49f5-9800-001dbf3525dc",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "9a8980a9-2b65-47c6-9ff2-3064d3bebf96",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "3e3da87f-1ad3-4268-a446-2048671146a3",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e6317a2d-ca3a-44e4-9399-2bba6352e863",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bd44e29d-951d-4688-b071-a816b2a40215",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1fd9b413-6cc5-4346-ba81-5ae225528afa",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "e46eae60-b3d9-46d6-bbaa-2e496facca5c",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2feaa641-0e94-4b2a-825f-9043bd69d781",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9977e030-6cc3-481e-ad81-98405b75d426",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bd822ab9-db42-4c1c-8a17-5c0b561cfb94",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "81b475a9-e8c3-4252-9a2f-7123c7d59915",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "d0b1f9a0-89f0-4b08-9a1c-f7782c06dd5d",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "fcf1fc94-81c7-4519-9a00-a06fca771d64",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2bd01710-5c1f-4fa3-bb8b-5832cd80a59d",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "72616c58-339d-41c3-8394-d599dcdae037",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d543149e-999a-4f08-a5ee-ab7dfc5846cb",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "be5fc7e6-21e1-437f-8cff-36ea3d00e620",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1ce386a4-8bce-47d5-a945-12875715863a",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "619f0bae-f0ce-43a9-b2d0-e74f68d10a4c",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "系统正常工作,不出现异常关机"
}
@@ -1,933 +0,0 @@
{
"ID": "19f30910-0e30-42f3-99f4-b10a919b0f7c",
"StepCollection": [
{
"ID": "97892c14-344c-4cf8-a87f-fdc371bffe1c",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "33ab35c1-5dab-4372-8744-d4d702a1c32e",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "e3abae44-0836-4dae-b3b3-49b242380d77",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "bcaf4a1e-5c1c-4286-88c0-e17c3d254ba0",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "c97f5b27-47d2-41d8-bd3b-409173a4ced5",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9aaddcb4-d38e-4e37-afca-ebd21fd70c72",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a57384b8-503c-4130-b867-a647404660fd",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "a48407f6-9016-4588-a542-f21a03d3315a",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1b949083-7bdf-4081-878f-ffd3d67b2965",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "cbf6dc67-4990-4669-8ccc-0b7da0d44641",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1ee455fc-863d-4aec-8163-6b250d7c5602",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c004ba92-c4db-4b12-9c61-b86f4e46a89e",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3b33261e-3c32-4345-90de-42f51587255f",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a27a4a0e-f957-4887-baeb-a3e9baadb851",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "90ea0cf7-998f-4cbc-a69f-8f165fd2f527",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "f16f75cf-2652-46ef-84fd-94a57fac8318",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4981ed54-19b9-449c-9520-08f9f524d0f1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a85992e5-8912-4bae-a77d-bd59b56eefd0",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "32f5ac06-a9c2-4596-bd50-ba04c1376f1f",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "62d1dac1-3f2d-4f55-9005-b3068853b224",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "052f1a75-141d-4438-81b8-ca81ff7d5aa1",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "720279a1-8445-4a3c-aff0-5f20da2a12a6",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "41968de6-53f7-4745-adc9-989a6b2df110",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "77ce1d57-c923-473b-bbdf-5cd86dbc4ca9",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f57ef793-a24b-4efd-a413-f4ffa3794c4b",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f53fbe17-eff0-4a1e-8495-f069039fc667",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "9fcab88b-8830-4530-ac20-e58658a14ccd",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "1aa7837d-95c6-4c2a-83d7-57a762b46760",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "84993739-d93b-429a-b48f-dc3cfb091bbf",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e47d6aa9-84d4-49fb-a0f4-57373328f2ab",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "34a53670-fa16-4780-8f00-a1dbe0c0b043",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e36debe7-a801-4bcb-96f1-6cdc3c4829f7",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6bd5e6cf-6753-410d-a9e8-e2db2a65c888",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0afc7194-25bb-4a96-8e50-44975b808c48",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1fd593e7-87fb-49f4-ab97-07ca1da86f2a",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "1b2bba3a-1901-4284-9aaf-c50c045227e0",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9329b6ad-d35f-470d-82f1-8f0139b2db53",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fd4c0892-a857-439b-b74c-ddb20bdfa22b",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "0663797b-d635-4d8b-84f8-a1197caaf2ee",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "8b213526-607d-4691-9646-a7504e9c9a41",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0590c334-85ba-42c1-bb3c-c362bbaddf82",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6f22ba4c-4ab1-4bc4-8d32-06a14e68faac",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "d718a4b6-64ef-48bb-8f41-84d87a41fa24",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "2137b892-6feb-4eba-af69-40996ec41093",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "18c04a36-4c12-4eb5-a11e-dde005aaf013",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4208a967-07fe-4af9-a4ed-7bb6f6933060",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "541a94a5-a456-4c24-a998-99653854eaf8",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f096b42a-3932-4d66-85f5-4bfd781fd5d4",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "77fee2da-5271-4944-90ec-ae686ef738a7",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "1110a99b-a564-4b75-8444-0ec28e603732",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "06418f71-1e18-4ecb-91e6-6aa38ec68aee",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "902b8482-afd3-4cbd-980d-68e4417c83f9",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "293cbaa1-1795-4e19-a85a-fdcf8b4e0d8e",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fe21bfbf-b7a9-4bdb-aded-c120551944de",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "67345754-4132-40b9-b632-ebbd540234dd",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1d067eba-f935-4202-9bf5-865650d7a585",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "唤醒时间≤5s"
}
@@ -1,933 +0,0 @@
{
"ID": "5f3d76b6-05dc-45e9-97f1-c507ad6a768c",
"StepCollection": [
{
"ID": "beae4286-c4ba-42c6-a780-21da29bde736",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "d7113455-de42-42ef-a59b-5d764e349c7d",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "60e57ba2-f8af-4eba-b82f-11d1ebf60054",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1d55d21b-838d-4fe4-a6c3-0e088e31dca1",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "b10633c0-a8c7-4fa2-92b3-e4a16b873a3b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bd4d666c-ae03-4bec-bd1c-f386abe43807",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2b03a6fe-c3d7-4c9b-8eba-780e8fdf1d46",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "a5c0a746-1c88-4862-ba2f-512506ea5c36",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0a6a87eb-afc4-45d8-8aad-ab57c47758ce",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "08e54415-4588-4f82-a8f1-1a88d20dfd95",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "008b4583-de40-4200-9ca3-b65c62f77dd9",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "9ae25e86-aecb-4de8-acfe-52e006b3bf8b",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b89a4a71-1219-4626-80d4-862d86ad60e9",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f2d56986-a7a5-4b4b-8cc7-c28d25ca041b",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f1a2ce5b-c9e9-46c8-8cdd-3a12d4d1a7c4",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "49c869b4-b941-4799-9e29-7b2dc7bd1609",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "31a50838-35e8-41e5-844b-8bb163808d8d",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4b26944b-5b81-48a4-aa4e-9e764b5d3763",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "3739046d-a75b-44c0-bfad-c8f323b44377",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "a70286c4-e0db-4b12-afec-ca490ff663f9",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "aa87b33c-8966-4f2d-973b-2cf76a3ff42c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d056b080-e206-47b3-af64-ecdc0c614868",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "94f338a9-b15e-418f-810e-8349b12db250",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "4f54f40d-a593-4bba-a1a3-4dc9c3834305",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "80026c4e-a47b-40af-9f15-2e34c6cf2447",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "997595ab-8a68-4728-b09a-ab1063d31a2c",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "eae6811d-ea80-439f-a636-2606b3ee1a09",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "c8efd9fc-c704-40be-9461-e2eb13eb8773",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d85fe8be-4e60-43e2-bb62-e43690d676d0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2c7c4fd0-fddb-441f-b935-25ee13928c17",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "cb910ae4-d68b-4240-a3e6-902c7b700505",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "17410ebf-9baa-48d4-8db1-77d6ab42a313",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1faa9dd6-3ef0-4416-8ef5-0ba570b9c2cf",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c7330ec5-b33f-4643-a155-810148db5b18",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f4734e2e-401b-4f94-88cc-c9c9c14086bf",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "dd6023ef-154b-4ba1-bc3f-fb8061d221cf",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a94a84ff-ecdd-406e-ae4e-ae7ae14611a3",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bafe405a-e090-434d-accd-3fe4f71d77b4",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "7be4bba6-b6d2-4ea1-8c5b-2204f143a798",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "add066f7-fad4-4774-a2b5-9563f5801d54",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "ed0df476-4fff-425b-8333-7b4bb0cf0800",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0cf395bc-f57a-435f-b2a9-6af2d0ad3439",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "17e5f3c3-f24e-4c91-b650-8ceb5e6161fd",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "3501c5aa-bdb5-4d05-95c6-987f20b339f4",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "de7e4cb1-aa1d-4579-8d40-acd7cc13a74c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "352c1b0b-be3c-4cc1-8dfa-097f78e3062e",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a1d25fd7-a936-4de7-87d4-2c1f6c908688",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "fb4ca920-f788-4286-a3b6-c5c275663950",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1e19f5d9-0953-4cd4-b658-67efb348b131",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "27ff9276-9c96-4687-83fa-9599481d2547",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "930af3a7-19c0-466b-87cc-6407233663a7",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "761be1c7-9aca-4cc8-95c7-c08ded9e293c",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6b463198-7a36-4f75-96c7-ac4605a66f9c",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "98a31377-c7e8-49b3-b44d-53003cf55f46",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f8e411d3-a931-45dd-a13d-739110f66fa3",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d1d7d8fb-1c1a-4f13-b5ae-61634ca2000f",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "系统正常"
}
@@ -1,933 +0,0 @@
{
"ID": "0fcd334d-b7fb-454b-a2a8-7fff5ea20d1b",
"StepCollection": [
{
"ID": "f5b6be92-84c5-4b2e-a999-359dc7bc3385",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "865bd049-7319-4268-af4e-4772392a8f53",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a6df4b8b-2184-4bfb-9141-a122b2fd94b2",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "2980e14c-27ce-43ff-86bc-773057d0efc5",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "3cc8fdc7-a1d0-4c0c-a509-39fa14f9068a",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b73cbe26-1695-4fbc-abdb-f7beb0599100",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "66945ed7-9b2d-4392-a810-b72466dd8b71",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "72f993cf-9e01-4e37-adf7-2581c07d415f",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1df33d50-6016-484e-af31-07dcef9523b2",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "47669d3a-7a7e-435a-b19b-dd38bfed1f98",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "235a6a91-0901-476c-bbc8-258e32ae2fcf",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "33ca4859-f472-443b-98f6-6c7006bde330",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "37768fc6-f96d-40bc-a120-f6ee060cef3c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8889011b-494a-4899-9472-1533e69f149d",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "9b59873f-6f0e-427f-80fc-21e3a7ca3f18",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "06b7f0f3-80c4-41cd-a683-e5da9ebe2516",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "0e2504ee-9334-470e-bc1c-9c99f92c5f4b",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9653074f-019a-4ca6-9631-ea0bc5fc08b0",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "fb12b9ab-f90a-45ae-a20d-a9fcc14eaf8e",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "2827976c-ea74-4c55-9b4b-fce843b0ada3",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5396bf4a-7ef5-431c-b410-78529851911a",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "75a2f7e8-918c-4d37-9aee-4a47cfb26e2f",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "3787f5f6-7784-42a6-9417-7ef4af8b4625",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e9d6eb66-119c-4366-a560-18710876253f",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "50d43885-6ea8-42ae-ac4e-26524cae853b",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c2a1f03f-47c1-4e61-82d4-4256884ab9ec",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "1d25db59-9292-437b-8c77-61fd8ebf6aac",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "40d9d556-b175-403f-a747-c89e677cf281",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d9487113-3e34-4a6b-a405-34012410139c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "af72afec-ca32-426f-8298-11ff1801507e",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "f9d53220-fc3c-4ecb-8a23-dde15d00959b",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "e123d9de-4b48-457c-a32c-57d40fa483b7",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "46b1d09f-edb7-46fd-9f5c-7d6c189d5e10",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c72a13db-01e0-470d-8525-8b41dab862dd",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "42b8d8f0-f9b0-4d70-85bf-0f56a28cd076",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "b156a31a-a092-4fb3-90ac-9f71f1ee1230",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "42ba9da2-5b50-4028-a010-57964728e1e0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3a4727f1-1921-481e-895e-67c3f4fcc36c",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "49ca0318-0f92-4840-a656-d9fdfedde2ca",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "a18642d9-6142-44e5-8eb4-8c37b8943602",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1f7e7498-8865-430a-a88e-6c15a486e8f6",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "1999ff5f-1545-4576-9632-5a68747e3af1",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "fe2b697e-43ca-4b5c-b8f7-75dd84be9a37",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "1cb5b1d3-20d7-411e-a90d-0e88318262e8",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f8fe14ec-da33-421b-b2fe-4e6844f29fe3",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fcd26516-3ad3-469c-b376-df5557552e3e",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "eccf2edd-834e-48b3-ac98-285d6e404341",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "74f63f98-b4e0-4b08-b70a-59077262f5b8",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "6e977c49-4dab-49df-8a9e-25b50acc8837",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "3ad3a80b-8aa1-4f66-9254-2b572739c976",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "8a546642-a1f0-4c54-8a3f-c4e53c03cd75",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "cbd8c7b2-84cd-4754-9cd0-1a69046cf369",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "bcc09fad-a10f-4583-bb89-ec27a7d0c832",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e20940d8-5a5f-4b6e-bf38-659648205f41",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "08525133-4f58-4790-be9c-bb6632880c03",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e67379b8-bb65-45a0-ad91-e335e243bb24",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "系统正常"
}
@@ -1,933 +0,0 @@
{
"ID": "d29ee0ec-c434-4295-af8a-db33b2f628cd",
"StepCollection": [
{
"ID": "fcc08052-b385-4fe1-a65d-b44041a3d686",
"IsUsed": true,
"Index": 1,
"Name": "循环开始",
"StepType": "循环开始",
"Method": {
"Name": null,
"FullName": null,
"Parameters": [
{
"ID": "3c607620-d212-4d89-af9b-9f8b7931a52a",
"IsVisible": true,
"IsEditable": true,
"Name": "循环次数",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "1",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a36040e1-24bb-44c2-8ec2-e13afd0ea3d8",
"IsUsed": true,
"Index": 2,
"Name": "ADP产品开机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "6f63e8b6-6cea-46e7-b96e-84c6a6741566",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "b2d15e05-51a5-4ff4-8f22-04753aa943fc",
"IsUsed": true,
"Index": 3,
"Name": "Delay_m",
"StepType": "方法",
"Method": {
"Name": "Delay_m",
"FullName": "Command.Delay",
"Parameters": [
{
"ID": "785fcd6c-52ce-4f51-afd8-12357e5c00f0",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "94bfbb8e-2da8-4d9a-bf0f-aabce7580c2f",
"IsVisible": true,
"IsEditable": true,
"Name": "延时毫秒",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 60000,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "13b46b85-72ad-4d5c-a7bd-c9b424a8ec61",
"IsUsed": true,
"Index": 4,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "08fbbfdd-4200-426e-98cd-6ecb859db8de",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "cbda4fea-3e4c-4291-a749-5832dac8cea3",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "2df435f9-1be6-47b6-b316-057a07ec4b12",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "74e447e2-85bd-4250-8f3e-930c3ed007f7",
"IsUsed": true,
"Index": 5,
"Name": "查询实际电压",
"StepType": "方法",
"Method": {
"Name": "查询实际电压",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "cc752adf-b03d-4acc-8980-2bb2ca9aa576",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "04ea1ea2-6d14-40fc-83d3-e7661ef469ba",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "9604a328-e1a3-451a-ab31-5d2f193203f3",
"IsVisible": true,
"IsEditable": false,
"Name": "电压",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "10c3b723-7b63-4568-b13c-f8f43b617131",
"IsUsed": true,
"Index": 6,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "bbe547f4-e1c1-4d2d-ab64-2614b14ef662",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e338f732-87e6-4ff4-9d4d-4239741bf0b0",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5b126b90-6b88-4018-bd30-9a9074ecc35d",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "bd5a72ff-057b-49e5-aa32-b858269ed0ff",
"IsUsed": true,
"Index": 7,
"Name": "查询实际电流",
"StepType": "方法",
"Method": {
"Name": "查询实际电流",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "2c0acf6a-aa57-433d-b329-5f438e806cde",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fe066d1d-092a-459d-ad86-04bfcc05798c",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "7eb13b70-7f0a-4168-a419-e868e6493d7f",
"IsVisible": true,
"IsEditable": false,
"Name": "电流",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "a97a4f90-36c9-4453-8ffe-69d30a9ec37a",
"IsUsed": true,
"Index": 8,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "a3816459-8511-433e-8043-d83e88c80621",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "5168e75b-a122-45ee-808a-b551f32f5e11",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "3ac2d125-a187-4175-a62a-24e5a6f12085",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "bb52fb32-e5f1-4e3f-8ccb-758cd5b5bf6a",
"IsUsed": true,
"Index": 9,
"Name": "查询实际功率",
"StepType": "方法",
"Method": {
"Name": "查询实际功率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "3f5b34ee-a4fe-4e1c-aedc-58c48b607896",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "f3b7f7fd-f9bd-46fc-b617-113344048b11",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 2,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "263a099f-f42e-43e8-9ed2-31f97d8444ac",
"IsVisible": true,
"IsEditable": false,
"Name": "功率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "0b9e5a3f-6ccc-4d6c-9e89-12547d096fc9",
"IsUsed": true,
"Index": 10,
"Name": "查询频率",
"StepType": "方法",
"Method": {
"Name": "查询频率",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "b7b39735-b0a1-4d7e-bcd7-3b8df984ea2e",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "06e9b3cf-123c-4200-ac85-38a889036b06",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "b96f5828-6dad-4b30-b914-13a90b7278bc",
"IsVisible": true,
"IsEditable": false,
"Name": "频率",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "dd0b1a23-fceb-4948-8de3-d973fda649a7",
"IsUsed": true,
"Index": 11,
"Name": "查询功率因数",
"StepType": "方法",
"Method": {
"Name": "查询功率因数",
"FullName": "DeviceCommand.Devices.SPAW7000",
"Parameters": [
{
"ID": "79ff95b9-a297-4c28-9ff7-b5975b7d19ad",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "73c0098d-976c-4b9a-9fdf-a6a7a07935a3",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "c434b44a-dfed-43f4-995e-e350a4508222",
"IsVisible": true,
"IsEditable": false,
"Name": "功率因数",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "65c87c3e-cdf8-4731-b80f-95faf7b876e7",
"IsUsed": true,
"Index": 12,
"Name": "检查电流是否大于5.0A",
"StepType": "方法",
"Method": {
"Name": "GreaterThanOrEqual",
"FullName": "Command.CommandMath",
"Parameters": [
{
"ID": "0fb83952-37db-49c0-9c05-5a09442dcba1",
"IsVisible": true,
"IsEditable": false,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 1,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "83337463-3566-4073-9113-5485d6392940",
"IsVisible": true,
"IsEditable": true,
"Name": "值1",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "57e685ec-5eee-4f6f-867b-43ee251d179e",
"IsVisible": true,
"IsEditable": true,
"Name": "值2",
"Type": "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 5.0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "13bf76a1-81fc-4915-81b5-388d847aaef3",
"IsUsed": true,
"Index": 13,
"Name": "发送CAN报文",
"StepType": "方法",
"Method": {
"Name": "发送自定义报文",
"FullName": "ZLGUSBCANFD.ZLGCANFD",
"Parameters": [
{
"ID": "d3f8d99b-947f-44a3-8067-63187cde1959",
"IsVisible": true,
"IsEditable": true,
"Name": "Result",
"Type": "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": true,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fbeead07-eada-4dd2-8f70-becfb47558ef",
"IsVisible": true,
"IsEditable": true,
"Name": "通道号",
"Type": "System.UInt32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "557b6944-7cf0-47c0-8e89-c66bae125c48",
"IsVisible": true,
"IsEditable": true,
"Name": "帧ID",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "0x1806E5F4",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "a76e6d87-6331-4029-a7b2-1459557cd8ff",
"IsVisible": true,
"IsEditable": true,
"Name": "数据",
"Type": "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": "00 00 00 00 00 00 00 00",
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
]
},
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "8039d2b6-ee29-4dd9-b799-ade0f52c7a1a",
"IsUsed": true,
"Index": 14,
"Name": "ADP产品关机",
"StepType": "子程序",
"Method": null,
"SubProgram": {
"ID": "8f63e8b6-6cea-46e7-b96e-84c6a6741567",
"StepCollection": [],
"Parameters": []
},
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
},
{
"ID": "5792303c-741f-433a-a043-9c2f9e78ecc9",
"IsUsed": true,
"Index": 15,
"Name": "循环结束",
"StepType": "循环结束",
"Method": null,
"SubProgram": null,
"LoopCount": 1,
"LoopStartStepId": null,
"OKExpression": null,
"GotoSettingString": "",
"OKGotoStepID": null,
"NGGotoStepID": null,
"Description": null
}
],
"ErrorStepCollection": [],
"Parameters": [
{
"ID": "87afbdad-507e-49e8-ad46-7ce904bb7658",
"IsVisible": true,
"IsEditable": false,
"Name": "台架序号",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 1,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "60cd1227-9543-4bf2-80d5-77ab03cf8e0f",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "e86ec566-eb26-403e-9c73-769a2ecbc276",
"IsVisible": true,
"IsEditable": false,
"Name": "CAN通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "6af5c6d0-2366-407d-b107-1ef53d5cd2c8",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "d9bb28ea-2745-4470-9092-640f6931a3a6",
"IsVisible": true,
"IsEditable": false,
"Name": "示波器通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "4d9e5964-0998-4fcb-b09f-4fbdd679cd43",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道1",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
},
{
"ID": "fcf07a6d-c4a1-449e-a34f-ccca370be6aa",
"IsVisible": true,
"IsEditable": false,
"Name": "功率分析仪通道2",
"Type": "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e",
"Category": 0,
"Value": 0,
"LowerLimit": null,
"UpperLimit": null,
"Result": true,
"IsUseVar": false,
"VariableName": null,
"VariableID": null
}
],
"Devices": [],
"Description": "系统正常"
}
+5 -1
View File
@@ -636,11 +636,14 @@ namespace CANModule.ViewModels
{ {
// 提取实际 CAN ID(去掉扩展帧标志位) // 提取实际 CAN ID(去掉扩展帧标志位)
int actualId = (int)(canId & 0x1FFFFFFF); int actualId = (int)(canId & 0x1FFFFFFF);
// 原始字节转为 [0x00, 0x01, ...] 格式,供监视表格直接显示
string hexData = (data);
var find = CanMessageList.FirstOrDefault(s => s.ID == actualId && s. == channel); var find = CanMessageList.FirstOrDefault(s => s.ID == actualId && s. == channel);
if (find != null) if (find != null)
{ {
find. = (ulong)DateTimeOffset.Now.ToUnixTimeMilliseconds(); find. = (ulong)DateTimeOffset.Now.ToUnixTimeMilliseconds();
find. = dlcLength; find. = dlcLength;
find. = hexData;
} }
else else
{ {
@@ -649,7 +652,8 @@ namespace CANModule.ViewModels
= (byte)channel, = (byte)channel,
ID = actualId, ID = actualId,
= (ulong)DateTimeOffset.Now.ToUnixTimeMilliseconds(), = (ulong)DateTimeOffset.Now.ToUnixTimeMilliseconds(),
= dlcLength = dlcLength,
= hexData
}); });
} }
}); });
+5 -4
View File
@@ -79,16 +79,17 @@
<!-- 监视选项 --> <!-- 监视选项 -->
<TreeViewItem Header="监视"> <TreeViewItem Header="监视">
<DataGrid x:Name="表格" <DataGrid x:Name="表格"
Width="550" Width="Auto"
Height="350" Height="350"
VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.IsVirtualizing="True"
IsReadOnly="True" IsReadOnly="True"
AutoGenerateColumns="False" AutoGenerateColumns="False"
ItemsSource="{Binding CanMessageList, Mode=OneWay}"> ItemsSource="{Binding CanMessageList, Mode=OneWay}">
<DataGrid.Columns> <DataGrid.Columns>
<DataGridTextColumn Header="通道" Binding="{Binding 通道}" Width="90" /> <DataGridTextColumn Header="通道" Binding="{Binding 通道}" Width="60" />
<DataGridTextColumn Header="报文ID" Binding="{Binding 报文ID, Converter={StaticResource HexConverter}}" Width="150" /> <DataGridTextColumn Header="报文ID" Binding="{Binding 报文ID, Converter={StaticResource HexConverter}}" Width="110" />
<DataGridTextColumn Header="长度" Binding="{Binding 长度}" Width="90" /> <DataGridTextColumn Header="长度" Binding="{Binding 长度}" Width="50" />
<DataGridTextColumn Header="数据" Binding="{Binding 数据}" Width="Auto" />
<DataGridTextColumn Header="时间戳" Binding="{Binding 时间戳}" Width="Auto" /> <DataGridTextColumn Header="时间戳" Binding="{Binding 时间戳}" Width="Auto" />
</DataGrid.Columns> </DataGrid.Columns>
</DataGrid> </DataGrid>
+62
View File
@@ -0,0 +1,62 @@
using Common.Attributes;
using System;
using System.ComponentModel;
using System.Threading;
using System.Threading.Tasks;
namespace Command
{
/// <summary>
/// 对话框命令:在测试流程中弹出提示窗口。
/// 命令库为纯 .NET 类库,不直接引用 WPF 程序集;
/// 实际的弹窗能力由宿主程序(ADP 外壳)在启动时注入到 <see cref="弹窗处理器"/> 委托中实现(依赖倒置)。
/// </summary>
[ADPCommand]
public static class CommandDialog
{
/// <summary>
/// 弹窗类型
/// </summary>
public enum DialogType
{
/// <summary>
/// 信息提示
/// </summary>
Info,
/// <summary>
/// 警告提示
/// </summary>
Warning,
/// <summary>
/// 错误提示
/// </summary>
Error
}
/// <summary>
/// 弹窗处理委托(参数依次为:弹窗类型、弹窗详细、是否阻塞、自动关闭秒数、取消令牌)。
/// 由宿主程序启动时注入实现;未注入时弹窗命令降级为仅输出日志,不会抛异常。
/// </summary>
[Browsable(false)]
public static Func<DialogType, string, bool, float, CancellationToken, Task> ;
/// <summary>
/// 弹窗:在界面上显示一个提示对话框。
/// </summary>
/// <param name="弹窗类型">弹窗样式:Info 信息 / Warning 警告 / Error 错误</param>
/// <param name="弹窗详细">弹窗中显示的详细内容</param>
/// <param name="是否阻塞">true = 步骤暂停,等待用户关闭(或自动关闭)后才继续;false = 弹出后步骤立即继续</param>
/// <param name="自动关闭秒数">大于 0 时,弹窗在指定秒数后自动关闭;小于等于 0 时不自动关闭,需用户手动关闭</param>
/// <param name="ct">异步取消令牌</param>
public static async Task (DialogType , string , bool , float , CancellationToken ct)
{
var handler = ;
if (handler == null)
{
Console.WriteLine($"[弹窗命令] 宿主未注入弹窗处理器,跳过弹窗:{弹窗详细}");
return;
}
await handler(, , , , ct);
}
}
}
+47
View File
@@ -0,0 +1,47 @@
using Common.Attributes;
using Common.Tools;
using System;
namespace Command
{
/// <summary>
/// 步骤运行耗时统计命令。
/// <para>
/// 命令库为纯 .NET 类库,不直接引用宿主的步骤管理器类型;
/// 实际的步骤数据查询能力由宿主(StepRunning)在执行测试步骤前通过
/// <see cref="Common.Tools.StepRuntimeContext.StepTimeQuery"/> 注入(依赖倒置),
/// 多台架并发运行时各作用域的查询器随异步流隔离,互不串扰。
/// </para>
/// </summary>
[ADPCommand]
public static class CommandRunningTime
{
/// <summary>
/// 计算测试步骤运行时间之和:统计步骤管理器主程序中,
/// 序号从起始序号到结束序号(含两端)范围内所有步骤的运行耗时总和。
/// </summary>
/// <param name="起始序号">起始步骤序号(从 1 开始)</param>
/// <param name="结束序号">结束步骤序号(含本身)</param>
/// <returns>范围内步骤运行时间之和(毫秒);序号超界、范围内无步骤或查询异常时输出 0</returns>
public static double (int , int )
{
// 读取当前异步执行流注入的步骤耗时查询器(由 StepRunning 设置)
var query = StepRuntimeContext.StepTimeQuery.Value;
if (query == null)
{
Console.WriteLine($"[步骤耗时] 宿主未注入步骤耗时查询器,无法计算序号 {起始序号}~{结束序号} 的运行时间之和");
return 0;
}
try
{
return query(, );
}
catch (Exception ex)
{
Console.WriteLine($"[步骤耗时] 计算序号 {起始序号}~{结束序号} 的运行时间之和失败: {ex.Message}");
return 0;
}
}
}
}
+25 -1
View File
@@ -1,5 +1,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
@@ -23,7 +24,7 @@ namespace Common.Tools
{ {
foreach (var kvp in processedVariables) foreach (var kvp in processedVariables)
{ {
expr.Parameters[kvp.Key] = kvp.Value; expr.Parameters[kvp.Key] = NormalizeValue(kvp.Value);
} }
} }
@@ -95,6 +96,29 @@ namespace Common.Tools
return (processedExpression, newVariables); return (processedExpression, newVariables);
} }
/// <summary>
/// 归一化变量取值:输入变量的值常以字符串形式保存(如 "10"),
/// 若直接参与比较,NCalc 会按字符串逐位比较("10" > "5" 为假),
/// 导致大于/小于判断失真。此处将可解析为数字/布尔的字符串转换为对应类型,
/// 使比较按数值语义进行;无法解析的字符串保持原样。
/// </summary>
private static object? NormalizeValue(object? value)
{
if (value is string s)
{
if (double.TryParse(s, NumberStyles.Float, CultureInfo.InvariantCulture, out var d)
|| double.TryParse(s, out d))
{
return d;
}
if (bool.TryParse(s, out var b))
{
return b;
}
}
return value;
}
// 检查字符串是否包含中文字符 // 检查字符串是否包含中文字符
private static bool ContainsChinese(string text) private static bool ContainsChinese(string text)
{ {
+27
View File
@@ -0,0 +1,27 @@
using System;
using System.ComponentModel;
namespace Common.Tools
{
/// <summary>
/// 步骤运行时上下文桥接器(命令库与宿主之间的依赖倒置通道)。
/// <para>
/// 命令库(Command 项目)不引用宿主类型,无法直接访问步骤管理器的数据;
/// 宿主(StepRunning)在执行测试步骤前,将当前作用域的步骤耗时查询委托写入
/// <see cref="StepTimeQuery"/>;命令库中的耗时统计命令在执行时读取该委托完成查询。
/// </para>
/// <para>
/// 使用 <see cref="AsyncLocal{T}"/> 承载:委托随异步执行流(ExecutionContext)流动,
/// 多台架并发运行时各自持有自己作用域的查询器,天然隔离互不串扰。
/// </para>
/// </summary>
public static class StepRuntimeContext
{
/// <summary>
/// 当前异步执行流的步骤耗时查询委托:(起始序号, 结束序号) → 该范围内步骤运行时间之和(毫秒)。
/// 由宿主(StepRunning)在每次执行测试步骤方法前设置;未设置时命令侧按未注入处理。
/// </summary>
[Browsable(false)]
public static readonly AsyncLocal<Func<int, int, double>?> StepTimeQuery = new();
}
}
+15 -42
View File
@@ -510,13 +510,6 @@ namespace DeviceCommand.Devices
if (hasModifiedEnable) if (hasModifiedEnable)
await Task.Delay(100, ); await Task.Delay(100, );
// 3. 获取三轴原点及当前设定的目标指定位置
var (xHome, yHome, zHome) = await ();
int xTarget = await (1, );
int yTarget = await (2, );
int zTarget = await (3, );
await WriteSingleCoilAsync(_slaveAddress, ADDR_M_X_START, true, ); await WriteSingleCoilAsync(_slaveAddress, ADDR_M_X_START, true, );
await WriteSingleCoilAsync(_slaveAddress, ADDR_M_Y_START, true, ); await WriteSingleCoilAsync(_slaveAddress, ADDR_M_Y_START, true, );
await WriteSingleCoilAsync(_slaveAddress, ADDR_M_Z_START, true, ); await WriteSingleCoilAsync(_slaveAddress, ADDR_M_Z_START, true, );
@@ -568,15 +561,23 @@ namespace DeviceCommand.Devices
// 3. 启动三轴联动 // 3. 启动三轴联动
await (); await ();
bool IsArrived= await (,);
if (IsArrived)
{
// 5. 到达后更新当前位置(累加偏移) // 5. 到达后更新当前位置(累加偏移)
_originX += X偏移量; _originX += X偏移量;
_originY += Y偏移量; _originY += Y偏移量;
_originZ += Z偏移量; _originZ += Z偏移量;
await ();
}
else
{
var pos = await ();
_originX += pos.Axis1;
_originY += pos.Axis6;
_originZ += pos.Axis2;
await ();
}
} }
public async Task ( CancellationToken = default) public async Task ( CancellationToken = default)
{ {
@@ -702,40 +703,12 @@ namespace DeviceCommand.Devices
throw new TimeoutException($"等待 {超时秒数} 秒后,三轴仍未到达机械零点"); throw new TimeoutException($"等待 {超时秒数} 秒后,三轴仍未到达机械零点");
} }
/// <summary>
/// 轮询等待三轴绝对位置到达指定的待定位置(容差 ±10),超时则抛出异常
/// </summary>
/// <param name="xTarget">X轴目标位置</param>
/// <param name="yTarget">Y轴目标位置</param>
/// <param name="zTarget">Z轴目标位置</param>
/// <param name="超时秒数">最大等待时间(秒)</param>
/// <param name="取消令牌">取消令牌</param>
private async Task (int xTarget, int yTarget, int zTarget, int , CancellationToken = default)
{
var deadline = DateTime.Now.AddSeconds();
while (DateTime.Now < deadline)
{
.ThrowIfCancellationRequested();
var pos = await ();
if (Math.Abs(pos.Axis1 - xTarget) <= 10
&& Math.Abs(pos.Axis6 - yTarget) <= 10
&& Math.Abs(pos.Axis2 - zTarget) <= 10)
return;
await Task.Delay(100, );
}
throw new TimeoutException($"等待 {超时秒数} 秒后,三轴仍未到达待定位置 (X:{xTarget}, Y:{yTarget}, Z:{zTarget})");
}
/// <summary> /// <summary>
/// 轮询等待三轴绝对位置均到达各自设定的目标位置(容差 ±10),超时则抛出异常 /// 轮询等待三轴绝对位置均到达各自设定的目标位置(容差 ±10),超时则抛出异常
/// </summary> /// </summary>
/// <param name="超时秒数">最大等待时间(秒)</param> /// <param name="超时秒数">最大等待时间(秒)</param>
/// <param name="取消令牌">取消令牌</param> /// <param name="取消令牌">取消令牌</param>
public async Task (int , CancellationToken = default) public async Task<bool> (int , CancellationToken = default)
{ {
var targetX = await (1, ); var targetX = await (1, );
var targetY = await (2, ); var targetY = await (2, );
@@ -751,7 +724,7 @@ namespace DeviceCommand.Devices
if (Math.Abs(pos.Axis1 - targetX) <= 10 if (Math.Abs(pos.Axis1 - targetX) <= 10
&& Math.Abs(pos.Axis6 - targetY) <= 10 && Math.Abs(pos.Axis6 - targetY) <= 10
&& Math.Abs(pos.Axis2 - targetZ) <= 10) && Math.Abs(pos.Axis2 - targetZ) <= 10)
return; return true;
await Task.Delay(100, ); await Task.Delay(100, );
} }
+11 -1
View File
@@ -141,7 +141,17 @@ namespace DeviceCommand.Devices
IOBoard = GetBoardInstance(io信息.ModuleIndex); IOBoard = GetBoardInstance(io信息.ModuleIndex);
await .(_slaveAddress, io信息.Address, ); await .(_slaveAddress, io信息.Address, );
} }
/// <summary>
/// 执行指定台架的功能动作控制(带高低电平开关及底层安全互锁)
/// </summary>
/// <param name="板卡序号">板卡序号 (0 - 1)</param>
/// <param name="开始地址">寄存器初始地址(0-15)</param>
/// <param name="数据">开关状态数组 (true: 开启吸合, false: 关闭断开)[true,true,false]</param>
/// <param name="取消令牌">异步取消令牌</param>
public async Task (int ,byte , ushort , bool[] , CancellationToken = default)
{
await GetBoardInstance().(, , );
}
/// <summary> /// <summary>
/// 内部路由辅助方法:根据板卡索引安全获取当前连接的实例对象 /// 内部路由辅助方法:根据板卡索引安全获取当前连接的实例对象
/// </summary> /// </summary>
+18 -13
View File
@@ -208,9 +208,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实际电压测量值 (单位: V)</returns> /// <returns>实际电压测量值 (单位: V)</returns>
[Monitorable("交流电源电压")] [Monitorable("交流电源电压")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($":MEASure:VOLTage?{ScpiDelimiter}", ScpiDelimiter, ct); //[cite: 1] string response = await WriteReadAsync($":MEASure:VOLTage?{ScpiDelimiter}", ScpiDelimiter, ct);
return double.TryParse(response, out double result) ? result : double.NaN;
} }
/// <summary> /// <summary>
@@ -219,9 +220,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实际电流测量值 (单位: A)</returns> /// <returns>实际电流测量值 (单位: A)</returns>
[Monitorable("交流电源电流")] [Monitorable("交流电源电流")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($":MEASure:CURRent?{ScpiDelimiter}", ScpiDelimiter, ct); //[cite: 1] string response = await WriteReadAsync($":MEASure:CURRent?{ScpiDelimiter}", ScpiDelimiter, ct);
return double.TryParse(response, out double result) ? result : double.NaN;
} }
/// <summary> /// <summary>
@@ -230,9 +232,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实际有功功率测量值 (单位: W)</returns> /// <returns>实际有功功率测量值 (单位: W)</returns>
[Monitorable("交流电源功率")] [Monitorable("交流电源功率")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($":MEASure:POWer?{ScpiDelimiter}", ScpiDelimiter, ct); //[cite: 1] string response = await WriteReadAsync($":MEASure:POWer?{ScpiDelimiter}", ScpiDelimiter, ct);
return double.TryParse(response, out double result) ? result : double.NaN;
} }
/// <summary> /// <summary>
@@ -240,9 +243,10 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>视在功率测量值 (单位: VA)</returns> /// <returns>视在功率测量值 (单位: VA)</returns>
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($":MEASure:POWer:APParent?{ScpiDelimiter}", ScpiDelimiter, ct); //[cite: 1] string response = await WriteReadAsync($":MEASure:POWer:APParent?{ScpiDelimiter}", ScpiDelimiter, ct);
return double.TryParse(response, out double result) ? result : double.NaN;
} }
/// <summary> /// <summary>
@@ -250,9 +254,10 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实际频率测量值 (单位: Hz)</returns> /// <returns>实际频率测量值 (单位: Hz)</returns>
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($":MEASure:FREQuency?{ScpiDelimiter}", ScpiDelimiter, ct); //[cite: 1] string response = await WriteReadAsync($":MEASure:FREQuency?{ScpiDelimiter}", ScpiDelimiter, ct);
return double.TryParse(response, out double result) ? result : double.NaN;
} }
/// <summary> /// <summary>
@@ -260,11 +265,11 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>功率因数测量值</returns> /// <returns>功率因数测量值</returns>
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($":MEASure:POWer:PFACtor?{ScpiDelimiter}", ScpiDelimiter, ct); //[cite: 1] string response = await WriteReadAsync($":MEASure:POWer:PFACtor?{ScpiDelimiter}", ScpiDelimiter, ct);
return double.TryParse(response, out double result) ? result : double.NaN;
} }
#endregion #endregion
#region 5. #region 5.
+29 -6
View File
@@ -3,6 +3,7 @@ using DeviceCommand.Base;
using Model.Models; using Model.Models;
using System; using System;
using System.Globalization; using System.Globalization;
using System.Text.RegularExpressions;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -22,6 +23,25 @@ namespace DeviceCommand.Devices
{ {
} }
/// <summary>
/// 从设备返回的 SCPI 响应字符串中提取数值部分并转换为 double。
/// 先按逗号分割取数据段,再提取数值。
/// </summary>
private static double ExtractDouble(string raw)
{
if (string.IsNullOrWhiteSpace(raw)) return 0;
string dataPart = raw;
int commaIdx = raw.LastIndexOf(',');
if (commaIdx >= 0 && commaIdx < raw.Length - 1)
dataPart = raw.Substring(commaIdx + 1);
var match = Regex.Match(dataPart, @"[+-]?(?:\d+\.?\d*|\.\d+)(?:[Ee][+-]?\d+)?");
return match.Success && double.TryParse(match.Value, NumberStyles.Float, CultureInfo.InvariantCulture, out double val)
? val
: 0;
}
#region 3.1. IEEE 488.2 #region 3.1. IEEE 488.2
/// <summary> /// <summary>
@@ -270,9 +290,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实时测量电压值 (单位: V)</returns> /// <returns>实时测量电压值 (单位: V)</returns>
[Monitorable("高压直流电源电压")] [Monitorable("高压直流电源电压")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($"MEASure:VOLTage?{ScpiDelimiter}", ScpiDelimiter, ct); string res = await WriteReadAsync($"MEASure:VOLTage?{ScpiDelimiter}", ScpiDelimiter, ct);
return ExtractDouble(res);
} }
/// <summary> /// <summary>
@@ -281,9 +302,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实时测量电流值 (单位: A)</returns> /// <returns>实时测量电流值 (单位: A)</returns>
[Monitorable("高压直流电源电流")] [Monitorable("高压直流电源电流")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($"MEASure:CURRent?{ScpiDelimiter}", ScpiDelimiter, ct); string res = await WriteReadAsync($"MEASure:CURRent?{ScpiDelimiter}", ScpiDelimiter, ct);
return ExtractDouble(res);
} }
/// <summary> /// <summary>
@@ -292,9 +314,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实时测量功率值 (单位: W)</returns> /// <returns>实时测量功率值 (单位: W)</returns>
[Monitorable("高压直流电源功率")] [Monitorable("高压直流电源功率")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($"MEASure:POWer?{ScpiDelimiter}", ScpiDelimiter, ct); string res = await WriteReadAsync($"MEASure:POWer?{ScpiDelimiter}", ScpiDelimiter, ct);
return ExtractDouble(res);
} }
/// <summary> /// <summary>
+14 -13
View File
@@ -212,10 +212,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实测直流电流值 (单位: A)</returns> /// <returns>实测直流电流值 (单位: A)</returns>
[Monitorable("低压直流电源电流")] [Monitorable("低压直流电源电流")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
// 修正:去除前缀冒号,改用标准 MEAS:CURR? string response = await WriteReadAsync($"MEAS:CURR?{SCPIDelimiter}", SCPIDelimiter, ct);
return await WriteReadAsync($"MEAS:CURR?{SCPIDelimiter}", SCPIDelimiter, ct); return double.TryParse(response, out double result) ? result : double.NaN;
} }
/// <summary> /// <summary>
@@ -224,10 +224,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实测直流功率值 (单位: W)</returns> /// <returns>实测直流功率值 (单位: W)</returns>
[Monitorable("低压直流电源功率")] [Monitorable("低压直流电源功率")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
// 修正:去除前缀冒号,改用标准 MEAS:POW? string response = await WriteReadAsync($"MEAS:POW?{SCPIDelimiter}", SCPIDelimiter, ct);
return await WriteReadAsync($"MEAS:POW?{SCPIDelimiter}", SCPIDelimiter, ct); return double.TryParse(response, out double result) ? result : double.NaN;
} }
/// <summary> /// <summary>
@@ -236,10 +236,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实测直流电压值 (单位: V)</returns> /// <returns>实测直流电压值 (单位: V)</returns>
[Monitorable("低压直流电源电压")] [Monitorable("低压直流电源电压")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
// 修正:去除前缀冒号,改用标准 MEAS:VOLT? string response = await WriteReadAsync($"MEAS:VOLT?{SCPIDelimiter}", SCPIDelimiter, ct);
return await WriteReadAsync($"MEAS:VOLT?{SCPIDelimiter}", SCPIDelimiter, ct); return double.TryParse(response, out double result) ? result : double.NaN;
} }
/// <summary> /// <summary>
@@ -253,16 +253,15 @@ namespace DeviceCommand.Devices
return await WriteReadAsync($"MEAS:VAP?{SCPIDelimiter}", SCPIDelimiter, ct); return await WriteReadAsync($"MEAS:VAP?{SCPIDelimiter}", SCPIDelimiter, ct);
} }
/// <summary> /// <summary>
/// 3.5.5 查询通道输出端子上测得的输出时间长度 /// 3.5.5 查询通道输出端子上测得的输出时间长度
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>输出时间长度</returns> /// <returns>输出时间长度</returns>
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
// 修正:去除前缀冒号 string response = await WriteReadAsync($"MEAS:TIME:OUTP?{SCPIDelimiter}", SCPIDelimiter, ct);
return await WriteReadAsync($"MEAS:TIME:OUTP?{SCPIDelimiter}", SCPIDelimiter, ct); return double.TryParse(response, out double result) ? result : double.NaN;
} }
#endregion #endregion
@@ -435,6 +434,7 @@ namespace DeviceCommand.Devices
string cmd = string.Format(CultureInfo.InvariantCulture, "VOLT:LIM {0:F3}{1}", , SCPIDelimiter); string cmd = string.Format(CultureInfo.InvariantCulture, "VOLT:LIM {0:F3}{1}", , SCPIDelimiter);
await SendAsync(cmd, ct); await SendAsync(cmd, ct);
} }
/// <summary> /// <summary>
/// 3.7.2.9 清除电压上限限制(恢复为设备物理允许的最大电压值) /// 3.7.2.9 清除电压上限限制(恢复为设备物理允许的最大电压值)
/// </summary> /// </summary>
@@ -444,6 +444,7 @@ namespace DeviceCommand.Devices
// 发送 MAXimum 设为最大值以达到"清除限制"的效果 // 发送 MAXimum 设为最大值以达到"清除限制"的效果
await SendAsync($"VOLT:LIMIT MAX{SCPIDelimiter}", ct); // 对应手册 3.7.2.8 await SendAsync($"VOLT:LIMIT MAX{SCPIDelimiter}", ct); // 对应手册 3.7.2.8
} }
/// <summary> /// <summary>
/// 3.7.3.1 设置输出功率值 (W) /// 3.7.3.1 设置输出功率值 (W)
/// </summary> /// </summary>
+95 -37
View File
@@ -3,6 +3,7 @@ using DeviceCommand.Base;
using Model.Models; using Model.Models;
using System; using System;
using System.Globalization; using System.Globalization;
using System.Text.RegularExpressions;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -21,6 +22,23 @@ namespace DeviceCommand.Devices
{ {
} }
/// <summary>
/// 辅助方法:从带有单位的字符串中提取数值并转换为 double。
/// 例如将 "12.34A", "5.00 V", "1.2e-3 W" 转换为纯数字。解析失败返回 double.NaN。
/// </summary>
private double ParseResponseWithUnit(string response)
{
if (string.IsNullOrWhiteSpace(response)) return double.NaN;
// 使用正则提取数字部分(支持正负号、小数点、科学计数法 e/E)
var match = Regex.Match(response, @"[-+]?\d*\.?\d+(?:[eE][-+]?\d+)?");
if (match.Success && double.TryParse(match.Value, NumberStyles.Float, CultureInfo.InvariantCulture, out double result))
{
return result;
}
return double.NaN;
}
#region 3.1. IEEE 488.2 #region 3.1. IEEE 488.2
/// <summary> /// <summary>
@@ -38,7 +56,7 @@ namespace DeviceCommand.Devices
/// <returns>错误代码和描述信息</returns> /// <returns>错误代码和描述信息</returns>
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<string> (CancellationToken ct = default)
{ {
return await WriteReadAsync($":SYSTem:ERRor?{ScpiDelimiter}", ScpiDelimiter, ct); //[cite: 1] return await WriteReadAsync($":SYSTem:ERRor?{ScpiDelimiter}", ScpiDelimiter, ct); //
} }
/// <summary> /// <summary>
@@ -190,9 +208,10 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>设定的拉载电流值 (单位: A)</returns> /// <returns>设定的拉载电流值 (单位: A)</returns>
public virtual async Task<string> CC设定(CancellationToken ct = default) public virtual async Task<double> CC设定(CancellationToken ct = default)
{ {
return await WriteReadAsync($"STATic:CC:HIGH:LEVel?{ScpiDelimiter}", ScpiDelimiter, ct); string response = await WriteReadAsync($"STATic:CC:HIGH:LEVel?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
} }
/// <summary> /// <summary>
@@ -211,9 +230,10 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>设定的拉载电压值 (单位: V)</returns> /// <returns>设定的拉载电压值 (单位: V)</returns>
public virtual async Task<string> CV设定(CancellationToken ct = default) public virtual async Task<double> CV设定(CancellationToken ct = default)
{ {
return await WriteReadAsync($"STATic:CV:HIGH:LEVel?{ScpiDelimiter}", ScpiDelimiter, ct); string response = await WriteReadAsync($"STATic:CV:HIGH:LEVel?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
} }
/// <summary> /// <summary>
@@ -232,9 +252,10 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>设定的拉载功率值 (单位: W)</returns> /// <returns>设定的拉载功率值 (单位: W)</returns>
public virtual async Task<string> CP设定(CancellationToken ct = default) public virtual async Task<double> CP设定(CancellationToken ct = default)
{ {
return await WriteReadAsync($"STATic:CP:HIGH:LEVel?{ScpiDelimiter}", ScpiDelimiter, ct); string response = await WriteReadAsync($"STATic:CP:HIGH:LEVel?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
} }
/// <summary> /// <summary>
@@ -253,9 +274,10 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>设定的拉载电阻值 (单位: Ω)</returns> /// <returns>设定的拉载电阻值 (单位: Ω)</returns>
public virtual async Task<string> CR设定(CancellationToken ct = default) public virtual async Task<double> CR设定(CancellationToken ct = default)
{ {
return await WriteReadAsync($"STATic:CR:HIGH:LEVel?{ScpiDelimiter}", ScpiDelimiter, ct); string response = await WriteReadAsync($"STATic:CR:HIGH:LEVel?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
} }
#endregion #endregion
@@ -268,9 +290,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实时测量电压值 (单位: V)</returns> /// <returns>实时测量电压值 (单位: V)</returns>
[Monitorable("高压直流负载电压")] [Monitorable("高压直流负载电压")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($"MEASure:VOLTage?{ScpiDelimiter}", ScpiDelimiter, ct); string response = await WriteReadAsync($"MEASure:VOLTage?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
} }
/// <summary> /// <summary>
@@ -279,9 +302,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实时测量电流值 (单位: A)</returns> /// <returns>实时测量电流值 (单位: A)</returns>
[Monitorable("高压直流负载电流")] [Monitorable("高压直流负载电流")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($"MEASure:CURRent?{ScpiDelimiter}", ScpiDelimiter, ct); string response = await WriteReadAsync($"MEASure:CURRent?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
} }
/// <summary> /// <summary>
@@ -290,9 +314,10 @@ namespace DeviceCommand.Devices
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实时测量功率值 (单位: W)</returns> /// <returns>实时测量功率值 (单位: W)</returns>
[Monitorable("高压直流负载功率")] [Monitorable("高压直流负载功率")]
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
{ {
return await WriteReadAsync($"MEASure:POWer?{ScpiDelimiter}", ScpiDelimiter, ct); string response = await WriteReadAsync($"MEASure:POWer?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
} }
#endregion #endregion
@@ -650,16 +675,22 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>当前放电已持续时间 (单位: s)</returns> /// <returns>当前放电已持续时间 (单位: s)</returns>
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
=> await WriteReadAsync($"DISCHarge:ECHO:TIMe?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"DISCHarge:ECHO:TIMe?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
/// <summary> /// <summary>
/// 查询放电实时容量 /// 查询放电实时容量
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>当前放电已输出的容量 (单位: Ah)</returns> /// <returns>当前放电已输出的容量 (单位: Ah)</returns>
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
=> await WriteReadAsync($"DISCHarge:ECHo:CAPacity?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"DISCHarge:ECHo:CAPacity?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
/// <summary> /// <summary>
/// 设置充电电流 /// 设置充电电流
@@ -734,8 +765,11 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>OCP测试触发时的电流值 (单位: A)</returns> /// <returns>OCP测试触发时的电流值 (单位: A)</returns>
public virtual async Task<string> OCP结果电流(CancellationToken ct = default) public virtual async Task<double> OCP结果电流(CancellationToken ct = default)
=> await WriteReadAsync($"OCP:RCURrent?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"OCP:RCURrent?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
/// <summary> /// <summary>
/// 设置OPP初始功率 /// 设置OPP初始功率
@@ -782,8 +816,11 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>OPP测试触发时的功率值 (单位: W)</returns> /// <returns>OPP测试触发时的功率值 (单位: W)</returns>
public virtual async Task<string> OPP结果功率(CancellationToken ct = default) public virtual async Task<double> OPP结果功率(CancellationToken ct = default)
=> await WriteReadAsync($"OPP:RPOWer?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"OPP:RPOWer?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
#endregion #endregion
@@ -842,8 +879,11 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>当前扫频运行频率 (单位: Hz)</returns> /// <returns>当前扫频运行频率 (单位: Hz)</returns>
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<double> (CancellationToken ct = default)
=> await WriteReadAsync($"SWEEP:CFRequency?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"SWEEP:CFRequency?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
/// <summary> /// <summary>
/// 读取扫频测试结果 /// 读取扫频测试结果
@@ -950,8 +990,11 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>ESR测试结果 (单位: Ω)</returns> /// <returns>ESR测试结果 (单位: Ω)</returns>
public virtual async Task<string> ESR结果(CancellationToken ct = default) public virtual async Task<double> ESR结果(CancellationToken ct = default)
=> await WriteReadAsync($"ESR:RESult?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"ESR:RESult?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
#endregion #endregion
@@ -994,40 +1037,55 @@ namespace DeviceCommand.Devices
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>最大功率值 (单位: W)</returns> /// <returns>最大功率值 (单位: W)</returns>
public virtual async Task<string> MPPT最大功率(CancellationToken ct = default) public virtual async Task<double> MPPT最大功率(CancellationToken ct = default)
=> await WriteReadAsync($"MPP:MPOWer?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"MPP:MPOWer?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
/// <summary> /// <summary>
/// 读取MPPT最大功率电压 /// 读取MPPT最大功率电压
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>最大功率点对应电压 (单位: V)</returns> /// <returns>最大功率点对应电压 (单位: V)</returns>
public virtual async Task<string> MPPT最大功率电压(CancellationToken ct = default) public virtual async Task<double> MPPT最大功率电压(CancellationToken ct = default)
=> await WriteReadAsync($"MPP:MVOLtage?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"MPP:MVOLtage?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
/// <summary> /// <summary>
/// 读取MPPT最大功率电流 /// 读取MPPT最大功率电流
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>最大功率点对应电流 (单位: A)</returns> /// <returns>最大功率点对应电流 (单位: A)</returns>
public virtual async Task<string> MPPT最大功率电流(CancellationToken ct = default) public virtual async Task<double> MPPT最大功率电流(CancellationToken ct = default)
=> await WriteReadAsync($"MPP:MCURrent?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"MPP:MCURrent?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
/// <summary> /// <summary>
/// 读取MPPT开路电压 /// 读取MPPT开路电压
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>开路电压值 (单位: V)</returns> /// <returns>开路电压值 (单位: V)</returns>
public virtual async Task<string> MPPT开路电压(CancellationToken ct = default) public virtual async Task<double> MPPT开路电压(CancellationToken ct = default)
=> await WriteReadAsync($"MPP:OVOLtage?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"MPP:OVOLtage?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
/// <summary> /// <summary>
/// 读取MPPT短路电流 /// 读取MPPT短路电流
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>短路电流值 (单位: A)</returns> /// <returns>短路电流值 (单位: A)</returns>
public virtual async Task<string> MPPT短路电流(CancellationToken ct = default) public virtual async Task<double> MPPT短路电流(CancellationToken ct = default)
=> await WriteReadAsync($"MPP:SCURrent?{ScpiDelimiter}", ScpiDelimiter, ct); {
string response = await WriteReadAsync($"MPP:SCURrent?{ScpiDelimiter}", ScpiDelimiter, ct);
return ParseResponseWithUnit(response);
}
#endregion #endregion
+233 -189
View File
@@ -3,7 +3,8 @@ using DeviceCommand.Base;
using Model.Models; using Model.Models;
using System; using System;
using System.Globalization; using System.Globalization;
using System.Text; using System.IO;
using System.Text.RegularExpressions;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
@@ -16,55 +17,83 @@ namespace DeviceCommand.Devices
private const string ScpiDelimiter = "\n"; private const string ScpiDelimiter = "\n";
/// <summary> /// <summary>
/// 构造函数:传入 <see cref="TcpConfig"/> 一次性初始化示波器通信参数。 /// 构造函数:一次性初始化示波器通信参数。
/// </summary> /// </summary>
/// <param name="config">TCP 通信配置对象,包含 IP 地址和端口号等信息</param>
public SDS2000X_HD(TcpConfig config) : base(config) public SDS2000X_HD(TcpConfig config) : base(config)
{ {
} }
/// <summary>
/// 从示波器返回的 SCPI 响应字符串中提取数值部分并转换为 double。
/// 响应格式示例: "PKPK,2.48E-03V" → 按逗号分割后提取 2.48E-03
/// </summary>
/// <param name="raw">示波器返回的原始字符串</param>
/// <returns>提取到的数值,解析失败或字符串为空时返回 0</returns>
private static double ExtractDouble(string raw)
{
if (string.IsNullOrWhiteSpace(raw)) return 0;
string dataPart = raw;
// 按逗号分割,取最后一段(数值通常在逗号后面)
int commaIdx = raw.LastIndexOf(',');
if (commaIdx >= 0 && commaIdx < raw.Length - 1)
dataPart = raw.Substring(commaIdx + 1);
// 从数据段中提取数值(含正负号、小数点、科学计数法)
var match = Regex.Match(dataPart, @"[+-]?(?:\d+\.?\d*|\.\d+)(?:[Ee][+-]?\d+)?");
return match.Success && double.TryParse(match.Value, NumberStyles.Float, CultureInfo.InvariantCulture, out double val)
? val
: 0;
}
#region 1. IEEE 488.2 #region 1. IEEE 488.2
/// <summary> /// <summary>
/// 清除标准事件状态寄存器和错误队列 /// 清除标准事件状态寄存器和错误队列 (*CLS)。
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task (CancellationToken ct = default) public virtual async Task (CancellationToken ct = default)
{ {
await SendAsync($"*CLS{ScpiDelimiter}", ct); await SendAsync($"*CLS{ScpiDelimiter}", ct);
} }
/// <summary> /// <summary>
/// 查询错误信息 /// 查询错误信息
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>错误代码和描述信息</returns> /// <returns>示波器返回的错误代码和描述信息的字符串</returns>
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<string> (CancellationToken ct = default)
{ {
return await WriteReadAsync($":SYSTem:ERRor?{ScpiDelimiter}", ScpiDelimiter, ct); //[cite: 1] return await WriteReadAsync($":SYSTem:ERRor?{ScpiDelimiter}", ScpiDelimiter, ct);
} }
/// <summary> /// <summary>
/// 读取示波器识别字符串(制造商、型号、序列号、固件版本) /// 读取示波器识别字符串(制造商、型号、序列号、固件版本)
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>设备标识字符串(制造商, 型号, 序列号, 固件版本</returns> /// <returns>设备标识字符串(如 "Siglent Technologies,SDS2004X HD,..."</returns>
public virtual async Task<string> (CancellationToken ct = default) public virtual async Task<string> (CancellationToken ct = default)
{ {
return await WriteReadAsync($"*IDN?{ScpiDelimiter}", ScpiDelimiter, ct); return await WriteReadAsync($"*IDN?{ScpiDelimiter}", ScpiDelimiter, ct);
} }
/// <summary> /// <summary>
/// 复位命令。使示波器恢复到默认的出厂设置 /// 复位命令 (*RST)。使示波器恢复到默认的出厂设置
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task (CancellationToken ct = default) public virtual async Task (CancellationToken ct = default)
{ {
await SendAsync($"*RST{ScpiDelimiter}", ct); await SendAsync($"*RST{ScpiDelimiter}", ct);
} }
/// <summary> /// <summary>
/// 查询先前操作是否完成。 /// 查询先前操作是否完成 (*OPC?)
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>true: 操作已完成, false: 操作仍在执行中</returns> /// <returns>布尔值:true 表示所有挂起的操作已完成false 表示操作仍在执行中</returns>
public virtual async Task<bool> _OPC(CancellationToken ct = default) public virtual async Task<bool> _OPC(CancellationToken ct = default)
{ {
string res = await WriteReadAsync($"*OPC?{ScpiDelimiter}", ScpiDelimiter, ct); string res = await WriteReadAsync($"*OPC?{ScpiDelimiter}", ScpiDelimiter, ct);
@@ -73,146 +102,129 @@ namespace DeviceCommand.Devices
#endregion #endregion
#region 2. (Run / Stop / Single) #region 2. (Run / Stop / Trigger Mode)
/// <summary> /// <summary>
/// 控制示波器开始捕获波形 /// 控制示波器开始连续捕获波形
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task _RUN(CancellationToken ct = default) public virtual async Task _RUN(CancellationToken ct = default)
{ {
await SendAsync($":TRIGger:RUN{ScpiDelimiter}", ct); await SendAsync($":TRIGger:RUN{ScpiDelimiter}", ct);
} }
/// <summary> /// <summary>
/// 停止捕获波形 /// 停止捕获波形,画面将定格在当前捕捉的帧。
/// </summary> /// </summary>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task _STOP(CancellationToken ct = default) public virtual async Task _STOP(CancellationToken ct = default)
{ {
await SendAsync($"TRIGger:STOP{ScpiDelimiter}", ct); await SendAsync($":TRIGger:STOP{ScpiDelimiter}", ct);
} }
/// <summary>
/// 强制示波器进入单次触发捕获模式
/// </summary>
/// <param name="ct">取消令牌</param>
public virtual async Task _SINGLE(CancellationToken ct = default)
{
await SendAsync($":TRIGger:MODE SINGle{ScpiDelimiter}", ct);
}
/// <summary>
/// 触发一次波形采样
/// </summary>
/// <param name="ct">取消令牌</param>
public virtual async Task (CancellationToken ct = default)
{
await SendAsync($"::TRIGger:MODE FTRIG{ScpiDelimiter}", ct);
}
/// <summary>
/// 示波器触发控制模式(符合 SDS2000X-HD 规范)。
/// </summary>
public enum TriggerMode public enum TriggerMode
{ {
/// <summary> /// <summary>自动触发模式 (即使无触发信号也周期性刷屏)</summary>
/// 自动触发模式 (即使无触发信号也周期性刷屏)
/// </summary>
AUTO, AUTO,
/// <summary>普通触发模式 (仅当满足触发条件时才刷新)</summary>
/// <summary> NORMal,
/// 普通触发模式 (仅当满足触发条件时才刷新) /// <summary>单次触发模式 (捕捉到一次满足条件的信号后立刻 STOP)</summary>
/// </summary> SINGle
NORM,
/// <summary>
/// 单次触发模式 (捕捉到一次满足条件的信号后立刻 STOP)
/// </summary>
SINGLE
} }
/// <summary> /// <summary>
/// 设置触发模式 (AUTO 自动, NORM 普通, SINGLE 单次) /// 设置触发模式
/// </summary> /// </summary>
/// <param name="mode">触发模式枚举</param> /// <param name="mode">触发模式枚举 (AUTO 自动, NORMal 普通, SINGle 单次)</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task (TriggerMode mode, CancellationToken ct = default) public virtual async Task (TriggerMode mode, CancellationToken ct = default)
{ {
// 例如发送:TRMD AUTO\n、TRMD NORM\n 或 TRMD SINGLE\n string cmd = $":TRIGger:MODE {mode}{ScpiDelimiter}";
string cmd = $"TRMD {mode}{ScpiDelimiter}";
await SendAsync(cmd, ct); await SendAsync(cmd, ct);
} }
#endregion #endregion
#region 3. Channel (C1 ~ C4) #region 3. Channel (/)
/// <summary> /// <summary>
/// 开启或关闭指定的模拟通道 (符合手册 57 页规范) /// 开启或关闭指定的模拟通道
/// </summary> /// </summary>
/// <param name="channel">通道号 (1 - 4)</param> /// <param name="channel">通道号 (1 - 4)</param>
/// <param name="enable">true: 开启通道, false: 关闭通道</param> /// <param name="enable">布尔值:true 表示开启通道, false 表示关闭通道</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task (int channel, bool enable, CancellationToken ct = default) public virtual async Task (int channel, bool enable, CancellationToken ct = default)
{ {
string state = enable ? "ON" : "OFF"; string state = enable ? "ON" : "OFF";
await SendAsync($"C{channel}:TRAce {state}{ScpiDelimiter}", ct); await SendAsync($":CHANnel{channel}:SWITch {state}{ScpiDelimiter}", ct);
} }
/// <summary> /// <summary>
/// 设置指定通道的垂直电压档位 (Volts/Div) /// 设置指定通道的物理单位,用于区分测电压还是测电流,影响测量结果读数。
/// </summary> /// </summary>
/// <param name="channel">通道号 (1 - 4)</param> /// <param name="channel">通道号 (1 - 4)</param>
/// <param name="volts">电压档位 (Volts/Div)</param> /// <param name="unit">字符串:"V" 代表电压,"A" 代表电流</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
public virtual async Task (int channel, double volts, CancellationToken ct = default) /// <returns>表示异步操作的 Task</returns>
public virtual async Task (int channel, string unit, CancellationToken ct = default)
{ {
string cmd = string.Format(CultureInfo.InvariantCulture, "C{0}:VDIV {1:F4}{2}", channel, volts, ScpiDelimiter); await SendAsync($":CHANnel{channel}:UNIT {unit.ToUpper()}{ScpiDelimiter}", ct);
}
/// <summary>
/// 设置指定通道的垂直档位 (Volts/Div 或 Amps/Div)。
/// </summary>
/// <param name="channel">通道号 (1 - 4)</param>
/// <param name="value">档位数值 (例如 0.05 表示 50mV/div 或 50mA/div)</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task (int channel, double value, CancellationToken ct = default)
{
string cmd = string.Format(CultureInfo.InvariantCulture, ":CHANnel{0}:SCALe {1:E4}{2}", channel, value, ScpiDelimiter);
await SendAsync(cmd, ct); await SendAsync(cmd, ct);
} }
public enum ChannelCoupling { DC, AC, GND }
/// <summary> /// <summary>
/// 查询指定通道当前的电压档位 /// 设置通道耦合方式 (测纹波时必须设置为 AC 交流耦合)。
/// </summary> /// </summary>
/// <param name="channel">通道号 (1 - 4)</param> /// <param name="channel">通道号 (1 - 4)</param>
/// <param name="ct">取消令牌</param> /// <param name="coupling">耦合方式枚举 (DC, AC, GND)</param>
/// <returns>当前电压档位值 (Volts/Div)</returns> /// <param name="ct">异步取消令牌</param>
public virtual async Task<string> (int channel, CancellationToken ct = default) /// <returns>表示异步操作的 Task</returns>
public virtual async Task (int channel, ChannelCoupling coupling, CancellationToken ct = default)
{ {
return await WriteReadAsync($"C{channel}:VDIV?{ScpiDelimiter}", ScpiDelimiter, ct); await SendAsync($":CHANnel{channel}:COUPling {coupling}{ScpiDelimiter}", ct);
} }
/// <summary> /// <summary>
/// 设置指定通道的垂直偏移量 (Offset) /// 设置通道带宽限制 (测纹波时通常设置为 20M 带宽限制以滤除高频噪声)。
/// </summary> /// </summary>
/// <param name="channel">通道号 (1 - 4)</param> /// <param name="channel">通道号 (1 - 4)</param>
/// <param name="offset">垂直偏移量 (单位: V)</param> /// <param name="limit">带宽限制参数的字符串 (可选: "20M", "200M", "FULL")</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task (int channel, string limit, CancellationToken ct = default)
{
await SendAsync($":CHANnel{channel}:BWLimit {limit.ToUpper()}{ScpiDelimiter}", ct);
}
/// <summary>
/// 设置通道的垂直偏移量,用于调整波形在屏幕上的垂直位置。
/// 泄放测试中需要设置合适的偏移使衰减波形完整显示在屏幕内。
/// </summary>
/// <param name="channel">通道号 (1 - 4)</param>
/// <param name="offset">垂直偏移值 (单位:V 或 A,正值向上移动,负值向下移动)</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task (int channel, double offset, CancellationToken ct = default) public virtual async Task (int channel, double offset, CancellationToken ct = default)
{ {
string cmd = string.Format(CultureInfo.InvariantCulture, "C{0}:OFST {1:F4}{2}", channel, offset, ScpiDelimiter); string cmd = string.Format(CultureInfo.InvariantCulture, ":CHANnel{0}:OFFSet {1:F3}{2}", channel, offset, ScpiDelimiter);
await SendAsync(cmd, ct);
}
/// <summary>
/// 示波器通道输入阻抗类型。
/// </summary>
public enum ImpedanceType
{
/// <summary>50Ω 阻抗</summary>
FIFty,
/// <summary>1MΩ 阻抗</summary>
ONEM
}
/// <summary>
/// 设置指定通道的输入阻抗类型
/// </summary>
/// <param name="channel">通道号 (1 - 4)</param>
/// <param name="impedance">阻抗类型枚举 (FIFty: 50Ω, ONEM: 1MΩ)</param>
/// <param name="ct">取消令牌</param>
public virtual async Task (int channel, ImpedanceType impedance, CancellationToken ct = default)
{
// 例如发送:C1:IMPedance FIFty\n 或 C1:IMPedance ONEM\n
string cmd = $"CHANnel{channel}:IMPedance {impedance}{ScpiDelimiter}";
await SendAsync(cmd, ct); await SendAsync(cmd, ct);
} }
@@ -221,163 +233,195 @@ namespace DeviceCommand.Devices
#region 4. Timebase #region 4. Timebase
/// <summary> /// <summary>
/// 设置示波器的水平时基档位 (Time/Div) /// 设置示波器的水平时基档位 (Time/Div)
/// </summary> /// </summary>
/// <param name="scale">水平时基档位 (Time/Div)</param> /// <param name="scale">水平时基数值 (单位:秒/格,如 1.00E-03 表示 1ms/div)</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task (double scale, CancellationToken ct = default) public virtual async Task (double scale, CancellationToken ct = default)
{ {
string cmd = string.Format(CultureInfo.InvariantCulture, "TDIV {0:E6}{1}", scale, ScpiDelimiter); string cmd = string.Format(CultureInfo.InvariantCulture, ":TIMebase:SCALe {0:E6}{1}", scale, ScpiDelimiter);
await SendAsync(cmd, ct);
}
/// <summary>
/// 设置示波器的触发水平延迟位置 (Horizontal Delay)
/// </summary>
/// <param name="delay">水平延迟位置 (单位: s)</param>
/// <param name="ct">取消令牌</param>
public virtual async Task (double delay, CancellationToken ct = default)
{
string cmd = string.Format(CultureInfo.InvariantCulture, "TRDL {0:E6}{1}", delay, ScpiDelimiter);
await SendAsync(cmd, ct); await SendAsync(cmd, ct);
} }
#endregion #endregion
#region 5. Trigger #region 5. Trigger
/// <summary> /// <summary>
/// 设置边沿触发的电平值 (Trigger Level) /// 设置边沿触发的触发源。
/// </summary> /// </summary>
/// <param name="level">触发电平值 (单位: V)</param> /// <param name="source">触发源标识符的字符串 (例如: "C1", "C2", "EX", "LINE")</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
public virtual async Task (double level, CancellationToken ct = default) /// <returns>表示异步操作的 Task</returns>
public virtual async Task 沿(string source, CancellationToken ct = default)
{ {
await SendAsync($":TRIGger:EDGE:SOURce {source.ToUpper()}{ScpiDelimiter}", ct);
}
string cmd = string.Format(CultureInfo.InvariantCulture, "TRIGger:EDGE:LEVel {0:F3}{1}", level, ScpiDelimiter); /// <summary>
/// 设置边沿触发的电平值。
/// </summary>
/// <param name="level">触发电平数值 (根据通道单位,通常为 V 或 A)</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task 沿(double level, CancellationToken ct = default)
{
string cmd = string.Format(CultureInfo.InvariantCulture, ":TRIGger:EDGE:LEVel {0:F3}{1}", level, ScpiDelimiter);
await SendAsync(cmd, ct);
}
public enum TriggerSlope { RISing, FALLing, ALTernate }
/// <summary>
/// 设置边沿触发的斜率类型 (测试 AC 泄放时间需使用 FALLing 下降沿)。
/// </summary>
/// <param name="slope">斜率枚举类型 (RISing 上升沿, FALLing 下降沿, ALTernate 任意沿)</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task 沿(TriggerSlope slope, CancellationToken ct = default)
{
await SendAsync($":TRIGger:EDGE:SLOPe {slope}{ScpiDelimiter}", ct);
}
#endregion
#region 6. Cursor ( ΔT)
/// <summary>
/// 开启手动光标并设置为 X 轴(时间轴)测量模式。
/// </summary>
/// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task X光标(CancellationToken ct = default)
{
await SendAsync($":CURSor:MODE MANual,X{ScpiDelimiter}", ct);
}
/// <summary>
/// 设置 X1 光标的绝对位置。
/// </summary>
/// <param name="position">光标在时间轴上的位置 (单位:秒)</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>表示异步操作的 Task</returns>
public virtual async Task X1位置(double position, CancellationToken ct = default)
{
string cmd = string.Format(CultureInfo.InvariantCulture, ":CURSor:X1 {0:E6}{1}", position, ScpiDelimiter);
await SendAsync(cmd, ct); await SendAsync(cmd, ct);
} }
/// <summary> /// <summary>
/// 设置边沿触发的触发源 (例如: C1, C2, C3, C4, EX, LINE) /// 设置 X2 光标的绝对位置。
/// </summary> /// </summary>
/// <param name="source">触发源通道标识 (例如: "C1", "C2", "EX", "LINE")</param> /// <param name="position">光标在时间轴上的位置 (单位:秒)</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
public virtual async Task (string source, CancellationToken ct = default) /// <returns>表示异步操作的 Task</returns>
public virtual async Task X2位置(double position, CancellationToken ct = default)
{ {
await SendAsync($"TRSE EDGE,SR,{source.ToUpper()}{ScpiDelimiter}", ct); string cmd = string.Format(CultureInfo.InvariantCulture, ":CURSor:X2 {0:E6}{1}", position, ScpiDelimiter);
await SendAsync(cmd, ct);
}
/// <summary>
/// 查询光标 X2 和 X1 当前位置的时间差 (ΔT = X2 - X1)。
/// </summary>
/// <param name="ct">异步取消令牌</param>
/// <returns>返回 X 轴两光标之间的时间差数值 (double 类型,单位:秒)</returns>
public virtual async Task<double> X时间差(CancellationToken ct = default)
{
string res = await WriteReadAsync($":CURSor:XDELta?{ScpiDelimiter}", ScpiDelimiter, ct);
return ExtractDouble(res);
} }
#endregion #endregion
#region 6. Measure #region 7. Measure (PKPKMAX)
/// <summary> /// <summary>
/// 查询指定通道自动测量项的当前实时测量数值 /// 设置基本测量系统的全局参考信源。
/// </summary> /// </summary>
/// <param name="channel">通道号 (1 - 4)</param> /// <param name="channel">作为测量对象的通道号 (1 - 4)</param>
/// <param name="paramName">测量参数名称 (如 "PKPK", "FREQ", "RMS" 等)</param> /// <param name="ct">异步取消令牌</param>
/// <param name="ct">取消令牌</param> /// <returns>表示异步操作的 Task</returns>
/// <returns>测量参数的实时数值字符串</returns> public virtual async Task (int channel, CancellationToken ct = default)
public virtual async Task<string> (int channel, string paramName, CancellationToken ct = default)
{ {
string query = string.Format(CultureInfo.InvariantCulture, "C{0}:PAVA? {1}{2}", channel, paramName.ToUpper(), ScpiDelimiter); await SendAsync($":MEASure:SIMPle:SOURce C{channel}{ScpiDelimiter}", ct);
return await WriteReadAsync(query, ScpiDelimiter, ct);
} }
/// <summary> /// <summary>
/// 查询指定通道的电压峰峰值 (Vpp) /// 开启或关闭某项基本测量参数 (在屏幕下方显示或隐藏该测量项)。
/// </summary> /// </summary>
/// <param name="channel">通道号 (1 - 4)</param> /// <param name="parameter">要设置的测量参数名称 (如: "PKPK", "MAX", "MIN")</param>
/// <param name="ct">取消令牌</param> /// <param name="enable">布尔值:true 表示开启显示, false 表示关闭</param>
/// <returns>电压峰峰值 (Vpp)</returns> /// <param name="ct">异步取消令牌</param>
public virtual async Task<string> (int channel, CancellationToken ct = default) /// <returns>表示异步操作的 Task</returns>
public virtual async Task (string parameter, bool enable, CancellationToken ct = default)
{ {
return await (channel, "PKPK", ct); string state = enable ? "ON" : "OFF";
await SendAsync($":MEASure:SIMPle:ITEM {parameter.ToUpper()},{state}{ScpiDelimiter}", ct);
} }
/// <summary> /// <summary>
/// 查询指定通道的频率值 (Frequency) /// 查询基本测量中指定测量项的当前实时数值。
/// </summary> /// </summary>
/// <param name="channel">通道号 (1 - 4)</param> /// <param name="type">要查询的测量参数名称 (如: "PKPK" 获取峰峰值, "MAX" 获取最大值)</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>频率值 (单位: Hz)</returns> /// <returns>返回该测量参数提取到的实时数值 (double 类型)</returns>
public virtual async Task<string> (int channel, CancellationToken ct = default) public virtual async Task<double> (string type, CancellationToken ct = default)
{ {
return await (channel, "FREQ", ct); string res = await WriteReadAsync($":MEASure:SIMPle:VALue? {type.ToUpper()}{ScpiDelimiter}", ScpiDelimiter, ct);
} return ExtractDouble(res);
/// <summary>
/// 查询指定通道的真均方根电压值 (Vrms)
/// </summary>
/// <param name="channel">通道号 (1 - 4)</param>
/// <param name="ct">取消令牌</param>
/// <returns>真均方根电压值 (Vrms)</returns>
public virtual async Task<string> (int channel, CancellationToken ct = default)
{
return await (channel, "RMS", ct);
} }
#endregion #endregion
#region 7. #region 8.
/// <summary> /// <summary>
/// 【一键获取并保存截图】 /// 【一键获取并保存截图】
/// 自动下发 :PRINt? PNG 指令,接收示波器返回的纯 PNG 二进制流并直接保存到指定路径 /// 自动下发 :PRINt? PNG 指令,接收示波器返回的纯 PNG 二进制流并直接保存到上位机本地作测试记录
/// </summary> /// </summary>
/// <param name="saveFilePath">本地绝对保存路径 (例如: @"D:\Oscilloscope\Screen_01.png")</param> /// <param name="saveFilePath">目标保存文件的绝对路径 (例如: @"D:\Oscilloscope\RippleTest.png")</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">异步取消令牌</param>
/// <returns>返回是否获取并保存成功</returns> /// <returns>布尔值:true 表示成功获取并保存截图,false 表示获取或保存失败</returns>
public virtual async Task<bool> (string saveFilePath, CancellationToken ct = default) public virtual async Task<bool> (string saveFilePath, CancellationToken ct = default)
{ {
try try
{ {
string FileDirectory = Path.GetDirectoryName(saveFilePath) ?? ""; // 获取目录 string FileDirectory = Path.GetDirectoryName(saveFilePath) ?? "";
string fileNameWithoutExt = Path.GetFileNameWithoutExtension(saveFilePath); // 获取纯文件名 string fileNameWithoutExt = Path.GetFileNameWithoutExtension(saveFilePath);
string extension = Path.GetExtension(saveFilePath); // 获取后缀名 (如 .png) string extension = Path.GetExtension(saveFilePath);
// 生成时间戳,格式为 年月日_时分秒 (例如 20260817_123045) // 自动追加当前时间戳避免同名文件覆盖
string timeStamp = DateTime.Now.ToString("yyyyMMdd_HHmmss"); string timeStamp = DateTime.Now.ToString("yyyyMMdd_HHmmss");
// 组合成新的路径
saveFilePath = Path.Combine(FileDirectory, $"{fileNameWithoutExt}_{timeStamp}{extension}"); saveFilePath = Path.Combine(FileDirectory, $"{fileNameWithoutExt}_{timeStamp}{extension}");
// 1. 调用我们在基类 Tcp 中全新实现的 ReadRawAsync
// 它会在内部下发 ":PRINt? PNG\n",自动接收完整的网络字节流 // 下发截图指令,接收纯字节流
byte[] pureImageBytes = await ReadAllBytesAsync($":PRINt? PNG{ScpiDelimiter}", ct); byte[] pureImageBytes = await ReadAllBytesAsync($":PRINt? PNG{ScpiDelimiter}", ct);
// 2. 校验返回数据 if (pureImageBytes == null || pureImageBytes.Length < 8) return false;
if (pureImageBytes == null || pureImageBytes.Length < 8)
{
System.Diagnostics.Debug.WriteLine("错误:接收到的图片数据为空或长度不足。");
return false;
}
// 3. 核心校验:验证是否为标准的 PNG 文件格式 (PNG 头通常为 89 50 4E 47) // 验证 PNG 格式头,以确认确实是一张合法图像
if (pureImageBytes[0] != 0x89 || pureImageBytes[1] != 'P' || pureImageBytes[2] != 'N' || pureImageBytes[3] != 'G') if (pureImageBytes[0] != 0x89 || pureImageBytes[1] != 'P' || pureImageBytes[2] != 'N' || pureImageBytes[3] != 'G')
{
System.Diagnostics.Debug.WriteLine("错误:接收到的二进制数据不符合标准 PNG 格式头!");
return false; return false;
}
// 4. 如果传入的目标文件夹路径不存在,自动帮其创建
string directory = Path.GetDirectoryName(saveFilePath); string directory = Path.GetDirectoryName(saveFilePath);
if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory)) if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory))
{ {
Directory.CreateDirectory(directory); Directory.CreateDirectory(directory);
} }
// 5. 使用文件流直接将 PNG 字节数据落地写入本地硬盘 // 将接收到的二进制数组写入文件
using (FileStream fs = new FileStream(saveFilePath, FileMode.Create, FileAccess.Write)) using (FileStream fs = new FileStream(saveFilePath, FileMode.Create, FileAccess.Write))
{ {
await fs.WriteAsync(pureImageBytes, 0, pureImageBytes.Length, ct); await fs.WriteAsync(pureImageBytes, 0, pureImageBytes.Length, ct);
await fs.FlushAsync(ct); // 强制刷新,确保数据完整落地 await fs.FlushAsync(ct);
} }
System.Diagnostics.Debug.WriteLine($"成功:截图已保存至路径: {saveFilePath}");
return true; return true;
} }
catch (Exception ex) catch (Exception)
{ {
System.Diagnostics.Debug.WriteLine($"崩溃:保存截图时发生未知异常: {ex.Message}");
return false; return false;
} }
} }
+30 -10
View File
@@ -22,6 +22,21 @@ namespace DeviceCommand.Devices
{ {
} }
/// <summary>
/// 辅助方法:解析科学计数法字符串为普通 double。解析失败返回 double.NaN。
/// </summary>
private double ParseScientificResponse(string response)
{
if (string.IsNullOrWhiteSpace(response)) return double.NaN;
// 使用 NumberStyles.Float 允许原生的科学计数法解析 (例如 "1.23E+04")
if (double.TryParse(response.Trim(), NumberStyles.Float, CultureInfo.InvariantCulture, out double result))
{
return result;
}
return double.NaN;
}
#region 1. IEEE 488.2 #region 1. IEEE 488.2
/// <summary> /// <summary>
@@ -79,7 +94,7 @@ namespace DeviceCommand.Devices
/// <param name="channel">通道号/单元号</param> /// <param name="channel">通道号/单元号</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实时 RMS 电压值 (单位: V)</returns> /// <returns>实时 RMS 电压值 (单位: V)</returns>
public virtual async Task<string> (int channel, CancellationToken ct = default) public virtual async Task<double> (int channel, CancellationToken ct = default)
{ {
// 1. 先配置 ITEM1 为指定通道的电压有效值 (URMS) // 1. 先配置 ITEM1 为指定通道的电压有效值 (URMS)
string setItem = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:ITEM1 URMS,{0}{1}", channel, ScpiDelimiter); string setItem = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:ITEM1 URMS,{0}{1}", channel, ScpiDelimiter);
@@ -87,7 +102,8 @@ namespace DeviceCommand.Devices
// 2. 再读取 ITEM1 的值 // 2. 再读取 ITEM1 的值
string query = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:VALue? 1{0}", ScpiDelimiter); string query = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:VALue? 1{0}", ScpiDelimiter);
return await WriteReadAsync(query, ScpiDelimiter, ct); string response = await WriteReadAsync(query, ScpiDelimiter, ct);
return ParseScientificResponse(response);
} }
/// <summary> /// <summary>
@@ -96,7 +112,7 @@ namespace DeviceCommand.Devices
/// <param name="channel">通道号/单元号</param> /// <param name="channel">通道号/单元号</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实时 RMS 电流值 (单位: A)</returns> /// <returns>实时 RMS 电流值 (单位: A)</returns>
public virtual async Task<string> (int channel, CancellationToken ct = default) public virtual async Task<double> (int channel, CancellationToken ct = default)
{ {
// 1. 配置 ITEM1 为指定通道的电流有效值 (IRMS) // 1. 配置 ITEM1 为指定通道的电流有效值 (IRMS)
string setItem = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:ITEM1 IRMS,{0}{1}", channel, ScpiDelimiter); string setItem = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:ITEM1 IRMS,{0}{1}", channel, ScpiDelimiter);
@@ -104,7 +120,8 @@ namespace DeviceCommand.Devices
// 2. 读取 ITEM1 的值 // 2. 读取 ITEM1 的值
string query = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:VALue? 1{0}", ScpiDelimiter); string query = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:VALue? 1{0}", ScpiDelimiter);
return await WriteReadAsync(query, ScpiDelimiter, ct); string response = await WriteReadAsync(query, ScpiDelimiter, ct);
return ParseScientificResponse(response);
} }
/// <summary> /// <summary>
@@ -113,7 +130,7 @@ namespace DeviceCommand.Devices
/// <param name="channel">通道号/单元号</param> /// <param name="channel">通道号/单元号</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实时有功功率值 (单位: W)</returns> /// <returns>实时有功功率值 (单位: W)</returns>
public virtual async Task<string> (int channel, CancellationToken ct = default) public virtual async Task<double> (int channel, CancellationToken ct = default)
{ {
// 1. 配置 ITEM1 为指定通道的有功功率 (P) // 1. 配置 ITEM1 为指定通道的有功功率 (P)
string setItem = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:ITEM1 P,{0}{1}", channel, ScpiDelimiter); string setItem = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:ITEM1 P,{0}{1}", channel, ScpiDelimiter);
@@ -121,7 +138,8 @@ namespace DeviceCommand.Devices
// 2. 读取 ITEM1 的值 // 2. 读取 ITEM1 的值
string query = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:VALue? 1{0}", ScpiDelimiter); string query = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:VALue? 1{0}", ScpiDelimiter);
return await WriteReadAsync(query, ScpiDelimiter, ct); string response = await WriteReadAsync(query, ScpiDelimiter, ct);
return ParseScientificResponse(response);
} }
/// <summary> /// <summary>
@@ -130,7 +148,7 @@ namespace DeviceCommand.Devices
/// <param name="channel">通道号/单元号</param> /// <param name="channel">通道号/单元号</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>实时频率值 (单位: Hz)</returns> /// <returns>实时频率值 (单位: Hz)</returns>
public virtual async Task<string> (int channel, CancellationToken ct = default) public virtual async Task<double> (int channel, CancellationToken ct = default)
{ {
// 1. 配置 ITEM1 为指定通道的电压频率 (FU) // 1. 配置 ITEM1 为指定通道的电压频率 (FU)
string setItem = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:ITEM1 FU,{0}{1}", channel, ScpiDelimiter); string setItem = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:ITEM1 FU,{0}{1}", channel, ScpiDelimiter);
@@ -138,7 +156,8 @@ namespace DeviceCommand.Devices
// 2. 读取 ITEM1 的值 // 2. 读取 ITEM1 的值
string query = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:VALue? 1{0}", ScpiDelimiter); string query = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:VALue? 1{0}", ScpiDelimiter);
return await WriteReadAsync(query, ScpiDelimiter, ct); string response = await WriteReadAsync(query, ScpiDelimiter, ct);
return ParseScientificResponse(response);
} }
/// <summary> /// <summary>
@@ -147,7 +166,7 @@ namespace DeviceCommand.Devices
/// <param name="channel">通道号/单元号</param> /// <param name="channel">通道号/单元号</param>
/// <param name="ct">取消令牌</param> /// <param name="ct">取消令牌</param>
/// <returns>功率因数值</returns> /// <returns>功率因数值</returns>
public virtual async Task<string> (int channel, CancellationToken ct = default) public virtual async Task<double> (int channel, CancellationToken ct = default)
{ {
// 1. 配置 ITEM1 为指定通道的功率因数 (LAMBda) // 1. 配置 ITEM1 为指定通道的功率因数 (LAMBda)
string setItem = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:ITEM1 LAMBda,{0}{1}", channel, ScpiDelimiter); string setItem = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:ITEM1 LAMBda,{0}{1}", channel, ScpiDelimiter);
@@ -155,7 +174,8 @@ namespace DeviceCommand.Devices
// 2. 读取 ITEM1 的值 // 2. 读取 ITEM1 的值
string query = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:VALue? 1{0}", ScpiDelimiter); string query = string.Format(CultureInfo.InvariantCulture, ":NUMeric:NORMal:VALue? 1{0}", ScpiDelimiter);
return await WriteReadAsync(query, ScpiDelimiter, ct); string response = await WriteReadAsync(query, ScpiDelimiter, ct);
return ParseScientificResponse(response);
} }
#endregion #endregion
+88 -13
View File
@@ -2,17 +2,31 @@
using NModbus; using NModbus;
using NModbus.Serial; using NModbus.Serial;
using System; using System;
using System.Collections.Concurrent;
using System.IO.Ports; using System.IO.Ports;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace DeviceCommand.Flexible namespace DeviceCommand.Flexible
{ {
/// <summary>
/// 灵活型 Modbus RTU 串口通信类(免实例化,每次调用临时创建串口连接)。
/// 支持保持寄存器与线圈的读写操作,内部使用按串口名称粒度的通信锁保证同一串口同一时刻只有一个事务在执行,
/// 不同串口之间互不阻塞,适用于偶发性、无需保持长连接的 Modbus RTU 设备读写场景。
/// </summary>
[ADPCommand] [ADPCommand]
public static class FModbusRTU public static class FModbusRTU
{ {
private static readonly SemaphoreSlim _commLock = new(1, 1); // 按串口名称粒度的通信锁:同一串口同一时刻只有一个事务在执行,不同串口互不阻塞
private static readonly ConcurrentDictionary<string, SemaphoreSlim> _commLocks = new();
/// <summary>获取指定串口的通信锁(不存在则自动创建)</summary>
private static SemaphoreSlim GetLock(string portName)
=> _commLocks.GetOrAdd(portName, _ => new SemaphoreSlim(1, 1));
/// <summary>
/// 创建串口实例并配置超时参数。
/// </summary>
private static SerialPort CreatePort( private static SerialPort CreatePort(
string portName, string portName,
int baudRate, int baudRate,
@@ -29,6 +43,9 @@ namespace DeviceCommand.Flexible
}; };
} }
/// <summary>
/// 基于指定串口创建 Modbus RTU 主站。
/// </summary>
private static IModbusMaster CreateMaster(SerialPort port) private static IModbusMaster CreateMaster(SerialPort port)
{ {
return new ModbusFactory().CreateRtuMaster(port); return new ModbusFactory().CreateRtuMaster(port);
@@ -36,7 +53,22 @@ namespace DeviceCommand.Flexible
#region Holding Register #region Holding Register
public static async Task<ushort[]> ReadHoldingRegistersAsync( /// <summary>
/// 读取保持寄存器(功能码 03),返回指定数量的寄存器值数组。
/// </summary>
/// <param name="portName">串口名称,如 "COM1"</param>
/// <param name="baudRate">波特率,如 9600、115200</param>
/// <param name="slaveAddress">Modbus 从站站号 (1-247)</param>
/// <param name="startAddress">起始寄存器地址</param>
/// <param name="numberOfPoints">读取的寄存器数量</param>
/// <param name="dataBits">数据位,默认 8</param>
/// <param name="stopBits">停止位,默认 1 位</param>
/// <param name="parity">校验位,默认无校验</param>
/// <param name="readTimeout">读取超时时间(毫秒),默认 3000</param>
/// <param name="writeTimeout">写入超时时间(毫秒),默认 3000</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>读取到的寄存器值数组</returns>
public static async Task<ushort[]> (
string portName, string portName,
int baudRate, int baudRate,
byte slaveAddress, byte slaveAddress,
@@ -49,7 +81,7 @@ namespace DeviceCommand.Flexible
int writeTimeout = 3000, int writeTimeout = 3000,
CancellationToken ct = default) CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(portName).WaitAsync(ct);
try try
{ {
using var port = CreatePort( using var port = CreatePort(
@@ -69,11 +101,25 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(portName).Release();
} }
} }
public static async Task WriteSingleRegisterAsync( /// <summary>
/// 写入单个保持寄存器(功能码 06)。
/// </summary>
/// <param name="portName">串口名称,如 "COM1"</param>
/// <param name="baudRate">波特率,如 9600、115200</param>
/// <param name="slaveAddress">Modbus 从站站号 (1-247)</param>
/// <param name="registerAddress">要写入的寄存器地址</param>
/// <param name="value">要写入的寄存器值 (0-65535)</param>
/// <param name="dataBits">数据位,默认 8</param>
/// <param name="stopBits">停止位,默认 1 位</param>
/// <param name="parity">校验位,默认无校验</param>
/// <param name="readTimeout">读取超时时间(毫秒),默认 3000</param>
/// <param name="writeTimeout">写入超时时间(毫秒),默认 3000</param>
/// <param name="ct">异步取消令牌</param>
public static async Task (
string portName, string portName,
int baudRate, int baudRate,
byte slaveAddress, byte slaveAddress,
@@ -86,7 +132,7 @@ namespace DeviceCommand.Flexible
int writeTimeout = 3000, int writeTimeout = 3000,
CancellationToken ct = default) CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(portName).WaitAsync(ct);
try try
{ {
using var port = CreatePort( using var port = CreatePort(
@@ -106,7 +152,7 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(portName).Release();
} }
} }
@@ -114,7 +160,22 @@ namespace DeviceCommand.Flexible
#region Coil #region Coil
public static async Task<bool[]> ReadCoilsAsync( /// <summary>
/// 读取线圈状态(功能码 01),返回指定数量的线圈开关状态数组。
/// </summary>
/// <param name="portName">串口名称,如 "COM1"</param>
/// <param name="baudRate">波特率,如 9600、115200</param>
/// <param name="slaveAddress">Modbus 从站站号 (1-247)</param>
/// <param name="startAddress">起始线圈地址</param>
/// <param name="numberOfPoints">读取的线圈数量</param>
/// <param name="dataBits">数据位,默认 8</param>
/// <param name="stopBits">停止位,默认 1 位</param>
/// <param name="parity">校验位,默认无校验</param>
/// <param name="readTimeout">读取超时时间(毫秒),默认 3000</param>
/// <param name="writeTimeout">写入超时时间(毫秒),默认 3000</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>线圈状态数组,true 表示吸合/导通</returns>
public static async Task<bool[]> 线(
string portName, string portName,
int baudRate, int baudRate,
byte slaveAddress, byte slaveAddress,
@@ -127,7 +188,7 @@ namespace DeviceCommand.Flexible
int writeTimeout = 3000, int writeTimeout = 3000,
CancellationToken ct = default) CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(portName).WaitAsync(ct);
try try
{ {
using var port = CreatePort( using var port = CreatePort(
@@ -147,11 +208,25 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(portName).Release();
} }
} }
public static async Task WriteSingleCoilAsync( /// <summary>
/// 写入单个线圈(功能码 05),控制单个开关量输出。
/// </summary>
/// <param name="portName">串口名称,如 "COM1"</param>
/// <param name="baudRate">波特率,如 9600、115200</param>
/// <param name="slaveAddress">Modbus 从站站号 (1-247)</param>
/// <param name="coilAddress">要写入的线圈地址</param>
/// <param name="value">线圈状态(true: 吸合/导通, false: 断开)</param>
/// <param name="dataBits">数据位,默认 8</param>
/// <param name="stopBits">停止位,默认 1 位</param>
/// <param name="parity">校验位,默认无校验</param>
/// <param name="readTimeout">读取超时时间(毫秒),默认 3000</param>
/// <param name="writeTimeout">写入超时时间(毫秒),默认 3000</param>
/// <param name="ct">异步取消令牌</param>
public static async Task 线(
string portName, string portName,
int baudRate, int baudRate,
byte slaveAddress, byte slaveAddress,
@@ -164,7 +239,7 @@ namespace DeviceCommand.Flexible
int writeTimeout = 3000, int writeTimeout = 3000,
CancellationToken ct = default) CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(portName).WaitAsync(ct);
try try
{ {
using var port = CreatePort( using var port = CreatePort(
@@ -184,7 +259,7 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(portName).Release();
} }
} }
+73 -13
View File
@@ -1,6 +1,7 @@
using Common.Attributes; using Common.Attributes;
using NModbus; using NModbus;
using System; using System;
using System.Collections.Concurrent;
using System.Net.Sockets; using System.Net.Sockets;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
@@ -8,11 +9,24 @@ using System.Threading.Tasks;
namespace DeviceCommand.Flexible namespace DeviceCommand.Flexible
{ {
/// <summary>
/// 灵活型 Modbus TCP 通信类(免实例化,每次调用临时建立 TCP 连接)。
/// 支持保持寄存器与线圈的读写操作,内部使用按端点粒度的通信锁保证同一端点同一时刻只有一个事务在执行,
/// 不同端点之间互不阻塞,适用于偶发性、无需保持长连接的 Modbus TCP 设备读写场景。
/// </summary>
[ADPCommand] [ADPCommand]
public static class FModbusTCP public static class FModbusTCP
{ {
private static readonly SemaphoreSlim _commLock = new(1, 1); // 按端点粒度的通信锁:同一端点同一时刻只有一个事务在执行,不同端点互不阻塞
private static readonly ConcurrentDictionary<string, SemaphoreSlim> _commLocks = new();
/// <summary>获取指定端点的通信锁(不存在则自动创建)</summary>
private static SemaphoreSlim GetLock(string ipAddress, int port)
=> _commLocks.GetOrAdd($"{ipAddress}:{port}", _ => new SemaphoreSlim(1, 1));
/// <summary>
/// 建立 TCP 连接并创建 Modbus TCP 主站。
/// </summary>
private static async Task<IModbusMaster> ConnectAsync(string ipAddress, int port, int sendTimeout, int receiveTimeout, CancellationToken ct) private static async Task<IModbusMaster> ConnectAsync(string ipAddress, int port, int sendTimeout, int receiveTimeout, CancellationToken ct)
{ {
var tcpClient = new TcpClient(); var tcpClient = new TcpClient();
@@ -26,7 +40,19 @@ namespace DeviceCommand.Flexible
#region Holding Registers #region Holding Registers
public static async Task<ushort[]> ReadHoldingRegistersAsync( /// <summary>
/// 读取保持寄存器(功能码 03),返回指定数量的寄存器值数组。
/// </summary>
/// <param name="ipAddress">设备 IP 地址</param>
/// <param name="port">Modbus TCP 端口号,默认常用 502</param>
/// <param name="slaveAddress">Modbus 从站站号(单元标识符)</param>
/// <param name="startAddress">起始寄存器地址</param>
/// <param name="numberOfPoints">读取的寄存器数量</param>
/// <param name="sendTimeout">发送/连接超时时间(毫秒),默认 3000</param>
/// <param name="receiveTimeout">接收超时时间(毫秒),默认 3000</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>读取到的寄存器值数组</returns>
public static async Task<ushort[]> (
string ipAddress, string ipAddress,
int port, int port,
byte slaveAddress, byte slaveAddress,
@@ -36,7 +62,7 @@ namespace DeviceCommand.Flexible
int receiveTimeout = 3000, int receiveTimeout = 3000,
CancellationToken ct = default) CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(ipAddress, port).WaitAsync(ct);
try try
{ {
using var master = await ConnectAsync(ipAddress, port, sendTimeout, receiveTimeout, ct) as IDisposable; using var master = await ConnectAsync(ipAddress, port, sendTimeout, receiveTimeout, ct) as IDisposable;
@@ -47,11 +73,22 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(ipAddress, port).Release();
} }
} }
public static async Task WriteSingleRegisterAsync( /// <summary>
/// 写入单个保持寄存器(功能码 06)。
/// </summary>
/// <param name="ipAddress">设备 IP 地址</param>
/// <param name="port">Modbus TCP 端口号,默认常用 502</param>
/// <param name="slaveAddress">Modbus 从站站号(单元标识符)</param>
/// <param name="registerAddress">要写入的寄存器地址</param>
/// <param name="value">要写入的寄存器值 (0-65535)</param>
/// <param name="sendTimeout">发送/连接超时时间(毫秒),默认 3000</param>
/// <param name="receiveTimeout">接收超时时间(毫秒),默认 3000</param>
/// <param name="ct">异步取消令牌</param>
public static async Task (
string ipAddress, string ipAddress,
int port, int port,
byte slaveAddress, byte slaveAddress,
@@ -61,7 +98,7 @@ namespace DeviceCommand.Flexible
int receiveTimeout = 3000, int receiveTimeout = 3000,
CancellationToken ct = default) CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(ipAddress, port).WaitAsync(ct);
try try
{ {
using var master = await ConnectAsync(ipAddress, port, sendTimeout, receiveTimeout, ct) as IDisposable; using var master = await ConnectAsync(ipAddress, port, sendTimeout, receiveTimeout, ct) as IDisposable;
@@ -71,7 +108,7 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(ipAddress, port).Release();
} }
} }
@@ -79,7 +116,19 @@ namespace DeviceCommand.Flexible
#region Coils #region Coils
public static async Task<bool[]> ReadCoilsAsync( /// <summary>
/// 读取线圈状态(功能码 01),返回指定数量的线圈开关状态数组。
/// </summary>
/// <param name="ipAddress">设备 IP 地址</param>
/// <param name="port">Modbus TCP 端口号,默认常用 502</param>
/// <param name="slaveAddress">Modbus 从站站号(单元标识符)</param>
/// <param name="startAddress">起始线圈地址</param>
/// <param name="numberOfPoints">读取的线圈数量</param>
/// <param name="sendTimeout">发送/连接超时时间(毫秒),默认 3000</param>
/// <param name="receiveTimeout">接收超时时间(毫秒),默认 3000</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>线圈状态数组,true 表示吸合/导通</returns>
public static async Task<bool[]> 线(
string ipAddress, string ipAddress,
int port, int port,
byte slaveAddress, byte slaveAddress,
@@ -89,7 +138,7 @@ namespace DeviceCommand.Flexible
int receiveTimeout = 3000, int receiveTimeout = 3000,
CancellationToken ct = default) CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(ipAddress, port).WaitAsync(ct);
try try
{ {
using var master = await ConnectAsync(ipAddress, port, sendTimeout, receiveTimeout, ct) as IDisposable; using var master = await ConnectAsync(ipAddress, port, sendTimeout, receiveTimeout, ct) as IDisposable;
@@ -100,11 +149,22 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(ipAddress, port).Release();
} }
} }
public static async Task WriteSingleCoilAsync( /// <summary>
/// 写入单个线圈(功能码 05),控制单个开关量输出。
/// </summary>
/// <param name="ipAddress">设备 IP 地址</param>
/// <param name="port">Modbus TCP 端口号,默认常用 502</param>
/// <param name="slaveAddress">Modbus 从站站号(单元标识符)</param>
/// <param name="coilAddress">要写入的线圈地址</param>
/// <param name="value">线圈状态(true: 吸合/导通, false: 断开)</param>
/// <param name="sendTimeout">发送/连接超时时间(毫秒),默认 3000</param>
/// <param name="receiveTimeout">接收超时时间(毫秒),默认 3000</param>
/// <param name="ct">异步取消令牌</param>
public static async Task 线(
string ipAddress, string ipAddress,
int port, int port,
byte slaveAddress, byte slaveAddress,
@@ -114,7 +174,7 @@ namespace DeviceCommand.Flexible
int receiveTimeout = 3000, int receiveTimeout = 3000,
CancellationToken ct = default) CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(ipAddress, port).WaitAsync(ct);
try try
{ {
using var master = await ConnectAsync(ipAddress, port, sendTimeout, receiveTimeout, ct) as IDisposable; using var master = await ConnectAsync(ipAddress, port, sendTimeout, receiveTimeout, ct) as IDisposable;
@@ -124,7 +184,7 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(ipAddress, port).Release();
} }
} }
+48 -7
View File
@@ -1,5 +1,6 @@
using Common.Attributes; using Common.Attributes;
using System; using System;
using System.Collections.Concurrent;
using System.IO.Ports; using System.IO.Ports;
using System.Text; using System.Text;
using System.Threading; using System.Threading;
@@ -7,11 +8,25 @@ using System.Threading.Tasks;
namespace DeviceCommand.Flexible namespace DeviceCommand.Flexible
{ {
/// <summary>
/// 灵活型串口通信类(免实例化,每次调用临时创建串口连接)。
/// 支持只发送指令、发送并读取应答两种最常用操作,
/// 内部使用按串口名称粒度的通信锁保证同一串口同一时刻只有一个事务在执行,
/// 不同串口之间互不阻塞,适用于偶发性、无需保持长连接的串口设备通信场景(如示波器、电源的 SCPI 指令)。
/// </summary>
[ADPCommand] [ADPCommand]
public static class FSerialPort public static class FSerialPort
{ {
private static readonly SemaphoreSlim _commLock = new(1, 1); // 按串口名称粒度的通信锁:同一串口同一时刻只有一个事务在执行,不同串口互不阻塞
private static readonly ConcurrentDictionary<string, SemaphoreSlim> _commLocks = new();
/// <summary>获取指定串口的通信锁(不存在则自动创建)</summary>
private static SemaphoreSlim GetLock(string portName)
=> _commLocks.GetOrAdd(portName, _ => new SemaphoreSlim(1, 1));
/// <summary>
/// 创建串口实例并配置 UTF8 编码与超时参数。
/// </summary>
private static SerialPort CreatePort(string portName, int baudRate, Parity parity, int dataBits, StopBits stopBits, int sendTimeout,int receiveTimeout) private static SerialPort CreatePort(string portName, int baudRate, Parity parity, int dataBits, StopBits stopBits, int sendTimeout,int receiveTimeout)
{ {
return new SerialPort(portName, baudRate, parity, dataBits, stopBits) return new SerialPort(portName, baudRate, parity, dataBits, stopBits)
@@ -24,9 +39,21 @@ namespace DeviceCommand.Flexible
#region #region
public static async Task SendAsync(string portName,int baudRate,Parity parity,int dataBits,StopBits stopBits,int sendTimeout,int receiveTimeout,string command,CancellationToken ct = default) /// <summary>
/// 向串口发送一条字符串指令(只发送,不等待应答)。
/// </summary>
/// <param name="portName">串口名称,如 "COM1"</param>
/// <param name="baudRate">波特率,如 9600、115200</param>
/// <param name="parity">校验位</param>
/// <param name="dataBits">数据位,常用 8</param>
/// <param name="stopBits">停止位</param>
/// <param name="sendTimeout">发送超时时间(毫秒)</param>
/// <param name="receiveTimeout">接收超时时间(毫秒)</param>
/// <param name="command">要发送的指令字符串</param>
/// <param name="ct">异步取消令牌</param>
public static async Task (string portName,int baudRate,Parity parity,int dataBits,StopBits stopBits,int sendTimeout,int receiveTimeout,string command,CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(portName).WaitAsync(ct);
try try
{ {
using var port = CreatePort( using var port = CreatePort(
@@ -44,7 +71,7 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(portName).Release();
} }
} }
@@ -52,9 +79,23 @@ namespace DeviceCommand.Flexible
#region #region
public static async Task<string> SendReadAsync(string portName,int baudRate, Parity parity, int dataBits, StopBits stopBits,int sendTimeout, int receiveTimeout,string command,string delimiter = "\n", CancellationToken ct = default) /// <summary>
/// 向串口发送一条字符串指令并读取应答,读取到结束符为止(应答不含结束符)。
/// </summary>
/// <param name="portName">串口名称,如 "COM1"</param>
/// <param name="baudRate">波特率,如 9600、115200</param>
/// <param name="parity">校验位</param>
/// <param name="dataBits">数据位,常用 8</param>
/// <param name="stopBits">停止位</param>
/// <param name="sendTimeout">发送超时时间(毫秒)</param>
/// <param name="receiveTimeout">接收超时时间(毫秒),超时未收到结束符抛出超时异常</param>
/// <param name="command">要发送的指令字符串</param>
/// <param name="delimiter">应答结束符,默认换行符 "\n"</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>去除结束符并去除首尾空白后的应答字符串</returns>
public static async Task<string> (string portName,int baudRate, Parity parity, int dataBits, StopBits stopBits,int sendTimeout, int receiveTimeout,string command,string delimiter = "\n", CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(portName).WaitAsync(ct);
try try
{ {
using var port = CreatePort( using var port = CreatePort(
@@ -95,7 +136,7 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(portName).Release();
} }
} }
+58 -12
View File
@@ -1,19 +1,39 @@
using Common.Attributes; using Common.Attributes;
using System.Collections.Concurrent;
using System.Net.Sockets; using System.Net.Sockets;
using System.Text; using System.Text;
namespace DeviceCommand.Flexible namespace DeviceCommand.Flexible
{ {
/// <summary>
/// 灵活型 TCP 通信类(免实例化,每次调用临时建立 TCP 连接)。
/// 支持字节/文本发送、定长字节读取、按结束符读取文本行四种操作,
/// 内部使用按端点粒度的通信锁保证同一端点同一时刻只有一个 TCP 事务在执行,
/// 不同端点之间互不阻塞,适用于偶发性、无需保持长连接的 TCP 设备通信场景。
/// </summary>
[ADPCommand] [ADPCommand]
public static class FTCP public static class FTCP
{ {
private static readonly SemaphoreSlim _commLock = new(1, 1); // 按端点粒度的通信锁:同一端点同一时刻只有一个事务在执行,不同端点互不阻塞
private static readonly ConcurrentDictionary<string, SemaphoreSlim> _commLocks = new();
/// <summary>获取指定端点的通信锁(不存在则自动创建)</summary>
private static SemaphoreSlim GetLock(string ipAddress, int port)
=> _commLocks.GetOrAdd($"{ipAddress}:{port}", _ => new SemaphoreSlim(1, 1));
#region Send #region Send
public static async Task SendAsync(string ipAddress,int port,int sendTimeout, byte[] buffer, CancellationToken ct = default) /// <summary>
/// 向指定 TCP 端点发送一段字节数据(发送完成后立即断开)。
/// </summary>
/// <param name="ipAddress">设备 IP 地址</param>
/// <param name="port">TCP 端口号</param>
/// <param name="sendTimeout">发送超时时间(毫秒)</param>
/// <param name="buffer">要发送的字节数组</param>
/// <param name="ct">异步取消令牌</param>
public static async Task (string ipAddress,int port,int sendTimeout, byte[] buffer, CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(ipAddress, port).WaitAsync(ct);
try try
{ {
using var client = new TcpClient(); using var client = new TcpClient();
@@ -26,22 +46,39 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(ipAddress, port).Release();
} }
} }
public static Task SendAsync(string ipAddress, int port,int sendTimeout, string text,CancellationToken ct = default) /// <summary>
/// 向指定 TCP 端点发送一段文本(以 UTF8 编码为字节后发送,发送完成后立即断开)。
/// </summary>
/// <param name="ipAddress">设备 IP 地址</param>
/// <param name="port">TCP 端口号</param>
/// <param name="sendTimeout">发送超时时间(毫秒)</param>
/// <param name="text">要发送的文本字符串</param>
/// <param name="ct">异步取消令牌</param>
public static Task (string ipAddress, int port,int sendTimeout, string text,CancellationToken ct = default)
{ {
return SendAsync( ipAddress, port, sendTimeout, Encoding.UTF8.GetBytes(text),ct); return ( ipAddress, port, sendTimeout, Encoding.UTF8.GetBytes(text),ct);
} }
#endregion #endregion
#region Read #region Read
public static async Task<byte[]> ReadAsync(string ipAddress,int port,int receiveTimeout,int length,CancellationToken ct = default) /// <summary>
/// 连接指定 TCP 端点并读取指定长度的字节数据(连接关闭或读满为止)。
/// </summary>
/// <param name="ipAddress">设备 IP 地址</param>
/// <param name="port">TCP 端口号</param>
/// <param name="receiveTimeout">接收超时时间(毫秒)</param>
/// <param name="length">要读取的字节长度</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>实际读取到的字节数组(对端提前关闭时可能短于请求长度)</returns>
public static async Task<byte[]> (string ipAddress,int port,int receiveTimeout,int length,CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(ipAddress, port).WaitAsync(ct);
try try
{ {
using var client = new TcpClient(); using var client = new TcpClient();
@@ -68,13 +105,22 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(ipAddress, port).Release();
} }
} }
public static async Task<string> ReadLineAsync( string ipAddress, int port, int receiveTimeout, string delimiter = "\n",CancellationToken ct = default) /// <summary>
/// 连接指定 TCP 端点并读取一行文本,读取到结束符为止(返回内容不含结束符)。
/// </summary>
/// <param name="ipAddress">设备 IP 地址</param>
/// <param name="port">TCP 端口号</param>
/// <param name="receiveTimeout">接收超时时间(毫秒),超时未收到结束符抛出超时异常</param>
/// <param name="delimiter">文本行结束符,默认换行符 "\n"</param>
/// <param name="ct">异步取消令牌</param>
/// <returns>去除结束符并去除首尾空白后的文本行</returns>
public static async Task<string> ( string ipAddress, int port, int receiveTimeout, string delimiter = "\n",CancellationToken ct = default)
{ {
await _commLock.WaitAsync(ct); await GetLock(ipAddress, port).WaitAsync(ct);
try try
{ {
using var client = new TcpClient(); using var client = new TcpClient();
@@ -106,7 +152,7 @@ namespace DeviceCommand.Flexible
} }
finally finally
{ {
_commLock.Release(); GetLock(ipAddress, port).Release();
} }
} }
@@ -120,29 +120,29 @@ namespace DeviceEditModule.ViewModels
#region #region
private string _measuredVoltage = "—"; private double _measuredVoltage;
public string MeasuredVoltage public double MeasuredVoltage
{ {
get => _measuredVoltage; get => _measuredVoltage;
set => SetProperty(ref _measuredVoltage, value); set => SetProperty(ref _measuredVoltage, value);
} }
private string _measuredCurrent = "—"; private double _measuredCurrent;
public string MeasuredCurrent public double MeasuredCurrent
{ {
get => _measuredCurrent; get => _measuredCurrent;
set => SetProperty(ref _measuredCurrent, value); set => SetProperty(ref _measuredCurrent, value);
} }
private string _measuredPower = "—"; private double _measuredPower;
public string MeasuredPower public double MeasuredPower
{ {
get => _measuredPower; get => _measuredPower;
set => SetProperty(ref _measuredPower, value); set => SetProperty(ref _measuredPower, value);
} }
private string _measuredFrequency = "—"; private double _measuredFrequency;
public string MeasuredFrequency public double MeasuredFrequency
{ {
get => _measuredFrequency; get => _measuredFrequency;
set => SetProperty(ref _measuredFrequency, value); set => SetProperty(ref _measuredFrequency, value);
@@ -118,22 +118,22 @@ namespace DeviceEditModule.ViewModels
#region #region
private string _measuredVoltage = "—"; private double _measuredVoltage;
public string MeasuredVoltage public double MeasuredVoltage
{ {
get => _measuredVoltage; get => _measuredVoltage;
set => SetProperty(ref _measuredVoltage, value); set => SetProperty(ref _measuredVoltage, value);
} }
private string _measuredCurrent = "—"; private double _measuredCurrent;
public string MeasuredCurrent public double MeasuredCurrent
{ {
get => _measuredCurrent; get => _measuredCurrent;
set => SetProperty(ref _measuredCurrent, value); set => SetProperty(ref _measuredCurrent, value);
} }
private string _measuredPower = "—"; private double _measuredPower;
public string MeasuredPower public double MeasuredPower
{ {
get => _measuredPower; get => _measuredPower;
set => SetProperty(ref _measuredPower, value); set => SetProperty(ref _measuredPower, value);
@@ -93,22 +93,22 @@ namespace DeviceEditModule.ViewModels
#region #region
private string _measuredVoltage = "—"; private double _measuredVoltage;
public string MeasuredVoltage public double MeasuredVoltage
{ {
get => _measuredVoltage; get => _measuredVoltage;
set => SetProperty(ref _measuredVoltage, value); set => SetProperty(ref _measuredVoltage, value);
} }
private string _measuredCurrent = "—"; private double _measuredCurrent;
public string MeasuredCurrent public double MeasuredCurrent
{ {
get => _measuredCurrent; get => _measuredCurrent;
set => SetProperty(ref _measuredCurrent, value); set => SetProperty(ref _measuredCurrent, value);
} }
private string _measuredPower = "—"; private double _measuredPower;
public string MeasuredPower public double MeasuredPower
{ {
get => _measuredPower; get => _measuredPower;
set => SetProperty(ref _measuredPower, value); set => SetProperty(ref _measuredPower, value);
@@ -94,22 +94,22 @@ namespace DeviceEditModule.ViewModels
#region #region
private string _measuredVoltage = "—"; private double _measuredVoltage;
public string MeasuredVoltage public double MeasuredVoltage
{ {
get => _measuredVoltage; get => _measuredVoltage;
set => SetProperty(ref _measuredVoltage, value); set => SetProperty(ref _measuredVoltage, value);
} }
private string _measuredCurrent = "—"; private double _measuredCurrent;
public string MeasuredCurrent public double MeasuredCurrent
{ {
get => _measuredCurrent; get => _measuredCurrent;
set => SetProperty(ref _measuredCurrent, value); set => SetProperty(ref _measuredCurrent, value);
} }
private string _measuredPower = "—"; private double _measuredPower;
public string MeasuredPower public double MeasuredPower
{ {
get => _measuredPower; get => _measuredPower;
set => SetProperty(ref _measuredPower, value); set => SetProperty(ref _measuredPower, value);
@@ -2,8 +2,7 @@ using DeviceCommand.Devices;
using Prism.Commands; using Prism.Commands;
using Prism.Ioc; using Prism.Ioc;
using System; using System;
using System.Globalization; using System.IO;
using System.Text.RegularExpressions;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
@@ -61,30 +60,45 @@ namespace DeviceEditModule.ViewModels
set => SetProperty(ref _channel, value); set => SetProperty(ref _channel, value);
} }
private string _channelUnit = "V";
/// <summary>通道物理单位(V 电压 / A 电流)。</summary>
public string ChannelUnit
{
get => _channelUnit;
set => SetProperty(ref _channelUnit, value);
}
public string[] ChannelUnitOptions { get; } = { "V", "A" };
private double _voltsPerDiv = 1.0; private double _voltsPerDiv = 1.0;
/// <summary>垂直电压档位(V/div)。</summary> /// <summary>垂直档位(V/div 或 A/div)。</summary>
public double VoltsPerDiv public double VoltsPerDiv
{ {
get => _voltsPerDiv; get => _voltsPerDiv;
set => SetProperty(ref _voltsPerDiv, value); set => SetProperty(ref _voltsPerDiv, value);
} }
private double _offset = 0.0; private ChannelCoupling _selectedCoupling = ChannelCoupling.DC;
/// <summary>垂直偏移(V)。</summary> /// <summary>通道耦合方式(DC/AC/GND,测纹波需 AC)。</summary>
public double Offset public ChannelCoupling SelectedCoupling
{ {
get => _offset; get => _selectedCoupling;
set => SetProperty(ref _offset, value); set => SetProperty(ref _selectedCoupling, value);
} }
private bool _is50Ohm; public ChannelCoupling[] CouplingOptions { get; } =
/// <summary>是否使用 50Ω 输入阻抗,false 为 1MΩ。</summary> (ChannelCoupling[])Enum.GetValues(typeof(ChannelCoupling));
public bool Is50Ohm
private string _bandwidthLimit = "20M";
/// <summary>通道带宽限制(20M/200M/FULL,测纹波常用 20M)。</summary>
public string BandwidthLimit
{ {
get => _is50Ohm; get => _bandwidthLimit;
set => SetProperty(ref _is50Ohm, value); set => SetProperty(ref _bandwidthLimit, value);
} }
public string[] BandwidthLimitOptions { get; } = { "20M", "200M", "FULL" };
private double _timeBase = 0.001; private double _timeBase = 0.001;
/// <summary>水平时基档位(s/div)。</summary> /// <summary>水平时基档位(s/div)。</summary>
public double TimeBase public double TimeBase
@@ -93,47 +107,101 @@ namespace DeviceEditModule.ViewModels
set => SetProperty(ref _timeBase, value); set => SetProperty(ref _timeBase, value);
} }
private double _triggerLevel = 0.0; private TriggerMode _selectedTriggerMode = TriggerMode.AUTO;
/// <summary>触发电平(V)。</summary> /// <summary>触发模式(AUTO/NORMal/SINGle)。</summary>
public double TriggerLevel public TriggerMode SelectedTriggerMode
{ {
get => _triggerLevel; get => _selectedTriggerMode;
set => SetProperty(ref _triggerLevel, value); set => SetProperty(ref _selectedTriggerMode, value);
} }
public TriggerMode[] TriggerModeOptions { get; } =
(TriggerMode[])Enum.GetValues(typeof(TriggerMode));
private string _triggerSource = "C1"; private string _triggerSource = "C1";
/// <summary>触发源(C1/C2/C3/C4/EX/LINE)。</summary> /// <summary>边沿触发源(C1~C4/EX/LINE)。</summary>
public string TriggerSource public string TriggerSource
{ {
get => _triggerSource; get => _triggerSource;
set => SetProperty(ref _triggerSource, value); set => SetProperty(ref _triggerSource, value);
} }
private double _triggerLevel = 0.0;
/// <summary>边沿触发电平(V)。</summary>
public double TriggerLevel
{
get => _triggerLevel;
set => SetProperty(ref _triggerLevel, value);
}
private TriggerSlope _selectedTriggerSlope = TriggerSlope.RISing;
/// <summary>边沿触发斜率(RISing/FALLing/ALTernate,测泄放时间用 FALLing)。</summary>
public TriggerSlope SelectedTriggerSlope
{
get => _selectedTriggerSlope;
set => SetProperty(ref _selectedTriggerSlope, value);
}
public TriggerSlope[] TriggerSlopeOptions { get; } =
(TriggerSlope[])Enum.GetValues(typeof(TriggerSlope));
private double _cursorX1 = 0.0;
/// <summary>X1 光标位置(s)。</summary>
public double CursorX1
{
get => _cursorX1;
set => SetProperty(ref _cursorX1, value);
}
private double _cursorX2 = 0.001;
/// <summary>X2 光标位置(s)。</summary>
public double CursorX2
{
get => _cursorX2;
set => SetProperty(ref _cursorX2, value);
}
private string _saveFilePath = Path.Combine(AppContext.BaseDirectory, "Screenshots", "SDS2000X_HD.png");
/// <summary>屏幕截图保存路径(保存时自动追加时间戳)。</summary>
public string SaveFilePath
{
get => _saveFilePath;
set => SetProperty(ref _saveFilePath, value);
}
#endregion #endregion
#region #region
private string _measuredVpp = "—"; private double _measuredVpp;
public string MeasuredVpp public double MeasuredVpp
{ {
get => _measuredVpp; get => _measuredVpp;
set => SetProperty(ref _measuredVpp, value); set => SetProperty(ref _measuredVpp, value);
} }
private string _measuredFrequency = "—"; private double _measuredFrequency;
public string MeasuredFrequency public double MeasuredFrequency
{ {
get => _measuredFrequency; get => _measuredFrequency;
set => SetProperty(ref _measuredFrequency, value); set => SetProperty(ref _measuredFrequency, value);
} }
private string _measuredRms = "—"; private double _measuredRms;
public string MeasuredRms public double MeasuredRms
{ {
get => _measuredRms; get => _measuredRms;
set => SetProperty(ref _measuredRms, value); set => SetProperty(ref _measuredRms, value);
} }
private double _cursorDeltaT;
/// <summary>X1/X2 光标时间差 ΔTs)。</summary>
public double CursorDeltaT
{
get => _cursorDeltaT;
set => SetProperty(ref _cursorDeltaT, value);
}
private string _responseLog = string.Empty; private string _responseLog = string.Empty;
/// <summary>命令响应日志(最新消息在顶部)。</summary> /// <summary>命令响应日志(最新消息在顶部)。</summary>
public string ResponseLog public string ResponseLog
@@ -146,101 +214,123 @@ namespace DeviceEditModule.ViewModels
#region #region
// IEEE 488.2 公共命令
public ICommand QueryIdentityCommand { get; } public ICommand QueryIdentityCommand { get; }
public ICommand ResetDeviceCommand { get; } public ICommand ResetDeviceCommand { get; }
public ICommand ClearStatusCommand { get; }
public ICommand QueryErrorCommand { get; }
public ICommand QueryOpcCommand { get; }
// 运行与捕获控制
public ICommand RunCommand { get; } public ICommand RunCommand { get; }
public ICommand StopCommand { get; } public ICommand StopCommand { get; }
public ICommand SingleCommand { get; } public ICommand SetTriggerModeCommand { get; }
public ICommand ForceTriggerCommand { get; }
// 通道垂直控制
public ICommand SetChannelOnCommand { get; } public ICommand SetChannelOnCommand { get; }
public ICommand SetChannelOffCommand { get; } public ICommand SetChannelOffCommand { get; }
public ICommand SetChannelUnitCommand { get; }
public ICommand SetVoltsDivCommand { get; } public ICommand SetVoltsDivCommand { get; }
public ICommand SetOffsetCommand { get; } public ICommand SetChannelCouplingCommand { get; }
public ICommand SetBandwidthLimitCommand { get; }
// 🛠️ 补全:设置阻抗的 Command
public ICommand SetImpedance50Command { get; }
public ICommand SetImpedance1MCommand { get; }
// 水平与触发控制
public ICommand SetTimeBaseCommand { get; } public ICommand SetTimeBaseCommand { get; }
public ICommand SetTriggerLevelCommand { get; }
public ICommand SetTriggerSourceCommand { get; } public ICommand SetTriggerSourceCommand { get; }
public ICommand SetTriggerLevelCommand { get; }
public ICommand SetTriggerSlopeCommand { get; }
// 光标测量
public ICommand EnableManualXCursorCommand { get; }
public ICommand SetCursorX1Command { get; }
public ICommand SetCursorX2Command { get; }
public ICommand QueryCursorDeltaTCommand { get; }
// 基本测量
public ICommand QueryMeasurementsCommand { get; } public ICommand QueryMeasurementsCommand { get; }
public ICommand QueryVppCommand { get; } public ICommand QueryVppCommand { get; }
public ICommand QueryFrequencyCommand { get; } public ICommand QueryFrequencyCommand { get; }
public ICommand QueryRmsCommand { get; } public ICommand QueryRmsCommand { get; }
// 屏幕截图
public ICommand SaveScreenshotCommand { get; }
#endregion #endregion
public SDS2000X_HDViewModel(IContainerProvider containerProvider) : base(containerProvider) public SDS2000X_HDViewModel(IContainerProvider containerProvider) : base(containerProvider)
{ {
_deviceManager = containerProvider.Resolve<DeviceManager>(); _deviceManager = containerProvider.Resolve<DeviceManager>();
// IEEE 488.2 公共命令
QueryIdentityCommand = new DelegateCommand(async () => await Exec(async () => AppendLog("IDN: " + await _device!.(Ct())))); QueryIdentityCommand = new DelegateCommand(async () => await Exec(async () => AppendLog("IDN: " + await _device!.(Ct()))));
ResetDeviceCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Ct()); AppendLog("设备已重置"); })); ResetDeviceCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Ct()); AppendLog("设备已重置 (*RST)"); }));
RunCommand = new DelegateCommand(async () => await Exec(async () => { await _device!._RUN(Ct()); AppendLog("已开始捕获"); })); ClearStatusCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Ct()); AppendLog("状态寄存器与错误队列已清除 (*CLS)"); }));
StopCommand = new DelegateCommand(async () => await Exec(async () => { await _device!._STOP(Ct()); AppendLog("已停止捕获"); })); QueryErrorCommand = new DelegateCommand(async () => await Exec(async () => AppendLog("SYST:ERR? → " + await _device!.(Ct()))));
SingleCommand = new DelegateCommand(async () => await Exec(async () => { await _device!._SINGLE(Ct()); AppendLog("已触发单次捕获"); })); QueryOpcCommand = new DelegateCommand(async () => await Exec(async () => AppendLog("操作完成 (*OPC?): " + (await _device!._OPC(Ct()) ? "是" : "否"))));
ForceTriggerCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Ct()); AppendLog("已强制触发"); }));
// 运行与捕获控制
RunCommand = new DelegateCommand(async () => await Exec(async () => { await _device!._RUN(Ct()); AppendLog("已开始连续捕获"); }));
StopCommand = new DelegateCommand(async () => await Exec(async () => { await _device!._STOP(Ct()); AppendLog("已停止捕获,画面定格"); }));
SetTriggerModeCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(SelectedTriggerMode, Ct()); AppendLog($"触发模式已设为 {SelectedTriggerMode}"); }));
// 通道垂直控制
SetChannelOnCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Channel, true, Ct()); AppendLog($"通道 {Channel} 已开启"); })); SetChannelOnCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Channel, true, Ct()); AppendLog($"通道 {Channel} 已开启"); }));
SetChannelOffCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Channel, false, Ct()); AppendLog($"通道 {Channel} 已关闭"); })); SetChannelOffCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Channel, false, Ct()); AppendLog($"通道 {Channel} 已关闭"); }));
SetVoltsDivCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Channel, VoltsPerDiv, Ct()); AppendLog($"C{Channel} 电压档位已设为 {VoltsPerDiv} V/div"); })); SetChannelUnitCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Channel, ChannelUnit, Ct()); AppendLog($"C{Channel} 位已设为 {ChannelUnit}"); }));
SetOffsetCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Channel, Offset, Ct()); AppendLog($"C{Channel} 垂直偏移已设为 {Offset} V"); })); SetVoltsDivCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Channel, VoltsPerDiv, Ct()); AppendLog($"C{Channel} 垂直档位已设为 {VoltsPerDiv} {ChannelUnit}/div"); }));
SetChannelCouplingCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Channel, SelectedCoupling, Ct()); AppendLog($"C{Channel} 耦合方式已设为 {SelectedCoupling}"); }));
// 🛠️ 绑定:设置 50Ω 和 1MΩ 阻抗控制 SetBandwidthLimitCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(Channel, BandwidthLimit, Ct()); AppendLog($"C{Channel} 带宽限制已设为 {BandwidthLimit}"); }));
SetImpedance50Command = new DelegateCommand(async () => await Exec(async () =>
{
await _device!.(Channel, ImpedanceType.FIFty, Ct());
Is50Ohm = true;
AppendLog($"C{Channel} 输入阻抗已设为 50Ω");
}));
SetImpedance1MCommand = new DelegateCommand(async () => await Exec(async () =>
{
await _device!.(Channel, ImpedanceType.ONEM, Ct());
Is50Ohm = false;
AppendLog($"C{Channel} 输入阻抗已设为 1MΩ");
}));
// 水平与触发控制
SetTimeBaseCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(TimeBase, Ct()); AppendLog($"水平时基已设为 {TimeBase} s/div"); })); SetTimeBaseCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(TimeBase, Ct()); AppendLog($"水平时基已设为 {TimeBase} s/div"); }));
SetTriggerLevelCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(TriggerLevel, Ct()); AppendLog($"触发电平已设为 {TriggerLevel} V"); })); SetTriggerSourceCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.沿(TriggerSource, Ct()); AppendLog($"边沿触发源已设为 {TriggerSource}"); }));
SetTriggerSourceCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.(TriggerSource, Ct()); AppendLog($"触发源已设为 {TriggerSource}"); })); SetTriggerLevelCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.沿(TriggerLevel, Ct()); AppendLog($"边沿触发电平已设为 {TriggerLevel} V"); }));
SetTriggerSlopeCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.沿(SelectedTriggerSlope, Ct()); AppendLog($"边沿触发斜率已设为 {SelectedTriggerSlope}"); }));
QueryMeasurementsCommand = new DelegateCommand(async () => await Exec(async () => // 光标测量
EnableManualXCursorCommand = new DelegateCommand(async () => await Exec(async () => { await _device!.X光标(Ct()); AppendLog("已开启手动 X 轴光标"); }));
SetCursorX1Command = new DelegateCommand(async () => await Exec(async () => { await _device!.X1位置(CursorX1, Ct()); AppendLog($"X1 光标已设为 {CursorX1} s"); }));
SetCursorX2Command = new DelegateCommand(async () => await Exec(async () => { await _device!.X2位置(CursorX2, Ct()); AppendLog($"X2 光标已设为 {CursorX2} s"); }));
QueryCursorDeltaTCommand = new DelegateCommand(async () => await Exec(async () =>
{ {
// 1. 保留设备原生吐出的完整原始字符串 CursorDeltaT = await _device!.X时间差(Ct());
string rawVpp = await _device!.(Channel, Ct()); AppendLog($"光标时间差 ΔT = {CursorDeltaT:0.######E+0} s");
string rawFreq = await _device!.(Channel, Ct());
string rawRms = await _device!.(Channel, Ct());
// 2. 清洗数据并将科学计数法转为常规小数后赋值给 UI 属性
MeasuredVpp = ParseMeasurement(rawVpp);
MeasuredFrequency = ParseMeasurement(rawFreq);
MeasuredRms = ParseMeasurement(rawRms);
// 3. 在日志中同时体现设备原始报文与解析呈现值,极方便联调
AppendLog($"C{Channel} 测量原始数据 → Vpp:{rawVpp.Trim()} Freq:{rawFreq.Trim()} RMS:{rawRms.Trim()}");
AppendLog($"C{Channel} 界面呈现数值 → Vpp:{MeasuredVpp}V Freq:{MeasuredFrequency}Hz RMS:{MeasuredRms}V");
})); }));
// 基本测量(查询前先将测量源切换到当前通道)
QueryVppCommand = new DelegateCommand(async () => await Exec(async () => QueryVppCommand = new DelegateCommand(async () => await Exec(async () =>
{ {
string raw = await _device!.(Channel, Ct()); MeasuredVpp = await QuerySimpleValueAsync("PKPK");
MeasuredVpp = ParseMeasurement(raw); AppendLog($"C{Channel} Vpp: {MeasuredVpp:0.######} {ChannelUnit}");
AppendLog($"C{Channel} Vpp: {MeasuredVpp} (Raw: {raw.Trim()})");
})); }));
QueryFrequencyCommand = new DelegateCommand(async () => await Exec(async () => QueryFrequencyCommand = new DelegateCommand(async () => await Exec(async () =>
{ {
string raw = await _device!.(Channel, Ct()); MeasuredFrequency = await QuerySimpleValueAsync("FREQ");
MeasuredFrequency = ParseMeasurement(raw); AppendLog($"C{Channel} Freq: {MeasuredFrequency:0.######} Hz");
AppendLog($"C{Channel} Freq: {MeasuredFrequency} (Raw: {raw.Trim()})");
})); }));
QueryRmsCommand = new DelegateCommand(async () => await Exec(async () => QueryRmsCommand = new DelegateCommand(async () => await Exec(async () =>
{ {
string raw = await _device!.(Channel, Ct()); MeasuredRms = await QuerySimpleValueAsync("RMS");
MeasuredRms = ParseMeasurement(raw); AppendLog($"C{Channel} RMS: {MeasuredRms:0.######} {ChannelUnit}");
AppendLog($"C{Channel} RMS: {MeasuredRms} (Raw: {raw.Trim()})"); }));
QueryMeasurementsCommand = new DelegateCommand(async () => await Exec(async () =>
{
await _device!.(Channel, Ct());
MeasuredVpp = await _device.("PKPK", Ct());
MeasuredFrequency = await _device.("FREQ", Ct());
MeasuredRms = await _device.("RMS", Ct());
AppendLog($"C{Channel} 测量结果 → Vpp:{MeasuredVpp:0.######}{ChannelUnit} Freq:{MeasuredFrequency:0.######}Hz RMS:{MeasuredRms:0.######}{ChannelUnit}");
}));
// 屏幕截图
SaveScreenshotCommand = new DelegateCommand(async () => await Exec(async () =>
{
bool ok = await _device!.(SaveFilePath, Ct());
AppendLog(ok ? $"截图已保存:{SaveFilePath}" : "截图获取或保存失败,请检查连接与保存路径。");
})); }));
Initialize(); Initialize();
@@ -294,6 +384,17 @@ namespace DeviceEditModule.ViewModels
private CancellationToken Ct() => (_cts = new CancellationTokenSource(TimeSpan.FromSeconds(10))).Token; private CancellationToken Ct() => (_cts = new CancellationTokenSource(TimeSpan.FromSeconds(10))).Token;
/// <summary>
/// 将基本测量源切换到当前通道后,查询指定测量项的实时数值。
/// </summary>
/// <param name="type">测量参数名称(如: "PKPK"、"FREQ"、"RMS"</param>
/// <returns>测量项提取到的实时数值</returns>
private async Task<double> QuerySimpleValueAsync(string type)
{
await _device!.(Channel, Ct());
return await _device.(type, Ct());
}
private async Task Exec(Func<Task> action) private async Task Exec(Func<Task> action)
{ {
if (_device == null) if (_device == null)
@@ -330,52 +431,6 @@ namespace DeviceEditModule.ViewModels
: line + "\n" + ResponseLog; : line + "\n" + ResponseLog;
} }
/// <summary>
/// 清洗示波器原始返回的测量字符串(例如 "C1:PAVA RMS,5.57E-03V")并安全转化为无科学计数法的小数形式。
/// </summary>
/// <param name="rawResponse">设备原始应答数据</param>
/// <returns>可直接绑定到 UI 呈现的字符串数字</returns>
private string ParseMeasurement(string rawResponse)
{
if (string.IsNullOrWhiteSpace(rawResponse)) return "—";
try
{
string cleanData = rawResponse.Trim();
// 1. 斩断报头,提取逗号后面的具体内容(如 "5.57E-03V" 或 "****"
int commaIndex = cleanData.IndexOf(',');
if (commaIndex == -1) return "—";
string valStr = cleanData.Substring(commaIndex + 1);
var match = Regex.Match(valStr, @"[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?");
if (match.Success)
{
valStr = match.Value;
}
// 3. 校验并拦截设备未测出时的无效星号 "****"
if (valStr.Contains("*") || string.IsNullOrWhiteSpace(valStr))
{
return "0"; // 回归为零或 "—",防止触发数据异常
}
// 4. 解析科学计数法,并重新以不带科学计数法的小数样式展开
if (double.TryParse(valStr, NumberStyles.Any, CultureInfo.InvariantCulture, out double result))
{
// "0.######" 样式会自动消除末尾无用的冗余零,并显示为普通小数(如 0.00557)
return result.ToString("0.######", CultureInfo.InvariantCulture);
}
}
catch
{
// 捕获可能产生的边缘转换故障,保证轮询线程绝不崩溃
}
return "—";
}
#endregion #endregion
public void Dispose() public void Dispose()
@@ -101,36 +101,36 @@ namespace DeviceEditModule.ViewModels
#region #region
private string _measuredVoltage = "—"; private double _measuredVoltage;
public string MeasuredVoltage public double MeasuredVoltage
{ {
get => _measuredVoltage; get => _measuredVoltage;
set => SetProperty(ref _measuredVoltage, value); set => SetProperty(ref _measuredVoltage, value);
} }
private string _measuredCurrent = "—"; private double _measuredCurrent;
public string MeasuredCurrent public double MeasuredCurrent
{ {
get => _measuredCurrent; get => _measuredCurrent;
set => SetProperty(ref _measuredCurrent, value); set => SetProperty(ref _measuredCurrent, value);
} }
private string _measuredPower = "—"; private double _measuredPower;
public string MeasuredPower public double MeasuredPower
{ {
get => _measuredPower; get => _measuredPower;
set => SetProperty(ref _measuredPower, value); set => SetProperty(ref _measuredPower, value);
} }
private string _measuredFrequency = "—"; private double _measuredFrequency;
public string MeasuredFrequency public double MeasuredFrequency
{ {
get => _measuredFrequency; get => _measuredFrequency;
set => SetProperty(ref _measuredFrequency, value); set => SetProperty(ref _measuredFrequency, value);
} }
private string _measuredPowerFactor = "—"; private double _measuredPowerFactor;
public string MeasuredPowerFactor public double MeasuredPowerFactor
{ {
get => _measuredPowerFactor; get => _measuredPowerFactor;
set => SetProperty(ref _measuredPowerFactor, value); set => SetProperty(ref _measuredPowerFactor, value);
@@ -196,20 +196,14 @@ namespace DeviceEditModule.ViewModels
// 只修改这里:保持你原本的 5 次驱动查询调用不变,仅对读回来的科学计数法进行两位小数格式化 // 只修改这里:保持你原本的 5 次驱动查询调用不变,仅对读回来的科学计数法进行两位小数格式化
QueryAllMeasureCommand = new DelegateCommand(async () => await Exec(async () => QueryAllMeasureCommand = new DelegateCommand(async () => await Exec(async () =>
{ {
string rawU = await _device!.(Channel, Ct()); // 设备层已返回 double 数值
string rawI = await _device!.(Channel, Ct()); MeasuredVoltage = await _device!.(Channel, Ct());
string rawP = await _device!.(Channel, Ct()); MeasuredCurrent = await _device!.(Channel, Ct());
string rawF = await _device!.(Channel, Ct()); MeasuredPower = await _device!.(Channel, Ct());
string rawPF = await _device!.(Channel, Ct()); MeasuredFrequency = await _device!.(Channel, Ct());
MeasuredPowerFactor = await _device!.(Channel, Ct());
// 转换科学计数法格式,如果失败会自动保持原样 AppendLog($"CH{Channel} 测量 → U:{MeasuredVoltage:F2}V I:{MeasuredCurrent:F3}A P:{MeasuredPower:F2}W F:{MeasuredFrequency:F2}Hz PF:{MeasuredPowerFactor:F3}");
MeasuredVoltage = FormatToDecimal(rawU, "F2"); // 电压两位小数
MeasuredCurrent = FormatToDecimal(rawI, "F3"); // 电流通常较小,建议保留3位小数
MeasuredPower = FormatToDecimal(rawP, "F2"); // 功率两位小数
MeasuredFrequency = FormatToDecimal(rawF, "F2"); // 频率两位小数
MeasuredPowerFactor = FormatToDecimal(rawPF, "F3"); // 功率因数保留3位小数
AppendLog($"CH{Channel} 测量 → U:{MeasuredVoltage}V I:{MeasuredCurrent}A P:{MeasuredPower}W F:{MeasuredFrequency}Hz PF:{MeasuredPowerFactor}");
})); }));
Initialize(); Initialize();
@@ -263,41 +257,6 @@ namespace DeviceEditModule.ViewModels
private CancellationToken Ct() => (_cts = new CancellationTokenSource(TimeSpan.FromSeconds(10))).Token; private CancellationToken Ct() => (_cts = new CancellationTokenSource(TimeSpan.FromSeconds(10))).Token;
/// <summary>
/// 将科学计数法字符串转换为标准小数格式
/// </summary>
private string FormatToDecimal(string rawInput, string decimalFormat = "F2")
{
if (string.IsNullOrWhiteSpace(rawInput))
return "—";
// 去除可能夹杂的命令头,保留数据部分
string cleanInput = CleanResponseHeader(rawInput);
// 解析科学计数法(NumberStyles.Any 和 InvariantCulture 是关键)
if (double.TryParse(cleanInput, NumberStyles.Any, CultureInfo.InvariantCulture, out double value))
{
return value.ToString(decimalFormat, CultureInfo.InvariantCulture);
}
return cleanInput;
}
/// <summary>
/// 辅助清洗:剥离可能伴随吐回的命令头或双引号
/// </summary>
private string CleanResponseHeader(string response)
{
if (string.IsNullOrWhiteSpace(response)) return string.Empty;
string result = response.Trim();
if (result.Contains(" "))
{
int lastSpaceIndex = result.LastIndexOf(' ');
result = result.Substring(lastSpaceIndex + 1).Trim();
}
return result.Replace("\"", "").Replace("'", "").Trim();
}
private async Task Exec(Func<Task> action) private async Task Exec(Func<Task> action)
{ {
if (_device == null) if (_device == null)
+128 -48
View File
@@ -84,8 +84,8 @@
<!-- ─── 左列 ─── --> <!-- ─── 左列 ─── -->
<StackPanel Grid.Column="0" Margin="0,0,4,0"> <StackPanel Grid.Column="0" Margin="0,0,4,0">
<!-- 通道选择 --> <!-- 通道与垂直设置 -->
<GroupBox Header="通道选择" Margin="0,0,0,8" <GroupBox Header="通道与垂直设置" Margin="0,0,0,8"
materialDesign:ColorZoneAssist.Mode="PrimaryLight"> materialDesign:ColorZoneAssist.Mode="PrimaryLight">
<StackPanel Margin="4,4,4,4"> <StackPanel Margin="4,4,4,4">
<StackPanel Orientation="Horizontal" Margin="0,4"> <StackPanel Orientation="Horizontal" Margin="0,4">
@@ -103,11 +103,45 @@
<Button Content="关闭" Command="{Binding SetChannelOffCommand}" <Button Content="关闭" Command="{Binding SetChannelOffCommand}"
Style="{StaticResource WarnBtn}"/> Style="{StaticResource WarnBtn}"/>
</StackPanel> </StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="单位" Style="{StaticResource ParamLabel}"/>
<ComboBox Width="70" Height="32" Margin="4,0"
ItemsSource="{Binding ChannelUnitOptions}"
SelectedItem="{Binding ChannelUnit}"
VerticalContentAlignment="Center" FontSize="12"/>
<Button Content="设置" Command="{Binding SetChannelUnitCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="档位 (/div)" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource NumInput}"
Text="{Binding VoltsPerDiv}"/>
<Button Content="设置" Command="{Binding SetVoltsDivCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="耦合方式" Style="{StaticResource ParamLabel}"/>
<ComboBox Width="80" Height="32" Margin="4,0"
ItemsSource="{Binding CouplingOptions}"
SelectedItem="{Binding SelectedCoupling}"
VerticalContentAlignment="Center" FontSize="12"/>
<Button Content="设置" Command="{Binding SetChannelCouplingCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="带宽限制" Style="{StaticResource ParamLabel}"/>
<ComboBox Width="90" Height="32" Margin="4,0"
ItemsSource="{Binding BandwidthLimitOptions}"
SelectedItem="{Binding BandwidthLimit}"
VerticalContentAlignment="Center" FontSize="12"/>
<Button Content="设置" Command="{Binding SetBandwidthLimitCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
</StackPanel> </StackPanel>
</GroupBox> </GroupBox>
<!-- 运行控制 --> <!-- 运行与捕获 -->
<GroupBox Header="运行控制" Margin="0,0,0,8" <GroupBox Header="运行与捕获" Margin="0,0,0,8"
materialDesign:ColorZoneAssist.Mode="PrimaryLight"> materialDesign:ColorZoneAssist.Mode="PrimaryLight">
<StackPanel Margin="4,4,4,4"> <StackPanel Margin="4,4,4,4">
<StackPanel Orientation="Horizontal" Margin="0,4"> <StackPanel Orientation="Horizontal" Margin="0,4">
@@ -117,49 +151,20 @@
Height="32" Padding="16,0" FontSize="12" Margin="4,0"/> Height="32" Padding="16,0" FontSize="12" Margin="4,0"/>
<Button Content="Stop" Command="{Binding StopCommand}" <Button Content="Stop" Command="{Binding StopCommand}"
Style="{StaticResource WarnBtn}"/> Style="{StaticResource WarnBtn}"/>
<Button Content="Single" Command="{Binding SingleCommand}"
Style="{StaticResource CmdBtn}"/>
<Button Content="Force Trig" Command="{Binding ForceTriggerCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel> </StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4"> <StackPanel Orientation="Horizontal" Margin="0,4">
<Button Content="查询 IDN" Command="{Binding QueryIdentityCommand}" <TextBlock Text="触发模式" Style="{StaticResource ParamLabel}"/>
Style="{StaticResource CmdBtn}"/> <ComboBox Width="90" Height="32" Margin="4,0"
<Button Content="重置设备" Command="{Binding ResetDeviceCommand}" ItemsSource="{Binding TriggerModeOptions}"
Style="{StaticResource WarnBtn}"/> SelectedItem="{Binding SelectedTriggerMode}"
</StackPanel> VerticalContentAlignment="Center" FontSize="12"/>
</StackPanel> <Button Content="设置" Command="{Binding SetTriggerModeCommand}"
</GroupBox>
<!-- 垂直设置 -->
<GroupBox Header="垂直设置" Margin="0,0,0,8"
materialDesign:ColorZoneAssist.Mode="PrimaryLight">
<StackPanel Margin="4,4,4,4">
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="V/div (V)" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource NumInput}"
Text="{Binding VoltsPerDiv}"/>
<Button Content="设置" Command="{Binding SetVoltsDivCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="Offset (V)" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource NumInput}"
Text="{Binding Offset, UpdateSourceTrigger=PropertyChanged}"/>
<Button Content="设置" Command="{Binding SetOffsetCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="输入阻抗" Style="{StaticResource ParamLabel}"/>
<Button Content="50Ω" Command="{Binding SetImpedance50Command}"
Style="{StaticResource CmdBtn}"/>
<Button Content="1MΩ" Command="{Binding SetImpedance1MCommand}"
Style="{StaticResource CmdBtn}"/> Style="{StaticResource CmdBtn}"/>
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
</GroupBox> </GroupBox>
<!-- 水平/触发设置 --> <!-- 水平触发 -->
<GroupBox Header="水平与触发" Margin="0,0,0,8" <GroupBox Header="水平与触发" Margin="0,0,0,8"
materialDesign:ColorZoneAssist.Mode="PrimaryLight"> materialDesign:ColorZoneAssist.Mode="PrimaryLight">
<StackPanel Margin="4,4,4,4"> <StackPanel Margin="4,4,4,4">
@@ -170,6 +175,13 @@
<Button Content="设置" Command="{Binding SetTimeBaseCommand}" <Button Content="设置" Command="{Binding SetTimeBaseCommand}"
Style="{StaticResource CmdBtn}"/> Style="{StaticResource CmdBtn}"/>
</StackPanel> </StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="触发源" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource NumInput}" Width="80"
Text="{Binding TriggerSource, UpdateSourceTrigger=PropertyChanged}"/>
<Button Content="设置" Command="{Binding SetTriggerSourceCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4"> <StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="触发电平 (V)" Style="{StaticResource ParamLabel}"/> <TextBlock Text="触发电平 (V)" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource NumInput}" <TextBox Style="{StaticResource NumInput}"
@@ -178,10 +190,33 @@
Style="{StaticResource CmdBtn}"/> Style="{StaticResource CmdBtn}"/>
</StackPanel> </StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4"> <StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="触发" Style="{StaticResource ParamLabel}"/> <TextBlock Text="触发斜率" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource NumInput}" Width="80" <ComboBox Width="100" Height="32" Margin="4,0"
Text="{Binding TriggerSource, UpdateSourceTrigger=PropertyChanged}"/> ItemsSource="{Binding TriggerSlopeOptions}"
<Button Content="设置" Command="{Binding SetTriggerSourceCommand}" SelectedItem="{Binding SelectedTriggerSlope}"
VerticalContentAlignment="Center" FontSize="12"/>
<Button Content="设置" Command="{Binding SetTriggerSlopeCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
</StackPanel>
</GroupBox>
<!-- 系统命令 -->
<GroupBox Header="系统命令" Margin="0,0,0,8"
materialDesign:ColorZoneAssist.Mode="PrimaryLight">
<StackPanel Margin="4,4,4,4">
<StackPanel Orientation="Horizontal" Margin="0,4">
<Button Content="查询 IDN" Command="{Binding QueryIdentityCommand}"
Style="{StaticResource CmdBtn}"/>
<Button Content="重置设备" Command="{Binding ResetDeviceCommand}"
Style="{StaticResource WarnBtn}"/>
<Button Content="清除状态" Command="{Binding ClearStatusCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<Button Content="查询错误" Command="{Binding QueryErrorCommand}"
Style="{StaticResource CmdBtn}"/>
<Button Content="*OPC?" Command="{Binding QueryOpcCommand}"
Style="{StaticResource CmdBtn}"/> Style="{StaticResource CmdBtn}"/>
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
@@ -191,6 +226,38 @@
<!-- ─── 右列 ─── --> <!-- ─── 右列 ─── -->
<StackPanel Grid.Column="1" Margin="4,0,0,0"> <StackPanel Grid.Column="1" Margin="4,0,0,0">
<!-- 光标测量 -->
<GroupBox Header="光标测量 (ΔT)" Margin="0,0,0,8"
materialDesign:ColorZoneAssist.Mode="PrimaryLight">
<StackPanel Margin="4,4,4,4">
<StackPanel Orientation="Horizontal" Margin="0,4">
<Button Content="开启手动 X 光标" Command="{Binding EnableManualXCursorCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="X1 位置 (s)" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource NumInput}"
Text="{Binding CursorX1, UpdateSourceTrigger=PropertyChanged}"/>
<Button Content="设置" Command="{Binding SetCursorX1Command}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="X2 位置 (s)" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource NumInput}"
Text="{Binding CursorX2, UpdateSourceTrigger=PropertyChanged}"/>
<Button Content="设置" Command="{Binding SetCursorX2Command}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="ΔT (s)" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource MeasureBox}"
Text="{Binding CursorDeltaT, Mode=OneWay}"/>
<Button Content="查询" Command="{Binding QueryCursorDeltaTCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
</StackPanel>
</GroupBox>
<!-- 自动测量 --> <!-- 自动测量 -->
<GroupBox Header="自动测量" Margin="0,0,0,8" <GroupBox Header="自动测量" Margin="0,0,0,8"
materialDesign:ColorZoneAssist.Mode="PrimaryLight"> materialDesign:ColorZoneAssist.Mode="PrimaryLight">
@@ -199,7 +266,6 @@
<TextBlock Text="Vpp" Style="{StaticResource ParamLabel}"/> <TextBlock Text="Vpp" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource MeasureBox}" <TextBox Style="{StaticResource MeasureBox}"
Text="{Binding MeasuredVpp, Mode=OneWay}"/> Text="{Binding MeasuredVpp, Mode=OneWay}"/>
<TextBlock Text="V" VerticalAlignment="Center" Margin="2,0,8,0"/>
<Button Content="刷新" Command="{Binding QueryVppCommand}" <Button Content="刷新" Command="{Binding QueryVppCommand}"
Style="{StaticResource CmdBtn}"/> Style="{StaticResource CmdBtn}"/>
</StackPanel> </StackPanel>
@@ -207,7 +273,6 @@
<TextBlock Text="频率" Style="{StaticResource ParamLabel}"/> <TextBlock Text="频率" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource MeasureBox}" <TextBox Style="{StaticResource MeasureBox}"
Text="{Binding MeasuredFrequency, Mode=OneWay}"/> Text="{Binding MeasuredFrequency, Mode=OneWay}"/>
<TextBlock Text="Hz" VerticalAlignment="Center" Margin="2,0,8,0"/>
<Button Content="刷新" Command="{Binding QueryFrequencyCommand}" <Button Content="刷新" Command="{Binding QueryFrequencyCommand}"
Style="{StaticResource CmdBtn}"/> Style="{StaticResource CmdBtn}"/>
</StackPanel> </StackPanel>
@@ -215,7 +280,6 @@
<TextBlock Text="RMS" Style="{StaticResource ParamLabel}"/> <TextBlock Text="RMS" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource MeasureBox}" <TextBox Style="{StaticResource MeasureBox}"
Text="{Binding MeasuredRms, Mode=OneWay}"/> Text="{Binding MeasuredRms, Mode=OneWay}"/>
<TextBlock Text="V" VerticalAlignment="Center" Margin="2,0,8,0"/>
<Button Content="刷新" Command="{Binding QueryRmsCommand}" <Button Content="刷新" Command="{Binding QueryRmsCommand}"
Style="{StaticResource CmdBtn}"/> Style="{StaticResource CmdBtn}"/>
</StackPanel> </StackPanel>
@@ -225,10 +289,26 @@
</StackPanel> </StackPanel>
</GroupBox> </GroupBox>
<!-- 屏幕截图 -->
<GroupBox Header="屏幕截图" Margin="0,0,0,8"
materialDesign:ColorZoneAssist.Mode="PrimaryLight">
<StackPanel Margin="4,4,4,4">
<StackPanel Orientation="Horizontal" Margin="0,4">
<TextBlock Text="保存路径" Style="{StaticResource ParamLabel}"/>
<TextBox Style="{StaticResource NumInput}" Width="300"
Text="{Binding SaveFilePath, UpdateSourceTrigger=PropertyChanged}"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,4">
<Button Content="保存截图 (自动追加时间戳)" Command="{Binding SaveScreenshotCommand}"
Style="{StaticResource CmdBtn}"/>
</StackPanel>
</StackPanel>
</GroupBox>
<!-- 响应日志 --> <!-- 响应日志 -->
<GroupBox Header="响应日志" Margin="0,0,0,8" <GroupBox Header="响应日志" Margin="0,0,0,8"
materialDesign:ColorZoneAssist.Mode="PrimaryLight"> materialDesign:ColorZoneAssist.Mode="PrimaryLight">
<ScrollViewer Height="460" VerticalScrollBarVisibility="Auto"> <ScrollViewer Height="240" VerticalScrollBarVisibility="Auto">
<TextBox Text="{Binding ResponseLog, Mode=OneWay}" <TextBox Text="{Binding ResponseLog, Mode=OneWay}"
materialDesign:HintAssist.Hint="" materialDesign:HintAssist.Hint=""
IsReadOnly="True" IsReadOnly="True"
+165
View File
@@ -82,19 +82,23 @@ namespace ExportModule.ViewModels
public ICommand LoadedCommand { get; } public ICommand LoadedCommand { get; }
public ICommand QueryCommand { get; } public ICommand QueryCommand { get; }
public ICommand ExportCommand { get; } public ICommand ExportCommand { get; }
public ICommand ExportReportCommand { get; }
#endregion #endregion
#region #region
private readonly ITestReportService _testReportService; private readonly ITestReportService _testReportService;
private readonly ITestCheckRecordService _testCheckRecordService;
#endregion #endregion
public ExportViewModel(IContainerProvider containerProvider) : base(containerProvider) public ExportViewModel(IContainerProvider containerProvider) : base(containerProvider)
{ {
_testReportService = containerProvider.Resolve<ITestReportService>(); _testReportService = containerProvider.Resolve<ITestReportService>();
_testCheckRecordService = containerProvider.Resolve<ITestCheckRecordService>();
LoadedCommand = new AsyncDelegateCommand(OnLoad); LoadedCommand = new AsyncDelegateCommand(OnLoad);
QueryCommand = new AsyncDelegateCommand(OnQuery); QueryCommand = new AsyncDelegateCommand(OnQuery);
ExportCommand = new AsyncDelegateCommand(OnExport); ExportCommand = new AsyncDelegateCommand(OnExport);
ExportReportCommand = new AsyncDelegateCommand(OnExportReportCommand);
} }
#region #region
@@ -183,6 +187,39 @@ namespace ExportModule.ViewModels
await Task.Run(() => ExportToExcel(dialog.FileName, entities)); await Task.Run(() => ExportToExcel(dialog.FileName, entities));
ShowInfoMessageBox($"导出完成,共 {entities.Count} 条步骤记录,已保存至:{dialog.FileName}", () => { }); ShowInfoMessageBox($"导出完成,共 {entities.Count} 条步骤记录,已保存至:{dialog.FileName}", () => { });
} }
/// <summary>
/// 导出测试报告:上层为各测试项(IsTestItem 子程序)的 PASS/NG 汇总,下层为每次 OKExpression 判断明细
/// </summary>
private async Task OnExportReportCommand()
{
if (SelectedTestReport == null)
{
ShowErrorMessageBox("请先在列表中选择一条测试记录。", () => { });
return;
}
StatusMessage = "正在查询测试项判断记录...";
var checkResult = await _testCheckRecordService.GetByTestRoundIdAsync(SelectedTestReport.TestRoundId);
if (!checkResult.IsSuccess || checkResult.Data == null || checkResult.Data.Count == 0)
{
ShowErrorMessageBox("未找到该测试记录的测试项判断数据(需将子程序标记为测试项后运行)。", () => { });
return;
}
var dialog = new SaveFileDialog
{
Filter = "Excel 工作簿 (*.xlsx)|*.xlsx|所有文件 (*.*)|*.*",
DefaultExt = ".xlsx",
FileName = $"测试报告_{SelectedTestReport.Scope}_{SelectedTestReport.StartTime:yyyyMMdd_HHmmss}.xlsx"
};
if (dialog.ShowDialog() != true) return;
var records = checkResult.Data;
StatusMessage = $"正在导出 {records.Count} 条测试项判断记录...";
await Task.Run(() => ExportReportToExcel(dialog.FileName, records, SelectedTestReport));
ShowInfoMessageBox($"导出完成,已保存至:{dialog.FileName}", () => { });
}
#endregion #endregion
@@ -263,6 +300,134 @@ namespace ExportModule.ViewModels
workbook.SaveAs(filePath); workbook.SaveAs(filePath);
} }
/// <summary>
/// 测试报告导出:上层为各测试项(IsTestItem 子程序)的 PASS/NG 汇总,下层为每次 OKExpression 判断明细(含重复判断、判断时间、数据值)
/// </summary>
private static void ExportReportToExcel(string filePath, List<TestCheckRecordEntity> records, TestReportModel report)
{
using var workbook = new XLWorkbook();
var ws = workbook.Worksheets.Add("测试报告");
const int colCount = 6;
var passColor = XLColor.FromArgb(0xB2, 0xFF, 0xB2); // 通过 - 浅绿(与现有导出配色一致)
var ngColor = XLColor.FromArgb(0xFF, 0xB2, 0xB2); // 失败 - 浅红
var headerColor = XLColor.FromArgb(0xEC, 0xEF, 0xF4);
int row = 1;
// ===== 标题与信息行 =====
ws.Range(row, 1, row, colCount).Merge();
ws.Cell(row, 1).Value = "测 试 报 告";
ws.Range(row, 1, row, colCount).Style.Font.Bold = true;
ws.Range(row, 1, row, colCount).Style.Font.FontSize = 16;
ws.Range(row, 1, row, colCount).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
row++;
ws.Cell(row, 1).Value = $"台架:{report.Scope ?? ""}";
ws.Cell(row, 3).Value = $"测试文件:{report.FileName ?? ""}";
row++;
ws.Cell(row, 1).Value = $"开始时间:{report.StartTime:yyyy-MM-dd HH:mm:ss}";
ws.Cell(row, 3).Value = $"结束时间:{report.EndTime:yyyy-MM-dd HH:mm:ss}";
row += 2;
// 按测试项分组(保持首次出现顺序)
var groups = records.GroupBy(r => r.TestItemName).ToList();
// ===== 上层:测试项汇总 =====
ws.Cell(row, 1).Value = "【测试项汇总】";
ws.Cell(row, 1).Style.Font.Bold = true;
row++;
string[] summaryHeaders = { "序号", "测试项", "判定结果", "执行次数", "判定次数", "NG次数" };
for (int c = 0; c < summaryHeaders.Length; c++)
ws.Cell(row, c + 1).Value = summaryHeaders[c];
var headerRange = ws.Range(row, 1, row, colCount);
headerRange.Style.Font.Bold = true;
headerRange.Style.Fill.BackgroundColor = headerColor;
headerRange.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
headerRange.Style.Border.InsideBorder = XLBorderStyleValues.Thin;
row++;
int seq = 1;
foreach (var group in groups)
{
var summaries = group.Where(x => x.IsSummary).ToList();
var details = group.Where(x => !x.IsSummary).ToList();
bool overallPass = summaries.All(s => s.Pass) && details.All(d => d.Pass);
ws.Cell(row, 1).Value = seq++;
ws.Cell(row, 2).Value = group.Key;
ws.Cell(row, 3).Value = overallPass ? "PASS" : "NG";
ws.Cell(row, 4).Value = summaries.Count;
ws.Cell(row, 5).Value = details.Count;
ws.Cell(row, 6).Value = details.Count(d => !d.Pass);
var dataRange = ws.Range(row, 1, row, colCount);
dataRange.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
dataRange.Style.Border.InsideBorder = XLBorderStyleValues.Thin;
ws.Cell(row, 3).Style.Font.Bold = true;
ws.Cell(row, 3).Style.Fill.BackgroundColor = overallPass ? passColor : ngColor;
row++;
}
row++;
// ===== 下层:判断明细 =====
ws.Cell(row, 1).Value = "【判断明细】";
ws.Cell(row, 1).Style.Font.Bold = true;
row++;
string[] detailHeaders = { "序号", "判定时间", "步骤名称", "OKExpression", "判定结果", "数据值" };
foreach (var group in groups)
{
var details = group.Where(x => !x.IsSummary).ToList();
bool overallPass = group.Where(x => x.IsSummary).All(s => s.Pass) && details.All(d => d.Pass);
// 测试项块标题行(合并单元格)
ws.Range(row, 1, row, colCount).Merge();
ws.Cell(row, 1).Value = $"■ 测试项:{group.Key}  总体结果:{(overallPass ? "PASS" : "NG")}";
ws.Cell(row, 1).Style.Font.Bold = true;
ws.Range(row, 1, row, colCount).Style.Fill.BackgroundColor = overallPass ? passColor : ngColor;
row++;
for (int c = 0; c < detailHeaders.Length; c++)
ws.Cell(row, c + 1).Value = detailHeaders[c];
var detailHeaderRange = ws.Range(row, 1, row, colCount);
detailHeaderRange.Style.Font.Bold = true;
detailHeaderRange.Style.Fill.BackgroundColor = headerColor;
detailHeaderRange.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
detailHeaderRange.Style.Border.InsideBorder = XLBorderStyleValues.Thin;
row++;
if (details.Count == 0)
{
ws.Range(row, 1, row, colCount).Merge();
ws.Cell(row, 1).Value = "(无 OKExpression 判断,结果由步骤执行成败决定)";
row++;
}
int detailSeq = 1;
foreach (var d in details)
{
ws.Cell(row, 1).Value = detailSeq++;
ws.Cell(row, 2).Value = d.CreateTime.ToString("yyyy-MM-dd HH:mm:ss.fff");
ws.Cell(row, 3).Value = d.StepName ?? "";
ws.Cell(row, 4).Value = d.OKExpression ?? "";
ws.Cell(row, 5).Value = d.Pass ? "PASS" : "NG";
ws.Cell(row, 6).Value = d.Values ?? "";
var detailRange = ws.Range(row, 1, row, colCount);
detailRange.Style.Border.OutsideBorder = XLBorderStyleValues.Thin;
detailRange.Style.Border.InsideBorder = XLBorderStyleValues.Thin;
ws.Cell(row, 5).Style.Font.Bold = true;
ws.Cell(row, 5).Style.Fill.BackgroundColor = d.Pass ? passColor : ngColor;
row++;
}
row++;
}
ws.Columns().AdjustToContents();
workbook.SaveAs(filePath);
}
#endregion #endregion
#region #region
+9 -1
View File
@@ -60,6 +60,7 @@
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
@@ -109,13 +110,20 @@
Margin="4,0" Margin="4,0"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<Button Grid.Column="7" <Button Grid.Column="7"
Content="导出 Excel" Content="导出详细测试步骤"
Command="{Binding ExportCommand}" Command="{Binding ExportCommand}"
Style="{StaticResource MaterialDesignFlatButton}" Style="{StaticResource MaterialDesignFlatButton}"
Padding="16,6" Padding="16,6"
Margin="4,0" Margin="4,0"
VerticalAlignment="Center"/> VerticalAlignment="Center"/>
<Button Grid.Column="8" <Button Grid.Column="8"
Content="导出测试报告"
Command="{Binding ExportReportCommand}"
Style="{StaticResource MaterialDesignFlatButton}"
Padding="16,6"
Margin="4,0"
VerticalAlignment="Center"/>
<Button Grid.Column="9"
Content="加载全部" Content="加载全部"
Command="{Binding LoadedCommand}" Command="{Binding LoadedCommand}"
Style="{StaticResource MaterialDesignFlatButton}" Style="{StaticResource MaterialDesignFlatButton}"
@@ -217,10 +217,10 @@ namespace MainModule.ViewModels
(LogAreaVM as IDisposable)?.Dispose(); (LogAreaVM as IDisposable)?.Dispose();
(ParametersManagerVM as IDisposable)?.Dispose(); (ParametersManagerVM as IDisposable)?.Dispose();
_globalInfo.ContextDic?.Remove(TestStatus); _globalInfo.ContextDic?.TryRemove(TestStatus, out _);
_globalInfo.StepRunningDic?.Remove(TestStatus); _globalInfo.StepRunningDic?.TryRemove(TestStatus, out _);
_globalInfo.ConfigDic?.Remove(TestStatus); _globalInfo.ConfigDic?.TryRemove(TestStatus, out _);
_globalInfo.ScopeDic?.Remove(TestStatus); _globalInfo.ScopeDic?.TryRemove(TestStatus, out _);
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -233,6 +233,12 @@ namespace MainModule.ViewModels
} }
#region #region
private async Task OnLoad() private async Task OnLoad()
{
// 设备初始化期间仅对当前台架显示灰度遮罩层,初始化完成后关闭(finally 保证异常时也能关闭)
_eventAggregator.GetEvent<ScopeOverlayEvent>().Publish(new ScopeOverlayArgs { Scope = TestStatus, Show = true });
// 让遮罩层先完成渲染,再进入同步阻塞的设备初始化(泵送 Dispatcher 至 Render 优先级)
System.Windows.Application.Current?.Dispatcher.Invoke(() => { }, System.Windows.Threading.DispatcherPriority.Render);
try
{ {
if (!IsInitialized) if (!IsInitialized)
{ {
@@ -240,6 +246,12 @@ namespace MainModule.ViewModels
IsInitialized = true; IsInitialized = true;
} }
} }
finally
{
_eventAggregator.GetEvent<ScopeOverlayEvent>().Publish(new ScopeOverlayArgs { Scope = TestStatus, Show = false });
}
}
private void OnRefresh() private void OnRefresh()
{ {
@@ -263,10 +275,10 @@ namespace MainModule.ViewModels
if (navigationContext.Parameters.ContainsKey("Name")) if (navigationContext.Parameters.ContainsKey("Name"))
{ {
TestStatus = navigationContext.Parameters.GetValue<string>("Name"); TestStatus = navigationContext.Parameters.GetValue<string>("Name");
_globalInfo.ContextDic.Add(TestStatus, _scopedContext); _globalInfo.ContextDic.TryAdd(TestStatus, _scopedContext);
_globalInfo.StepRunningDic.Add(TestStatus, _stepRunning); _globalInfo.StepRunningDic.TryAdd(TestStatus, _stepRunning);
_globalInfo.ScopeDic.Add(TestStatus, _scope); _globalInfo.ScopeDic.TryAdd(TestStatus, _scope);
_globalInfo.ConfigDic.Add(TestStatus, _systemConfig); _globalInfo.ConfigDic.TryAdd(TestStatus, _systemConfig);
if(_systemConfig.DefaultProgramFilePath != null&&File.Exists(_systemConfig.DefaultProgramFilePath)) if(_systemConfig.DefaultProgramFilePath != null&&File.Exists(_systemConfig.DefaultProgramFilePath))
{ {
var filePath = _systemConfig.DefaultProgramFilePath; var filePath = _systemConfig.DefaultProgramFilePath;
@@ -128,6 +128,26 @@
</vs:ParametersManager.Style> </vs:ParametersManager.Style>
</vs:ParametersManager> </vs:ParametersManager>
<Border x:Name="Overlay"
Background="#40000000"
Visibility="Collapsed"
Panel.ZIndex="1"
Grid.RowSpan="2"
Grid.ColumnSpan="4">
<StackPanel Width="150"
VerticalAlignment="Center"
Margin="0 0 0 100">
<ProgressBar Width="80"
Height="80"
Margin="20"
IsIndeterminate="True"
Style="{StaticResource MaterialDesignCircularProgressBar}" />
<TextBlock FontSize="30"
Text="加载中......"
HorizontalAlignment="Center" />
</StackPanel>
</Border>
</Grid> </Grid>
</Border> </Border>
</UserControl> </UserControl>
+19 -2
View File
@@ -1,4 +1,6 @@
using System; using Prism.Events;
using MainModule.ViewModels;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@@ -12,6 +14,7 @@ using System.Windows.Media;
using System.Windows.Media.Imaging; using System.Windows.Media.Imaging;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
using UIShare.PubEvent;
namespace MainModule.Views namespace MainModule.Views
{ {
@@ -20,9 +23,23 @@ namespace MainModule.Views
/// </summary> /// </summary>
public partial class AutomatedTestingView : UserControl public partial class AutomatedTestingView : UserControl
{ {
public AutomatedTestingView() public AutomatedTestingView(IEventAggregator eventAggregator)
{ {
InitializeComponent(); InitializeComponent();
eventAggregator.GetEvent<OverlayEvent>().Subscribe(ShowOverlay);
// 台架级加载遮罩:仅台架名称匹配时响应,避免其他台架/主窗口同时变灰
eventAggregator.GetEvent<ScopeOverlayEvent>().Subscribe(ShowScopeOverlay);
}
private void ShowOverlay(bool arg)
{
Overlay.Visibility = arg ? Visibility.Visible : Visibility.Collapsed;
}
private void ShowScopeOverlay(ScopeOverlayArgs args)
{
// 只处理属于当前台架的遮罩事件(TestStatus 在 OnNavigatedTo 时赋值)
if (DataContext is not AutomatedTestingViewModel vm || vm.TestStatus != args.Scope) return;
Overlay.Visibility = args.Show ? Visibility.Visible : Visibility.Collapsed;
} }
} }
} }
+53
View File
@@ -0,0 +1,53 @@
using SqlSugar;
using System;
namespace Model.Entity
{
/// <summary>
/// 测试项判断记录:运行过程中测试项(IsTestItem 子程序)范围内每一次 OKExpression 判断。
/// 同一次运行的所有记录共享同一个 TestRoundId,导出测试报告时按此 Guid 查询。
/// IsSummary=true 的行为该测试项单次执行的汇总(PASS/NG),IsSummary=false 的行为单次判断明细。
/// </summary>
public class TestCheckRecordEntity : BaseEntity
{
/// <summary>同一次运行的统一标识(StepRunning.TestRoundID</summary>
[SugarColumn(ColumnName = "TestRoundId", ColumnDescription = "运行轮次标识")]
public Guid TestRoundId { get; set; }
/// <summary>作用域/台架名称</summary>
[SugarColumn(ColumnName = "Scope", ColumnDescription = "台架名称")]
public string Scope { get; set; } = string.Empty;
/// <summary>测试项名称(当前ADP文件路径)</summary>
[SugarColumn(ColumnName = "FileName", ColumnDescription = "测试项名称")]
public string FileName { get; set; } = string.Empty;
/// <summary>测试项名称(IsTestItem 子程序步骤的名称)</summary>
[SugarColumn(ColumnName = "TestItemName", Length = 200)]
public string TestItemName { get; set; } = string.Empty;
/// <summary>发生判断的步骤名称</summary>
[SugarColumn(ColumnName = "StepName", Length = 200)]
public string StepName { get; set; } = string.Empty;
/// <summary>子程序嵌套深度(0=主程序)</summary>
[SugarColumn(ColumnName = "Depth")]
public int Depth { get; set; }
/// <summary>判断表达式</summary>
[SugarColumn(ColumnName = "OKExpression", Length = 1000, IsNullable = true)]
public string? OKExpression { get; set; }
/// <summary>判断结果(true=PASS / false=NG</summary>
[SugarColumn(ColumnName = "Pass")]
public bool Pass { get; set; }
/// <summary>表达式变量的实际取值(如 "电压=12.5; 电流=3.2; "</summary>
[SugarColumn(ColumnName = "Values", Length = 2000, IsNullable = true)]
public string? Values { get; set; }
/// <summary>是否为汇总行(每个测试项单次执行结束时写入一条)</summary>
[SugarColumn(ColumnName = "IsSummary")]
public bool IsSummary { get; set; }
}
}
+3
View File
@@ -12,6 +12,9 @@ namespace Model.Models
public bool IsUsed { get; set; } = true; public bool IsUsed { get; set; } = true;
/// <summary>是否测试项(仅子程序步骤可标记,运行时记录其范围内所有 OKExpression 判断)</summary>
public bool IsTestItem { get; set; } = false;
public int Index { get; set; } public int Index { get; set; }
public string? Name { get; set; } public string? Name { get; set; }
+3 -1
View File
@@ -433,7 +433,9 @@ namespace MonitorModule.ViewModels
.Where(m => .Where(m =>
{ {
if (m.GetCustomAttribute<MonitorableAttribute>() == null) return false; if (m.GetCustomAttribute<MonitorableAttribute>() == null) return false;
if (m.ReturnType != typeof(Task<string>)) return false; // 同时支持 Task<string> 和 Task<double> 返回类型
var rt = m.ReturnType;
if (rt != typeof(Task<string>) && rt != typeof(Task<double>)) return false;
var parms = m.GetParameters(); var parms = m.GetParameters();
return parms.Length == 0 || return parms.Length == 0 ||
(parms.Length == 1 && parms[0].ParameterType == typeof(CancellationToken)); (parms.Length == 1 && parms[0].ParameterType == typeof(CancellationToken));
+3 -1
View File
@@ -233,7 +233,9 @@ namespace MonitorModule.ViewModels
.Where(m => .Where(m =>
{ {
if (m.GetCustomAttribute<MonitorableAttribute>() == null) return false; if (m.GetCustomAttribute<MonitorableAttribute>() == null) return false;
if (m.ReturnType != typeof(Task<string>)) return false; // 同时支持 Task<string> 和 Task<double> 返回类型
var rt = m.ReturnType;
if (rt != typeof(Task<string>) && rt != typeof(Task<double>)) return false;
var parms = m.GetParameters(); var parms = m.GetParameters();
return parms.Length == 0 || return parms.Length == 0 ||
(parms.Length == 1 && parms[0].ParameterType == typeof(CancellationToken)); (parms.Length == 1 && parms[0].ParameterType == typeof(CancellationToken));
+39
View File
@@ -128,5 +128,44 @@ namespace ORM
throw new Exception("连接数据库失败"); throw new Exception("连接数据库失败");
} }
} }
/// <summary>
/// 归档过期数据库文件:将旧的 SQLite 文件重命名为 "SQL_归档_yyyyMMdd_HHmmss.db"
/// 后续 <see cref="CreateDatabaseAndCheckConnection"/> 会自动创建新的空数据库。
/// <para>
/// 必须在 <see cref="InitSqlite"/> 之后、<see cref="CreateDatabaseAndCheckConnection"/> 之前调用,
/// 此时连接字符串已就绪但数据库文件尚未被打开。
/// </para>
/// </summary>
/// <param name="retentionDays">数据库文件保留天数,默认 180 天(半年)</param>
public static void TryArchiveOldDatabase(int retentionDays = 180)
{
try
{
// 从连接字符串中提取文件路径(格式:Data Source=xxx;
string dbPath = DbConnectionString
.Replace("Data Source=", "", StringComparison.OrdinalIgnoreCase)
.TrimEnd(';');
if (!File.Exists(dbPath)) return;
var cutoff = DateTime.Now.AddDays(-retentionDays);
var fileInfo = new FileInfo(dbPath);
if (fileInfo.LastWriteTime < cutoff)
{
string archiveName = $"SQL_归档_{fileInfo.LastWriteTime:yyyyMMdd_HHmmss}.db";
string archivePath = Path.Combine(fileInfo.DirectoryName!, archiveName);
File.Move(dbPath, archivePath);
System.Diagnostics.Debug.WriteLine(
$"[数据库归档] {dbPath} → {archivePath}(文件最后修改于 {fileInfo.LastWriteTime:yyyy-MM-dd},已超过 {retentionDays} 天)");
}
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"数据库归档失败(不影响软件正常使用):{ex.Message}");
}
}
} }
} }
@@ -0,0 +1,38 @@
using Model;
using Model.Entity;
using ORM;
using Service.Interface;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Service.Implement
{
public class TestCheckRecordService : BaseService<TestCheckRecordEntity>, ITestCheckRecordService
{
public TestCheckRecordService(SqlSugarRepository<TestCheckRecordEntity> repository) : base(repository)
{
}
/// <summary>
/// 根据 TestRoundId 查询该次运行的所有测试项判断记录(按创建时间升序)
/// </summary>
public async Task<Result<List<TestCheckRecordEntity>>> GetByTestRoundIdAsync(Guid testRoundId)
{
try
{
var list = await _repository.Entities
.Where(x => x.TestRoundId == testRoundId)
.OrderBy(x => x.CreateTime)
.ToListAsync();
return Result<List<TestCheckRecordEntity>>.Success(list);
}
catch (Exception ex)
{
return Result<List<TestCheckRecordEntity>>.Error("根据 TestRoundId 查询测试项判断记录失败", ex);
}
}
}
}
@@ -0,0 +1,19 @@
using Model;
using Model.Entity;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Service.Interface
{
/// <summary>
/// 测试项判断记录服务:运行时记录测试项范围内每一次 OKExpression 判断,导出测试报告时查询。
/// </summary>
public interface ITestCheckRecordService : IBaseService<TestCheckRecordEntity>
{
/// <summary>
/// 根据 TestRoundId 查询该次运行的所有测试项判断记录(按创建时间升序)
/// </summary>
Task<Result<List<TestCheckRecordEntity>>> GetByTestRoundIdAsync(Guid testRoundId);
}
}
@@ -96,6 +96,7 @@ namespace TestingModule.ViewModels
public ICommand SelectionChangedCommand { get;set; } public ICommand SelectionChangedCommand { get;set; }
public ICommand OpenSubProgramCommand { get; set; } public ICommand OpenSubProgramCommand { get; set; }
public ICommand GoBackCommand { get; set; } public ICommand GoBackCommand { get; set; }
public ICommand ToggleTestItemCommand { get; set; }
#endregion #endregion
#region / #region /
@@ -133,6 +134,7 @@ namespace TestingModule.ViewModels
SelectionChangedCommand = new DelegateCommand<object>(SelectionChanged); SelectionChangedCommand = new DelegateCommand<object>(SelectionChanged);
OpenSubProgramCommand = new DelegateCommand(OpenSubProgram); OpenSubProgramCommand = new DelegateCommand(OpenSubProgram);
GoBackCommand = new DelegateCommand(GoBack); GoBackCommand = new DelegateCommand(GoBack);
ToggleTestItemCommand = new DelegateCommand(ToggleTestItem);
SubscribeStepCollections(); SubscribeStepCollections();
Program.PropertyChanged += Program_PropertyChanged; Program.PropertyChanged += Program_PropertyChanged;
Admin = _globalInfo.IsAdmin; Admin = _globalInfo.IsAdmin;
@@ -297,6 +299,25 @@ namespace TestingModule.ViewModels
nav.CurrentProgram = SelectedStep.SubProgram; nav.CurrentProgram = SelectedStep.SubProgram;
} }
/// <summary>
/// 切换选中步骤的测试项标记(仅子程序可标记,运行时将记录其范围内所有 OKExpression 判断)
/// </summary>
private void ToggleTestItem()
{
if (!_globalInfo.IsAdmin) return;
var source = (SelectedItems != null && SelectedItems.Any())
? SelectedItems
: (SelectedStep != null ? new List<StepVM> { SelectedStep } : null);
if (source == null || !source.Any()) return;
foreach (var item in source.Where(x => x.StepType == "子程序" && x.SubProgram != null))
{
item.IsTestItem = !item.IsTestItem;
}
}
/// <summary> /// <summary>
/// 返回上一级程序(操作当前激活的 Tab 的导航状态) /// 返回上一级程序(操作当前激活的 Tab 的导航状态)
/// </summary> /// </summary>
+12
View File
@@ -99,6 +99,10 @@
<DataGridCheckBoxColumn Width="58" <DataGridCheckBoxColumn Width="58"
Binding="{Binding IsUsed, UpdateSourceTrigger=PropertyChanged}" Binding="{Binding IsUsed, UpdateSourceTrigger=PropertyChanged}"
Header="启用" /> Header="启用" />
<DataGridCheckBoxColumn Width="58"
Binding="{Binding IsTestItem}"
Header="测试项"
IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Index}" <DataGridTextColumn Binding="{Binding Index}"
Header="序号" Header="序号"
IsReadOnly="True" /> IsReadOnly="True" />
@@ -142,6 +146,8 @@
<Separator/> <Separator/>
<MenuItem Header="打开子程序" <MenuItem Header="打开子程序"
Command="{Binding OpenSubProgramCommand}" /> Command="{Binding OpenSubProgramCommand}" />
<MenuItem Header="标记/取消测试项"
Command="{Binding ToggleTestItemCommand}" />
</ContextMenu> </ContextMenu>
</DataGrid.ContextMenu> </DataGrid.ContextMenu>
@@ -224,6 +230,10 @@
<DataGridCheckBoxColumn Width="58" <DataGridCheckBoxColumn Width="58"
Binding="{Binding IsUsed, UpdateSourceTrigger=PropertyChanged}" Binding="{Binding IsUsed, UpdateSourceTrigger=PropertyChanged}"
Header="启用" /> Header="启用" />
<DataGridCheckBoxColumn Width="58"
Binding="{Binding IsTestItem}"
Header="测试项"
IsReadOnly="True" />
<DataGridTextColumn Binding="{Binding Index}" <DataGridTextColumn Binding="{Binding Index}"
Header="序号" Header="序号"
IsReadOnly="True" /> IsReadOnly="True" />
@@ -267,6 +277,8 @@
<Separator/> <Separator/>
<MenuItem Header="打开子程序" <MenuItem Header="打开子程序"
Command="{Binding OpenSubProgramCommand}" /> Command="{Binding OpenSubProgramCommand}" />
<MenuItem Header="标记/取消测试项"
Command="{Binding ToggleTestItemCommand}" />
</ContextMenu> </ContextMenu>
</DataGrid.ContextMenu> </DataGrid.ContextMenu>
@@ -0,0 +1,255 @@
using DeviceCommand.Base;
using Logger;
using Model.Models;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
namespace UIShare.GlobalVariable
{
/// <summary>
/// 设备健康监控器:独立于监控采样的心跳重连机制。
/// <para>
/// 设计原则——与检测值零冲突:
/// <list type="bullet">
/// <item>健康检查平时只读 <see cref="IBaseInterface.IsConnected"/>(纯本地属性,零网络开销,不碰通信锁)</item>
/// <item>仅在 IsConnected==false 时才获取 _commLock 执行重连,与监控采样天然串行化</item>
/// <item>ModbusTcp 的 ConnectAsync 是幂等的(已连接时直接返回),不会中断正在进行的监控</item>
/// <item>TCP 的 ConnectAsync 会重置连接,但监控的 catch 容忍单次失败,下次 tick 自动恢复</item>
/// </list>
/// </para>
/// </summary>
public class DeviceHealthMonitor : IDisposable
{
private readonly IDictionary<string, IBaseInterface> _deviceMap;
private readonly SystemConfig _systemConfig;
private readonly string _scopeName;
/// <summary>健康检查定时器</summary>
private Timer? _healthCheckTimer;
/// <summary>每个设备的连续失败计数</summary>
private readonly ConcurrentDictionary<string, int> _failureCounts = new();
/// <summary>每个设备的重连尝试次数(用于计算退避阈值)</summary>
private readonly ConcurrentDictionary<string, int> _reconnectAttempts = new();
/// <summary>基础失败阈值(首次重连触发值)</summary>
private const int BaseFailureThreshold = 3;
/// <summary>退避上限(最大阈值)</summary>
private const int MaxBackoffThreshold = 15;
/// <summary>健康检查间隔(毫秒)</summary>
private readonly int _checkIntervalMs;
private bool _disposed;
private readonly object _startStopLock = new();
/// <summary>
/// 创建健康监控器实例。
/// </summary>
/// <param name="deviceMap">当前作用域的设备字典</param>
/// <param name="systemConfig">当前作用域的系统配置(用于更新 DeviceInfoVM.IsConnected</param>
/// <param name="scopeName">作用域名称(日志标识)</param>
/// <param name="checkIntervalMs">健康检查间隔,默认 5000ms</param>
public DeviceHealthMonitor(
IDictionary<string, IBaseInterface> deviceMap,
SystemConfig systemConfig,
string scopeName,
int checkIntervalMs = 5000)
{
_deviceMap = deviceMap;
_systemConfig = systemConfig;
_scopeName = scopeName;
_checkIntervalMs = checkIntervalMs;
}
/// <summary>启动健康监控(幂等:多次调用只启动一次)</summary>
public void Start()
{
lock (_startStopLock)
{
if (_disposed || _healthCheckTimer != null) return;
_healthCheckTimer = new Timer(
OnHealthCheckTick,
null,
TimeSpan.FromSeconds(10), // 首次检查延迟 10 秒,避免启动时设备尚未连接完成
TimeSpan.FromMilliseconds(_checkIntervalMs));
LoggerHelper.Info($"[{_scopeName}] 设备健康监控已启动,检查间隔={_checkIntervalMs}ms,基础重连阈值={BaseFailureThreshold}次(指数退避上限={MaxBackoffThreshold}");
}
}
/// <summary>停止健康监控</summary>
public void Stop()
{
lock (_startStopLock)
{
_healthCheckTimer?.Change(Timeout.Infinite, Timeout.Infinite);
_healthCheckTimer?.Dispose();
_healthCheckTimer = null;
_failureCounts.Clear();
_reconnectAttempts.Clear();
}
}
/// <summary>
/// 健康检查核心逻辑:遍历设备,检查连接状态,失败计数超阈值则重连。
/// <para>TCP 设备额外进行主动探活(*IDN?),以检测死连接(对端崩溃但 TCP 未收到 FIN)。</para>
/// </summary>
private async void OnHealthCheckTick(object? state)
{
if (_disposed || _deviceMap.Count == 0) return;
// 快照避免枚举期间字典被修改
var snapshot = _deviceMap.ToArray();
foreach (var kvp in snapshot)
{
if (_disposed) return;
string deviceName = kvp.Key;
var device = kvp.Value;
try
{
bool alive = device.IsConnected;
// TCP 设备主动探活:IsConnected 只反映上次操作状态,无法检测死连接
if (alive && device is Tcp tcpDevice)
{
alive = await ProbeTcpDeviceAsync(tcpDevice);
}
if (alive)
{
// 连接正常:清零失败计数与退避
_failureCounts.TryRemove(deviceName, out _);
_reconnectAttempts.TryRemove(deviceName, out _);
continue;
}
// 连接断开:累加失败计数
int failures = _failureCounts.AddOrUpdate(deviceName, 1, (_, count) => count + 1);
// 计算当前退避阈值:基础值 + 重连尝试次数 × 2,上限为 MaxBackoffThreshold
int attempts = _reconnectAttempts.GetOrAdd(deviceName, 0);
int currentThreshold = Math.Min(BaseFailureThreshold + attempts * 2, MaxBackoffThreshold);
if (failures < currentThreshold)
{
LoggerHelper.Warn(
$"[{_scopeName}] 设备 [{deviceName}] 连接断开,等待重连中 ({failures}/{currentThreshold})");
continue;
}
// 达到阈值:执行重连
await ReconnectDeviceAsync(deviceName, device);
}
catch (Exception ex)
{
LoggerHelper.Error($"[{_scopeName}] 设备 [{deviceName}] 健康检查异常:{ex.Message}");
}
}
}
/// <summary>
/// 对 TCP 设备执行轻量级主动探活(SCPI *IDN?),2 秒超时。
/// <para>通过 WriteReadAsync 内部获取 _commLock,与监控采样天然串行化。</para>
/// </summary>
/// <returns>true: 探活成功(连接确实存活); false: 探活失败(死连接)</returns>
private async Task<bool> ProbeTcpDeviceAsync(Tcp tcpDevice)
{
try
{
using var probeCts = new CancellationTokenSource(TimeSpan.FromSeconds(2));
string resp = await tcpDevice.WriteReadAsync("*IDN?\n", "\n", probeCts.Token);
return !string.IsNullOrWhiteSpace(resp);
}
catch
{
return false;
}
}
/// <summary>
/// 重连单个设备。
/// <para>
/// 冲突避免机制:ConnectAsync 内部获取设备的 _commLock
/// 如果此时监控采样正在通信,重连会等待锁释放后再执行,
/// 保证同一时刻只有一个操作在使用通信链路。
/// </para>
/// </summary>
private async Task ReconnectDeviceAsync(string deviceName, IBaseInterface device)
{
try
{
int attempts = _reconnectAttempts.AddOrUpdate(deviceName, 1, (_, c) => c + 1);
int nextThreshold = Math.Min(BaseFailureThreshold + attempts * 2, MaxBackoffThreshold);
LoggerHelper.Info($"[{_scopeName}] 设备 [{deviceName}] 连续失败触发重连(第 {attempts} 次重连,下次阈值={nextThreshold}...");
using var cts = new CancellationTokenSource(TimeSpan.FromSeconds(10));
bool ok = await device.ConnectAsync(cts.Token);
// 同步更新 DeviceInfoVM 的 UI 状态
UpdateDeviceInfoState(deviceName, ok);
if (ok)
{
_failureCounts.TryRemove(deviceName, out _);
_reconnectAttempts.TryRemove(deviceName, out _);
LoggerHelper.Info($"[{_scopeName}] 设备 [{deviceName}] 重连成功");
}
else
{
LoggerHelper.Warn($"[{_scopeName}] 设备 [{deviceName}] 重连失败,将在下次检查时重试");
}
}
catch (OperationCanceledException)
{
UpdateDeviceInfoState(deviceName, false);
LoggerHelper.Warn($"[{_scopeName}] 设备 [{deviceName}] 重连超时(10s),将在下次检查时重试");
}
catch (Exception ex)
{
UpdateDeviceInfoState(deviceName, false);
LoggerHelper.Error($"[{_scopeName}] 设备 [{deviceName}] 重连异常:{ex.Message}");
}
}
/// <summary>
/// 通过 UI 线程更新 SystemConfig.DeviceList 中对应设备的 IsConnected 状态(驱动 UI 刷新)。
/// <para>Timer 回调运行在线程池线程上,必须切回 UI 线程才能触发 PropertyChanged。</para>
/// </summary>
private void UpdateDeviceInfoState(string deviceName, bool isConnected)
{
var info = _systemConfig?.DeviceList?
.FirstOrDefault(d => d != null &&
string.Equals(d.DeviceName, deviceName, StringComparison.OrdinalIgnoreCase));
if (info == null) return;
var dispatcher = Application.Current?.Dispatcher;
if (dispatcher == null || dispatcher.CheckAccess())
{
// 已在 UI 线程(或无 Dispatcher),直接赋值
info.IsConnected = isConnected;
}
else
{
// 切回 UI 线程赋值,避免跨线程 PropertyChanged 异常
dispatcher.BeginInvoke(() => info.IsConnected = isConnected);
}
}
public void Dispose()
{
if (_disposed) return;
_disposed = true;
Stop();
}
}
}
+24
View File
@@ -28,6 +28,9 @@ namespace UIShare.GlobalVariable
private readonly string _scopeName; private readonly string _scopeName;
private readonly IEventAggregator _eventAggregator; private readonly IEventAggregator _eventAggregator;
/// <summary>设备健康监控器:独立心跳检测 + 自动重连,与监控采样互不冲突</summary>
private DeviceHealthMonitor? _healthMonitor;
/// <summary>按 DeviceName 索引的设备字典,便于业务层按名取实例。</summary> /// <summary>按 DeviceName 索引的设备字典,便于业务层按名取实例。</summary>
public IDictionary<string, IBaseInterface> DeviceMap { get; private set; } public IDictionary<string, IBaseInterface> DeviceMap { get; private set; }
= new Dictionary<string, IBaseInterface>(StringComparer.OrdinalIgnoreCase); = new Dictionary<string, IBaseInterface>(StringComparer.OrdinalIgnoreCase);
@@ -252,6 +255,9 @@ namespace UIShare.GlobalVariable
} }
await Task.WhenAll(tasks); await Task.WhenAll(tasks);
// 所有设备连接完成后,启动健康监控(心跳重连)
StartHealthMonitor();
} }
@@ -320,6 +326,7 @@ namespace UIShare.GlobalVariable
/// </summary> /// </summary>
public async Task CloseAllDevicesAsync() public async Task CloseAllDevicesAsync()
{ {
StopHealthMonitor();
List<Task> tasks = new List<Task>(); List<Task> tasks = new List<Task>();
lock (_lockObj) lock (_lockObj)
@@ -617,8 +624,25 @@ namespace UIShare.GlobalVariable
return Activator.CreateInstance(type, cfg) as IBaseInterface; return Activator.CreateInstance(type, cfg) as IBaseInterface;
} }
/// <summary>启动设备健康监控(心跳检测 + 自动重连)</summary>
private void StartHealthMonitor()
{
StopHealthMonitor();
_healthMonitor = new DeviceHealthMonitor(DeviceMap, _systemConfig, _scopeName);
_healthMonitor.Start();
}
/// <summary>停止设备健康监控</summary>
private void StopHealthMonitor()
{
_healthMonitor?.Stop();
_healthMonitor?.Dispose();
_healthMonitor = null;
}
public void Dispose() public void Dispose()
{ {
StopHealthMonitor();
if (string.IsNullOrEmpty(_scopeName)) return; if (string.IsNullOrEmpty(_scopeName)) return;
// 遍历当前作用域用到的所有指纹,逐一移除本作用域的引用 // 遍历当前作用域用到的所有指纹,逐一移除本作用域的引用
+8 -4
View File
@@ -12,10 +12,14 @@ namespace UIShare.GlobalVariable
public class GlobalInfo:BindableBase public class GlobalInfo:BindableBase
{ {
public event EventHandler? ScopeChanged; public event EventHandler? ScopeChanged;
public Dictionary<string,ScopedContext> ContextDic { get; set; } /// <summary>作用域名 → 作用域上下文(线程安全:可能被多个作用域并发创建/销毁)</summary>
public Dictionary<string,StepRunning> StepRunningDic { get; set; } public ConcurrentDictionary<string, ScopedContext> ContextDic { get; set; }
public Dictionary<string, SystemConfig> ConfigDic { get; set; } /// <summary>作用域名 → 测试运行器(线程安全:可能被多个作用域并发创建/销毁)</summary>
public Dictionary<string, IScopedProvider> ScopeDic { get; set; } public ConcurrentDictionary<string, StepRunning> StepRunningDic { get; set; }
/// <summary>作用域名 → 系统配置(线程安全:可能被多个作用域并发创建/销毁)</summary>
public ConcurrentDictionary<string, SystemConfig> ConfigDic { get; set; }
/// <summary>作用域名 → 作用域容器(线程安全:可能被多个作用域并发创建/销毁)</summary>
public ConcurrentDictionary<string, IScopedProvider> ScopeDic { get; set; }
/// <summary>硬件指纹 → 设备实例的并发池,确保同一物理硬件全局只创建一个驱动实例。</summary> /// <summary>硬件指纹 → 设备实例的并发池,确保同一物理硬件全局只创建一个驱动实例。</summary>
public ConcurrentDictionary<string, Lazy<IBaseInterface>> HardwarePool { get; set; } public ConcurrentDictionary<string, Lazy<IBaseInterface>> HardwarePool { get; set; }
@@ -1,8 +1,10 @@
using Common.Attributes; using Common.Attributes;
using DeviceCommand.Base; using DeviceCommand.Base;
using Logger;
using Model.Models; using Model.Models;
using Prism.Events; using Prism.Events;
using System; using System;
using System.Collections.Concurrent;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Linq.Expressions; using System.Linq.Expressions;
@@ -31,16 +33,28 @@ namespace UIShare.GlobalVariable
/// <summary> /// <summary>
/// 已注册的采样项:(Fingerprint, MethodName, 编译后的委托, DeviceInstance) /// 已注册的采样项:(Fingerprint, MethodName, 编译后的委托, DeviceInstance)
/// 委托签名统一为 Func&lt;object, CancellationToken, Task&lt;string&gt;&gt; /// 委托签名统一为 Func&lt;object, CancellationToken, Task&lt;double&gt;&gt;
/// - 第一个参数 = 设备实例(open delegate 风格,编译时已做类型转换) /// - 第一个参数 = 设备实例(open delegate 风格,编译时已做类型转换)
/// - 第二个参数 = CancellationToken(无参方法会忽略它) /// - 第二个参数 = CancellationToken(无参方法会忽略它)
/// - 返回值 = Task&lt;string&gt; /// - 返回值 = Task&lt;double&gt;Task&lt;string&gt; 方法自动 TryParse 为 double
/// </summary> /// </summary>
private readonly List<(string Fingerprint, string MethodName, Func<object, CancellationToken, Task<string>> Invoker, object Device)> _registeredMethods = new(); private readonly List<(string Fingerprint, string MethodName, Func<object, CancellationToken, Task<double>> Invoker, object Device)> _registeredMethods = new();
private CancellationTokenSource? _cts; private CancellationTokenSource? _cts;
private bool _disposed; private bool _disposed;
/// <summary>是否已完成过至少一次 Discover(幂等标记,避免多作用域重复调用时 Clear + 重扫)</summary>
private bool _discovered;
/// <summary>连续失败次数达到此阈值后,暂停该通道采样并发布报警</summary>
private const int FailureThreshold = 5;
/// <summary>每通道连续失败计数(key = fingerprint + "|" + methodName</summary>
private readonly ConcurrentDictionary<string, int> _failureCounts = new();
/// <summary>已因连续失败而被暂停的通道(key 同上)</summary>
private readonly ConcurrentDictionary<string, bool> _suspendedChannels = new();
/// <summary>采样间隔(默认 1000ms</summary> /// <summary>采样间隔(默认 1000ms</summary>
public TimeSpan SampleInterval public TimeSpan SampleInterval
{ {
@@ -62,11 +76,13 @@ namespace UIShare.GlobalVariable
/// <summary> /// <summary>
/// 将 MethodInfo 编译为强类型委托,后续调用零反射开销。 /// 将 MethodInfo 编译为强类型委托,后续调用零反射开销。
/// 统一签名为 Func&lt;object, CancellationToken, Task&lt;string&gt;&gt; /// 统一签名为 Func&lt;object, CancellationToken, Task&lt;double&gt;&gt;
/// - Task&lt;double&gt; 方法:直接返回 double 值
/// - Task&lt;string&gt; 方法:自动 TryParse 为 double
/// - 无参方法:忽略 CancellationToken /// - 无参方法:忽略 CancellationToken
/// - 带 CancellationToken 方法:直接透传 /// - 带 CancellationToken 方法:直接透传
/// </summary> /// </summary>
private static Func<object, CancellationToken, Task<string>> BuildInvoker(MethodInfo method) private static Func<object, CancellationToken, Task<double>> BuildInvoker(MethodInfo method)
{ {
var deviceParam = Expression.Parameter(typeof(object), "device"); var deviceParam = Expression.Parameter(typeof(object), "device");
var ctParam = Expression.Parameter(typeof(CancellationToken), "ct"); var ctParam = Expression.Parameter(typeof(CancellationToken), "ct");
@@ -82,16 +98,35 @@ namespace UIShare.GlobalVariable
var call = Expression.Call(castDevice, method, callArgs); var call = Expression.Call(castDevice, method, callArgs);
return Expression.Lambda<Func<object, CancellationToken, Task<string>>>( if (method.ReturnType == typeof(Task<double>))
{
// Task<double> 方法:直接返回
return Expression.Lambda<Func<object, CancellationToken, Task<double>>>(
call, deviceParam, ctParam).Compile(); call, deviceParam, ctParam).Compile();
} }
else
{
// Task<string> 方法:await 后 TryParse 为 double
return async (device, ct) =>
{
// 通过 MethodInfo.Invoke 调用(仅 Task<string> 路径,性能可接受)
var task = (Task<string>)method.Invoke(device,
parms.Length == 1 ? new object[] { ct } : Array.Empty<object>())!;
string raw = await task.ConfigureAwait(false);
return double.TryParse(raw, out double v) ? v : double.NaN;
};
}
}
/// <summary> /// <summary>
/// 扫描 GlobalInfo.HardwarePool 中所有已创建的物理设备, /// 扫描 GlobalInfo.HardwarePool 中所有已创建的物理设备,
/// 反查可监测方法并编译为委托。每个指纹只注册一次,反射只执行一次。 /// 反查可监测方法并编译为委托。每个指纹只注册一次,反射只执行一次。
/// <para>幂等:首次调用后再次调用不会 Clear 重扫,避免多作用域重复 Discover 导致短暂采样中断。</para>
/// </summary> /// </summary>
public void Discover() public void Discover()
{ {
if (_discovered) return;
_discovered = true;
_registeredMethods.Clear(); _registeredMethods.Clear();
foreach (var poolEntry in _globalInfo.HardwarePool) foreach (var poolEntry in _globalInfo.HardwarePool)
@@ -109,7 +144,9 @@ namespace UIShare.GlobalVariable
.Where(m => .Where(m =>
{ {
if (m.GetCustomAttribute<MonitorableAttribute>() == null) return false; if (m.GetCustomAttribute<MonitorableAttribute>() == null) return false;
if (m.ReturnType != typeof(Task<string>)) return false; // 同时支持 Task<string> 和 Task<double> 返回类型
var rt = m.ReturnType;
if (rt != typeof(Task<string>) && rt != typeof(Task<double>)) return false;
var parms = m.GetParameters(); var parms = m.GetParameters();
return parms.Length == 0 || return parms.Length == 0 ||
(parms.Length == 1 && parms[0].ParameterType == typeof(CancellationToken)); (parms.Length == 1 && parms[0].ParameterType == typeof(CancellationToken));
@@ -157,15 +194,23 @@ namespace UIShare.GlobalVariable
foreach (var entry in _registeredMethods) foreach (var entry in _registeredMethods)
{ {
string channelKey = entry.Fingerprint + "|" + entry.MethodName;
// 已暂停的通道跳过采样
if (_suspendedChannels.ContainsKey(channelKey)) continue;
// fire-and-forget:每个通道独立采样,完成后自行广播 // fire-and-forget:每个通道独立采样,完成后自行广播
_ = Task.Run(async () => _ = Task.Run(async () =>
{ {
try try
{ {
// 直接委托调用,零反射开销 // 直接委托调用,零反射开销Task<double> 路径)或自动 TryParseTask<string> 路径)
string raw = await entry.Invoker(entry.Device, token).ConfigureAwait(false); double value = await entry.Invoker(entry.Device, token).ConfigureAwait(false);
if (!double.TryParse(raw, out double value)) return; if (double.IsNaN(value)) return;
// 采样成功,重置失败计数
_failureCounts.TryRemove(channelKey, out _);
// 向所有引用该物理设备的作用域分别广播 // 向所有引用该物理设备的作用域分别广播
var scopes = GetScopesForFingerprint(entry.Fingerprint); var scopes = GetScopesForFingerprint(entry.Fingerprint);
@@ -188,9 +233,24 @@ namespace UIShare.GlobalVariable
} }
} }
} }
catch catch (Exception ex)
{ {
// 单个通道故障不干扰其他通道 int count = _failureCounts.AddOrUpdate(channelKey, 1, (_, c) => c + 1);
LoggerHelper.Warn($"采样通道 [{entry.Fingerprint}/{entry.MethodName}] 第 {count} 次失败: {ex.Message}");
if (count >= FailureThreshold)
{
_suspendedChannels.TryAdd(channelKey, true);
LoggerHelper.Error($"采样通道 [{entry.Fingerprint}/{entry.MethodName}] 连续失败 {count} 次,已暂停采样");
// 向所有引用该设备的作用域发布报警
var scopes = GetScopesForFingerprint(entry.Fingerprint);
foreach (var scope in scopes)
{
_eventAggregator.GetEvent<AlarmEvent>().Publish(
(scope, entry.Fingerprint, $"通道 {entry.MethodName} 连续失败 {count} 次,已暂停"));
}
}
} }
}, token); }, token);
} }
@@ -209,6 +269,8 @@ namespace UIShare.GlobalVariable
_cts?.Dispose(); _cts?.Dispose();
_cts = null; _cts = null;
_registeredMethods.Clear(); _registeredMethods.Clear();
_failureCounts.Clear();
_suspendedChannels.Clear();
} }
} }
} }
+178 -3
View File
@@ -13,6 +13,7 @@ using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Text; using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks; using System.Threading.Tasks;
using UIShare.GlobalVariable; using UIShare.GlobalVariable;
using static UIShare.UIViewModel.ParameterVM; using static UIShare.UIViewModel.ParameterVM;
@@ -29,6 +30,7 @@ namespace UIShare
private IContainerProvider containerProvider; private IContainerProvider containerProvider;
private IEventAggregator _eventAggregator; private IEventAggregator _eventAggregator;
private ITestReportService _testReportService; private ITestReportService _testReportService;
private ITestCheckRecordService _testCheckRecordService;
private readonly Dictionary<Guid, ParameterVM> tmpParameters = []; private readonly Dictionary<Guid, ParameterVM> tmpParameters = [];
@@ -38,6 +40,9 @@ namespace UIShare
private readonly Stack<LoopContext> loopStack = new(); private readonly Stack<LoopContext> loopStack = new();
/// <summary>测试项上下文栈:进入 IsTestItem 子程序时压栈,栈非空期间每次 OKExpression 判断都归属栈顶测试项</summary>
private readonly Stack<TestItemContext> testItemStack = new();
public CancellationTokenSource stepCTS = new(); public CancellationTokenSource stepCTS = new();
public CancellationTokenSource errorStepCTS = new(); public CancellationTokenSource errorStepCTS = new();
private bool SubSingleStep = false; private bool SubSingleStep = false;
@@ -46,13 +51,14 @@ namespace UIShare
private volatile bool _disposed = false; private volatile bool _disposed = false;
public Guid TestRoundID; public Guid TestRoundID;
public StepRunning(ScopedContext ScopedContext, SystemConfig systemConfig,IEventAggregator eventAggregator, DeviceManager deviceManager, ITestReportService testReportService) public StepRunning(ScopedContext ScopedContext, SystemConfig systemConfig,IEventAggregator eventAggregator, DeviceManager deviceManager, ITestReportService testReportService, ITestCheckRecordService testCheckRecordService)
{ {
_scopedContext = ScopedContext; _scopedContext = ScopedContext;
_systemConfig = systemConfig; _systemConfig = systemConfig;
_eventAggregator = eventAggregator; _eventAggregator = eventAggregator;
_deviceManager= deviceManager; _deviceManager= deviceManager;
_testReportService = testReportService; _testReportService = testReportService;
_testCheckRecordService = testCheckRecordService;
//_devices = containerProvider.Resolve<Devices>(); //_devices = containerProvider.Resolve<Devices>();
} }
public async Task<bool> ExecuteErrorSteps(ProgramVM program, int depth = 0, CancellationToken cancellationToken = default) public async Task<bool> ExecuteErrorSteps(ProgramVM program, int depth = 0, CancellationToken cancellationToken = default)
@@ -67,6 +73,8 @@ namespace UIShare
ResetAllStepStatus(program.ErrorStepCollection); ResetAllStepStatus(program.ErrorStepCollection);
tmpParameters.Clear(); tmpParameters.Clear();
TestRoundID = Guid.NewGuid(); TestRoundID = Guid.NewGuid();
// 注入步骤耗时查询器:AsyncLocal 随异步执行流流动,命令库(CommandRunningTime)据此查询当前作用域主程序的步骤耗时
StepRuntimeContext.StepTimeQuery.Value = QueryStepRunTimeSum;
} }
foreach (var item in program.Parameters) foreach (var item in program.Parameters)
{ {
@@ -253,7 +261,10 @@ namespace UIShare
loopStopwatchStack.Clear(); loopStopwatchStack.Clear();
ResetAllStepStatus(program.StepCollection); ResetAllStepStatus(program.StepCollection);
tmpParameters.Clear(); tmpParameters.Clear();
testItemStack.Clear();
TestRoundID = Guid.NewGuid(); TestRoundID = Guid.NewGuid();
// 注入步骤耗时查询器:AsyncLocal 随异步执行流流动,命令库(CommandRunningTime)据此查询当前作用域主程序的步骤耗时
StepRuntimeContext.StepTimeQuery.Value = QueryStepRunTimeSum;
} }
int initialLoopStackCount = loopStack.Count; int initialLoopStackCount = loopStack.Count;
foreach (var item in program.Parameters) foreach (var item in program.Parameters)
@@ -381,14 +392,24 @@ namespace UIShare
SubProgram = step.SubProgram, SubProgram = step.SubProgram,
StepName = step.Name StepName = step.Name
}); });
bool isTestItemStep = step.IsTestItem;
if (isTestItemStep)
{
testItemStack.Push(new TestItemContext { Name = step.Name ?? "未命名测试项" });
}
stepSuccess = await ExecuteSteps(step.SubProgram, depth + 1, cancellationToken); stepSuccess = await ExecuteSteps(step.SubProgram, depth + 1, cancellationToken);
// 先评估本步骤自身(含自身 OKExpression 判断,归属本测试项),再写测试项汇总并弹栈
UpdateCurrentStepResult(step, true, stepSuccess, depth);
if (isTestItemStep)
{
await FinalizeTestItemAsync(depth);
}
// 发布退出子程序导航事件 // 发布退出子程序导航事件
_eventAggregator.GetEvent<SubProgramNavigateEvent>().Publish(new SubProgramNavigatePayload _eventAggregator.GetEvent<SubProgramNavigateEvent>().Publish(new SubProgramNavigatePayload
{ {
Scope = _systemConfig.Title, Scope = _systemConfig.Title,
Action = NavigateAction.Exit Action = NavigateAction.Exit
}); });
UpdateCurrentStepResult(step, true, stepSuccess, depth);
if (SubSingleStep) if (SubSingleStep)
{ {
SubSingleStep = false; SubSingleStep = false;
@@ -452,7 +473,11 @@ namespace UIShare
{ {
if(_scopedContext.Program.StepCollection.Count>1) if(_scopedContext.Program.StepCollection.Count>1)
_scopedContext.SelectedStep = null; _scopedContext.SelectedStep = null;
// 区间延迟不计入步骤运行时间:延迟期间暂停步骤计时器(子程序内的区间延迟同样排除,它们都归属顶层步骤的计时区间)
bool timingPaused = stepStopwatch.IsRunning;
if (timingPaused) stepStopwatch.Stop();
await Task.Delay(_systemConfig.PerformanceLevel, cancellationToken); await Task.Delay(_systemConfig.PerformanceLevel, cancellationToken);
if (timingPaused) stepStopwatch.Start();
// 1. 查找类型 // 1. 查找类型
@@ -783,6 +808,30 @@ namespace UIShare
} }
} }
/// <summary>
/// 查询当前作用域主程序步骤集合中,序号位于 [起始序号, 结束序号](含两端)范围内步骤的运行时间之和(毫秒)。
/// <para>由 ExecuteSteps / ExecuteErrorSteps 顶层启动时经 StepRuntimeContext 注入(AsyncLocal 随异步流流动),
/// 供命令库 CommandRunningTime.获取步骤运行时间之和 调用(依赖倒置:命令库不引用宿主类型)。</para>
/// <para>序号倒置、超界(范围内不存在步骤)时记录错误日志并返回 0;未执行步骤的耗时按 0 计入。</para>
/// </summary>
private double QueryStepRunTimeSum(int startIndex, int endIndex)
{
var steps = _scopedContext.Program.StepCollection;
if (startIndex > endIndex)
{
LoggerHelper.Error($"[步骤耗时] 查询失败:起始序号 {startIndex} 大于结束序号 {endIndex},返回 0");
return 0;
}
var matched = steps.Where(s => s.Index >= startIndex && s.Index <= endIndex).ToList();
if (matched.Count == 0)
{
LoggerHelper.Error($"[步骤耗时] 查询失败:序号 {startIndex}~{endIndex} 范围内不存在测试步骤(主程序共 {steps.Count} 步),返回 0");
return 0;
}
// 尚未执行或未启用的步骤 RunTime 为 null,按 0 计入
return matched.Sum(s => s.RunTime ?? 0);
}
private void UpdateCurrentStepResult(StepVM step, bool paraResult = true, bool stepResult = true, int depth = 0) private void UpdateCurrentStepResult(StepVM step, bool paraResult = true, bool stepResult = true, int depth = 0)
{ {
if (stepResult && paraResult) if (stepResult && paraResult)
@@ -812,12 +861,46 @@ namespace UIShare
paraDic.TryAdd(item.Name, item.Value!); paraDic.TryAdd(item.Name, item.Value!);
} }
} }
bool re = ExpressionEvaluator.EvaluateExpression(step.OKExpression, paraDic); bool re;
try
{
re = ExpressionEvaluator.EvaluateExpression(step.OKExpression, paraDic);
}
catch (Exception ex)
{
// 表达式执行错误也视为 NG,并记录到测试项判断明细
LoggerHelper.ErrorWithNotify(_systemConfig.Title, $"指令 [ {step.Index} ] OKExpression 执行异常: {ex.Message}", depth: depth);
re = false;
}
step.Result = re ? 1 : 2; step.Result = re ? 1 : 2;
if (step.Result == 2) if (step.Result == 2)
{ {
LoggerHelper.WarnWithNotify(_systemConfig.Title, $"指令 [ {step.Index} ] NG:条件表达式验证失败", depth: depth); LoggerHelper.WarnWithNotify(_systemConfig.Title, $"指令 [ {step.Index} ] NG:条件表达式验证失败", depth: depth);
} }
// 测试项范围内:记录本次判断(重复判断逐次记录)
if (testItemStack.Count > 0)
{
var ctx = testItemStack.Peek();
bool isSelfCheck = ctx.Name == (step.Name ?? "未命名测试项") && step.SubProgram != null;
if (!re) ctx.HasFailure = true;
if (!isSelfCheck)
{
SaveCheckRecordAsync(new TestCheckRecordEntity
{
TestRoundId = TestRoundID,
Scope = _systemConfig.Title,
FileName = _systemConfig.CurrentADPFile ?? "",
TestItemName = ctx.Name,
StepName = step.Name ?? "",
Depth = depth,
OKExpression = step.OKExpression,
Pass = re,
Values = ExtractExpressionValues(step.OKExpression, paraDic),
IsSummary = false,
CreateTime = DateTime.Now
});
}
}
} }
} }
else else
@@ -828,6 +911,90 @@ namespace UIShare
} }
step.Result = 2; step.Result = 2;
} }
// 测试项范围内的步骤执行错误/表达式 NG 均计入当前测试项汇总(自身步骤的错误已在压栈期间计入)
if (step.Result == 2 && testItemStack.Count > 0)
{
testItemStack.Peek().HasFailure = true;
}
}
/// <summary>
/// 测试项执行结束:写入汇总记录(PASS/NG)并弹栈。
/// 测试项内无任何判断时,结果由范围内步骤执行成败决定。
/// </summary>
private async Task FinalizeTestItemAsync(int depth)
{
if (testItemStack.Count == 0) return;
var ctx = testItemStack.Pop();
SaveCheckRecordAsync(new TestCheckRecordEntity
{
TestRoundId = TestRoundID,
Scope = _systemConfig.Title,
FileName = _systemConfig.CurrentADPFile ?? "",
TestItemName = ctx.Name,
StepName = ctx.Name,
Depth = depth,
OKExpression = null,
Pass = !ctx.HasFailure,
Values = null,
IsSummary = true,
CreateTime = DateTime.Now
});
await Task.CompletedTask;
}
/// <summary>
/// 保存测试项判断记录(不阻塞执行主流程)
/// </summary>
private void SaveCheckRecordAsync(TestCheckRecordEntity entity)
{
_ = Task.Run(async () =>
{
try
{
var result = await _testCheckRecordService.InsertAsync(entity);
if (!result.IsSuccess)
{
LoggerHelper.Error($"保存测试项判断记录失败 [{entity.TestItemName}]: {result.Msg}");
}
}
catch (Exception ex)
{
LoggerHelper.Error($"保存测试项判断记录失败 [{entity.TestItemName}]: {ex.Message}");
}
});
}
/// <summary>
/// 从表达式中提取实际出现的变量并取其当前值,拼接为 "变量=值; " 格式(长名优先,避免子串误匹配)
/// </summary>
private static string? ExtractExpressionValues(string expression, Dictionary<string, object> paraDic)
{
try
{
var sb = new StringBuilder();
var matchedSpans = new List<(int Start, int End)>();
foreach (var name in paraDic.Keys.OrderByDescending(k => k.Length))
{
if (string.IsNullOrWhiteSpace(name)) continue;
foreach (Match m in Regex.Matches(expression, $@"\b{Regex.Escape(name)}\b"))
{
bool overlaps = matchedSpans.Any(s => m.Index < s.End && m.Index + m.Length > s.Start);
if (!overlaps)
{
matchedSpans.Add((m.Index, m.Index + m.Length));
sb.Append($"{name}={paraDic[name]}; ");
break;
}
}
}
return sb.Length > 0 ? sb.ToString() : null;
}
catch
{
return null;
}
} }
public void Dispose() public void Dispose()
@@ -861,6 +1028,7 @@ namespace UIShare
tmpParameters.Clear(); tmpParameters.Clear();
loopStack.Clear(); loopStack.Clear();
loopStopwatchStack.Clear(); loopStopwatchStack.Clear();
testItemStack.Clear();
stepStopwatch.Stop(); stepStopwatch.Stop();
} }
@@ -876,6 +1044,13 @@ namespace UIShare
public StepVM? LoopStartStep { get; set; } public StepVM? LoopStartStep { get; set; }
} }
/// <summary>测试项执行上下文:记录测试项名称与范围内是否出现过失败</summary>
private class TestItemContext
{
public string Name { get; set; } = string.Empty;
public bool HasFailure { get; set; }
}
#endregion #endregion
} }
+18
View File
@@ -9,4 +9,22 @@ namespace UIShare.PubEvent
public class OverlayEvent : PubSubEvent<bool> public class OverlayEvent : PubSubEvent<bool>
{ {
} }
/// <summary>
/// 作用域感知的灰度遮罩事件:仅台架名称与 Scope 匹配的台架视图显示/隐藏加载遮罩,
/// 避免全局 OverlayEvent 导致所有台架及主窗口同时变灰。
/// </summary>
public class ScopeOverlayEvent : PubSubEvent<ScopeOverlayArgs>
{
}
/// <summary>作用域遮罩事件参数。</summary>
public class ScopeOverlayArgs
{
/// <summary>台架名称(与 SystemConfig.Title / TestStatus 一致)。</summary>
public string Scope { get; set; } = string.Empty;
/// <summary>true 显示遮罩,false 隐藏遮罩。</summary>
public bool Show { get; set; }
}
} }
+8
View File
@@ -7,6 +7,7 @@
private int _报文ID; private int _报文ID;
private double _时间戳; private double _时间戳;
private byte _长度; private byte _长度;
private string _数据;
// 通道属性 // 通道属性
@@ -37,6 +38,13 @@
set { SetProperty(ref _长度, value); } set { SetProperty(ref _长度, value); }
} }
// 数据属性(原始报文字节十六进制字符串,如 [0x00, 0x01, ...]
public string
{
get { return _数据; }
set { SetProperty(ref _数据, value); }
}
} }
} }
+10
View File
@@ -26,6 +26,7 @@ namespace UIShare.UIViewModel
NGGotoStepID = source.NGGotoStepID; NGGotoStepID = source.NGGotoStepID;
Description = source.Description; Description = source.Description;
IsUsed = source.IsUsed; IsUsed = source.IsUsed;
IsTestItem = source.IsTestItem;
if (source.Method != null) if (source.Method != null)
{ {
@@ -55,6 +56,15 @@ namespace UIShare.UIViewModel
set => SetProperty(ref _isUsed, value); set => SetProperty(ref _isUsed, value);
} }
private bool _isTestItem = false;
/// <summary>是否测试项(仅子程序步骤可标记,运行时记录其范围内所有 OKExpression 判断)</summary>
public bool IsTestItem
{
get => _isTestItem;
set => SetProperty(ref _isTestItem, value);
}
private int _index; private int _index;
public int Index public int Index
+123 -7
View File
@@ -11,6 +11,11 @@ using System.Threading.Tasks;
namespace ZLGUSBCANFD namespace ZLGUSBCANFD
{ {
/// <summary>
/// 周立功 USBCANFD 系列 CAN 卡控制类(如 USBCANFD-400U),封装设备连接、通道初始化、
/// DBC 矩阵加载与解码、报文发送(单次/循环)、信号物理值设置等功能。
/// 每个通道拥有独立的 DBC 引擎句柄与细粒度锁,支持多台架并行互不干扰。
/// </summary>
[ADPCommand] [ADPCommand]
public class ZLGCANFD : IDisposable public class ZLGCANFD : IDisposable
{ {
@@ -35,6 +40,10 @@ namespace ZLGUSBCANFD
// 每次 设置报文 会累积写入此表,发送时以 DBC 初始值为底再叠加此表覆盖值 // 每次 设置报文 会累积写入此表,发送时以 DBC 初始值为底再叠加此表覆盖值
private readonly ConcurrentDictionary<(uint , uint ID), Dictionary<string, double>> _signalOverrides = new ConcurrentDictionary<(uint, uint), Dictionary<string, double>>(); private readonly ConcurrentDictionary<(uint , uint ID), Dictionary<string, double>> _signalOverrides = new ConcurrentDictionary<(uint, uint), Dictionary<string, double>>();
// 最新解码报文缓存:Key = (通道号, 帧ID)Value = 最近一次 DBC 解码成功的报文快照(含各信号原始值)
// 接收线程解码成功时写入,供 获取报文信号值 主动查询最新信号物理值
private readonly ConcurrentDictionary<(uint , uint ID), ZDBC.DBCMessage> _latestDecodedMessages = new ConcurrentDictionary<(uint, uint), ZDBC.DBCMessage>();
// 动态硬件参数 // 动态硬件参数
private readonly uint _deviceType; // 76: USBCANFD-400U private readonly uint _deviceType; // 76: USBCANFD-400U
private readonly uint _deviceIndex; // 设备索引 private readonly uint _deviceIndex; // 设备索引
@@ -62,6 +71,16 @@ namespace ZLGUSBCANFD
/// </summary> /// </summary>
public event Action<uint, uint, byte[], ulong, bool, byte>? OnRawMessageReceived; public event Action<uint, uint, byte[], ulong, bool, byte>? OnRawMessageReceived;
/// <summary>
/// 构造函数,配置设备类型、索引、通道数及所有通道共用的波特率与终端电阻参数,
/// 并初始化通道状态数组与 DBC 解析器。
/// </summary>
/// <param name="deviceType">设备类型,76 为 USBCANFD-400U</param>
/// <param name="deviceIndex">设备索引,多台同型号设备时区分,默认 0</param>
/// <param name="maxChannels">通道数量,默认 4</param>
/// <param name="abitBaud">仲裁域波特率,默认 "500000"</param>
/// <param name="dbitBaud">数据域波特率(仅 CANFD 生效),默认 "2000000"</param>
/// <param name="enableTerminalResistance">是否启用通道内部终端电阻,默认 true</param>
public ZLGCANFD(uint deviceType = 76, uint deviceIndex = 0, int maxChannels = 4, public ZLGCANFD(uint deviceType = 76, uint deviceIndex = 0, int maxChannels = 4,
string abitBaud = "500000", string dbitBaud = "2000000", bool enableTerminalResistance = true) string abitBaud = "500000", string dbitBaud = "2000000", bool enableTerminalResistance = true)
{ {
@@ -91,8 +110,9 @@ namespace ZLGUSBCANFD
#region 1. #region 1.
/// <summary> /// <summary>
/// 仅仅打开设备,不做具体的通道波特率配置(留给具体的台架去分别配置) /// 仅仅打开设备,不做具体的通道波特率配置(留给具体的台架去分别配置)
/// </summary> /// </summary>
/// <returns>是否打开成功;设备已打开时重复调用直接返回 true</returns>
public virtual bool () public virtual bool ()
{ {
if (_deviceHandle != IntPtr.Zero) return true; if (_deviceHandle != IntPtr.Zero) return true;
@@ -101,8 +121,12 @@ namespace ZLGUSBCANFD
} }
/// <summary> /// <summary>
/// 针对特定通道进行参数初始化并启动(使用构造时传入的波特率与终端电阻配置) /// 针对特定通道进行参数初始化并启动(使用构造时传入的波特率与终端电阻配置)
/// 同时为该通道启动专属的后台高性能接收轮询线程。
/// </summary> /// </summary>
/// <param name="通道号">通道索引 (0 起始)</param>
/// <returns>是否初始化并启动成功;通道已启动时重复调用直接返回 true</returns>
/// <exception cref="InvalidOperationException">未先调用“打开设备()”时抛出</exception>
public virtual bool (uint ) public virtual bool (uint )
{ {
_isClosing = false; // 重置关闭标志,允许循环发送 _isClosing = false; // 重置关闭标志,允许循环发送
@@ -157,6 +181,10 @@ namespace ZLGUSBCANFD
} }
} }
/// <summary>
/// 关闭 CAN 卡设备:先停止所有循环发送与接收轮询线程,再复位全部通道、
/// 释放各通道 DBC 资源,最后关闭设备主句柄。
/// </summary>
public virtual void CAN卡设备() public virtual void CAN卡设备()
{ {
_isClosing = true; // 通知循环发送任务尽快退出 _isClosing = true; // 通知循环发送任务尽快退出
@@ -218,8 +246,11 @@ namespace ZLGUSBCANFD
#region 2. DBC #region 2. DBC
/// <summary> /// <summary>
/// 指定通道加载特定的 DBC 文件(支持不同通道加载不同的DBC矩阵) /// 指定通道加载特定的 DBC 文件(支持不同通道加载不同的DBC矩阵)
/// </summary> /// </summary>
/// <param name="通道号">通道索引 (0 起始)</param>
/// <param name="dbcFilePath">DBC 矩阵文件的完整路径</param>
/// <returns>是否加载成功;该通道已加载过则直接返回 true</returns>
public virtual bool DBC文件(uint , string dbcFilePath) public virtual bool DBC文件(uint , string dbcFilePath)
{ {
if ( >= _maxChannels) return false; if ( >= _maxChannels) return false;
@@ -257,6 +288,10 @@ namespace ZLGUSBCANFD
} }
} }
/// <summary>
/// 释放指定通道已加载的 DBC 资源,并清空该通道的报文数据库。
/// </summary>
/// <param name="通道号">通道索引 (0 起始)</param>
public virtual void DBC(uint ) public virtual void DBC(uint )
{ {
if ( >= _maxChannels) return; if ( >= _maxChannels) return;
@@ -269,6 +304,13 @@ namespace ZLGUSBCANFD
_dbcHandles[] = 0; _dbcHandles[] = 0;
_isDbcLoadedArray[] = false; _isDbcLoadedArray[] = false;
DBCParser.MsgDatabase[(int)].Clear(); DBCParser.MsgDatabase[(int)].Clear();
// 同步清理该通道的最新解码报文缓存,避免残留旧信号值
foreach (var key in _latestDecodedMessages.Keys)
{
if (key. == )
_latestDecodedMessages.TryRemove(key, out _);
}
} }
} }
} }
@@ -313,6 +355,8 @@ namespace ZLGUSBCANFD
if (_isDbcLoadedArray[channelIndex] && ZDBC.ZDBC_Decode(_dbcHandles[channelIndex], ptrDbcMsg, framePtr, 1, 0)) if (_isDbcLoadedArray[channelIndex] && ZDBC.ZDBC_Decode(_dbcHandles[channelIndex], ptrDbcMsg, framePtr, 1, 0))
{ {
var msg = (ZDBC.DBCMessage)Marshal.PtrToStructure(ptrDbcMsg, typeof(ZDBC.DBCMessage)); var msg = (ZDBC.DBCMessage)Marshal.PtrToStructure(ptrDbcMsg, typeof(ZDBC.DBCMessage));
// 缓存最新解码报文快照,供 获取报文信号值 查询
_latestDecodedMessages[(channelIndex, msg.nID)] = msg;
OnDbcMessageDecoded?.Invoke(channelIndex, msg); OnDbcMessageDecoded?.Invoke(channelIndex, msg);
} }
} }
@@ -338,6 +382,8 @@ namespace ZLGUSBCANFD
if (_isDbcLoadedArray[channelIndex] && ZDBC.ZDBC_Decode(_dbcHandles[channelIndex], ptrDbcMsg, framePtr, 1, 1)) if (_isDbcLoadedArray[channelIndex] && ZDBC.ZDBC_Decode(_dbcHandles[channelIndex], ptrDbcMsg, framePtr, 1, 1))
{ {
var msg = (ZDBC.DBCMessage)Marshal.PtrToStructure(ptrDbcMsg, typeof(ZDBC.DBCMessage)); var msg = (ZDBC.DBCMessage)Marshal.PtrToStructure(ptrDbcMsg, typeof(ZDBC.DBCMessage));
// 缓存最新解码报文快照,供 获取报文信号值 查询
_latestDecodedMessages[(channelIndex, msg.nID)] = msg;
OnDbcMessageDecoded?.Invoke(channelIndex, msg); OnDbcMessageDecoded?.Invoke(channelIndex, msg);
} }
} }
@@ -442,6 +488,8 @@ namespace ZLGUSBCANFD
/// <summary> /// <summary>
/// 停止指定通道、指定帧 ID 的循环发送。 /// 停止指定通道、指定帧 ID 的循环发送。
/// </summary> /// </summary>
/// <param name="通道号">通道索引 (0 起始)</param>
/// <param name="帧ID">要停止循环发送的报文帧 ID</param>
public virtual void (uint , uint ID) public virtual void (uint , uint ID)
{ {
if (_cyclicSenders.TryRemove((, ID), out var entry)) if (_cyclicSenders.TryRemove((, ID), out var entry))
@@ -452,7 +500,7 @@ namespace ZLGUSBCANFD
} }
/// <summary> /// <summary>
/// 停止所有 DBC 循环发送任务。 /// 停止所有 DBC 循环发送任务,并等待全部发送任务退出(最多 3 秒)
/// </summary> /// </summary>
public virtual void () public virtual void ()
{ {
@@ -486,6 +534,8 @@ namespace ZLGUSBCANFD
/// <summary> /// <summary>
/// 清除指定通道、指定帧 ID 的信号覆盖值,恢复为 DBC 初始值。 /// 清除指定通道、指定帧 ID 的信号覆盖值,恢复为 DBC 初始值。
/// </summary> /// </summary>
/// <param name="通道号">通道索引 (0 起始)</param>
/// <param name="帧ID">要清除覆盖值的报文帧 ID</param>
public virtual void (uint , uint ID) public virtual void (uint , uint ID)
{ {
if (_signalOverrides.TryRemove((, ID), out var dict)) if (_signalOverrides.TryRemove((, ID), out var dict))
@@ -495,8 +545,9 @@ namespace ZLGUSBCANFD
} }
/// <summary> /// <summary>
/// 清除指定通道所有帧的信号覆盖值。 /// 清除指定通道所有帧的信号覆盖值,全部恢复为 DBC 初始值
/// </summary> /// </summary>
/// <param name="通道号">通道索引 (0 起始)</param>
public virtual void (uint ) public virtual void (uint )
{ {
foreach (var key in _signalOverrides.Keys) foreach (var key in _signalOverrides.Keys)
@@ -635,6 +686,7 @@ namespace ZLGUSBCANFD
/// <param name="信号名称">DBC 中定义的英文信号名称(不区分大小写)</param> /// <param name="信号名称">DBC 中定义的英文信号名称(不区分大小写)</param>
/// <param name="物理值">要写入的实际物理数值</param> /// <param name="物理值">要写入的实际物理数值</param>
/// <param name="循环发送间隔毫秒">0 = 单次发送;>0 = 周期循环发送(单位毫秒)</param> /// <param name="循环发送间隔毫秒">0 = 单次发送;>0 = 周期循环发送(单位毫秒)</param>
/// <param name="直接发送">true = 设置后立即发送;false = 仅记录到持久化覆盖表,等后续 发送报文 时生效</param>
/// <returns>操作是否成功</returns> /// <returns>操作是否成功</returns>
public virtual bool (uint , string IDStr, string , double , int = 0, bool = false) public virtual bool (uint , string IDStr, string , double , int = 0, bool = false)
{ {
@@ -670,6 +722,7 @@ namespace ZLGUSBCANFD
/// <param name="帧IDStr">DBC 中定义的帧 ID(可以是 "26"、"0x1A"、"1A"</param> /// <param name="帧IDStr">DBC 中定义的帧 ID(可以是 "26"、"0x1A"、"1A"</param>
/// <param name="循环发送间隔毫秒">0 = 单次发送;>0 = 周期循环发送(毫秒)</param> /// <param name="循环发送间隔毫秒">0 = 单次发送;>0 = 周期循环发送(毫秒)</param>
/// <param name="是否使用CANFD">1 = 以 CANFD 格式发送;0 = 经典 CAN 格式</param> /// <param name="是否使用CANFD">1 = 以 CANFD 格式发送;0 = 经典 CAN 格式</param>
/// <returns>是否成功启动/发送</returns>
public virtual bool (uint , string IDStr, int = 0, int 使CANFD = 1) public virtual bool (uint , string IDStr, int = 0, int 使CANFD = 1)
{ {
if (!TryParseFrameId(IDStr, out uint ID)) if (!TryParseFrameId(IDStr, out uint ID))
@@ -698,6 +751,7 @@ namespace ZLGUSBCANFD
/// <param name="是否是CANFD">true = CANFDfalse = 经典 CAN</param> /// <param name="是否是CANFD">true = CANFDfalse = 经典 CAN</param>
/// <param name="开启波特率加速BRS">CANFD 是否开启波特率加速</param> /// <param name="开启波特率加速BRS">CANFD 是否开启波特率加速</param>
/// <param name="循环发送间隔毫秒">0 = 单次发送;>0 = 周期循环发送(毫秒)</param> /// <param name="循环发送间隔毫秒">0 = 单次发送;>0 = 周期循环发送(毫秒)</param>
/// <returns>是否成功启动/发送</returns>
public virtual bool ( public virtual bool (
uint , uint ,
string IDStr, string IDStr,
@@ -984,11 +1038,73 @@ namespace ZLGUSBCANFD
#endregion #endregion
#region 5. #region 4.2
/// <summary> /// <summary>
/// 计算物理值也需要传入对应通道,使用通道专属的DBC句柄进行计算 /// 获取指定通道最新一帧 DBC 报文中某个信号的物理值(帧 ID 支持 string 兼容模式)。
/// <para>
/// 返回值为最近一次接收并解码成功的报文快照:物理值 = 原始值 × 因子 + 偏移,
/// 与监控界面广播的数值口径一致。若报文尚未收到、DBC 未加载、报文或信号名称不存在,
/// 将记录错误日志并返回 0。
/// </para>
/// </summary> /// </summary>
/// <param name="通道号">CAN/CANFD 通道索引</param>
/// <param name="帧IDStr">对应报文的帧 ID(可以是 "26"、"0x1A"、"1A"</param>
/// <param name="信号名称">DBC 中定义的英文信号名称(不区分大小写)</param>
/// <returns>信号物理值;失败时返回 0</returns>
public virtual double (uint , string IDStr, string )
{
if (!TryParseFrameId(IDStr, out uint ID))
{
LoggerHelper.Error($"[ZLGCANFD] 获取报文信号值失败: 无法解析的帧 ID '{帧IDStr}'");
return 0;
}
if ( >= _maxChannels)
{
LoggerHelper.Error($"[ZLGCANFD] 获取报文信号值失败: 通道号 {通道号} 越界(有效范围 0~{_maxChannels - 1}");
return 0;
}
if (!_isDbcLoadedArray[])
{
LoggerHelper.Error($"[ZLGCANFD] 获取报文信号值失败: 通道 {通道号} 尚未加载 DBC 文件");
return 0;
}
if (string.IsNullOrWhiteSpace())
{
LoggerHelper.Error("[ZLGCANFD] 获取报文信号值失败: 信号名称为空");
return 0;
}
// 查找该通道该帧 ID 最近一次解码成功的报文快照
if (!_latestDecodedMessages.TryGetValue((, ID), out var msg))
{
LoggerHelper.Error($"[ZLGCANFD] 获取报文信号值失败: 通道 {通道号} 未收到帧 ID 0x{帧ID:X} 的报文(尚未接收或 DBC 中无此报文)");
return 0;
}
// 在报文信号集合中查找目标信号(不区分大小写,与 设置报文 的信号匹配口径一致)
for (int i = 0; i < msg.nSignalCount; i++)
{
var signal = msg.vSignals[i];
string name = Encoding.Default.GetString(signal.strName).TrimEnd('\0');
if (string.Equals(name, , StringComparison.OrdinalIgnoreCase))
{
// 物理值 = 原始值 × 因子 + 偏移(与 CANSignalBroadcaster 广播公式一致)
return signal.nRawvalue * signal.nFactor + signal.nOffset;
}
}
LoggerHelper.Error($"[ZLGCANFD] 获取报文信号值失败: 帧 ID 0x{帧ID:X} 的报文中不存在信号 '{信号名称}'");
return 0;
}
#endregion
#region 5.
/// <summary> /// <summary>
/// 智能解析帧 ID 字符串,兼容 10 进制、16 进制(如 "0x1A", "1A", "26" /// 智能解析帧 ID 字符串,兼容 10 进制、16 进制(如 "0x1A", "1A", "26"
/// </summary> /// </summary>
+1
View File
@@ -4,6 +4,7 @@
<TargetFramework>net8.0</TargetFramework> <TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
-729
View File
@@ -1,729 +0,0 @@
"""
ADP 测试项 (.adp) 文件生成器
根据 ADP 电路图设备拓扑自动生成电性能测试项文件
"""
import json
import uuid
import os
OUTPUT_DIR = r"D:\ADP\子程序"
# ============================================================
# 设备ID - 全部设为null,在ADP软件中配置实际设备后自动匹配
# ============================================================
# CancellationToken 类型
CT_TYPE = "System.Threading.CancellationToken, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e"
def uid():
return str(uuid.uuid4())
def make_param(name, type_str, value, category=0, is_save=False, is_output=False):
"""创建参数对象"""
return {
"ID": uid(),
"IsVisible": True,
"Name": name,
"Type": type_str,
"Category": category,
"IsGlobal": False,
"InitialValue": None,
"Value": value,
"LowerLimit": None,
"UpperLimit": None,
"Result": True,
"IsUseVar": False,
"IsSave": is_save,
"VariableName": None,
"VariableID": None,
"IsOutputToReport": is_output
}
def make_ct_param():
return make_param("ct", CT_TYPE, None)
def make_result_param(name="Result", type_str="System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", value=""):
return make_param(name, type_str, value, category=1, is_save=True, is_output=True)
def make_method_step(name, method_name, full_name, device_id, params, is_used=True, description=None):
"""创建方法步骤"""
return {
"ID": uid(),
"IsUsed": is_used,
"Index": 0, # Will be set later
"Name": name,
"StepType": "方法",
"Method": {
"Name": method_name,
"FullName": full_name,
"DeviceID": device_id,
"Parameters": params
},
"SubProgram": None,
"LoopCount": None,
"LoopStartStepId": None,
"OKExpression": None,
"GotoSettingString": "",
"OKGotoStepID": None,
"NGGotoStepID": None,
"Description": description
}
def make_delay_step(seconds, name=None, is_used=True):
"""创建延时步骤"""
return make_method_step(
name or f"延时{seconds}",
"Delay_s",
"Command.Delay",
None,
[
make_param("second", "System.Single, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", str(seconds)),
make_ct_param()
],
is_used=is_used
)
def make_loop_start(count, name="循环开始", is_used=True):
"""创建循环开始步骤"""
return {
"ID": uid(),
"IsUsed": is_used,
"Index": 0,
"Name": name,
"StepType": "循环开始",
"Method": {
"Name": None,
"FullName": None,
"DeviceID": None,
"Parameters": [
make_param("循环次数", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", None)
]
},
"SubProgram": None,
"LoopCount": count,
"LoopStartStepId": None,
"OKExpression": None,
"GotoSettingString": "",
"OKGotoStepID": None,
"NGGotoStepID": None,
"Description": None
}
def make_loop_end(loop_start_step, name="循环结束", is_used=True):
"""创建循环结束步骤"""
return {
"ID": uid(),
"IsUsed": is_used,
"Index": 0,
"Name": name,
"StepType": "循环结束",
"Method": None,
"SubProgram": None,
"LoopCount": None,
"LoopStartStepId": loop_start_step["ID"],
"OKExpression": None,
"GotoSettingString": "",
"OKGotoStepID": None,
"NGGotoStepID": None,
"Description": None
}
def set_indices(steps):
"""设置步骤索引"""
for i, step in enumerate(steps):
step["Index"] = i + 1
return steps
def make_program(steps, parameters=None, devices=None):
"""创建完整的程序文件"""
return {
"ID": uid(),
"StepCollection": set_indices(steps),
"Parameters": parameters or [],
"Devices": devices or []
}
# ============================================================
# 1. 设备初始化
# ============================================================
def gen_device_init():
steps = []
# --- IT7800E 交流源初始化 ---
steps.append(make_method_step("交流源-重置设备", "重置设备", "DeviceCommand.Devices.IT7800E", None, [make_ct_param()]))
steps.append(make_method_step("交流源-清除错误", "清除错误队列和状态字节", "DeviceCommand.Devices.IT7800E", None, [make_ct_param()]))
steps.append(make_method_step("交流源-查询设备标识", "查询设备标识", "DeviceCommand.Devices.IT7800E", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("交流源-切换远程控制", "切换远程控制模式", "DeviceCommand.Devices.IT7800E", None, [make_ct_param()]))
steps.append(make_method_step("交流源-设置AC模式", "设置电源模式", "DeviceCommand.Devices.IT7800E", None, [
make_param("模式", "DeviceCommand.Devices.PowerCouplingMode, DeviceCommand", "AC"),
make_ct_param()
]))
steps.append(make_method_step("交流源-关闭输出", "设置DC输出", "DeviceCommand.Devices.IT7800E", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒"))
# --- N69200 高压直流负载初始化 ---
steps.append(make_method_step("高压负载-重置设备", "重置设备", "DeviceCommand.Devices.N69200", None, [make_ct_param()]))
steps.append(make_method_step("高压负载-清除错误", "清除错误队列和状态字节", "DeviceCommand.Devices.N69200", None, [make_ct_param()]))
steps.append(make_method_step("高压负载-查询设备标识", "查询设备标识", "DeviceCommand.Devices.N69200", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("高压负载-关闭输入", "设置DC输入", "DeviceCommand.Devices.N69200", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]))
steps.append(make_method_step("高压负载-设置CC模式", "设置负载模式", "DeviceCommand.Devices.N69200", None, [
make_param("模式", "DeviceCommand.Devices.N69200+DeviceWorkMode, DeviceCommand", "CC"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒"))
# --- SPAW7000 功率分析仪初始化 ---
steps.append(make_method_step("功率分析仪-重置设备", "重置设备", "DeviceCommand.Devices.SPAW7000", None, [make_ct_param()]))
steps.append(make_method_step("功率分析仪-清除错误", "清除错误队列和状态字节", "DeviceCommand.Devices.SPAW7000", None, [make_ct_param()]))
steps.append(make_method_step("功率分析仪-查询设备标识", "查询设备标识", "DeviceCommand.Devices.SPAW7000", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("功率分析仪-设置电压量程300V", "设置电压量程", "DeviceCommand.Devices.SPAW7000", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_param("range", "DeviceCommand.Devices.SPAW7000+VoltageRange, DeviceCommand", "V_300"),
make_ct_param()
]))
steps.append(make_method_step("功率分析仪-设置电流量程10A", "设置电流量程", "DeviceCommand.Devices.SPAW7000", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_param("range", "DeviceCommand.Devices.SPAW7000+CurrentRange, DeviceCommand", "A_10"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒"))
# --- SDS2000X_HD 示波器初始化 ---
steps.append(make_method_step("示波器-重置设备", "重置设备", "DeviceCommand.Devices.SDS2000X_HD", None, [make_ct_param()]))
steps.append(make_method_step("示波器-清除状态", "清除状态", "DeviceCommand.Devices.SDS2000X_HD", None, [make_ct_param()]))
steps.append(make_method_step("示波器-查询设备标识", "查询设备标识", "DeviceCommand.Devices.SDS2000X_HD", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("示波器-开启CH1", "设置通道开关", "DeviceCommand.Devices.SDS2000X_HD", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_param("enable", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]))
steps.append(make_method_step("示波器-设置触发模式AUTO", "设置触发模式", "DeviceCommand.Devices.SDS2000X_HD", None, [
make_param("mode", "DeviceCommand.Devices.SDS2000X_HD+TriggerMode, DeviceCommand", "AUTO"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒"))
# --- N36600 低压直流电源初始化 ---
steps.append(make_method_step("低压电源-设置电压12V", "设置电压", "DeviceCommand.Devices.N36600", None, [
make_param("电压", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "12.000"),
make_ct_param()
]))
steps.append(make_method_step("低压电源-设置电流2A", "设置电流", "DeviceCommand.Devices.N36600", None, [
make_param("电流", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "2.000"),
make_ct_param()
]))
steps.append(make_method_step("低压电源-关闭输出", "设置DC输出", "DeviceCommand.Devices.N36600", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒-等待设备就绪"))
return make_program(steps)
# ============================================================
# 2. IO板卡测试
# ============================================================
def gen_io_test():
steps = []
# 测试8个工位的IO控制
for station in range(1, 9):
# 单相充电-开启
steps.append(make_method_step(
f"{station}#工位-单相充电开启",
"执行台架动作Async",
"DeviceCommand.Devices.IOBoardGroup",
None, # IOBoardGroup 无DeviceID(组合设备)
[
make_param("台架序号", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", str(station)),
make_param("动作", "DeviceCommand.Devices.功能动作, DeviceCommand", "单相充电"),
make_param("开关状态", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]
))
steps.append(make_delay_step(0.5, f"延时0.5秒"))
# 单相充电-关闭
steps.append(make_method_step(
f"{station}#工位-单相充电关闭",
"执行台架动作Async",
"DeviceCommand.Devices.IOBoardGroup",
None,
[
make_param("台架序号", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", str(station)),
make_param("动作", "DeviceCommand.Devices.功能动作, DeviceCommand", "单相充电"),
make_param("开关状态", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]
))
steps.append(make_delay_step(0.5, f"延时0.5秒"))
# 抛负载-开启
steps.append(make_method_step(
f"{station}#工位-抛负载开启",
"执行台架动作Async",
"DeviceCommand.Devices.IOBoardGroup",
None,
[
make_param("台架序号", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", str(station)),
make_param("动作", "DeviceCommand.Devices.功能动作, DeviceCommand", "抛负载"),
make_param("开关状态", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]
))
steps.append(make_delay_step(0.5, f"延时0.5秒"))
# 抛负载-关闭
steps.append(make_method_step(
f"{station}#工位-抛负载关闭",
"执行台架动作Async",
"DeviceCommand.Devices.IOBoardGroup",
None,
[
make_param("台架序号", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", str(station)),
make_param("动作", "DeviceCommand.Devices.功能动作, DeviceCommand", "抛负载"),
make_param("开关状态", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]
))
steps.append(make_delay_step(0.5, f"延时0.5秒"))
# 短路测试-开启
steps.append(make_method_step(
f"{station}#工位-短路测试开启",
"执行台架动作Async",
"DeviceCommand.Devices.IOBoardGroup",
None,
[
make_param("台架序号", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", str(station)),
make_param("动作", "DeviceCommand.Devices.功能动作, DeviceCommand", "短路测试"),
make_param("开关状态", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]
))
steps.append(make_delay_step(0.5, f"延时0.5秒"))
# 短路测试-关闭
steps.append(make_method_step(
f"{station}#工位-短路测试关闭",
"执行台架动作Async",
"DeviceCommand.Devices.IOBoardGroup",
None,
[
make_param("台架序号", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", str(station)),
make_param("动作", "DeviceCommand.Devices.功能动作, DeviceCommand", "短路测试"),
make_param("开关状态", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]
))
steps.append(make_delay_step(0.5, f"延时0.5秒"))
# 蜂鸣器测试
for station in range(1, 9):
steps.append(make_method_step(
f"{station}#工位-蜂鸣器开启",
"执行台架动作Async",
"DeviceCommand.Devices.IOBoardGroup",
None,
[
make_param("台架序号", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", str(station)),
make_param("动作", "DeviceCommand.Devices.功能动作, DeviceCommand", "蜂鸣器报警"),
make_param("开关状态", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]
))
steps.append(make_delay_step(2, "蜂鸣器响2秒"))
for station in range(1, 9):
steps.append(make_method_step(
f"{station}#工位-蜂鸣器关闭",
"执行台架动作Async",
"DeviceCommand.Devices.IOBoardGroup",
None,
[
make_param("台架序号", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", str(station)),
make_param("动作", "DeviceCommand.Devices.功能动作, DeviceCommand", "蜂鸣器报警"),
make_param("开关状态", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]
))
return make_program(steps)
# ============================================================
# 3. 低压直流电源测试 (N36600)
# ============================================================
def gen_lv_dc_test():
steps = []
# 输出电压精度测试 - 多个电压点
test_voltages = [5.0, 12.0, 24.0, 36.0, 48.0]
for v in test_voltages:
steps.append(make_method_step(f"设置输出电压{v}V", "设置电压", "DeviceCommand.Devices.N36600", None, [
make_param("电压", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", f"{v:.3f}"),
make_ct_param()
]))
steps.append(make_method_step(f"开启输出", "设置DC输出", "DeviceCommand.Devices.N36600", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]))
steps.append(make_delay_step(2, f"延时2秒-稳定"))
# 读取实际电压
step_v = make_method_step(f"读取实际电压", "查询实际电压", "DeviceCommand.Devices.N36600", None, [
make_ct_param(),
make_result_param("Result", value="")
])
steps.append(step_v)
# 读取实际电流
steps.append(make_method_step(f"读取实际电流", "查询实际电流", "DeviceCommand.Devices.N36600", None, [
make_ct_param(),
make_result_param("Result", value="")
]))
# 读取实际功率
steps.append(make_method_step(f"读取实际功率", "查询实际功率", "DeviceCommand.Devices.N36600", None, [
make_ct_param(),
make_result_param("Result", value="")
]))
steps.append(make_method_step(f"关闭输出", "设置DC输出", "DeviceCommand.Devices.N36600", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒"))
return make_program(steps)
# ============================================================
# 4. 交流电源测试 (IT7800E)
# ============================================================
def gen_ac_source_test():
steps = []
# 交流输入源测试 - 设置不同电压和频率
test_configs = [
(110, 50), (220, 50), (220, 60), (230, 50), (240, 60)
]
for voltage, freq in test_configs:
steps.append(make_method_step(f"设置交流电压{voltage}V 频率{freq}Hz", "设置电源模式", "DeviceCommand.Devices.IT7800E", None, [
make_param("模式", "DeviceCommand.Devices.PowerCouplingMode, DeviceCommand", "AC"),
make_ct_param()
]))
steps.append(make_method_step(f"设置电压{voltage}V", "设置交流电压", "DeviceCommand.Devices.IT7800E", None, [
make_param("电压", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", f"{voltage:.2f}"),
make_ct_param()
]))
steps.append(make_method_step(f"设置频率{freq}Hz", "设置频率", "DeviceCommand.Devices.IT7800E", None, [
make_param("频率", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", f"{freq:.2f}"),
make_ct_param()
]))
steps.append(make_method_step("开启交流输出", "设置DC输出", "DeviceCommand.Devices.IT7800E", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]))
steps.append(make_delay_step(3, "延时3秒-稳定"))
# 测量
steps.append(make_method_step("查询实际电压", "查询实际电压", "DeviceCommand.Devices.IT7800E", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("查询实际电流", "查询实际电流", "DeviceCommand.Devices.IT7800E", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("查询实际功率", "查询实际功率", "DeviceCommand.Devices.IT7800E", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("查询实际频率", "查询实际频率", "DeviceCommand.Devices.IT7800E", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("查询功率因数", "查询功率因数", "DeviceCommand.Devices.IT7800E", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("关闭交流输出", "设置DC输出", "DeviceCommand.Devices.IT7800E", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]))
steps.append(make_delay_step(2, "延时2秒"))
return make_program(steps)
# ============================================================
# 5. 效率测试 (SPAW7000 + N69200)
# ============================================================
def gen_efficiency_test():
steps = []
# 效率测试流程:
# 1. 交流源供电给DUT
# 2. DUT输出到高压直流负载
# 3. 功率分析仪测量输入/输出功率
# 4. 计算效率 = 输出功率/输入功率
# 设置功率分析仪通道
steps.append(make_method_step("功率分析仪-设置通道1电压量程", "设置电压量程", "DeviceCommand.Devices.SPAW7000", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_param("range", "DeviceCommand.Devices.SPAW7000+VoltageRange, DeviceCommand", "V_300"),
make_ct_param()
]))
steps.append(make_method_step("功率分析仪-设置通道1电流量程", "设置电流量程", "DeviceCommand.Devices.SPAW7000", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_param("range", "DeviceCommand.Devices.SPAW7000+CurrentRange, DeviceCommand", "A_10"),
make_ct_param()
]))
# 设置负载为CC模式
steps.append(make_method_step("高压负载-设置CC模式", "设置负载模式", "DeviceCommand.Devices.N69200", None, [
make_param("模式", "DeviceCommand.Devices.N69200+DeviceWorkMode, DeviceCommand", "CC"),
make_ct_param()
]))
# 不同功率点效率测试
load_currents = [1.0, 2.0, 5.0, 10.0, 15.0, 20.0]
for current in load_currents:
steps.append(make_method_step(f"设置负载电流{current}A", "设置恒电流CC", "DeviceCommand.Devices.N69200", None, [
make_param("电流", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", f"{current:.4f}"),
make_ct_param()
]))
steps.append(make_method_step("高压负载-开启输入", "设置DC输入", "DeviceCommand.Devices.N69200", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]))
steps.append(make_delay_step(3, "延时3秒-稳定"))
# 功率分析仪读取输入功率
steps.append(make_method_step("读取输入电压", "查询实际电压", "DeviceCommand.Devices.SPAW7000", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_ct_param()
]))
steps.append(make_method_step("读取输入电流", "查询实际电流", "DeviceCommand.Devices.SPAW7000", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_ct_param()
]))
steps.append(make_method_step("读取输入功率", "查询实际功率", "DeviceCommand.Devices.SPAW7000", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_ct_param()
]))
# 高压负载读取输出功率
steps.append(make_method_step("读取输出电压", "查询实际电压", "DeviceCommand.Devices.N69200", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("读取输出电流", "查询实际电流", "DeviceCommand.Devices.N69200", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("读取输出功率", "查询实际功率", "DeviceCommand.Devices.N69200", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("高压负载-关闭输入", "设置DC输入", "DeviceCommand.Devices.N69200", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒"))
return make_program(steps)
# ============================================================
# 6. 纹波测试 (SDS2000X_HD)
# ============================================================
def gen_ripple_test():
steps = []
# 纹波测试:用示波器测量DUT输出的电压纹波
# 示波器CH1连接到DUT输出端
# 示波器设置
steps.append(make_method_step("示波器-开启CH1", "设置通道开关", "DeviceCommand.Devices.SDS2000X_HD", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_param("enable", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]))
steps.append(make_method_step("示波器-设置CH1电压档位50mV", "设置通道电压档位", "DeviceCommand.Devices.SDS2000X_HD", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_param("volts", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "0.0500"),
make_ct_param()
]))
steps.append(make_method_step("示波器-设置触发模式AUTO", "设置触发模式", "DeviceCommand.Devices.SDS2000X_HD", None, [
make_param("mode", "DeviceCommand.Devices.SDS2000X_HD+TriggerMode, DeviceCommand", "AUTO"),
make_ct_param()
]))
steps.append(make_method_step("示波器-设置水平时基", "设置水平时基", "DeviceCommand.Devices.SDS2000X_HD", None, [
make_param("scale", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "0.000010"),
make_ct_param()
]))
# 设置负载并测量纹波
load_currents = [1.0, 5.0, 10.0, 15.0, 20.0]
for current in load_currents:
steps.append(make_method_step(f"设置负载电流{current}A", "设置恒电流CC", "DeviceCommand.Devices.N69200", None, [
make_param("电流", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", f"{current:.4f}"),
make_ct_param()
]))
steps.append(make_method_step("高压负载-开启输入", "设置DC输入", "DeviceCommand.Devices.N69200", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]))
steps.append(make_delay_step(3, "延时3秒-波形稳定"))
# 测量纹波
steps.append(make_method_step("测量CH1电压峰峰值", "查询实际电压峰峰值", "DeviceCommand.Devices.SDS2000X_HD", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_ct_param()
]))
steps.append(make_method_step("测量CH1电压RMS", "查询实际电压均方根", "DeviceCommand.Devices.SDS2000X_HD", None, [
make_param("channel", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "1"),
make_ct_param()
]))
# 截图保存
steps.append(make_method_step(f"保存波形截图-{current}A", "获取屏幕图像并保存", "DeviceCommand.Devices.SDS2000X_HD", None, [
make_param("saveFilePath", "System.String, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", f"D:\\ADP\\纹波截图\\{current}A_纹波.png"),
make_ct_param()
]))
steps.append(make_method_step("高压负载-关闭输入", "设置DC输入", "DeviceCommand.Devices.N69200", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒"))
return make_program(steps)
# ============================================================
# 7. 保护测试 (N36600 OVP/OCP + N69200)
# ============================================================
def gen_protection_test():
steps = []
# === 低压电源OVP测试 ===
steps.append(make_method_step("低压电源-设置OVP阈值", "设置过压保护值", "DeviceCommand.Devices.N36600", None, [
make_param("电压", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "60.000"),
make_ct_param()
]))
steps.append(make_method_step("低压电源-使能OVP", "设置电压保护使能", "DeviceCommand.Devices.N36600", None, [
make_param("启用", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]))
# === 低压电源OCP测试 ===
steps.append(make_method_step("低压电源-设置OCP阈值", "设置过流保护值", "DeviceCommand.Devices.N36600", None, [
make_param("电流", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "10.000"),
make_ct_param()
]))
steps.append(make_method_step("低压电源-使能OCP", "设置电流保护使能", "DeviceCommand.Devices.N36600", None, [
make_param("启用", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "true"),
make_ct_param()
]))
# === 高压负载OVP测试 ===
steps.append(make_method_step("高压负载-设置OVP阈值", "设置过压保护值_OVP", "DeviceCommand.Devices.N69200", None, [
make_param("电压", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "500.000"),
make_ct_param()
]))
# === 高压负载OCP测试 ===
steps.append(make_method_step("高压负载-设置OCP阈值", "设置过流保护值_OCP", "DeviceCommand.Devices.N69200", None, [
make_param("电流", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "30.000"),
make_ct_param()
]))
# === 高压负载OPP测试 ===
steps.append(make_method_step("高压负载-设置OPP阈值", "设置过功率保护值_OPP", "DeviceCommand.Devices.N69200", None, [
make_param("功率", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "5000.000"),
make_ct_param()
]))
# === 交流源OVP设置 ===
steps.append(make_method_step("交流源-设置OVP阈值", "设置过压保护_OVP", "DeviceCommand.Devices.IT7800E", None, [
make_param("电压", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "280.00"),
make_ct_param()
]))
# === 交流源OCP设置 ===
steps.append(make_method_step("交流源-设置OCP阈值", "设置过流保护_OCP", "DeviceCommand.Devices.IT7800E", None, [
make_param("电流", "System.Double, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "30.000"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒-保护参数设置完成"))
# 查询所有保护状态确认
steps.append(make_method_step("低压电源-查询错误信息", "查询错误信息", "DeviceCommand.Devices.N36600", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("高压负载-查询报警事件", "查询报警事件信息", "DeviceCommand.Devices.N69200", None, [make_ct_param(), make_result_param()]))
steps.append(make_method_step("交流源-查询错误信息", "查询错误信息", "DeviceCommand.Devices.IT7800E", None, [make_ct_param(), make_result_param()]))
return make_program(steps)
# ============================================================
# 8. 设备关机
# ============================================================
def gen_shutdown():
steps = []
# 安全关机流程:先关负载,再关电源
# 关闭高压直流负载
steps.append(make_method_step("高压负载-关闭输入", "设置DC输入", "DeviceCommand.Devices.N69200", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒"))
# 关闭交流源
steps.append(make_method_step("交流源-关闭输出", "设置DC输出", "DeviceCommand.Devices.IT7800E", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒"))
# 关闭低压直流电源
steps.append(make_method_step("低压电源-关闭输出", "设置DC输出", "DeviceCommand.Devices.N36600", None, [
make_param("开启", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]))
steps.append(make_delay_step(1, "延时1秒"))
# 关闭所有工位继电器
for station in range(1, 9):
for action in ["单相充电", "抛负载", "短路测试"]:
steps.append(make_method_step(
f"{station}#工位-关闭{action}",
"执行台架动作Async",
"DeviceCommand.Devices.IOBoardGroup",
None,
[
make_param("台架序号", "System.Int32, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", str(station)),
make_param("动作", "DeviceCommand.Devices.功能动作, DeviceCommand", action),
make_param("开关状态", "System.Boolean, System.Private.CoreLib, Version=8.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e", "false"),
make_ct_param()
]
))
# 设备切换本地模式
steps.append(make_method_step("交流源-切换本地模式", "切换本地控制模式", "DeviceCommand.Devices.IT7800E", None, [make_ct_param()]))
steps.append(make_method_step("低压电源-切换本地模式", "切换本地控制模式", "DeviceCommand.Devices.N36600", None, [make_ct_param()]))
steps.append(make_delay_step(2, "延时2秒-关机完成"))
return make_program(steps)
# ============================================================
# 主生成逻辑
# ============================================================
if __name__ == "__main__":
os.makedirs(OUTPUT_DIR, exist_ok=True)
files = {
"01-设备初始化.adp": gen_device_init,
"02-IO板卡测试.adp": gen_io_test,
"03-低压直流电源测试.adp": gen_lv_dc_test,
"04-交流电源测试.adp": gen_ac_source_test,
"05-效率测试.adp": gen_efficiency_test,
"06-纹波测试.adp": gen_ripple_test,
"07-保护测试.adp": gen_protection_test,
"08-设备关机.adp": gen_shutdown,
}
for filename, gen_func in files.items():
filepath = os.path.join(OUTPUT_DIR, filename)
data = gen_func()
with open(filepath, 'w', encoding='utf-8') as f:
json.dump(data, f, ensure_ascii=False, indent=4)
step_count = len(data["StepCollection"])
print(f"[OK] {filename} ({step_count} steps)")
print(f"\nAll files generated in: {OUTPUT_DIR}")