3.8 KiB
3.8 KiB
Built-in APIs / API Tích hợp Sẵn
📋 Overview / Tổng quan
Các APIs có sẵn trong tất cả scripts mà không cần import hoặc khai báo.
📝 Logger API
Logger.Info("Informational message");
Logger.Warning("Warning message");
Logger.Error("Error message");
🎯 Mission Management APIs
// Create mission
Guid missionId = CreateMission("DeliverPackage",
fromLocation: "A1",
toLocation: "B2");
// Cancel mission
CancelMission(missionId);
⚙️ Task Control APIs
EnableTask("MonitoringTask"); // Resume task - chuyển từ Paused → Running
DisableTask("MaintenanceTask"); // Pause task - chuyển từ Running → Paused
Lưu ý:
EnableTask/DisableTasklà API level (public interface cho scripts)- Tương đương với
Pause/Resumeở state machine level - Xem chi tiết về Task state machine trong StateMachine_Design.md
🔌 IO Connection APIs / API Kết nối IO
ScriptEngine hỗ trợ các giao tiếp công nghiệp phổ biến để tích hợp với thiết bị bên ngoài:
HTTP Connection
var httpConn = RobotNet.CreateHttpConnection("http://localhost:8080", timeoutSeconds: 30);
await httpConn.ConnectAsync();
var response = await httpConn.GetAsync("/api/data");
await httpConn.PostAsync("/api/update", jsonData, "application/json");
await httpConn.DisconnectAsync();
ModbusTCP Connection
var modbusConn = RobotNet.CreateModbusTcpConnection("192.168.1.100", port: 502, slaveId: 1);
await modbusConn.ConnectAsync();
var registers = await modbusConn.ReadHoldingRegistersAsync(0, 10);
await modbusConn.WriteSingleRegisterAsync(0, 100);
await modbusConn.DisconnectAsync();
OPC UA Connection
var opcConn = RobotNet.CreateOpcUaConnection("opc.tcp://localhost:4840");
await opcConn.ConnectAsync();
// Hoặc với authentication
await opcConn.ConnectAsync("username", "password");
var value = await opcConn.ReadNodeAsync("ns=2;s=MyVariable");
await opcConn.WriteNodeAsync("ns=2;s=MyVariable", 123);
var nodes = await opcConn.BrowseNodesAsync();
await opcConn.DisconnectAsync();
ProfiNet Connection
var profinetConn = RobotNet.CreateProfiNetConnection("192.168.1.100", slot: 1, subslot: 1);
await profinetConn.ConnectAsync();
var data = await profinetConn.ReadAsync(index: 0, length: 100);
await profinetConn.WriteAsync(index: 0, data: byteArray);
await profinetConn.DisconnectAsync();
Lưu ý: ProfiNet implementation hiện tại là skeleton, cần thêm thư viện hoặc implement protocol stack đầy đủ.
CC-Link IE Connection
var cclinkConn = RobotNet.CreateCcLinkIeConnection("192.168.1.100", stationNumber: 1);
await cclinkConn.ConnectAsync();
var data = await cclinkConn.ReadAsync(address: 0, length: 10);
await cclinkConn.WriteAsync(address: 0, data: ushortArray);
await cclinkConn.DisconnectAsync();
Lưu ý: CC-Link IE implementation hiện tại là skeleton, cần thêm thư viện hoặc implement protocol stack đầy đủ.
Connection Lifecycle
Tất cả connections đều implement IDisposable và nên được dispose sau khi sử dụng:
using var httpConn = RobotNet.CreateHttpConnection("http://localhost:8080");
await httpConn.ConnectAsync();
// ... use connection ...
// Automatically disposed when exiting using block
🔗 Related Documents / Tài liệu Liên quan
- ScriptEngine Overview - Tổng quan ScriptEngine
- Tasks - Sử dụng Task control APIs
- Missions - Sử dụng Mission management APIs
- Extension APIs - App-specific APIs
Last Updated: 2025-11-13