服务咨询电话:

400-123-4567

数控机床物联网(IoT)数据采集接口协议 V2.1

发布时间:2018-09-06 17:21:21 人气:

版本:V2.1
编制部门:上海软星科技有限公司 智能互联事业部


1. 协议概述


1.1 设计原则:基于RESTful架构,使用HTTP/HTTPS协议,数据交换格式为JSON,保证接口的通用性、可扩展性和安全性。
1.2 通信安全
- 所有API调用必须使用HTTPS加密传输。
- 采用OAuth 2.0客户端凭证模式进行身份认证。
- 支持IP白名单访问控制。


2. 认证流程
2.1 获取Access Token
请求示例
```http
POST /oauth/token HTTP/1.1
Host: api.softstar-machine.com
Content-Type: application/x-www-form-urlencoded


  grant_type=client_credentials&client_id=your_client_id&client_secret=your_client_secret

  ```

- **响应示例**:

  ```json

  {

    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",

    "token_type": "bearer",

    "expires_in": 3600

  }

  ```

3. 核心API接口详解
3.1 获取设备实时状态
端点GET /api/v2/machines/{machineId}/status
响应体
json { "machineId": "CNC-001", "timestamp": "2023-10-27T14:30:25.000Z", "status": "RUNNING", // RUNNING, IDLE, ALARM, SETUP, DOWN "currentProgram": "O1234 (MAIN_PROGRAM)", "executionMode": "AUTO", "feedRateOverride": 100, "spindleSpeedOverride": 100, "spindleSpeed": 4500.5, "feedRate": 1200.0, "axisData": { "X": 125.456, "Y": -25.789, "Z": 0.000, "B": 0.000 }, "alarm": { "isActive": false, "code": null, "message": null } }

3.2 读取报警历史记录
端点GET /api/v2/machines/{machineId}/alarms?startTime=2023-10-26T00:00:00Z&endTime=2023-10-27T23:59:59Z
响应体
json { "alarms": [ { "id": 1001, "code": "SVR-024", "message": "X-axis servo overload", "severity": "ERROR", // WARNING, ERROR, CRITICAL "startTime": "2023-10-27T10:15:30.000Z", "endTime": "2023-10-27T10:16:05.000Z", "duration": 35 } ] }

3.3 上报加工计数
端点POST /api/v2/machines/{machineId}/count
请求体
json { "partNumber": "P-20231027-001", "count": 1, "programName": "O1234", "timestamp": "2023-10-27T14:35:00.000Z" }

4. 数据点列表(部分)

数据点标识符描述数据类型单位更新频率
sys.status设备状态Enum-状态变化时
spindle.speed主轴实际转速Floatrpm1 Hz
spindle.load主轴负载百分比Float%1 Hz
axis.x.absX轴绝对坐标Floatmm5 Hz
axis.y.absY轴绝对坐标Floatmm5 Hz
alarm.active当前报警状态Boolean-状态变化时
prog.current当前运行程序String-程序变化时

5. 客户端集成示例 (Python)


import requests

import json


def get_machine_status(api_base_url, machine_id, access_token):

    headers = {'Authorization': f'Bearer {access_token}'}

    url = f"{api_base_url}/machines/{machine_id}/status"

    

    try:

        response = requests.get(url, headers=headers, timeout=5)

        response.raise_for_status()

        return response.json()

    except requests.exceptions.RequestException as e:

        print(f"Error fetching machine status: {e}")

        return None


# 使用示例

api_base_url = "https://api.softstar-machine.com/api/v2"

machine_id = "CNC-001"

access_token = "your_access_token_here"


status_data = get_machine_status(api_base_url, machine_id, access_token)

if status_data:

    print(f"Machine {status_data['machineId']} is {status_data['status']}")

    print(f"Running program: {status_data['currentProgram']}")


在线客服
服务热线

服务热线

13901614567

扫一扫
上海软星科技有限公司
返回顶部