说明:本规范基于 RemoteCommandService.ExecuteAsync 的实现。命令以逗号 , 分隔的字符串形式传入,首项为命令名(Trigger),其余为参数。所有响应通过 callback 回传,格式在每个命令项中说明。
通用规则
command 字符串,格式 CommandName,param1,param2,...InvalidParametersOK 或具体数据;失败返回 NG 或错误码/文本命令列表与格式
LoadProduct,产品名称或编号LoadProduct,OK 或 LoadProduct,NG备注:若传入编号也可(字符串形式),内部先按名称查找,再尝试按编号解析。
GetProductName
用途:获取产品名称
格式:
GetProductName — 返回当前产品名称GetProductName,产品编号 — 根据编号返回名称返回:
GetProductName,<ProductName>GetProductName,NGGetProductID
用途:获取产品编号
格式:
GetProductID — 返回当前产品编号GetProductID,产品名称 — 根据名称返回编号返回:
GetProductID,<Number>GetProductID,NGGetRobotPointsCountById
用途:返回机器人点信息(接口使用示例)
格式:GetRobotPointsCountById,robotNumber,pointNumber
参数:两个整型
返回:GetRobotPointsCountById,<info> 或 GetRobotPointsCountById,NG
GetPalletPoint
用途:获取机器人托盘点位信息
格式:GetPalletPoint,robotNumber,palletNumber,pointNumber
返回:GetPalletPoint,<comma-separated-data> 或 GetPalletPoint,NG
CycleTime
用途:开始/停止节拍计时
格式:CycleTime,1 — 开始;其它值 — 停止
返回:CycleTime,OK 或 CycleTime,NG
Record
用途:记录一条生产计数(计数项)
格式:Record,计数项
返回:Record,OK 或 Record,NG
备注:会在系统数据库中插入一条 ProductionRecord(Quantity=1)
RecordQuery
用途:查询指定计数项当前总数
格式:RecordQuery,计数项
返回:RecordQuery,<number>(数值字符串)
RecordReset
用途:重置当前产品的生产计数(全部或指定项)
格式:RecordReset,计数项
返回:RecordReset,OK 或 RecordReset,NG
Err
用途:记录报警
格式:Err,alarmCode,alarmDescription
返回:Err,OK 或 Err,NG
备注:同时会把报警写入数据库并触发运行信息
Info
用途:记录运行信息(仅消息队列)
格式:Info,message
返回:Info,OK 或 Info,NG
GetGlobalParam
用途:获取产品全局参数
格式:
GetGlobalParam,paramNumber — 返回整个条目字符串GetGlobalParam,paramNumber,itemIndex — 返回指定项(1..4)或具体值返回:GetGlobalParam,<value> 或 GetGlobalParam,NG
GetSpeed
用途:获取当前产品运行速度等参数
格式:GetSpeed
返回:GetSpeed,<csv-values> 或 GetSpeed,NG
GetToolParam
用途:获取工具参数
格式:GetToolParam,triggerCommand,toolNumber
返回:GetToolParam,<csv-values> 或 GetToolParam,NG
GetProcedureParam
用途:获取流程参数(TriggerCommand)
格式:GetProcedureParam,triggerCommand
返回:GetProcedureParam,<csv-values> 或 GetProcedureParam,NG
StartClearMaterial / StopClearMaterial
用途:启动/停止指定编号的清料任务
格式:
StartClearMaterial,taskNumberStopClearMaterial,taskNumber返回:StartClearMaterial,OK / StopClearMaterial,OK 或 ...,NG
RobotIsDebugMode
用途:查询机器人是否处于调试模式
格式:RobotIsDebugMode,robotNumber
返回:RobotIsDebugMode,1(调试)或 RobotIsDebugMode,0(非调试)
错误与状态
InvalidParametersOK / NG 表示特殊:视觉流程命令(默认分支)
ProcedureModel.TriggerCommand == triggerCommand 的流程来执行视觉任务。TriggerCommand,param1,param2,...VibrateFirst、CaptureFirst —— 用于控制振动/拍照顺序(同时存在时以振动优先)SetInputs:用于传入 ToolBlock 输入对,格式在参数序列中为 SetInputs,key1=val1,key2=val2,...,解析到遇到第一个非 key=value 参数为止{TriggerCommand},OK,{item}{TriggerCommand},NG,{errorMessage}(如果有具体 message)x,y,u,... 逗号分隔;若多点,则按配置的 OutputSeparator 及 OutputPointMode 聚合返回procedure.OutputSeparator 连接ExecutePhoto 中,视觉运行成功时会调用:DatabaseHelper.AddCameraRecords(currentProduct.Name, procedure.Name, outputCollection)outputCollection 写入产品对应数据库(每个产品一个 db 文件,表名为流程名清洗后的标识符)参数解析与实现约定(实现细节)
, 分割(不做额外转义),参数内若需包含逗号请先在上层编码/约定方式(目前未实现转义)yyyy-MM-dd HH:mm:ss_ 作为列前缀存储(例如输出名 BlobTotalArea -> 列 _BlobTotalArea)示例
LoadProduct,MyProduct -> LoadProduct,OKGetProductName -> GetProductName,MyProductInspectA,123.45,67.89,0.12 -> 回调 InspectA,OK,<result-string>InspectB,SetInputs,Mode=Fast,Threshold=50 -> 服务会把 Mode/Threshold 注入 ToolBlock 输入附注
RemoteCommandService.ExecuteAsync 中追加 case 分支,并在文档中更新对应输入/输出约定。