JOYZL SCADA Server
工厂类接口
| 模块 | 接口 | 用途 | 权限 |
|---|---|---|---|
| Factory | Review | 追溯工件履历 | SYATEM |
| Factory | YieldAmount | 获取产量总量 | SYATEM |
| Factory | YieldSelect | 获取产量记录 | SYATEM |
| Factory | PieceAmount | 获取工件总量 | SYATEM |
| Factory | PieceSelect | 获取工件记录 | SYATEM |
| Factory | PieceQueues | 获取排队工件 | SYATEM |
| Factory | PieceCreate | 新建工件 | SYATEM |
| Factory | PieceRemove | 移除排队工件 | SYATEM |
| Factory | PieceClear | 清除排队工件 | SYATEM |
| Factory | PieceScraps | 获取报废工件 | SYATEM |
| Factory | PieceScrap | 报废工件 | SYATEM |
| Factory | EquipmentAmount | 获取装备数量 | SYATEM |
| Factory | EquipmentSelect | 获取多个装备 | SYATEM |
| Factory | EquipmentQuery | 获取单个装备 | SYATEM |
| Factory | EquipmentState | 获取装备状态 | SYATEM |
| Factory | EquipmentReport | 报告装备故障 | SYATEM |
| Device | SignalSelect | 获取遥测数据 | SYATEM |
追溯
追溯工件的加工履历以及关联的设备和检验数据。 在一件一码产品生产过程中,由扫码器读取工件编号(表面刻印的条形码或二维码), 应要求关键工序的机台和检验环节执行扫码动作。 JOYZL SCADA 软件系统必须依赖工件编号来记录加工履历以及关联的设备和检验数据, 对于不扫码的生产过程,不会生成加工履历。
追溯工件履历和采集数据的步骤:
- 获取工件履历(Review), 查询工件经历的机台(生产或检验设备)
- 获取遥测信号(SignalSelect), 查询具体机台诸如“速度”、“温度”等数据项列表;
- 获取时序数据(ValueSelect), 按具体数据项和时间段查询历史时序数据。
追溯工件履历(Review)
获取指定工件编号(工件表面蚀刻或印制的唯一编码)的加工履历, /review 接口返回指定工件经历的机台和检验记录。
请求示例(GET)
GET /review?code=JOYZL-20251030-000321
Authorization: 1vrcsuv1g5q
Content-Length: 0
请求示例(POST)
POST /review
Content-Type: application/x-form-www-urlencoded
Authorization: 1vrcsuv1g5q
Content-Length: 26
code=JOYZL-20251030-000321响应示例
{
// 回显参数
"Code": "JOYZL-20251030-000321",
// 工件集合
"Pieces": [
{
// 工件编号
"Code": "JOYZL-20251030-000321",
// 总成编号
"Assembly": "JOYZL-20251030-000320",
// 装备标识
"EquipmentId": 6892182769831190,
// 装备编号
"EquipmentNumber":"A101",
// 员工编号
"Employee": "O0021",
// 工装编号
"Tooling": "M0946",
// 扫描时间
"Scan": "2025-08-26 10:12:00",
// 加工开始时间
"Begin": "2025-08-26 10:15:00",
// 加工结束时间
"End": "2025-08-26 11:15:00"
},
{
// 工件编号
"Code": "JOYZL-20251030-000321",
// 总成编号
"Assembly": "JOYZL-20251030-000320",
// 装备标识
"EquipmentId": 2815031825661954,
// 装备编号
"EquipmentNumber": "G01",
// 员工编号
"Employee": "O0028",
// 扫描时间
"Scan": "2025-08-26 10:12:00",
// 检验结果
"Verdict": {
"Name": "OK",
"Value": 1,
"Text": "合格"
}
}
…
]
}请求成功返回:HTTP Status 200 OK, 响应内容为 JSON 对象,其中包含加工机台记录和检验记录; 其它状态码均为失败,意味着请求参数无效或服务不可用。 此接口只提供 HTTP 形式,集成开发包(JOYZL SCADA Client)没有此接口, 因此返回 JSON 中没有响应状态(Status)字段。
响应的工件集合(Pieces)数组不保证任何顺序。 扫描时间(Scan)以及加工开始时间(Begin)和结束时间(End),均有可能不存在,但至少存在一项。 检验结果(Verdict)字段表示工件状态, 有四种值:"UN:0","OK:1"、"EX:2"、"NG:3"、分别代表:未知、合格、异常、不良。
产量
产量(Yield)是装备在每个轮值周期内生产的产品数量(PCS)。 服务端(JOYZL SCADA Server) 会持久存储产量记录, 并根据配置的产量数据有效时间自动清理过期数据,防止磁盘写满。
获取产量总量(YieldAmount)
获取全部或指定范围的产量总数,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围内所有装备的当前轮值内产量总数; 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的产量总数; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的产量总数; 指定开始(Begin)和结束(End)时间,将统计指定时间段的产量总数, 如果未指定开始(Begin)和结束(End)时间,则仅统计当前轮值内产量总数。
如果开始时间(Begin)和结束时间(End)颠倒,请求将返回 数据错误(ERROR_DATA:7); 如果指定区域(ZoneId)或装备(EquipmentId/EquipmentNumber)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定区域(ZoneId)或装备(EquipmentId/EquipmentNumber)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892182778556009,
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 装备编号(可选)
"EquipmentNumber": "A101",
// 开始时间(可选)
"Begin": "2022-12-13 00:00:00",
// 结束时间(可选)
"End": "2022-12-13 23:59:59"
}响应示例
{
// 回显参数
"ZoneId": 6892182778556009,
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Begin": "2022-12-13 00:00:00",
"End": "2022-12-13 23:59:59",
// 轮值记录数量
"Yield": 892,
// 总耗时
"Duration": 7654,
// 总产出
"Quantity": 7230,
// 响应状态码
"Status": 2
}获取产量记录(YieldSelect)
获取全部或指定范围的装备在轮值周期内的产量记录,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有装备的当前轮值内产量记录; 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的装备产量记录; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的产量记录; 指定开始(Begin)和结束(End)时间时将检索指定时间段的产量记录, 如果未指定开始(Begin)和结束(End)时间则仅返回当前轮值内产量记录。
如果开始时间(Begin)和结束时间(End)颠倒,请求将返回 数据错误(ERROR_DATA:7); 如果指定区域(ZoneId)或装备(EquipmentId/EquipmentNumber)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定区域(ZoneId)或装备(EquipmentId/EquipmentNumber)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892182778556009,
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 装备编号(可选)
"EquipmentNumber": "A101",
// 开始时间(可选)
"Begin": "2022-12-13 00:00:00",
// 结束时间(可选)
"End": "2022-12-13 23:59:59"
}响应示例
{
// 回显参数
"ZoneId": 6892182778556009,
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Begin": "2022-12-13 00:00:00",
"End": "2022-12-13 23:59:59",
// 产量集合
"Yields": [
{
// 装备标识
"EquipmentId": 6892182769831190,
// 产出数量
"Quantity": 6892,
// 生产耗时(秒)
"Duration": 87654,
// 作业次数
"Cycle": 6892,
// 开始时间
"Begin": "2022-12-13 00:00:00",
// 结束时间
"End": "2022-12-13 23:59:59"
}
…
],
// 响应状态码
"Status": 2
}响应的产量集合(Yields)数组不保证任何顺序。 作业次数(Cycle)表示机器执行了多少次完整循环, 此数量可能与产出数量(Quantity)不相同,特别是一次作业循环可同时加工多个工件的时候。
工件
工件(Piece)是装备加工的产品。 服务端(JOYZL SCADA Server) 会持久存储工件记录, 并根据配置的工件数据有效时间自动清理过期数据,防止磁盘写满。
获取工件总量(PieceAmount)
获取全部或指定范围的工件总数,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有待加工工件总数(排队工件总数); 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的工件总数; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的工件总数; 指定开始(Begin)和结束(End)时间时将统计指定时间段的工件总数, 如果未指定开始(Begin)和结束(End)时间则仅返回当前排队总数。
如果开始时间(Begin)和结束时间(End)颠倒,请求将返回 数据错误(ERROR_DATA:7); 如果指定区域(ZoneId)或装备(EquipmentId/EquipmentNumber)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定区域(ZoneId)或装备(EquipmentId/EquipmentNumber)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892182778556009,
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 装备编号(可选)
"EquipmentNumber": "A101",
// 开始时间(可选)
"Begin": "2022-12-13 00:00:00",
// 结束时间(可选)
"End": "2022-12-13 23:59:59"
}响应示例
{
// 回显参数
"ZoneId": 6892182778556009,
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Begin": "2022-12-13 00:00:00",
"End": "2022-12-13 23:59:59",
// 工件总数
"Piece": 1234,
// 响应状态码
"Status": 2
}获取工件记录(PieceSelect)
获取全部或指定范围的工件,可见范围取决于用户所在的区域。 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的工件; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的工件; 指定开始(Begin)和结束(End)时间时将检索指定时间段的工件。
如果开始时间(Begin)和结束时间(End)颠倒,请求将返回 数据错误(ERROR_DATA:7); 如果指定区域(ZoneId)或装备(EquipmentId/EquipmentNumber)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定区域(ZoneId)或装备(EquipmentId/EquipmentNumber)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 区别标识(可选)
"ZoneId": 6892182778556009,
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 装备编号(可选)
"EquipmentNumber": "A101",
// 开始时间(可选)
"Begin": "2022-12-13 00:00:00",
// 结束时间(可选)
"End": "2022-12-13 23:59:59"
}响应示例
{
// 回显参数
"ZoneId": 6892182778556009,
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Begin": "2022-12-13 00:00:00",
"End": "2022-12-13 23:59:59",
// 工件集合
"Pieces": [
{
// 工件编号
"Code": "JOYZL-20251030-000321",
// 总成编号
"Assembly": "JOYZL-20251030-000320",
// 装备标识
"EquipmentId": 6892182769831190,
// 装备编号
"EquipmentNumber":"A101",
// 员工编号
"Employee": "O0021",
// 工装编号
"Tooling": "M0946",
// 扫描时间
"Scan": "2025-08-26 10:12:00",
// 加工开始时间
"Begin": "2025-08-26 10:15:00",
// 加工结束时间
"End": "2025-08-26 11:15:00",
// 检验结果
"Verdict": {
"Name": "OK",
"Value": 1,
"Text": "合格"
}
}
…
],
// 响应状态码
"Status": 2
}响应的工件集合(Pieces)数组不保证任何顺序。 如果加工件暂未扫码,工件编号(Code)将不存在; 扫描时间(Scan)以及加工开始时间(Begin)和结束时间(End),均有可能不存在,但至少存在一项。 检验结果(Verdict)字段表示工件状态, 有四种值:"UN:0","OK:1"、"EX:2"、"NG:3"、分别代表:未知、合格、异常、不良。
获取排队工件(PieceQueues)
排队工件:是指在设备准备加工之前,扫码的多个等待加工的工件,将按顺序逐个加工; 这些设备通常配有传送带或送料盘。
获取全部或指定范围的排队工件,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有待加工工件(排队工件); 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的排队工件; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的排队工件。
如果指定装备(EquipmentId/EquipmentNumber)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定装备(EquipmentId/EquipmentNumber)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 区别标识(可选)
"ZoneId": 6892182778556009,
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 装备编号(可选)
"EquipmentNumber": "A101"
}响应示例
{
// 回显参数
"ZoneId": 6892182778556009,
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
// 工件集合
"Pieces": [
{
// 工件编号
"Code": "JOYZL-20251030-000321",
// 总成编号
"Assembly": "JOYZL-20251030-000320",
// 装备标识
"EquipmentId": 6892182769831190,
// 装备编号
"EquipmentNumber":"A101",
// 员工编号
"Employee": "O0021",
// 工装编号
"Tooling": "M0946",
// 扫描时间
"Scan": "2025-08-26 10:12:00"
}
…
],
// 响应状态码
"Status": 2
}响应的工件集合(Pieces)数组在多设备时不保证任何顺序,单设备时以排队顺序返回。 工件正在等待加工,因此检验结果(Verdict)以及加工开始时间(Begin)和结束时间(End),均不存在。
新建工件(PieceCreate)
在指定装备创建新工件,如果工件还未加工将创建为排队工件,如果工件已加工将创建已完成工件。 系统通过检验结果(Verdict)来判定是排队还是已完工。 如果是排队还会返回当前设备工件排队列表。
如果指定装备(EquipmentId/EquipmentNumber)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定装备(EquipmentId/EquipmentNumber)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例(排队工件)
{
// 装备标识(单选)
"EquipmentId": 6892182769831190,
// 装备编号(单选)
"EquipmentNumber": "A101",
// 工件编号(必要)
"Code": "JOYZL-20251030-000321",
// 扫码时间(必要)
"Scan": "2022-12-13 10:30:20",
// 员工编号(可选)
"Employee": "O0021",
// 工装编号(可选)
"Tooling": "M0946"
}响应示例(排队工件)
{
// 回显参数
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Code": "JOYZL-20251030-000321",
"Scan": "2022-12-13 10:30:20",
"Employee": "O0021",
"Tooling": "M0946",
// 工件集合
"Pieces": [
{
// 工件编号
"Code": "JOYZL-20251030-000321",
// 总成编号
"Assembly": "JOYZL-20251030-000320",
// 装备标识
"EquipmentId": 6892182769831190,
// 装备编号
"EquipmentNumber":"A101",
// 员工编号
"Employee": "O0021",
// 工装编号
"Tooling": "M0946",
// 扫描时间
"Scan": "2025-08-26 10:12:00"
}
…
],
// 响应状态码
"Status": 2
}响应的工件集合(Pieces)数组以排队顺序返回。 工件正在等待加工,因此检验结果(Verdict)以及加工开始时间(Begin)和结束时间(End),均不存在。
请求示例(已完成工件)
{
// 装备标识(单选)
"EquipmentId": 6892182769831190,
// 装备编号(单选)
"EquipmentNumber": "A101",
// 工件编号(必要)
"Code": "JOYZL-20251030-000321",
// 扫码时间(必要)
"Scan": "2022-12-13 10:30:20",
// 员工编号(可选)
"Employee": "O0021",
// 工装编号(可选)
"Tooling": "M0946",
// 加工开始时间(可选)
"Begin": "2025-08-26 10:15:00",
// 加工结束时间(可选)
"End": "2025-08-26 11:15:00",
// 检验结果(可选)
"Verdict": 1
}响应示例(已完成工件)
{
// 回显参数
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Code": "JOYZL-20251030-000321",
"Scan": "2022-12-13 10:30:20",
"Employee": "O0021",
"Tooling": "M0946",
"Begin": "2025-08-26 10:15:00",
"End": "2025-08-26 11:15:00",
"Verdict": {
"Name": "OK",
"Value": 1,
"Text": "合格"
},
// 响应状态码
"Status": 2
}移除排队工件(PieceRemove)
从指定装备移除排队中的工件,然后返回装备其它排队的工件。
如果指定装备(EquipmentId/EquipmentNumber)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定装备(EquipmentId/EquipmentNumber)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 装备标识(单选)
"EquipmentId": 6892182769831190,
// 装备编号(单选)
"EquipmentNumber": "A101",
// 工件编号(必要)
"Code": "JOYZL-20251030-000321"
}响应示例
{
// 回显参数
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Code": "JOYZL-20251030-000321",
// 工件集合
"Pieces": [
{
// 工件编号
"Code": "JOYZL-20251030-000322",
// 总成编号
"Assembly": "JOYZL-20251030-000320",
// 装备标识
"EquipmentId": 6892182769831190,
// 装备编号
"EquipmentNumber":"A101",
// 员工编号
"Employee": "O0021",
// 工装编号
"Tooling": "M0946",
// 扫描时间
"Scan": "2025-08-26 10:12:00"
}
…
],
// 响应状态码
"Status": 2
}响应的工件集合(Pieces)数组以排队顺序返回。 工件正在等待加工,因此检验结果(Verdict)以及加工开始时间(Begin)和结束时间(End),均不存在。
清除排队工件(PieceClear)
清除指定装备所有排队的工件。
如果指定装备(EquipmentId/EquipmentNumber)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定装备(EquipmentId/EquipmentNumber)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 装备标识(单选)
"EquipmentId": 6892182769831190,
// 装备编号(单选)
"EquipmentNumber": "A101"
}响应示例
{
// 回显参数
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
// 响应状态码
"Status": 2
}获取报废工件(PieceScraps)
报废工件 由管理系统或扫码端报告的 明确已报废工件, JOYZL SCADA 系统不会自动推断工件是否报废, 即便已联网的检验设备报告 NG 也不会将工件自动纳入报废工件。
查询报废工件不会校验区域范围,可全局查询以便于扫码端校验; 缺省所有参数时,返回全局所有报废工件; 指定员工编号(Employee)参数时,将返回指定员工报告的报废工件; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的报废工件; 指定开始(Begin)和结束(End)时间时将检索指定时间段报告的报废工件。
请求示例
{
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 装备编号(可选)
"EquipmentNumber": "A101",
// 员工编号(可选)
"Employee": "O0021",
// 开始时间(可选)
"Begin": "2022-12-13 00:00:00",
// 结束时间(可选)
"End": "2022-12-13 23:59:59"
}响应示例
{
// 回显参数
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Employee": "O0021",
"Begin": "2022-12-13 00:00:00",
"End": "2022-12-13 23:59:59",
// 工件集合
"Pieces": [
{
// 装备标识
"EquipmentId": 6892182769831190,
// 装备编号
"EquipmentNumber": "A101",
// 员工编号
"Employee": "O0021",
// 工件编号
"Code": "JOYZL-20251030-000321",
// 扫码时间
"Scan": "2025-08-26 10:12:00"
}
…
],
// 响应状态码
"Status": 2
}响应的工件集合(Pieces)数组不保证任何顺序。 工件已报告报废,因此检验结果(Verdict)以及加工开始时间(Begin)和结束时间(End),均不存在。
报废工件(PieceScrap)
报告工件报废。
如果指定装备编号(EquipmentNumber),将不进行任何校验; 如果指定装备标识(EquipmentId)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定装备标识(EquipmentId)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 装备编号(可选)
"EquipmentNumber": "A101",
// 员工编号(可选)
"Employee": "O0021",
// 工件编号(必要)
"Code": "JOYZL-20251030-000321",
}响应示例
{
// 回显参数
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Employee": "O0021",
"Code": "JOYZL-20251030-000321",
// 响应状态码
"Status": 2
}装备
装备(Equipment)表示工厂车间的生产设备,例如数控机床(CNC); 为便于与通信装置进行区分,装备视为成套设备(Equipment),而设备(Device)对应通信装置。 装备由系统中配置的设备自动生成,多个通信设备可能属于单个装备。
获取装备数量(EquipmentAmount)
获取全部或指定区域的装备数量,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有装备数量; 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的装备数量; 指定类型字符串(Type)参数时,仅返回指定类型的装备数量。
如果指定区域标识(ZoneId)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定区域标识(ZoneId)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892141150584634,
// 类型字符串(可选)
"Type": "CNC"
}响应示例
{
// 回显参数
"ZoneId": 3358725158993927,
"Type": "CNC",
// 装备数量
"Equipment ": 142,
// 启用数量
"Enable ": 140,
// 在产数量
"Produce": 108,
// 待产数量
"Waiting ": 30,
// 告警数量
"Alarm ": 0,
// 响应状态码
"Status": 2
}禁用数量 = 装备数量 - 启用数量
获取多个装备(EquipmentSelect)
获取全部或指定区域的装备,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有装备; 指定区域标识(ZoneId)参数时,仅返回指定区域(不含子区域)的装备; 指定启用或禁用(Enable)参数时,仅返回指定状态的装备; 指定类型字符串(Type)参数时,仅返回指定类型的装备。
如果指定区域标识(ZoneId)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定区域标识(ZoneId)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892141150584634,
// 启用禁用(可选)
"Enable": true,
// 类型字符串(可选)
"Type": "CNC"
}响应示例
{
// 回显参数
"ZoneId": 6892141150584634,
"Enable": true,
"Type": "CNC",
// 装备集合
"Equipments": [
{
// 装备标识
"Id": 6892141164168701,
// 区域标识
"ZoneId": 4000605404135427,
// 名称
"Name": "数控加工机101",
// 类型
"Type": "CNC",
// 编号
"Number": "A101",
// 生产厂商
"Manufacturer": "BROTHER",
// 装备型号
"Model": "S500",
// 启用或禁用
"Enable": true,
// 创建时间
"Created": "2025-08-25 11:42:22",
// 更新时间
"Updated": "2025-08-25 11:42:28",
// 生产状态
"State": {
"Name": "PRODUCE",
"Text": "生产",
"Value": 1
},
// 告警状态
"Alarm": {
"Name": "NONE",
"Text": "无",
"Value": 0
},
// 报告状态
"Report": {
"Name": "NORMAL",
"Text": "正常",
"Value": 0
},
// 作业次数
"Cycle": 1230,
// 产出数量
"Quantity": 1230,
// 生产耗时(秒)
"Duration": 12560,
// 状态更新时间戳
"Timestamp": 1789019713528
}
...
],
// 响应状态码
"Status": 2
}响应的装备集合(Equipments)数组不保证任何顺序。 作业次数(Cycle)表示机器执行了多少次完整循环, 此数量可能与产出数量(Quantity)不相同,特别是一次作业循环可同时加工多个工件的时候。 作业次数(Cycle)以及产出数量(Quantity)和生产耗时(Duration)仅表示当前轮值班次,在下一轮值班次会自动重置。
生产状态(State)可能值有:未知(UNKNOWN:0)、生产(PRODUCE:1)、待产(WAITING:2); 告警状态(Alarm)可能值有:无(NONE:0)、四级/低级(NOTICE:1)、三级/中级(WARNING:2)、二级/高级(DANGER:3)、一级/紧急(CRITICAL:4); 报告状态(Report)可能值有:正常(NORMAL:0)、故障(FAULT:1);
获取单个装备(EquipmentQuery)
通过装备标识或编号获取单个装备。
如果指定装备(Id/Number)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定装备(Id/Number)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 装备标识(单选)
"Id": 6892141164168701,
// 装备编号(单选)
"Number": "A101"
}响应示例
{
// 回显参数
"Id": 6892141164168701,
"Number": "A101",
// 装备
"Equipment": {
// 装备标识
"Id": 6892141164168701,
// 区域标识
"ZoneId": 4000605404135427,
// 名称
"Name": "数控加工机101",
// 类型
"Type": "CNC",
// 编号
"Number": "A101",
// 生产厂商
"Manufacturer": "BROTHER",
// 装备型号
"Model": "S500",
// 启用或禁用
"Enable": true,
// 创建时间
"Created": "2025-08-25 11:42:22",
// 更新时间
"Updated": "2025-08-25 11:42:28",
// 生产状态
"State": {
"Name": "PRODUCE",
"Text": "生产",
"Value": 1
},
// 告警状态
"Alarm": {
"Name": "NONE",
"Text": "无",
"Value": 0
},
// 报告状态
"Report": {
"Name": "NORMAL",
"Text": "正常",
"Value": 0
},
// 作业次数
"Cycle": 1230,
// 产出数量
"Quantity": 1230,
// 生产耗时(秒)
"Duration": 12560,
// 状态更新时间戳
"Timestamp": 1789019713528
},
// 响应状态码
"Status": 2
}作业次数(Cycle)表示机器执行了多少次完整循环, 此数量可能与产出数量(Quantity)不相同,特别是一次作业循环可同时加工多个工件的时候。 作业次数(Cycle)以及产出数量(Quantity)和生产耗时(Duration)仅表示当前轮值班次,在下一轮值班次会自动重置。
生产状态(State)可能值有:未知(UNKNOWN:0)、生产(PRODUCE:1)、待产(WAITING:2); 告警状态(Alarm)可能值有:无(NONE:0)、四级/低级(NOTICE:1)、三级/中级(WARNING:2)、二级/高级(DANGER:3)、一级/紧急(CRITICAL:4); 报告状态(Report)可能值有:正常(NORMAL:0)、故障(FAULT:1);
获取装备状态(EquipmentState)
获取指定装备的最新状态。 此接口仅返回装备状态,不会返回装备的其它字段, 通常用于逐个轮询获取装备的最新状态。
如果指定装备(Id/Number)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定装备(Id/Number)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 装备标识(单选)
"Id": 6892141164168701,
// 装备编号(单选)
"Number": "A101"
}响应示例
{
// 回显参数
"Id": 6892141164168701,
"Number": "A101",
// 生产状态
"State": {
"Name": "PRODUCE",
"Text": "生产",
"Value": 1
},
// 告警状态
"Alarm": {
"Name": "NONE",
"Text": "无",
"Value": 0
},
// 报告状态
"Report": {
"Name": "NORMAL",
"Text": "正常",
"Value": 0
},
// 作业次数
"Cycle": 1230,
// 产出数量
"Quantity": 1230,
// 生产耗时(秒)
"Duration": 12560,
// 状态更新时间戳
"Timestamp": 1789019713528,
// 响应状态码
"Status": 2
}作业次数(Cycle)表示机器执行了多少次完整循环, 此数量可能与产出数量(Quantity)不相同,特别是一次作业循环可同时加工多个工件的时候。 作业次数(Cycle)以及产出数量(Quantity)和生产耗时(Duration)仅表示当前轮值班次,在下一轮值班次会自动重置。
生产状态(State)可能值有:未知(UNKNOWN:0)、生产(PRODUCE:1)、待产(WAITING:2); 告警状态(Alarm)可能值有:无(NONE:0)、四级(低级)(NOTICE:1)、三级(中级)(WARNING:2)、二级(高级)(DANGER:3)、一级(紧急)(CRITICAL:4); 报告状态(Report)可能值有:正常(NORMAL:0)、故障(FAULT:1);
报告装备故障(EquipmentReport)
由人工报告装备故障。
如果指定装备(Id/Number)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定装备(Id/Number)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。
请求示例
{
// 装备标识(单选)
"Id": 6892141164168701,
// 装备编号(单选)
"Number": "A101",
// 装备状态(必要)
"Report": 1
}响应示例
{
// 回显参数
"Id": 6892141164168701,
"Number": "A101",
"Report": {
"Name": "FAULT",
"Text": "故障",
"Value": 1
},
// 响应状态码
"Status": 2
}数据
获取装备任意时段采集数据的步骤:
- 获取遥测信号(SignalSelect), 查询诸如“速度”、“温度”、“电压”等信号的标识;
- 获取时序数据(ValueSelect), 按具体信号和时间段查询历史时序数据。
可获取的数据时段受限于服务端配置的数据保存时限,假设服务端配置存储历史数据最多20年, 那么20年前的数据将被自动清理,如果查询20年前的数据则不会有数据返回。
提示: 大部分时序数据都为浮点数或整数, 可通过面积图或折线图以图形方式展现于最终用户, 这有助于直观反应装备当时的工况。
获取遥测信号(SignalSelect)
获取指定设备的遥测信号(数据项)。 这些信号(数据项)在设备运行过程中将被记录时序数据。 每个设备有多项遥测信号(每个数据项对应一个设备属性), 接口会过滤掉不产生数据或仅用于控制的信号。
指定设备标识(DeviceId)可获取单个设备的数据项(设备属性); 指定设备编号(DeviceNumber)可获取多个相同编号设备的数据项(设备属性); 装备编号(EquipmentNumber)即为设备编号(DeviceNumber), 如果要获取装备的数据项,将装备编号赋予此接口的设备编号即可。
如果指定设备(DeviceId)不存在,请求将返回 不存在(NOEXISTS:5) ; 如果指定设备(DeviceId)位于当前用户所在区域之外,请求将被 拒绝(DENIED:3) 。 如果指定设备(DeviceNumber)编号,并且存在多个相同编号的设备时,仅返回当前用户所在区域内的设备属性。
请求示例
{
// 设备标识(单选)
"DeviceId": 2815031825661954,
// 设备编号(单选)
"DeviceNumber": "A101"
}响应示例
{
// 回显参数
"DeviceId": 2815031825661954,
"DeviceNumber": "A101",
// 信号集合
"Signals": [
{
// 属性标识
"AttributeId": 345659483765364,
// 属性名称
"Name": "转速",
// 单位
"Unit": "RPM"
}
…
],
// 响应状态码
"Status": 2
}响应的信号集合(Signals)数组不保证任何顺序。 遥测信号的属性标识(AttributeId)可用于获取指定时段的时序数据, 请参考通信类接口 获取时序数据(ValueSelect) 了解更多信息。
