JOYZL SCADA Server
工厂类接口
| 模块 | 接口 | 用途 | 权限 |
|---|---|---|---|
| Factory | Review | 追溯工件履历 | SYATEM |
| Factory | ReviewPiece | 追溯工件加工 | SYATEM |
| Factory | ReviewQuality | 追溯工件质检 | SYATEM |
| Factory | YieldAmount | 获取产量数量 | SYATEM |
| Factory | YieldSelect | 获取多个产量 | SYATEM |
| Factory | PieceAmount | 获取工件数量 | SYATEM |
| Factory | PieceSelect | 获取多个工件 | SYATEM |
| Factory | PieceCreate | 新建排队工件 | SYATEM |
| Factory | PieceDelete | 删除排队工件 | SYATEM |
| Factory | PieceClear | 清除排队工件 | SYATEM |
| Factory | KnifeAmount | 获取刀具数量 | SYATEM |
| Factory | KnifeSelect | 获取多个刀具 | SYATEM |
| Factory | KnifeState | 获取刀具状态 | SYATEM |
| Factory | KnifeCreate | 新建刀具 | SYATEM |
| Factory | KnifeUpdate | 修改刀具 | SYATEM |
| Factory | KnifeMove | 移动刀具 | SYATEM |
| Factory | KnifeDelete | 删除刀具 | SYATEM |
| Factory | MoldAmount | 获取模具数量 | SYATEM |
| Factory | MoldSelect | 获取多个模具 | SYATEM |
| Factory | MoldState | 获取模具状态 | SYATEM |
| Factory | MoldCreate | 新建模具 | SYATEM |
| Factory | MoldUpdate | 修改模具 | SYATEM |
| Factory | MoldMove | 移动模具 | SYATEM |
| Factory | MoldDelete | 删除模具 | SYATEM |
| Factory | EquipmentAmount | 获取装备数量 | SYATEM |
| Factory | EquipmentSelect | 获取多个装备 | SYATEM |
| Factory | EquipmentQuery | 获取单个装备 | SYATEM |
| Factory | EquipmentState | 获取装备状态 | SYATEM |
| Factory | EquipmentUnique | 校验装备编号 | SYATEM |
| Factory | EquipmentCreate | 新建装备 | ADMINISTRATOR |
| Factory | EquipmentUpdate | 修改装备 | ADMINISTRATOR |
| Factory | EquipmentChange | 更换装备 | ADMINISTRATOR |
| Factory | EquipmentEnable | 启用或禁用装备 | ADMINISTRATOR |
| Factory | EquipmentMove | 移动装备 | ADMINISTRATOR |
| Factory | EquipmentDelete | 删除装备 | ADMINISTRATOR |
| Factory | ShiftSelect | 获取多个轮值 | SYATEM |
| Factory | ShiftUnique | 校验轮值时间 | SYATEM |
| Factory | ShiftCreate | 新建轮值 | ADMINISTRATOR |
| Factory | ShiftUpdate | 修改轮值 | ADMINISTRATOR |
| Factory | ShiftDelete | 删除轮值 | ADMINISTRATOR |
| Factory | SignalSelect | 获取遥测信号 | SYATEM |
追溯
追溯工件的加工履历和质检数据及质检结果。 在一件一码产品生产过程中,由扫码器读取工件代码(条形码或二维码), 应要求关键工序的机台和质检环节执行扫码动作。 JOYZL SCADA 软件系统必须依赖工件代码来记录加工履历和质检数据, 对于不扫码的生产过程,不会生成加工履历。
追溯工件履历和采集数据的步骤:
- 获取工件履历(Review), 查询工件经历的机台;
- 获取遥测信号(SignalSelect), 查询具体机台诸如“速度”、“温度”等信号的标识;
- 获取时序数据(ValueSelect), 按具体信号和时间段查询历史时序数据。
追溯工件履历(Review)
获取指定工件代码(工件表面蚀刻或印制的唯一编码)的加工履历,包含工件经历的机台和质检。 /review 接口同时返回指定工件的加工履历和质检记录, /review/piece 和 /review/quality 功能相同,但仅返回加工履历或质检记录。
请求示例
GET /review?code=JOYZL-20251030-000321
POST /review
// 由请求内容提交参数
code=JOYZL-20251030-000321响应示例
{
// 工件代码(条形码或二维码)
"Code": "JOYZL-20251030-000321",
// 质检结果
"Result": "OK",
// 加工记录
"Pieces": [
{
// 装备标识
"EquipmentId": 6892182769831190,
// 装备编号
"EquipmentNumber":"A101",
// 作业人员编号
"User": "O0021",
// 扫描时间
"Scan": "2025-08-26 10:12:00",
// 加工开始时间
"Begin": "2025-08-26 10:15:00",
// 加工结束时间
"End": "2025-08-26 11:15:00"
}
…
],
// 质检记录
"Qualities": [
{
// 设备标识
"DeviceId": 2815031825661954,
// 设备名称
"DeviceName": "齿轮啮合检测仪G01",
// 数据报告时间戳
"Timestamp": 1764486596457,
// 质检结果
"Result": true
}
…
]
}请求成功返回:HTTP Status 200 OK, 响应内容为 JSON 对象,其中包含加工机台记录和质检记录; 其它状态码均为失败,意味着请求参数无效或服务不可用。 此接口只提供 HTTP 形式,集成开发包(JOYZL SCADA Client)没有此接口, 因此返回 JSON 中没有响应状态(Status)字段。
根对象的结果(Result)字段表示最终质检结果, 有三种值:"OK"、"NG"、"UN",分别代表:合格、不良、未知。 质检记录中的结果(Result)字段,仅有 true 和 false,分别表示合格和不良。
追溯工件加工(ReviewPiece)
获取指定工件代码(工件表面蚀刻或印制的唯一编码)的加工履历。
请求示例
GET /review/piece?code=JOYZL-20251030-000321
POST /review/piece
// 由请求内容提交参数
code=JOYZL-20251030-000321响应示例
{
// 工件代码(条形码或二维码)
"Code": "JOYZL-20251030-000321",
// 加工记录
"Pieces": [
{
// 装备标识
"EquipmentId": 6892182769831190,
// 装备编号
"EquipmentNumber":"A101",
// 作业人员编号
"User": "O0021",
// 扫描时间
"Scan": "2025-08-26 10:12:00",
// 加工开始时间
"Begin": "2025-08-26 10:15:00",
// 加工结束时间
"End": "2025-08-26 11:15:00"
}
…
]
}请求成功返回:HTTP Status 200 OK, 响应内容为 JSON 对象,其中包含加工机台记录; 其它状态码均为失败,意味着请求参数无效或服务不可用。 此接口只提供 HTTP 形式,集成开发包(JOYZL SCADA Client)没有此接口, 因此返回 JSON 中没有响应状态(Status)字段。
追溯工件质检(ReviewQuality)
获取指定工件代码(工件表面蚀刻或印制的唯一编码)的质检履历。
请求示例
GET /review/quality?code=JOYZL-20251030-000321
POST /review/quality
// 由请求内容提交参数
code=JOYZL-20251030-000321响应示例
{
// 工件代码(条形码或二维码)
"Code": "JOYZL-20251030-000321",
// 质检结果
"Result": "OK",
// 质检记录
"Qualities": [
{
// 设备标识
"DeviceId": 2815031825661954,
// 设备名称
"DeviceName": "齿轮啮合检测仪G01",
// 数据报告时间戳
"Timestamp": 1764486596457,
// 质检结果
"Result": true
}
…
]
}请求成功返回:HTTP Status 200 OK, 响应内容为 JSON 对象,其中包含质检记录; 其它状态码均为失败,意味着请求参数无效或服务不可用。 此接口只提供 HTTP 形式,集成开发包(JOYZL SCADA Client)没有此接口, 因此返回 JSON 中没有响应状态(Status)字段。
根对象的结果(Result)字段表示最终质检结果, 有三种值:"OK"、"NG"、"UN",分别代表:合格、不良、未知。 质检记录中的结果(Result)字段,仅有 true 和 false,分别表示合格和不良。
产量
装备在每个轮值周期内生产的产品数量(PCS)。
获取产量数量(YieldAmount)
获取全部或指定范围的装备在轮值周期内的产量数量,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有装备的当前轮值内数量; 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的产量记录数量; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的产量记录数量; 指定开始(Begin)和结束(End)时间时将统计指定时间段的产量数量, 如果未指定开始(Begin)和结束(End)时间则仅返回当前轮值内数量。
请求示例
{
// 区域标识(可选)
"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": 892,
// 总耗时
"Duration": 7654,
// 总产出
"Quantity": 7230,
// 响应状态码
"Status": 2
}获取多个产量(YieldSelect)
获取全部或指定范围的装备在轮值周期内的产量,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有装备的当前轮值内产量; 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的装备产量; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的产量; 指定开始(Begin)和结束(End)时间时将统计指定时间段的产量, 如果未指定开始(Begin)和结束(End)时间则仅返回当前轮值内产量。
请求示例
{
// 区域标识(可选)
"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,
// 开始时间
"Begin": "2022-12-13 00:00:00",
// 结束时间
"End": "2022-12-13 23:59:59"
}
…
],
// 响应状态码
"Status": 2
}工件
具有唯一代码标识的工件。
获取工件数量(PieceAmount)
获取全部或指定范围的工件数量,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有待加工工件(排队件); 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的工件数量; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的工件数量; 指定开始(Begin)和结束(End)时间时将统计指定时间段的工件数量, 如果未指定开始(Begin)和结束(End)时间则仅返回当前排队数量。
请求示例
{
// 区域标识(可选)
"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)时间则仅返回当前排队工件。
请求示例
{
// 区别标识(可选)
"ZoneId": 6892182778556009,
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 装备编号(可选)
"EquipmentNumber": "A101",
// 工件代码(可选)
"Code": "JOYZL-20251030-000321",
// 开始时间(可选)
"Begin": "2022-12-13 00:00:00",
// 结束时间(可选)
"End": "2022-12-13 23:59:59"
}响应示例
{
"ZoneId": 6892182778556009,
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Code": "JOYZL-20251030-000321",
"Begin": "2022-12-13 00:00:00",
"End": "2022-12-13 23:59:59",
// 工件集合
"Pieces": [
{
// 装备标识
"EquipmentId": 6892182769831190,
// 作业人员编号
"User": "O0021",
// 工件代码
"Code": "JOYZL-20251030-000321",
// 扫码时间
"Scan": "2025-08-26 10:12:00",
// 加工开始时间
"Begin": "2025-08-26 10:15:00",
// 加工结束时间
"End": "2025-08-26 11:15:00"
}
…
],
// 响应状态码
"Status": 2
}新建排队工件(PieceCreate)
在指定装备新增排队待加工的工件,然后返回装备所有排队的工件。
请求示例
{
// 装备标识(单选)
"EquipmentId": 6892182769831190,
// 装备编号(单选)
"EquipmentNumber": "A101",
// 工件代码(必要)
"Code": "JOYZL-20251030-000321",
// 扫码时间(必要)
"Scan": "2022-12-13 10:30:20"
}响应示例
{
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Code": "JOYZL-20251030-000321",
"Scan": "2022-12-13 10:30:20",
// 工件集合
"Pieces": [
{
// 装备标识
"EquipmentId": 6892182769831190,
// 作业人员编号
"User": "O0021",
// 工件代码
"Code": "JOYZL-20251030-000321",
// 扫码时间
"Scan": "2025-08-26 10:12:00"
}
…
],
// 响应状态码
"Status": 2
}删除排队工件(PieceDelete)
删除装备排队中的工件,无法删除已开始加工的工件,然后返回装备所有排队的工件。
请求示例
{
// 装备标识(单选)
"EquipmentId": 6892182769831190,
// 装备编号(单选)
"EquipmentNumber": "A101",
// 工件代码(必要)
"Code": "JOYZL-20251030-000321"
}响应示例
{
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
"Code": "JOYZL-20251030-000321",
// 工件集合
"Pieces": [
{
// 装备标识
"EquipmentId": 6892182769831190,
// 作业人员编号
"User": O0021,
// 工件代码
"Code": "JOYZL-20251030-000321",
// 扫码时间
"Scan": "2025-08-26 10:12:00"
}
…
],
// 响应状态码
"Status": 2
}清除排队工件(PieceClear)
清除指定装备所有排队的工件,无法清除已开始加工的工件,然后返回装备正在加工的工件(如果有)。
请求示例
{
// 装备标识(单选)
"EquipmentId": 6892182769831190,
// 装备编号(单选)
"EquipmentNumber": "A101"
}响应示例
{
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
// 工件
"Piece": {
// 装备标识
"EquipmentId": 6892182769831190,
// 作业人员编号
"User": O0021,
// 工件代码
"Code": "JOYZL-20251030-000321",
// 扫码时间
"Scan": "2025-08-26 10:12:00",
// 开始加工时间
"Begin": "2025-08-26 10:15:00"
},
// 响应状态码
"Status": 2
}刀具
监控刀具寿命,并在临近失效或已经失效时报警。 服务端(JOYZL SCADA Server) 通过刀具的额定寿命和装备的产量实时计算刀具已用量而执行监控。 临近表示刀具用量接近额定寿命(低于10); 失效表示刀具用量已等于或超过额定寿命。
刀具可按:时间(秒)、工(钻孔数)、件(工件)三种方式监控寿命。 如果按秒,则按装备作业时间计算; 如果按工,则按装备产量乘以单件工数计算; 如果按件,则按装备产量计算。 采用那种寿命计算方式更有效,工厂应根据自身经验判断。
刀具寿命类型(KnifeType)
- UNKNOWN(0) 未知
- TIME(1) 秒
- WORK(2) 工
- PIECE(3) 件
注意: 服务端(JOYZL SCADA Server) 仅监控已装载刀具的寿命,不会记录刀具的其它信息,历史记录和统计等功能应由 ERP 或 MES 等应用级系统提供。
获取刀具数量(KnifeAmount)
获取全部或指定范围的刀具数量,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有装备的刀具数量; 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的刀具数量; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的刀具数量。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892182778556009,
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 装备编号(可选)
"EquipmentNumber": "A101"
} 响应示例
{
"ZoneId": 6892182778556009,
"EquipmentId": 6892182769831190,
"EquipmentNumber": "A101",
// 刀具数量
"Knife": 100,
// 失效数量
"Invalid": 12,
// 告警数量
"Warning": 26
}获取多个刀具(KnifeSelect)
获取全部或指定范围的刀具,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围所有装备的刀具; 指定区域标识(ZoneId)参数时,仅返回指定区域(不含子区域)的刀具; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的刀具; 告警(Warning)刀具包含临近和失效的刀具。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892182778556009,
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 装备编号(可选)
"EquipmentNumber": "A101",
// 刀具类型(可选)
"Type": 3,
// 是否告警(可选)
"Warning": false
} 响应示例
{
"ZoneId": 6892182778556009,
"EquipmentId": 6892182769831190,
"Type": {
"value": 3,
"name": "PIECE",
"text": "件"
},
"Warning": false,
// 刀具集合
"Knifes": [
{
// 装备标识
"EquipmentId": 6892182769831190,
// 刀具代码
"Code": "S0086",
// 刀具件号
"Number": "ZI0105575",
// 刀具名称
"Name": "铣刀 D1.0*刃3*D4*50L*3F",
// 单件损耗
"Consume": 1,
// 刀位
"Position": 1,
// 寿命类型
"Type": {
"value": 3,
"name": "PIECE",
"text": "件"
},
// 额定寿命
"Life": 10000,
// 已用寿命
"Used": 130,
}
…
],
// 响应状态码
"Status": 2
}获取刀具状态(KnifeState)
获取指定刀具的最新状态。 此接口仅返回刀具最新已用量,不会返回刀具的其它字段。
请求示例
{
// 刀具标识(必要)
"Id": 6892182778556889
}响应示例
{
"Id": 6892182778556889,
// 已用
"Used": 100,
// 响应状态码
"Status": 2
}新建刀具(KnifeCreate)
创建新的刀具以监控其寿命,不能在装备的同一个刀位装载多个刀具。
请求示例
{
// 装备标识(必要)
"EquipmentId": 6892182769831190,
// 装载刀位(必要)
"Position": 1,
// 刀具代码(可选)
"Code": "S0086",
// 刀具件号(可选)
"Number": "ZI0105575",
// 刀具名称(必要)
"Name": "铣刀 D1.0*刃3*D4*50L*3F",
// 单件损耗(必要)
"Consume": 1,
// 寿命类型(必要)
"Type": 3,
// 额定寿命(必要)
"Life": 10000,
// 已用(可选)
"Used": 130
}响应示例
{
"EquipmentId": 6892182769831190,
"Position": 1,
"Code": "S0086",
"Number": "ZI0105575",
"Name": "铣刀 D1.0*刃3*D4*50L*3F",
"Consume": 1,
"Type": {
"value": 3,
"name": "PIECE",
"text": "件"
},
"Life": 10000,
"Used": 130,
// 刀具标识
"Id": 6892182778556889,
// 创建时间
"Created": "2024-4-25 10:16:01",
// 响应状态码
Status": 2
}修改刀具(KnifeUpdate)
通过刀具标识(Id)修改刀具的常规字段值。 刀具所属的装备调整须通过 移动刀具(KnifeMove) 接口实现。
请求示例
{
// 刀具标识(必要)
"Id": 6892182778556889,
// 刀具代码(可选)
"Code": "S0086",
// 刀具件号(可选)
"Number": "ZI0105575",
// 刀具名称(必要)
"Name": "铣刀 D1.0*刃3*D4*50L*3F",
// 单件损耗(必要)
"Consume": 1,
// 寿命类型(必要)
"Type": 3,
// 额定寿命(必要)
"Life": 10000,
// 已用(可选)
"Used": 130
}响应示例
{
"Id": 6892182778556889,
"Code": "S0086",
"Number": "ZI0105575",
"Name": "铣刀 D1.0*刃3*D4*50L*3F",
"Consume": 1,
"Type": {
"value": 3,
"name": "PIECE",
"text": "件"
},
"Life": 10000,
"Used": 130,
// 更新时间
"Updated": "2024-4-25 10:16:01",
// 响应状态码
"Status": 2
}移动刀具(KnifeMove)
移动指定刀具到其它装备的刀位。
请求示例
{
// 刀具标识(必要)
"Id": 6892182769831190,
// 装备标识(必要)
"EquipmentId": 6892182769831190,
// 刀位(必要)
"Position": 1
}响应示例
{
"Id": 6892182769831190,
"EquipmentId": 6892182769831190,
"Position": 1,
// 更新时间
"Updated": "2024-4-25 10:16:01",
// 响应状态码
"Status": 2
}删除刀具(KnifeDelete)
服务端(JOYZL SCADA Server) 不会记录已删除刀具的任何信息,历史记录功能应由 ERP 或 MES 等第三方系统提供。
请求示例
{
// 刀具标识(必要)
"Id": 6892182769831190,
}响应示例
{
"Id": 6892182769831190,
// 响应状态码
"Status": 2
}模具
监控模具寿命,并在临近失效或已经失效时报警。 服务端(JOYZL SCADA Server) 通过模具的额定寿命和装备的产量实时计算模具已用量而执行监控。 临近表示模具用量接近额定寿命(低于10); 失效表示模具用量已等于或超过额定寿命。
注意: 服务端(JOYZL SCADA Server) 仅监控已装载模具的寿命,不会记录模具的其它信息,历史记录和统计等功能应由 ERP 或 MES 等应用级系统提供。
获取模具数量(MoldAmount)
获取全部或指定范围的模具数量,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有装备的模具数量; 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的模具数量; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的模具数量。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892182778556009,
// 装备标识(可选)
"EquipmentId": 6892182769831190,
} 响应示例
{
"ZoneId": 6892182778556009,
"EquipmentId": 6892182769831190,
// 模具数量
"Mold": 100,
// 失效数量
"Invalid": 12,
// 告警数量
"Warning": 26,
// 响应状态码
"Status": 2
}获取多个模具(MoldSelect)
获取全部或指定范围的模具,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有装备的模具; 指定区域标识(ZoneId)参数时,仅返回指定区域(不含子区域)的模具; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的模具; 告警(Warning)模具包含临近和失效的模具。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892182778556009,
// 装备标识(可选)
"EquipmentId": 6892182769831190,
// 是否告警(可选)
"Warning": false
}响应示例
{
"ZoneId": 6892182778556009,
"EquipmentId": 6892182769831190,
"Warning": false,
// 模具集合
"Molds": [
{
// 模具标识
"Id": 6892182778556889,
// 装备标识
"EquipmentId": 6892182769831190,
// 模具编号
"Number": "SP098-00981",
// 模具名称
"Name": "SP098连续模",
// 单件损耗
"Consume": 1,
// 额定寿命
"Life": 10000,
// 已用
"Used": 130,
}
…
],
// 响应状态码
"Status": 2
}获取模具状态(MoldState)
获取指定模具的最新状态。 此接口仅返回模具最新已用量,不会返回模具的其它字段。
请求示例
{
// 模具标识(必要)
"Id": 6892182778556889
}响应示例
{
"Id": 6892182778556889,
// 已用
"Used": 100,
// 响应状态码
"Status": 2
}新建模具(MoldCreate)
创建新的模具以监控其寿命,模具编号应保持唯一不重复。
请求示例
{
// 装备标识(必要)
"EquipmentId": 6892182769831190,
// 模具编号(必要)
"Number": "SP098-00981",
// 模具名称(必要)
"Name": " SP098连续模",
// 单件损耗(必要)
"Consume": 1,
// 额定寿命(必要)
"Life": 10000,
// 已用(可选)
"Used": 130
}响应示例
{
"EquipmentId": 6892182769831190,
"Number": "SP098-00981",
"Name": " SP098连续模",
"Consume": 1,
"Life": 10000,
"Used": 130,
// 模具标识
"Id": 6892182778556889,
// 创建时间
"Created": "2024-4-25 10:16:01",
// 响应状态码
"Status": 2
}修改模具(MoldUpdate)
通过模具标识(Id)修改模具的常规字段值。 模具所属的装备调整须通过 移动模具(MoldMove) 接口实现。
请求示例
{
// 模具标识(必要)
"Id": 6892182778556889,
// 模具编号(必要)
"Number": "SP098-00981",
// 模具名称(必要)
"Name": " SP098连续模",
// 单件损耗(必要)
"Consume": 1,
// 额定寿命(必要)
"Life": 10000,
// 已用(可选)
"Used": 130
}响应示例
{
"Id": 6892182778556889,
"Number": "SP098-00981",
"Name": " SP098连续模",
"Consume": 1,
"Life": 10000,
"Used": 130,
// 更新时间
"Updated": "2024-4-25 10:16:01",
// 响应状态码
"Status": 2
}移动模具(MoldMove)
移动指定模具到其它装备。
请求示例
{
// 模具标识(必要)
"Id": 6892182769831190,
// 装备标识(必要)
"EquipmentId": 6892182769831190
}响应示例
{
"Id": 6892182769831190,
"EquipmentId": 6892182769831190,
// 更新时间
"Updated": "2024-4-25 10:16:01",
// 响应状态码
"Status": 2
}删除模具(MoldDelete)
服务端(JOYZL SCADA Server) 不会记录已删除模具的任何信息,历史记录功能应由 ERP 或 MES 等第三方系统提供。
请求示例
{
// 模具标识(必要)
"Id": 6892182769831190,
}响应示例
{
"Id": 6892182769831190,
// 响应状态码
"Status": 2
}装备
装备表示工厂车间的生产设备,通常具有较大体积; 为便于与通信装置进行区分,装备对应大型设备,而设备对应通信装置。
获取装备数量(EquipmentAmount)
获取全部或指定区域的装备数量,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有装备数量; 指定区域标识(ZoneId)参数时,仅返回指定区域(不含子区域)的装备数量; 指定类型字符串(Type)参数时,仅返回指定类型的装备数量; 指定启用或禁用(Enable)参数时,仅返回指定状态的装备数量。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892141150584634,
// 类型字符串(可选)
"Type": "CNC"
}响应示例
{
"ZoneId": 3358725158993927,
"Type": "CNC",
// 装备数量
"Equipment ": 142,
// 启用数量
"Enable ": 140,
// 在产数量
"Produce": 108,
// 待产数量
"Waiting ": 30,
// 告警数量
"Alarm ": 0,
// 响应状态码
"Status": 2
}获取多个装备(EquipmentSelect)
获取全部或指定区域的装备,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有装备; 指定区域标识(ZoneId)参数时,仅返回指定区域(不含子区域)的装备; 指定类型字符串(Type)参数时,仅返回指定类型的装备; 指定启用或禁用(Enable)参数时,仅返回指定状态的装备。
请求示例
{
// 区域标识(可选)
"ZoneId": 6892141150584634,
// 启用禁用(可选)
"Enable": true,
// 类型字符串(可选)
"Type": "CNC"
}响应示例
{
"ZoneId": 6892141150584634,
"Enable": true,
"Type": "CNC",
// 装备
"Equipments": [
{
// 装备标识
"Id": 6892141164168701,
// 区域标识
"ZoneId": 4000605404135427,
// 装备名称
"Name": "CNC",
// 装备编号
"Number": "A101",
// 生产厂商
"Manufacturer": "兄弟",
// 装备型号
"Model": "S500",
// 备注
"Remark": "数控加工",
// 类型
"Type": "CNC",
// 启用或禁用
"Enable": true,
// 创建时间
"Created": "2025-08-25 11:42:22",
// 更新时间
"Updated": "2025-08-25 11:42:28",
// 设备标识
"DeviceId": 821196270600196,
// 计量属性标识
"QuantityId": 821177815662595,
// 计时属性标识
"DurationId": 0,
// 扫码属性标识
"ScannerId": 0,
// 报警状态
"Alarm": {
"name": " NONE",
"text": "无",
"value": 0
},
// 作业状态
"State": {
"name": " PRODUCE",
"text": "生产",
"value": 1
},
// 当前计量
"Quantity": 1230,
// 当前计时
"Duration": 12560,
// 状态更新时间戳
"Timestamp": 123489876565
}
...
],
// 响应状态码
"Status": 2
}获取单个装备(EquipmentQuery)
用于通过装备标识或编号获取单个装备。
请求示例
{
// 装备标识(单选)
"Id": 6892141164168701,
// 装备编号(单选)
"Number": "A101"
}响应示例
{
"Id": 6892141164168701,
"Number": "A101",
// 装备
"Equipment": {
// 装备标识
"Id": 6892141164168701,
// 区域标识
"ZoneId": 4000605404135427,
// 装备名称
"Name": "CNC",
// 装备编号
"Number": "A101",
// 生产厂商
"Manufacturer": "兄弟",
// 装备型号
"Model": "S500",
// 备注
"Remark": "数控加工",
// 类型
"Type": "CNC",
// 启用或禁用
"Enable": true,
// 创建时间
"Created": "2025-08-25 11:42:22",
// 更新时间
"Updated": "2025-08-25 11:42:28",
// 设备标识
"DeviceId": 821196270600196,
// 计量属性标识
"QuantityId": 821177815662595,
// 计时属性标识
"DurationId": 0,
// 扫码属性标识
"ScannerId": 0,
// 报警状态
"Alarm": {
"name": " NONE",
"text": "无",
"value": 0
},
// 作业状态
"State": {
"name": " PRODUCE",
"text": "生产",
"value": 1
},
// 当前计量
"Quantity": 1230,
// 当前计时
"Duration": 12560,
// 状态更新时间戳
"Timestamp": 123489876565
},
// 响应状态码
"Status": 2
}获取装备状态(EquipmentState)
获取指定装备的最新状态。 此接口仅返回装备状态,不会返回装备的其它字段。
请求示例
{
// 装备标识(必要)
"Id": 6892141164168701
}响应示例
{
"Id": 6892141164168701,
// 报警状态
"Alarm": {
"name": " NONE",
"text": "无",
"value": 0
},
// 作业状态
"State": {
"name": " PRODUCE",
"text": "生产",
"value": 1
},
// 当前计量
"Quantity": 1230,
// 当前计时
"Duration": 12560,
// 状态更新时间戳
"Timestamp": 123489876565,
// 响应状态码
"Status": 2
}校验装备编号(EquipmentUnique)
校验装备编号是否可用。 系统中不允许存在相同的装备编号, 指定装备标识参数时,将排除指定装备的编号。
请求示例
{
// 装备标识(可选)
"Id": 249934146174993,
// 编号(必要)
"Number": "A8901"
}响应示例
{
"Id": 249934146174993,
"Number": "A8901",
// 是否可用
"Available": true,
// 响应状态码
"Status": 2,
}新建装备(EquipmentCreate)
新建装备用于监控状态和记录产量。 装备必须指定其所属的区域标识(ZoneId)参数; 装备的编号须确保全局唯一不重复, 可先通过校验装备编号(EquipmentUnique)接口验证; 新创建的装备处于禁用状态,后续还须为装备绑定设备和属性。
新建装备时可指定类型(Type)字符串,值可由客户端或用户任意指定, 通常用于区分装备的类型, 这有助于客户端正确的展示装备视图。
装备类型常用以下单词: CNC(数控机床)、 PRESS(冲床)、 IMM(注塑机)、 DCM(压铸机)、 BENDER(折弯机)、 SHEAR(剪板机)、 CUTTER(切割机)、 ROUTER(雕刻机)、 WELDER(焊机)、 SCREWDRIVER(螺丝机)、 ROBOT(机械臂)、 CONVEYOR(传送带)、 AGV(自动导引车)、 GANTRY(桁架机械手)、 STACKER(堆垛机)、 ASSEMBLY(组装线)、 TORQUE(扭矩扳手)、 DISPENSER(涂胶机)。
请求示例
{
// 区域标识(必要)
"ZoneId":6892141148492572,
// 装备名称(必要)
"Name": "数控加工机",
// 装备编号(必要)
"Number": "A8901",
// 装备型号(可选)
"Model": "M1",
// 生产厂商(可选)
"Manufacturer": "设备制造厂商",
// 启用或禁用(可选)
"Enable": true,
// 备注(可选)
"Remark": "已投产设备",
// 类型(可选)
"Type": "CNC"
}响应示例
{
"ZoneId":6892141148492572,
"Name": "数控加工机",
"Number": "A8901",
"Model": "M1",
"Manufacturer": "设备制造厂商",
"Enable": true,
"Remark": "已投产设备",
"Type": "CNC",
// 装备标识
"Id": 249934146174993,
// 创建时间
"Created": "2024-4-25 10:16:01",
// 响应状态码
"Status": 2
}修改装备(EquipmentUpdate)
通过装备标识(Id)修改装备的常规字段值。 装备所属的区域调整须通过 移动装备(EquipmentMove) 接口实现; 装备的启用或禁用须通过 启用或禁用装备(EquipmentEnable) 接口实现。
请求示例
{
// 装备标识(必要)
"Id": 618936194301960,
// 名称(必要)
"Name": "CNC",
// 编号(必要)
"Number": "A101",
// 生产厂商(可选)
"Manufacturer": "兄弟",
// 型号(可选)
"Model": "S500",
// 备注(可选)
"Remark": "数控加工",
// 类型(可选)
"Type": "CNC"
}响应示例
{
"Id": 618936194301960,
"Manufacturer": "兄弟",
"Model": "S500",
"Name": "CNC",
"Number": "A101",
"Remark": "数控加工",
"Type": "CNC",
// 更新时间
"Updated": "2023-08-11 11:44:47",
// 响应状态码
"Status": 2
}更换装备(EquipmentChange)
更换装备关联的设备(Device)。 装备与设备(Device)并非绝对的一对一关系,在单体装备场景下,通常为一对一关系; 但对于产线或化工领域,单个通信设备(Device)可能连接多个装备。
请求示例
{
// 装备标识(必要)
"Id": 6892141152267000,
// 设备标识(可选)
"DeviceId": 821196270600196,
// 计量属性标识(可选)
"QuantityId": 821177815662595,
// 计时属性标识(可选)
"DurationId": 0,
// 扫码属性标识(可选)
"ScannerId": 0
}响应示例
{
"Id": 6892141152267000,
"DeviceId": 821196270600196,
"QuantityId": 821177815662595,
"DurationId": 0,
"ScannerId": 0,
// 更新时间
"Updated": "2023-07-31 14:26:01",
// 响应状态码
"Status": 2
}启用或禁用装备(EquipmentEnable)
禁用的装备将不会纳入监控序列,也不会记录轮值产量。
请求示例
{
// 装备标识(必要)
"Id": 6892141152267000,
// 禁用或启用(必要)
"Enable": true
}响应示例
{
"Id": 6892141152267000,
"Enable": true,
// 更新时间
"Updated": "2023-07-31 14:26:01",
// 响应状态码
"Status": 2
}移动装备(EquipmentMove)
将装备从当前区域移动至另一目标区域,使其成为另一个区域的装备。 装备移动后,其产量记录所遵循的轮值班次将根据新区域及其上级区域设定自动调整。 注意:在原区域记录的产量不会发生变化。
请求示例
{
// 装备标识
"Id": 6892141152267000,
// 区域标识
"ZoneId": 6892141150584634
}响应示例
{
"Id": 6892141152267000,
"ZoneId": 6892141150584634,
// 更新时间
"Updated": "2023-07-31 14:26:01",
// 响应状态码
"Status": 2
}删除装备(EquipmentDelete)
删除装备时,装备内的刀具或模具将被同时删除。 装备产生的产量记录将在数据过期后释放存储空间。 删除装备不会影响关联设备(Device)的通信和数据。
请求示例
{
// 装备标识(必要)
"Id": 6892180868975489
}响应示例
{
"Id": 6892180868975489,
// 响应状态码
"Status": 2
}轮值
轮值表示工厂车间的上下班时间, 装备将根据设定的轮值时间记录每个时间段的产量。 装备将按所在区域及父区域匹配轮值,直至企业级全局轮值。 如果未配置任何轮值,装备将不会自动记录产量。
工厂可以将轮值时间段与实际工作时间对应, 也可以将实际工作时间拆分为多个更小的轮值。 更小的轮值有助于记录小段时间的产量, 如果工厂实施了每小时报工制度,可以与此对应。
获取多个轮值(ShiftSelect)
获取全部或指定区域的轮值,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有轮值; 指定区域标识(ZoneId)参数时,仅返回指定区域(不含子区域)的轮值。
请求示例
{
// 区域标识(可选)
"ZoneId": 6953015064092456
}响应示例
{
"ZoneId": 6953015064092456,
// 轮值集合
"Shifts": [
{
// 轮值标识
"Id": 6892189876541566,
// 区域标识
"ZoneId": 6892182769831190,
// 轮值名称
"Name": 白班",
// 开始时间
"Begin": 10:15:00",
// 结束时间
"End ": 11:15:00",
// 创建时间
"Created": "2025-08-26 10:15:00",
// 更新时间
"Updated": "2025-08-26 11:15:00"
}
…
],
// 响应状态码
"Status":2
}校验轮值时间(ShiftUnique)
多个轮值之间的时间不能重叠,在创建或修改前应先校验轮值时间是否可用。 指定轮值标识(Id)参数时,将排除指定轮值的时段。
请求示例
{
// 轮值标识(可选)
"Id":6926833763504759,
// 开始时间(必要)
"Begin":"08:00:00",
// 结束时间(必要)
"End":"18:00:00"
}响应示例
{
"Id":6926833763504759,
"Begin":"08:00:00",
"End":"18:00:00",
// 可用状态
"Available": false,
// 响应状态码
"Status": 2
}新建轮值(ShiftCreate)
轮值可位于企业或任意区域,位于企业的轮值即为全局轮值, 位于区域的轮值仅作用于所属区域和子区域, 既各个厂区可以采用不同的轮值时间。
请求示例
{
// 区域标识(可选)
"ZoneId":0,
// 轮值名称(必要)
"Name":"早中班",
// 开始时间(必要)
"Begin":"08:00:00",
// 结束时间(必要)
"End":"18:00:00"
}响应示例
{
"ZoneId":0,
"Name":"早中班",
"Begin":"08:00:00",
"End":"18:00:00",
// 轮值标识
"Id":6926833763504759,
// 创建时间
"Created": "2022-12-13 19:54:53",
// 响应状态码
"Status":2
}修改轮值(ShiftUpdate)
通过轮值标识(Id)修改轮值的常规字段值。 由于轮值的特殊性没有提供移动区域的操作。
请求示例
{
// 轮值标识(必要)
"Id":238253447937797,
// 轮值名称(必要)
"Name":"早中班",
// 开始时间(必要)
"Begin":"08:00:00",
// 结束时间(必要)
"End":"18:00:00",
}响应示例
{
"Id":238253447937797,
"Name":"早中班",
"Begin":"08:00:00",
"End":"18:00:00",
// 更新时间
"Updated": "2023-08-14 11:12:47",
// 响应状态码
"Status":2,
}删除轮值(ShiftDelete)
删除轮值后,装备将不在记录此时间段的产量。 已记录的时段产量不会受到影响。
请求示例
{
// 轮值标识(必要)
"Id":6926833763504759
}响应示例
{
"Id":6926833763504759,
// 响应状态码
"Status":2
}
数据
获取装备任意时段采集数据的步骤:
- 获取遥测信号(SignalSelect), 查询诸如“速度”、“温度”、“电压”等信号的标识;
- 获取时序数据(ValueSelect), 按具体信号和时间段查询历史时序数据。
提示: 大部分时序数据都为浮点数或整数, 可通过面积图或折线图以图形方式展现于最终用户, 这有助于直观反应装备当时的工况。
获取遥测信号(SignalSelect)
获取装备(设备)遥测的信号项。 这些信号项(遥测信号)在生产加工过程中将被记录时序数据。 装备(设备)通常有多项遥测信号(属性), 接口会过滤掉不产生数据或仅用于控制的信号项。
遥测信号的属性标识(AttributeId)可用于获取时序数据, 请参考通信类接口 获取时序数据(ValueSelect) 了解更多信息。
请求示例
{
// 设备标识(单选)
"DeviceId": 2815031825661954,
// 装备标识(单选)
"EquipmentId": 6892182778556009,
// 装备编号(单选)
"EquipmentNumber": "A101"
}响应示例
{
"DeviceId": 2815031825661954,
"EquipmentId": 6892182778556009,
"EquipmentNumber": "A101",
// 信号集合
"Signals": [
{
// 属性标识
"AttributeId": 345659483765364,
// 属性名称
"Name": "转速",
// 单位
"Unit": "RPM"
}
…
],
// 响应状态码
"Status": 2
}