您好,欢迎访问湖南辰控智能科技有限公司官网!

400-807-8997
湖南辰控智能科技有限公司
您的位置:首页 > 新闻动态 > 产品新闻
联系我们

湖南辰控智能科技有限公司

地址:湖南省长沙雨花区国际企业中心13栋8楼
电话:400-807-8997

咨询热线400-807-8997

云组态平台HTTP API接口使用说明书

发布时间:2026-06-12人气:0

目录

1. 前言

2. 产品与接口概述

3. 前置准备与设备接入

4. API 通用规范(请求头、签名、编码、错误码)

5. 核心接口详细说明(获取设备地址、单点读变量、单点写变量、批量读取变量)

6. C# 开发实例(配套源码工程说明)

7. PLC 变量点位定义对照表(对应附表变量清单)

8. 常见故障排查

9. 附录(MD5 加密源码、错误码全表)

前言

1.1 文档目的

本文档用于指导第三方系统、上位机软件、MESSCADA 系统通过HTTP/HTTPS Restful API对接辰控智能云组态远程 S7-1200 采集模块,实现 PLC 寄存器变量(区、区、DB 块)远程读写采集;文档排版、术语、章节结构参考华为物联网设备 API 说明书标准,规范接口调用逻辑、参数定义、异常处理。

1.2 适用范围

 硬件:辰控远程采集网关模块(对接西门子 S7-1200 PLC

 软件:辰控智能云组态平台、第三方 C#/Java/Python 上位机、MES 生产系统、数据中台

 接口协议HTTPS POST/GETJSON 数据交互格式

1.3 术语定义

术语

释义

设备 ID

云平台分配的唯一硬件标识(例:HNEPDQ2SUBZ1),设备入网后固定不变

设备 Key

设备鉴权密钥(例:YA3CQWVOEW1W),用于 MD5 签名加密,建议妥善保管不泄露

变量 ID

云组态数据表中变量的主键 ID(第一张表格 ID 列 1~10),每个 PLC 点位对应唯一 ID

节点服务器

辰控云 API 网关域名地址,全平台统一接入域名

当前状态

PLC 寄存器实时数值(Bit0/1Float0.000Int:整型数字)

产品与接口概述

2.1 产品简介

辰控云组态远程模块实现西门子 S7-1200 PLC 网口数据上云,将 PLC 内部中间寄存器、输出寄存器、DB 数据块寄存器映射至云组态变量表(见第一张业务数据表);用户通过平台开放 HTTP API,远程读写 PLC 变量,无需现场组态、穿透内网。

 

已映射点位清单(共 10 路变量):
|ID | 设备名称 变量名称 | PLC 变量地址 数据类型 |
| ---- | ---- | ---- | ---- | ---- |
|1|S7 1200 (Ethernet)_1 | 启动 | M30.1|Bool (0/1)|
|2|S7 1200 (Ethernet)_1 | 输出 | Q0.1|Bool (0/1)|
|3|S7 1200 (Ethernet)_1 | 启动 2|M30.2|Bool (0/1)|
|4|S7 1200 (Ethernet)_1 | 输出 2|Q0.2|Bool (0/1)|
|5|S7 1200 (Ethernet)_1 | 启动运算 | M30.3|Bool (0/1)|
|6|S7 1200 (Ethernet)_1 | 浮点数 1|DB1.0|Real (32 位浮点)|
|7|S7 1200 (Ethernet)_1 | 浮点数 2|DB1.8|Real (32 位浮点)|
|8|S7 1200 (Ethernet)_1 | 浮点结果 | DB1.12|Real (32 位浮点)|
|9|S7 1200 (Ethernet)_1 | 整数 1|DB1.20|Int (16 位整型)|
|10|S7 1200 (Ethernet)_1 | 整数 2|DB1.24|Int (16 位整型)|

2.2 API 接口能力总览

1. 获取设备网关地址:根据设备 ID+Key,从云平台获取当前设备在线接入节点地址

2. 单点读取变量:输入变量 ID,实时读取 PLC 寄存器当前状态数值

3. 单点写入变量:输入变量 ID + 目标数值,下发指令修改 PLC 对应寄存器

4. 批量读取变量:一次性传入多个变量 ID,批量返回多路 PLC 点位实时数据

前置准备与设备接入

3.1 设备入网步骤

1. 辰控远程模块上电,网口接入 S7-1200 PLC 以太网口,PLC 配置对应 DB/M/Q 寄存器;

2. 模块联网接入公网,自动注册至辰控云平台,平台生成设备 ID、设备 KeyForm1 窗体中参数);

3. 在云组态后台录入变量清单,完成 PLC 地址与变量 ID 绑定,生成变量主键 ID

 

4. 记录三项关键参数:设备ID、设备Key、节点服务器域名(窗体中已预置示例:HNEPDQ2SUBZ1 / YA3CQWVOEW1W)。

3.2 开发环境准备

配套 C# 示例工程:API案例.csproj,包含 4 个核心代码文件:

文件名

功能说明

Form1.cs

主窗体逻辑(读、写、批量按钮事件)

Form1.Designer.cs

UI 界面布局

HttpClient.cs

HTTP 请求封装类,统一处理 HTTPS 报文

MD5Encrypt.cs

MD5 签名加密工具类(鉴权必备)


开发环境:.NET Framework 4.8VS2019 及以上版本

4 API 通用规范

4.1 通信协议

全接口统一:HTTPS,请求编码:UTF-8,报文格式:JSON

4.2 通用鉴权规则

所有接口请求必须携带MD5 签名参数,签名算法:
Sign=MD5(设备ID+设备Key+时间戳)

1. 时间戳:Unix 时间戳(秒级,防重放攻击,接口校验时间误差 ±30s);

2. MD5 结果:32 位小写密文,放入请求 Body/Header

3. 设备 Key 为私密密钥,禁止明文传输至第三方。

4.3 通用请求 Header

http
Content-Type: application/json;charset=utf-8
User-Agent: CK-Api-Client/1.0(辰控智能)

4.4 通用返回 JSON 格式

json
{
    "code":200,
    "msg":"请求成功",
    "data":{}
}

 

返回码 code

说明

200

接口业务正常

401

签名错误 / 设备 ID 或 Key 错误

404

设备离线 / 变量 ID 不存在

500

云服务器内部异常

403

设备密钥被冻结

核心接口详细说明

接口 1:获取设备接入地址

接口信息

 请求方式:POST

 请求 URL{节点服务器}/api/device/GetDeviceAddr

 功能:根据设备 ID 和密钥,获取设备当前在线网关地址(后续读写接口基于该地址访问)

 

请求入参(JSON Body

json
{
    "DeviceId":"HNEPDQ2SUBZ1",
    "DeviceKey":"YA3CQWVOEW1W",
    "Timestamp":"1780862400",
    "Sign":"MD5加密结果"
}

返回示例

json
{
    "code":200,
    "msg":"获取成功",
    "data":{
        "GatewayUrl":"https://xxx.ck-cloud.com/device/HNEPDQ2SUBZ1"
    }
}

 

GatewayUrl 为后续读写变量接口基础 URL

接口 2:单点读取 PLC 变量

接口信息

 请求方式:POST

 请求 URL{GatewayUrl}/api/variable/ReadSingle

 功能:输入变量 ID,读取对应 PLC 寄存器实时数值(对应 Form 窗体【读取数据】按钮)

请求入参

json
{
    "DeviceId":"HNEPDQ2SUBZ1",
    "VariableId":1,
    "Timestamp":"1780862400",
    "Sign":"MD5签名密文"
}

返回示例(变量 ID=1M30.1 点位)

json
{
    "code":200,
    "msg":"读取成功",
    "data":{
        "VarId":1,
        "VarValue":0,
        "PlcAddr":"M30.1",
        "DataType":"Bool"
    }
}

接口 3:单点写入 PLC 变量

接口信息

 请求方式:POST

 请求 URL{GatewayUrl}/api/variable/WriteSingle

 功能:下发数值修改 PLC 寄存器(对应【写入数据】按钮)

请求入参

json
{
    "DeviceId":"HNEPDQ2SUBZ1",
    "VariableId":1,
    "WriteValue":1,
    "Timestamp":"1780862400",
    "Sign":"MD5签名密文"
}

 

数据类型约束:Bool 仅支持 0/1Real 传入浮点如 12.5Int 传入整数如 100

返回示例

json
{
    "code":200,
    "msg":"写入PLC成功",
    "data":{
        "VarId":1,
        "NewValue":1
    }
}

接口 4:批量读取多变量

接口信息

 请求方式:POST

 请求 URL{GatewayUrl}/api/variable/ReadBatch

 功能:一次性读取多个变量 ID(对应【批量读取】按钮)

请求入参

json
{
    "DeviceId":"HNEPDQ2SUBZ1",
    "VarIdList":[1,2,3,6],
    "Timestamp":"1780862400",
    "Sign":"MD5签名密文"
}

返回示例

json
{
    "code":200,
    "msg":"批量读取完成",
    "data":[
        {"VarId":1,"VarValue":0,"PlcAddr":"M30.1"},
        {"VarId":2,"VarValue":0,"PlcAddr":"Q0.1"},
        {"VarId":6,"VarValue":0.000,"PlcAddr":"DB1.0"}
    ]
}

6 C# 配套开发实例(基于工程 API 案例.csproj

6.1 界面对应逻辑(Form1 窗体)

1. 获取设备地址按钮:调用接口 1,回填网关地址至内存;

2. 读取数据按钮:取左侧变量 ID 文本框内容,调用接口 2,结果填充至变量内容;

3. 写入数据按钮:取变量 ID + 变量内容,调用接口 下发至 PLC

4. 批量读取按钮:下方输入框逗号分隔多个 ID,调用接口 批量采集。

6.2 关键代码片段

MD5 加密(MD5Encrypt.cs

csharp
public static string GetMD5(string source)
{
    MD5 md5 = MD5.Create();
    byte[] arr = md5.ComputeHash(Encoding.UTF8.GetBytes(source));
    StringBuilder sb = new StringBuilder();
    foreach(var b in arr) sb.Append(b.ToString("x2"));
    return sb.ToString();
}
//签名生成:MD5(DeviceId+DeviceKey+UnixTime)

HttpClient 请求(HttpClient.cs

封装 PostJson 通用方法,自动拼接请求头,统一收发 JSON 报文。

7 PLC 变量点位映射规范

7.1 寄存器类型说明

1. 区(中间继电器)M30.1/M30.2/M30.3 → Bit 型,取值 0/1

2. 区(输出线圈)Q0.1/Q0.2 → Bit 型,取值 0/1

3. DB 块(数据块)

 DB1.0/DB1.8/DB1.12S7 Real (4 字节浮点,保留 位小数 0.000)

 DB1.20/DB1.24S7 Int (2 字节有符号整数)

7.2 新增变量扩展规则

云组态后台新增 PLC 点位后,系统自动分配新变量 IDAPI 无需修改代码,仅填入新增 ID 即可读写。

故障排查指南

故障现象

排查方案

接口返回 401 签名错误

1. 核对设备 ID/Key2. 校验本地时间戳与服务器时差≤30s3. 确认 MD5 为 32 位小写

返回 404 设备离线

1. 检查辰控远程模块供电、PLC 网口接线;2. 确认模块联网接入公网

写入数值无变化

1. 核对变量 ID 对应 PLC 地址;2.PLC 程序无寄存器被程序强制赋值覆盖

浮点读取始终 0.000

检查 PLC DB 块属性:取消【优化的块访问】,否则偏移地址 DB1.0 失效

附录

附录 A:全量错误码清单

错误码 描述 解决方案 |
|401 | 签名鉴权失败 核对密钥、时间戳、MD5 算法 |
|404 | 设备不存在 离线 检查设备入网状态 |
|406 | 变量 ID 无效 核对云组态变量 ID 清单 |
|500 | 云端服务异常 联系辰控技术支持4008078997 |

附录 BPython/Java 简易调用示例(可选拓展)

如需其他语言示例可向辰控研发索取 SDK

附录 C:版本更新记录

版本 更新日期 更新内容 |
|V1.0|2026.06.06 | 初版文档,适配 S71200 云模块 API、配套 C# 案例 |



标签:全部

推荐资讯

400-807-8997