Keep the root README concise while documenting MotorService, the Modbus TCP PLC runtime, the motor stack, and AUBO cabinet IO next to their owning code.
4.1 KiB
4.1 KiB
AUBO RobotArm 与控制柜 IO
AuboArm 是 AUBO SDK v0.27.1 的 RobotArm 后端。控制柜 Standard 数字 IO
通过设备通用的 executeJsonCommand 接口访问,远程调用复用
cmvr.api.SystemService/ExecuteJsonCommand,不经过 ArmService 或
MotorService。
返回 Devices 模块指南 或 项目总览。
代码与配置
- 实现:
aubo_arm.h、aubo_arm.cpp - 测试:
tests/aubo_arm_json_command_test.cpp - 设备配置:
../../../config/devices/arm/aubo_arm.pb.txt - DeviceManager 配置:
../../../config/manager/device_manager.pb.txt - SystemService 实现:
../../../service/grpc/src/grpc_system_service.cpp - Proto:
../../../../protos/cmvr/api/system_service.proto
仓库配置使用 SDK RPC 端口 30004。现场部署必须填写真实控制器地址和凭据,
不要把生产密码提交到默认配置。
控制柜 Standard 数字 IO
当前支持:
operation |
说明 | 必填字段 |
|---|---|---|
get_di |
读取控制柜数字输入 | index |
get_do |
读取控制柜数字输出及其 runstate | index |
set_do |
设置控制柜数字输出 | index、value |
JSON 命令:
{"command":"cabinet_io","operation":"get_di","index":0}
{"command":"cabinet_io","operation":"get_do","index":0}
{"command":"cabinet_io","operation":"set_do","index":0,"value":true}
index 从 0 开始,运行时根据控制器返回的 IO 数量检查范围。
set_do.value 必须是 JSON 布尔值 true 或 false,不接受 0/1 或字符串。
set_do 成功响应中的 requested_value 只表示 SDK 已接受请求;确认实际输出时
必须再调用 get_do。
读取成功响应示例:
{
"success": true,
"command": "cabinet_io",
"operation": "get_di",
"index": 0,
"count": 16,
"value": false
}
通过 gRPC 调用
默认 gRPC 端口为 50052。读取 DI0:
grpcurl -plaintext \
-d '{
"header":{"deviceId":"aubo_arm"},
"requestJson":"{\"command\":\"cabinet_io\",\"operation\":\"get_di\",\"index\":0}"
}' \
127.0.0.1:50052 \
cmvr.api.SystemService/ExecuteJsonCommand
设置 DO0 为高电平:
grpcurl -plaintext \
-d '{
"header":{"deviceId":"aubo_arm"},
"requestJson":"{\"command\":\"cabinet_io\",\"operation\":\"set_do\",\"index\":0,\"value\":true}"
}' \
127.0.0.1:50052 \
cmvr.api.SystemService/ExecuteJsonCommand
使用源码默认配置时:
- 在
cmvr-es/config/devices/arm/aubo_arm.pb.txt填写正确地址和登录信息; - 在
cmvr-es/config/manager/device_manager.pb.txt将aubo_arm.enable改为true; - 重新安装配置并启动安装产物。
cmake --install build
./output/bin/cmvr_es
output/bin/cmvr_es 默认读取 output/bin/config/。使用 --config 时,应修改
对应外部配置根。设备未启用或初始化失败时,gRPC 返回
Device not found: aubo_arm。
安全与语义边界
- 只访问控制柜 Standard 数字 IO,不访问工具端 IO、可配置 IO 或安全 IO;
set_do不修改输出 runstate;- 只有
StandardOutputRunState::None的通道允许写入,否则返回output_managed_by_runstate; - 普通访问不会调用会重置全部输出配置的
setDigitalOutputRunstateDefault(); - 模拟量 IO 涉及 domain、单位和量程,当前 JSON 接口不开放;
- gRPC/JSON 返回成功不代表目标 IO 具备功能安全等级;
- 真实写测试前应确认通道用途、负载、电气隔离、默认电平和控制器程序所有权。
测试
cmake --build build --target aubo_arm_json_command_test -j4
ctest --test-dir build \
-R '^aubo_arm_json_command_test$' \
--output-on-failure
该测试覆盖 JSON 校验和无硬件错误路径,不代表已在真实 AUBO 控制柜完成 DI/DO 读取、写入或 runstate 拒绝验证。