SIEMENS PLC Web API 学习记录
为顺应时代发展,西门子为 S7-200SMART/1200/1500 PLC 添加IT通讯所需要的 Web API。(由于S7-200 SMART 新固件必须配合新的硬件才能使用,手头没有),添加微信可获取文中测试源代码,部署自己电脑或PLC中测试相关API。
| 序号 | PLC类型 | 固件开始支持版本 | 当前API 版本 |
|---|---|---|---|
| 1 | S7-200 SMART | V2.7 | 未知 |
| 2 | S7-1200 | V4.5 | V1.46 |
| 3 | S7-1500 | V2.8 | V2.00 |
Web Api 概述
Web Api 是基于PLC Web Server 实现的,Web Server 是西门子PLC很早就开始支持的特性,提供基础数据查看,诊断、故障更新、变量监测、文件浏览下载等功能,并提供一套 AWP 语法实现自定义网页数据读写监控;从新版本开始支持 Web Api 功能,所谓Web Api就是通讯定义的接口和方法,直接获取PLC运行数据,而不需要登陆网页。具体可以干嘛?官方文档如下:
CPU 提供基于 Web 的 API (Web API) 作为读取和写入 CPU 数据的界面。Web API 可用于:
- 使用最新的先进技术实现 Web 应用程序
- 通过脚本和编程语言与 CPU 的 Web 服务器通信
- 创建可同时连接到多个 CPU 的 Web 应用程序,例如,创建可显示多个 CPU 状态的仪表板
具体包括读写PLC数据,远程监控PLC运行状态等等;
S7-1200/1500 所实现的 Web API 是一个标准的 JSON-RPC 规范的 API 特性,遵循 JSON-RPC 2.0 规范。API 基于 HTTP URL POST方法,即发送 POST 请求到 https://[ip]/api/jsonrpc,CPU 根据权限及请求方法回应相关数据或错误指示。Web API 支持 JSON-RPC 2.0 中定义的批量操作。
JSON-RPC API格式
{
"id": $(in_request),
"jsonrpc": "2.0",
"method": $(method), // 方法名称
"params": $(params) // 方法对应的参数,如果不需要,可忽略
}
// 处理成功返回
{
"id": $id_in_request,
"jsonrpc": "2.0",
"result":"$(data)"
}
// 处理失败返回
{
"id": $id_in_request,
"jsonrpc": "2.0",
"error":{
"code": $(error),
"message": $(error_message)
}
}
已经测试的支持的客户端包括 Chrome,Firefox,Edge,Safari 等主流浏览器,Python,GNU Wget,cURL等工具及库。
Web Api 测试
测试 S7-1500 为 CPU 1511-1 PN , 固件版本 2.9.4,最新 V3.0 并没有更新1511。S7-1200 为 CPU 1215C AC/DC/Rl,固件版本 V4.5(V4.6和V4.5相同)。测试工具包括Edge 100+版本,PostMan,JavaScript等

通过实际测试,发现S7-1200/1500 的 Web Api 因为 CPU 计算能力及API版本不同而差异较大,S7-1200 Web Api 响应速度与 S7-1500 相比明显慢,且支持的 API 有限,差异后面会列出;
启用 Web Api 功能
控制器启用 Web Api 的Web Server 方法参见参考资料所附的官方资料,此处不再展开。
值得注意的是,Web Api 的读写权限是与 Web Server 里面配置的权限相关,默认用户名为 EveryBody,默认用户的权限需要配置;管理员权限可以读写PLC数据,读取PLC启停状态,控制PLC启停状态,获取PLC时间,下载文件等等;Api.Version / Api.Browse / Api.Ping 等几个指令是不需要传递权限的,随意调用。
Api.Version/Api.Browse
// api Version
{
"id": 5,
"jsonrpc": "2.0",
"method": "Api.Version"
}
// ---响应----
{
"jsonrpc": "2.0",
"id": 5,
"result": 1.46
}
// api browse
{
"id": 6,
"jsonrpc": "2.0",
"method": "Api.Browse"
}
//响应
{

文章介绍了西门子S7-1200和S7-1500PLC如何通过WebAPI进行基于HTTP的JSON-RPC通讯,支持读写PLC数据和远程监控。WebAPI基于PLC的WebServer,遵循JSON-RPC2.0规范,允许通过编程语言与CPU交互。测试表明,不同型号的PLC在响应速度和支持的API上有差异。启用WebAPI需配置权限,API包括变量浏览、读写、登录/登出等操作。
最低0.47元/天 解锁文章
2445

被折叠的 条评论
为什么被折叠?



