找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
问题
取消精华
首页精华问答
取消推荐
高端用户推荐
申请置评
已申请置评
修改
修改标签
添加标签
官方认证
取消官方认证
修改标签
添加标签
转移分类
删除
收藏({{answerDetail.Q_FavoriteCounts}})
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
专家建议
取消最佳答案
修改
S7-200 SMART PLC(如 ST30/ST40/ST60 等型号)支持Web 服务器功能,其 Web API(基于 HTTP 协议的接口)可通过 HTTP 请求实现与 PLC 的数据交互(读写输入 / 输出、内存区、定时器、计数器等),无需额外安装驱动,适用于上位机、HMI、第三方系统通过网络访问 PLC 数据。以下是 Web API 的详细使用方法:
一、前提条件(使用前必看)
硬件支持:仅 S7-200 SMART 的ST 系列 CPU(ST30/ST40/ST60/ST20)支持 Web 服务器功能,CR 系列(CR40/CR60)不支持。
软件版本:
编程软件:STEP 7-Micro/WIN SMART V2.5 及以上(需支持 Web 服务器配置);
PLC 固件:V2.5 及以上(低于此版本需升级固件,通过 STEP 7-Micro/WIN SMART 在线升级)。
网络配置:
为 PLC 分配固定 IP 地址(如 192.168.2.1),确保上位机(如电脑、触摸屏)与 PLC 在同一网段(子网掩码一致,如 255.255.255.0);
用网线连接 PLC 的以太网口与上位机或交换机,确保物理链路通畅(PLC 的 LINK/ACT 指示灯正常闪烁)。
二、启用并配置 Web 服务器(关键步骤)
在 STEP 7-Micro/WIN SMART 中配置 Web 服务器,允许 API 访问:
打开系统块配置:在编程软件左侧项目树中,双击 “系统块”→ 切换到 “Web 服务器” 选项卡。
启用 Web 服务器:勾选 “启用 Web 服务器”,设置 “端口号”(默认 80,可自定义,如 8080,需确保无端口冲突)。
配置访问权限:
勾选 “允许通过 Web API 访问数据”(核心,否则 API 无法读写数据);
设置 “用户名” 和 “密码”(用于 HTTP 请求的身份认证,默认用户名 “admin”,密码需自定义,如 “123456”);
可选:限制允许访问的 IP 地址(如仅允许 192.168.2.x 网段,增强安全性)。
保存并下载配置:点击 “确定” 保存系统块,将配置下载到 PLC(需 PLC 处于停止状态,下载后重启 PLC 使配置生效)。
三、Web API 接口说明(核心)
S7-200 SMART 的 Web API 通过HTTP GET/POST 请求读写数据,返回格式为JSON,支持的数据区包括:
输入(I)、输出(Q)、内存位(M)、定时器(T)、计数器(C)、变量存储区(V)、模拟量输入(AI)、模拟量输出(AQ)等。
1. 通用请求格式
请求 URL:http://<PLC的IP地址>:<端口号>/iot/data/<操作类型>
操作类型:read(读取数据)、write(写入数据)
请求头:需包含身份认证信息(Basic Auth),格式为:
Authorization: Basic <Base64编码的"用户名:密码">
(例如:用户 “admin”,密码 “123456”,Base64 编码后为 “YWRtaW46MTIzNDU2”,则请求头为Authorization: Basic YWRtaW46MTIzNDU2)
请求参数:通过 URL 参数(GET)或请求体(POST)传递数据区信息(见下文示例)。
2. 读取数据(GET 请求)
功能:读取 PLC 指定数据区的数值(如 I0.0 的状态、V100 的字值)。
URL 格式:http://<PLC_IP>:<端口>/iot/data/read?area=<数据区>&address=<地址>&count=<数量>
参数 含义 示例
area 数据区类型(必选):
- I(输入)、Q(输出)、M(内存位)
- T(定时器)、C(计数器)
- V(变量存储区)、AI(模拟量输入)、AQ(模拟量输出) area=V(读取 V 区)
address 地址(必选):格式为 “字节。位”(位操作)或 “字节”(字 / 双字操作) 位地址:0.0(V0.0);字地址:100(V100,字单位)
count 读取数量(可选,默认 1):位操作时为 “位数量”,字操作时为 “字数” count=2(读取 2 个数据)
示例 1:读取 V100.0 的状态(位操作)
请求 URL:http://192.168.2.1:80/iot/data/read?area=V&address=100.0
请求头:Authorization: Basic YWRtaW46MTIzNDU2
成功响应(JSON):
json
{
"result": "success",
"data": [true] // true=1(ON),false=0(OFF)
}
示例 2:读取 V200 开始的 2 个字(字操作,V200 和 V202)
请求 URL:http://192.168.2.1:80/iot/data/read?area=V&address=200&count=2
响应:
json
{
"result": "success",
"data": [1234, 5678] // V200=1234,V202=5678(字值)
}
3. 写入数据(POST 请求)
功能:向 PLC 指定数据区写入数值(如置位 Q0.0、写入 V300 的字值)。
URL 格式:http://<PLC_IP>:<端口>/iot/data/write
请求体(JSON 格式):
json
{
"area": "<数据区>",
"address": "<地址>",
"value": [<数值1>, <数值2>...], // 与count数量一致
"count": <数量> // 可选,默认1
}
示例 1:将 Q0.0 置位(位操作,写 1)
请求 URL:http://192.168.2.1:80/iot/data/write
请求头:Authorization: Basic YWRtaW46MTIzNDU2 + Content-Type: application/json
请求体:
json
{
"area": "Q",
"address": "0.0",
"value": [true]
}
成功响应:
json
{
"result": "success"
}
示例 2:向 V400 写入 3 个浮点数(需按字拆分,S7-200 SMART 浮点数占 2 个字)
注:浮点数需转换为 IEEE 754 格式的字值(如 3.14→拆分后为 [16472, 19456],可通过编程软件或工具计算)。
请求体:
json
{
"area": "V",
"address": "400",
"value": [16472, 19456, ...], // 每个浮点数占2个字,3个浮点数需6个字
"count": 6
}
四、调试工具与验证
浏览器直接测试(仅读操作):在浏览器地址栏输入带认证的读取 URL(需先通过浏览器登录 Web 服务器,输入用户名密码),如
等您来回答
换一换
{{item.CoinValue}}西币
{{item.VisitNum}}人想问
本版相关问题
换一换
专家置评
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!

西门子商城