中国国旗 中国智造
中国国旗 中国智造

JOYZL SCADA Server

工厂类接口

URL /actions/factory/*

PKG com.joyzl.scada.client.factory.*

工厂类接口
模块接口用途权限
FactoryReview追溯工件履历SYATEM
FactoryYieldAmount获取产量数量SYATEM
FactoryYieldSelect获取多个产量SYATEM
FactoryPieceAmount获取工件数量SYATEM
FactoryPieceSelect获取多个工件SYATEM
FactoryPieceQueues获取排队工件SYATEM
FactoryPieceCreate新建排队工件SYATEM
FactoryPieceRemove移除排队工件SYATEM
FactoryPieceClear清除排队工件SYATEM
FactoryPieceScraps获取报废工件SYATEM
FactoryPieceScrap报废工件SYATEM
FactoryEquipmentAmount获取装备数量SYATEM
FactoryEquipmentSelect获取多个装备SYATEM
FactoryEquipmentQuery获取单个装备SYATEM
FactoryEquipmentState获取装备状态SYATEM
DeviceSignalSelect获取遥测数据SYATEM

追溯

追溯工件的加工履历和质检数据及质检结果。 在一件一码产品生产过程中,由扫码器读取工件编号(条形码或二维码), 应要求关键工序的机台和质检环节执行扫码动作。 JOYZL SCADA 软件系统必须依赖工件编号来记录加工履历和质检数据, 对于不扫码的生产过程,不会生成加工履历。

追溯工件履历和采集数据的步骤:

  1. 获取工件履历(Review), 查询工件经历的机台;
  2. 获取遥测信号(SignalSelect), 查询具体机台诸如“速度”、“温度”等信号的标识;
  3. 获取时序数据(ValueSelect), 按具体信号和时间段查询历史时序数据。

追溯工件履历(Review)

URL /review

获取指定工件编号(工件表面蚀刻或印制的唯一编码)的加工履历,包含工件经历的机台和质检。 /review 接口同时返回指定工件的加工履历和质检记录。

请求示例
GET /review?code=JOYZL-20251030-000321

POST /review
// 由请求内容提交参数
code=JOYZL-20251030-000321
响应示例
{
	// 工件编号(条形码或二维码)
	"Code": "JOYZL-20251030-000321",
	// 工件记录
	"Pieces": [
		{
			// 装备标识
			"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"
		},
		{
			// 装备标识
			"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)字段。

根对象的结果(Verdict)字段表示最终质检结果, 有三种值:"OK"、"NG"、"UN",分别代表:合格、不良、未知。

产量

装备在每个轮值周期内生产的产品数量(PCS)。

获取产量数量(YieldAmount)

URL /actions/factory/YieldAmount

PKG com.joyzl.scada.client.factory.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)

URL /actions/factory/YieldSelect

PKG com.joyzl.scada.client.factory.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)

URL /actions/factory/PieceAmount

PKG com.joyzl.scada.client.factory.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)

URL /actions/factory/PieceSelect

PKG com.joyzl.scada.client.factory.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,
			// 员工编号
			"Employee": "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
}

获取排队工件(PieceQueues)

URL /actions/factory/PieceQueues

PKG com.joyzl.scada.client.factory.PieceQueues

获取全部或指定范围的工件,可见范围取决于用户所在的区域。 缺省所有参数时,返回当前用户可见范围的所有待加工工件(排队件); 指定区域标识(ZoneId)参数时,仅返回指定区域(含子区域)的工件; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的工件。

请求示例
{
	// 区别标识(可选)
	"ZoneId": 6892182778556009,
	// 装备标识(可选)
	"EquipmentId": 6892182769831190,
	// 装备编号(可选)
	"EquipmentNumber": "A101"
}
响应示例
{
	"ZoneId": 6892182778556009,
	"EquipmentId": 6892182769831190,
	"EquipmentNumber": "A101",

	// 工件集合
	"Pieces": [
		{
			// 装备标识
			"EquipmentId": 6892182769831190,
			// 员工编号
			"Employee": "O0021",
			// 工件编号
			"Code": "JOYZL-20251030-000321",
			// 扫码时间
			"Scan": "2025-08-26 10:12:00"
		}
		…
	],
	// 响应状态码
	"Status": 2
}

新建排队工件(PieceCreate)

URL /actions/factory/PieceCreate

PKG com.joyzl.scada.client.factory.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,
			// 员工编号
			"Employee": "O0021",
			// 工件编号
			"Code": "JOYZL-20251030-000321",
			// 扫码时间
			"Scan": "2025-08-26 10:12:00"
		}
		…
	],
	// 响应状态码
	"Status": 2
}

移除排队工件(PieceRemove)

URL /actions/factory/PieceRemove

PKG com.joyzl.scada.client.factory.PieceRemove

移除装备排队中的工件,然后返回装备所有排队的工件。

请求示例
{
	// 装备标识(单选)
	"EquipmentId": 6892182769831190,
	// 装备编号(单选)
	"EquipmentNumber": "A101",
	// 工件编号(必要)
	"Code": "JOYZL-20251030-000321"
}
响应示例
{
	"EquipmentId": 6892182769831190,
	"EquipmentNumber": "A101",
	"Code": "JOYZL-20251030-000321",

	// 工件集合
	"Pieces": [
		{
			// 装备标识
			"EquipmentId": 6892182769831190,
			// 员工编号
			"Employee": O0021,
			// 工件编号
			"Code": "JOYZL-20251030-000321",
			// 扫码时间
			"Scan": "2025-08-26 10:12:00"
		}
		…
	],
	// 响应状态码
	"Status": 2
}

清除排队工件(PieceClear)

URL /actions/factory/PieceClear

PKG com.joyzl.scada.client.factory.PieceClear

清除指定装备所有排队的工件,无法清除已开始加工的工件,然后返回装备正在加工的工件(如果有)。

请求示例
{
	// 装备标识(单选)
	"EquipmentId": 6892182769831190,
	// 装备编号(单选)
	"EquipmentNumber": "A101"
}
响应示例
{
	"EquipmentId": 6892182769831190,
	"EquipmentNumber": "A101",

	// 工件
	"Piece": {
			// 装备标识
			"EquipmentId": 6892182769831190,
			// 员工编号
			"Employee": O0021,
			// 工件编号
			"Code": "JOYZL-20251030-000321",
			// 扫码时间
			"Scan": "2025-08-26 10:12:00",
			// 开始加工时间
			"Begin": "2025-08-26 10:15:00"
	},
	// 响应状态码
	"Status": 2
}

获取报废工件(PieceScraps)

URL /actions/factory/PieceScraps

PKG com.joyzl.scada.client.factory.PieceScraps

报废工件 由管理系统或扫码端报告的明确已报废工件, JOYZL SCADA 系统不会自动推断工件是否报废, 即便已联网的检验设备报告 NG 也不会将工件自动纳入报废工件。

查询报废工件无须校验区域,可全局查询以便于扫码端校验; 缺省所有参数时,返回全局所有报废工件; 指定装备标识(EquipmentId)或编号(EquipmentNumber)参数时,仅返回指定装备的报废工件; 指定开始(Begin)和结束(End)时间时将统计指定时间段报告的报废工件。

请求示例
{
	// 装备标识(可选)
	"EquipmentId": 6892182769831190,
	// 装备编号(可选)
	"EquipmentNumber": "A101",
	// 开始时间(可选)
	"Begin": "2022-12-13 00:00:00",
	// 结束时间(可选)
	"End": "2022-12-13 23:59:59"
}
响应示例
{
	"EquipmentId": 6892182769831190,
	"EquipmentNumber": "A101",
	"Begin": "2022-12-13 00:00:00",
	"End": "2022-12-13 23:59:59"

	// 工件集合
	"Pieces": [
		{
			// 装备标识
			"EquipmentId": 6892182769831190,
			// 工件编号
			"Code": "JOYZL-20251030-000321",
			// 扫码时间
			"Scan": "2025-08-26 10:12:00"
		}
		…
	],
	// 响应状态码
	"Status": 2
}

报废工件(PieceScrap)

URL /actions/factory/PieceScrap

PKG com.joyzl.scada.client.factory.PieceScrap

报告工件报废。

请求示例
{
	// 装备标识(可选)
	"EquipmentId": 6892182769831190,
	// 装备编号(可选)
	"EquipmentNumber": "A101",
	// 员工编号(可选)
	"Employee": "O0021",
	// 工件编号(必要)
	"Code": "JOYZL-20251030-000321",
}
响应示例
{
	"EquipmentId": 6892182769831190,
	"EquipmentNumber": "A101",
	"Employee": "O0021",
	"Code": "JOYZL-20251030-000321",
	// 响应状态码
	"Status": 2
}

装备

装备表示工厂车间的生产设备,通常具有较大体积; 为便于与通信装置进行区分,装备对应大型设备,而设备对应通信装置。 装备由系统中配置的设备自动生成,多个通信设备可能属于单个装备。

获取装备数量(EquipmentAmount)

URL /actions/factory/EquipmentAmount

PKG com.joyzl.scada.client.factory.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)

URL /actions/factory/EquipmentSelect

PKG com.joyzl.scada.client.factory.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)

URL /actions/factory/EquipmentQuery

PKG com.joyzl.scada.client.factory.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)

URL /actions/factory/EquipmentState

PKG com.joyzl.scada.client.factory.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
}

数据

获取装备任意时段采集数据的步骤:

  1. 获取遥测信号(SignalSelect), 查询诸如“速度”、“温度”、“电压”等信号的标识;
  2. 获取时序数据(ValueSelect), 按具体信号和时间段查询历史时序数据。

提示: 大部分时序数据都为浮点数或整数, 可通过面积图或折线图以图形方式展现于最终用户, 这有助于直观反应装备当时的工况。

获取遥测信号(SignalSelect)

URL /actions/device/SignalSelect

PKG com.joyzl.scada.client.device.SignalSelect

获取装备(设备)遥测的信号项。 这些信号项(遥测信号)在生产加工过程中将被记录时序数据。 装备(设备)通常有多项遥测信号(属性), 接口会过滤掉不产生数据或仅用于控制的信号项。

遥测信号的属性标识(AttributeId)可用于获取时序数据, 请参考通信类接口 获取时序数据(ValueSelect) 了解更多信息。

请求示例
{
	// 设备标识(单选)
	"DeviceId": 2815031825661954,
	// 装备标识(单选)
	"EquipmentId": 6892182778556009,
	// 装备编号(单选)
	"EquipmentNumber": "A101"
}
响应示例
{
	"DeviceId": 2815031825661954,
	"EquipmentId": 6892182778556009,
	"EquipmentNumber": "A101",

	// 信号集合
	"Signals": [
		{
			// 属性标识
			"AttributeId": 345659483765364,
			// 属性名称
			"Name": "转速",
			// 单位
			"Unit": "RPM"
		}
		…
	],
	// 响应状态码
	"Status": 2
}
技术支持
电话 JOYZL SCADA 电话 QQ JOYZL SCADA QQ 微信 JOYZL SCADA 微信
技术支持
电话 JOYZL SCADA 电话
QQ JOYZL SCADA QQ 微信 JOYZL SCADA 微信