跳到主要内容

参考案例

Darra PnSlave 周期 IO 的主路径是本机 Connect()(无主机参数)映射过程映像。Connect(host) 走 HTTP,是备用,不要当主例。

产品处于内测阶段。行业场景案例仍在收集;下面是当前可跑通的最小用法。

主例:Connect() → Start → 写 I → 读 Q → Stop

C# 为基准(6 语言语义一致)。Connect() 不传 host、不探测 HTTP;Start() 映射过程映像后直接读写。

using DarraPnet.Pnet;

// 1. 本机实时主路径(无 host)
using (DarraPnet device = DarraPnet.Connect())
{
// 2. 启动:映射过程映像
if (device.Start() != PnetErrorCode.Success)
{
Console.WriteLine("启动失败: " + device.LastServiceError);
return;
}

// 3. 写 I(设备 → 控制器)。应用生产数据,控制器周期读取。
device.WriteBool("I0.0", true);
device.WriteInt16("IW2", 0x1234);

// 4. 读 Q(控制器 → 设备)。应用消费数据;Q 区只读,不要 Write*。
device.ReadInt16("QW0", out short cmd);
device.ReadBool("Q0.0", out bool startCmd);

// 5. 主站仍在连时不要 Stop(会撕 AR)。确认已断开后再停。
if (!device.Connected)
device.Stop();
}
步骤调用说明
连接Connect()本机过程映像主路径;不要写成 Connect("127.0.0.1")
启动Start()映射过程映像;已映射则幂等
写 IWriteBool / WriteInt16I 区 = 设备 → 控制器
读 QReadBool / ReadInt16Q 区 = 控制器 → 设备,只读
停止Stop()仅主站未连时调用;Dispose 同样守这条

写 I 之后 Q 不一定变:前 4 字节回写是主站行为,从站不会把 I 抄回 Q。详见 FAQ

备用:WebAPI GET / POST /api/io

HTTP 固定端口 18840(仅 127.0.0.1)。给 GUI / 诊断 / 没有走 Connect() 时用,不是周期 IO 主力,也不是硬实时口。

POST /api/io 写入的是 I 区(设备 → 控制器)。GET /api/io 里:

  • outputHex = I 区影子(刚写下的值)
  • inputHex = Q 区(控制器 → 设备,只读)

看主站有没有同步,只看 inputHex 变没变,不要把 outputHex 当通过门。

# 读过程映像快照(Q = inputHex,I = outputHex)
Invoke-RestMethod http://127.0.0.1:18840/api/io

# 写 I:offset 为 I 区字节偏移,data 为偶数长度十六进制
Invoke-RestMethod http://127.0.0.1:18840/api/io -Method POST -ContentType 'application/json' -Body '{"offset":0,"data":"80000000"}'
GET /api/io HTTP/1.1
Host: 127.0.0.1:18840
{
"epoch": 12,
"inputHex": "",
"inputLength": 16,
"outputHex": "80000000",
"outputLength": 16,
"formatVersion": 1
}
POST /api/io HTTP/1.1
Host: 127.0.0.1:18840
Content-Type: application/json

{"offset":0,"data":"80000000"}
{ "ok": true, "offset": 0, "length": 4 }

主站仍在连(GET /api/statusconnected=true)时,不要 POST /api/stop

其它起步资料

资料说明入口
快速开始(5 步跑通)装驱动 → 启服务 → GUI 生成 GSDML → TIA 导入 → IO 读写快速开始
仓库样例 basic-slave运行配置 XML + 本机过程映像路径GitHub 仓库 样例\basic-slave
本地自连对测双物理网卡自连 + PRONETA / Wireshark常见问题
TIA Portal 导入指南GSDML 导入步骤 + 常见警告TIA Portal 导入指南

欢迎内测用户提交自己的应用案例(技术交流群 / 仓库 Issue)。

相关