api.log(text)向软件日志面板输出信息。
api.log("case started")
适用于输出启动信息、参数、运行状态和异常提示。
api.sleep(seconds)执行可中断等待。脚本收到停止请求时,可提前结束等待。
api.sleep(0.1)
主循环中必须设置合理等待时间,避免 CPU 占用过高或控制命令发送过快。
api.should_stop() -> bool查询用户是否发出停止请求。
while not api.should_stop():
api.node[1].p = 10.0
api.sleep(0.1)
推荐优先使用 loop(interval_sec),其内部已包含停止检测和周期控制。
节点编号通过 api.node[node] 指定。
api.node[1].p = 20.0
api.node[2].v = 20.0
api.node[3].i = 1.0
| 接口 | 说明 |
|---|---|
api.node[node].p = value |
设置节点功率 |
api.node[node].v = value |
设置节点电压 |
api.node[node].i = value |
设置节点电流 |
api.node[node].shutdown() |
下发节点关机指令 |
也可使用函数式写法:
api.set_node_p(1, 20.0)
api.set_node_v(2, 20.0)
api.set_node_i(3, 1.0)
属性写法更适合新脚本,函数式写法主要用于兼容已有程序。
api.node[1].step_p(
current=0.0,
target=20.0,
steps=20,
step_seconds=0.1
)
常用接口:
api.node[node].step(...)api.node[node].step_p(...)api.node[node].step_v(...)api.node[node].step_i(...)分步控制适合软启动、功率缓升、目标切换和减少瞬时冲击。
广播接口用于向多个可接收广播命令的节点下发相同设定值。
api.set_broadcast_p(10.0)
api.set_broadcast_v(20.0)
api.set_broadcast_i(1.0)
广播控制应谨慎使用。若不同节点角色或限值不同,优先采用单节点控制。
data = api.node[1].get_data()
if data is not None:
voltage = data.get("v1")
current = data.get("i1")
power = data.get("p1")
v1 = api.node[1].get_data("v1")
values = api.node[1].get_data(["v1", "i1", "p1"])
if values is not None:
v1, i1, p1 = values
| 接口 | 说明 |
|---|---|
api.node[node].get_data() |
读取节点最新完整数据 |
api.node[node].get_data("v1") |
读取单个字段 |
api.node[node].get_data(["v1","i1"]) |
读取多个字段 |
api.get_node_data(node, timeout_s=0) |
函数式读取接口 |
api.get_latest_node(node, timeout_s=0.3) |
兼容读取接口 |
典型返回字段包括:
nodeonlinetimestampv1、i1、p1v2、i2、p2rawStatusMode、RunMode、Fault新脚本建议优先使用 v1、i1 和 p1,避免通道含义不明确。
timeout <= 0:立即返回缓存值,无缓存时返回 None。timeout > 0:最多等待指定时间获取新数据。data = api.node[1].get_data(timeout=0.3)
不要写成 get_data(0.3),因为第一个位置参数用于字段名。
api.datarecord.start()
# 运行控制逻辑
api.datarecord.stop()
该接口用于启停软件内置 Data Record 功能。建议使用 try/finally 保证脚本异常时仍能停止记录。
| 接口 | 作用 |
|---|---|
api.to_seconds_series(df, time_col) |
将时间列解析为秒 |
api.to_relative_time(df, time_col, speedup=1.0) |
转换为相对时间并支持加速 |
api.replay_relative_schedule(...) |
按相对时间回放控制事件 |
适用于 CSV 负荷曲线、PV 曲线和测试轨迹回放。
df = api.to_relative_time(
df,
time_col="timestamp",
speedup=2.0,
out_col="relative_s"
)
None 时不要直接参与运算。