WinCC学习系列-高阶应用(WinCC REST通信)

news2025/6/6 13:45:34

WinCC作为一个经典SCADA系统,它是OT与IT数据无缝集成桥梁,自WinCC7.5版本开始,可以直接提供Rest服务用于其它系统数据访问和操作。

WinCC REST 服务允许外部应用程序访问 WinCC 数据。
外部应用程序可以通过 REST 接口读取和写入 WinCC 组态数据和变量值。
支持以下操作:
– 查询数据
– 编辑数据
要进行访问,可使用常规的 HTTP 方法和 JSON 资源显示格式。

1.环境搭建

使用REST服务需要安装WinCC可选组件ConnectivityPack,如果未安装则需要进行安装。

2.系统设置

打开系统服务,也就是运行services.msc,找到SIMATIC WinCC CCRestService服务,并启动服务。

3.WinCC设置

(1)项目REST开启设置

新建或打开一个已有的WinCC项目。点击左侧计算机,右侧找到与本机名称相同的计算机(如果存在多个的话),右键选择属性。点击启动选项卡,将最后一项“REST服务”打勾。

如果证书还未配置,点击“端口证书”。选择一个证书,也可以在IIS自己创建证书,本示例默认选择系统提供的第一个证书。

(2)添加REST权限

在WinCC主界面,双击左侧项目中用户管理器。点击左上角用户管理器,在中间一栏最底端点击权限等级。在权限等级中新增两项,分别为Rest读写权限,ID与名称可以任意命名,只要后面记住使用即可。

(3)添加用户

在左侧用户管理器中右键单击Administrator-Group,添加新用户,这个用户就是后期用来以Rest访问WinCC的授权用户,本示例中新建admin用户,在右侧设置一个密码,在权限列表中勾选刚才新添加的权限,其它权限按实际需要进行选择。

(4)变量配置

通过REST服务暴露的变量,需要进行单独设置,本案例使用WinCC提供内部变量,其他类型的变量操作相同。找到需要的变量,在右侧属性的最下端找到REST API,将读写权限设置为刚才新建的读写权限。

(5)运行WinCC

4.ApiPost或者Postman测试

(1)新建Get请求,在Api工具中输入地址https://{Host}:{Port}/WinCCRestService/tagManagement/Value/,HOST和PORT就是在第3部分中描述设置的地址。

(2)Api工具中认证中选择Basic Auth,填入在WinCC中新建的用户和密码(本案例admin用户)。

(3)点击发送请求,就会获取到WinCC中内部变量Value的实时值,读取成功,状态码为200。

谨记:需要启动WinCC项目。

图中Value是WinCC的一个内部变量名称

(4)使用Post方法可以,对变量进行写入数据,Api工具操作类似,只是把Get方法改为Put,在Body中使用Json格式设置写入的数据值{"value":80},通过WinCC Tag Simulator可以监控到写入的值,写入成功,状态码为200。

5.如果读写或者写入失败,根据Api工具返回的代码,查找原因后进行调整。

若读取失败,也可能存在以下原因。

状态码 401 Unauthorized:未授权。可能是前面Auth和SSL设置的地方出现问题。

状态码 200 OK,但读取的内容显示error : Forbidden。可能是WinCC中变量的REST API属性设置有问题。

请求发送失败:没有状态码,显示发送失败或者主机错误。可能是WinCC的REST设置问题,检查主机名是否对应,检查证书是否选择正确。

6.WinCC REST服务支持的数据读写方法

支持的读写数据方法,支持变量管理和数据读写,也提供对归档变量的管理和数据读写,非常强大。

(1)变量管理方法

基本 URL
https://<Host>:<Port>/WinCCRestService/tagManagement/

提供方法
• Connection/<ConnectionName>
读取一个连接的组态数据 
• Connections
读取所有连接的组态数据 
• Group/<GroupName>
读取一个变量组的组态数据 
• Groups
读取所有变量组的组态数据 
• StructureType/<StructureName>
读取一个结构类型的组态数据 
• StructureTypes
读取所有结构类型的组态数据
• StructureVariable/<StructureTypeName>
读取一个结构类型的实例
• StructureVariables
读取多个结构类型的实例
• Value/<VariableName>
读取一个变量的运行系统值 
将值写入到一个变量
• Values
读取所有变量的运行系统值 
将值写入到多个变量
• variable/<VariableName>
读取一个变量的组态数据
• variables
读取所有变量的组态数据 

(2)归档系统方法

基本 URL
https://<Host>:<Port>/WinCCRestService/tagLogging/
提供方法
• Archives
读取所有过程值归档的组态数据
• Archive/
– <ArchiveName>
读取单个过程值归档的组态数据
– <ArchiveName>/Variable/<VariableName>
读取单个过程值归档变量的组态数据
– <ArchiveName>/Variables
读取过程值归档所有变量的组态数据
– <ArchiveName>/Value/<VariableName>
读取过程值归档变量的运行系统值
– <ArchiveName>/Values
读取单个过程值归档的多个变量的运行系统值
从不同过程值归档中读取多个变量的运行系统值
• Timer/<TimerName>
读取归档系统单个时间的组态数据
• Timers
读取归档系统所有时间的组态数据
• Variable/<VariableName>
读取归档系统变量的组态数据
• Variables
读取所有归档系统变量的组态数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2401720.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用交叉编译工具提示stubs-32.h:7:11: fatal error: gnu/stubs-soft.h: 没有那个文件或目录的解决办法

0 前言 使用ST官方SDK提供的交叉编译工具、cmake生成Makefile&#xff0c;使用make命令生成可执行文件提示fatal error: gnu/stubs-soft.h: 没有那个文件或目录的解决办法&#xff0c;如下所示&#xff1a; 根据这一错误提示&#xff0c;按照网上的解决方案逐一尝试均以失败告…

macOS 连接 Docker 运行 postgres,使用navicat添加并关联数据库

下载 docker注册一个账号&#xff0c;登录 Docker创建 docke r文件 mkdir -p ~/.docker && touch ~/.docker/daemon.json写入配置&#xff08;全量替换&#xff09; {"builder": {"gc": {"defaultKeepStorage": "20GB",&quo…

指针的使用——基本数据类型、数组、结构体

1 引言 对于学习指针要弄清楚如下问题基本可以应付大部分的场景&#xff1a; ① 指针是什么&#xff1f; ② 指针的类型是什么&#xff1f; ③ 指针指向的类型是什么&#xff1f; ④ 指针指向了哪里&#xff1f; 2 如何使用指针 任何东西的学习最好可以总结成一种通用化的…

TK海外抢单源码/指定卡单

​ 抢单源码&#xff0c;有指定派单&#xff0c;打针&#xff0c;这套二改过充值跳转客服 前端vue 后端php 两端分离 可二开 可以指定卡第几单&#xff0c;金额多少&#xff0c; 前后端开源 PHP7.2 MySQL5.6 前端要www.域名&#xff0c;后端要admin.域名 前端直接静态 伪静…

【Linux】Linux 环境变量

参考博客&#xff1a;https://blog.csdn.net/sjsjnsjnn/article/details/125533127 一、环境变量 1.1 基本概念 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数如&#xff1a;我们在编写C/C代码的时候&#xff0c;在链接的时候&am…

OpenCV在图像上绘制文字示例

OpenCV计算机视觉开发实践&#xff1a;基于Qt C - 商品搜索 - 京东 OpenCV中除了提供绘制各种图形的函数外&#xff0c;还提供了一个特殊的绘制函数&#xff0c;用于在图像上绘制文字。这个函数是putText()&#xff0c;它是命名空间cv中的函数&#xff0c;其声明如下&#xff…

为什么要选择VR看房?VR看房有什么优点?

VR看房&#xff1a;革新传统&#xff0c;重塑体验 在当今社会&#xff0c;虚拟现实&#xff08;VR&#xff09;技术正以前所未有的速度渗透到我们生活的各个领域&#xff0c;其中VR看房作为房地产领域的重要创新。本文将讨论为什么要选择VR看房以及VR看房的主要优点&#xff0…

pytorch基本运算-范数

引言 前序学习进程中&#xff0c;已经对pytorch基本运算有了详细探索&#xff0c;文章链接有&#xff1a; 基本运算 广播失效 乘除法和幂运算 hadamard积、点积和矩阵乘法 上述计算都是以pytorch张量为运算元素&#xff0c;这些张量基本上也集中在一维向量和二维矩阵&#x…

Transformer实战——词嵌入技术详解

Transformer实战——词嵌入技术详解 0. 前言1. 词嵌入基础2. 分布式表示3. 静态嵌入3.1 Word2Vec3.2 GloVe 4. 使用 Gensim 构建词嵌入5. 使用 Gensim 探索嵌入空间6. 动态嵌入小结系列链接 0. 前言 在本节中&#xff0c;我们首先介绍词嵌入的概念&#xff0c;然后介绍两种实现…

[pdf、epub]300道《软件方法》强化自测题业务建模需求分析共257页(202505更新)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 在本账号CSDN资源下载&#xff0c;或者访问链接&#xff1a; http://www.umlchina.com/url/quizad.html 如果需要提取码&#xff1a;umlc 文件夹中的“300道软件方法强化自测题2025…

Vue3入门指南:从零到精通的快速上手

齐爷学vue3 一、Vue3入门 vite&#xff1a;前端构架工具&#xff0c;构建速度快于webpack。轻量快速、对TS&#xff0c;JSX&#xff0c;CSS开箱即用、按需编译。 创建Vue3工程 1.在想要创建Vue3的位置打开cmd&#xff0c;执行如下命令。 npm create vuelatest 2.功能只选择…

吴恩达MCP课程(5):mcp_chatbot_prompt_resource.py

前提条件&#xff1a; 1、吴恩达MCP课程&#xff08;5&#xff09;&#xff1a;research_server_prompt_resource.py 2、server_config_prompt_resource.json文件 {"mcpServers": {"filesystem": {"command": "npx","args"…

设计模式——抽象工厂设计模式(创建型)

摘要 抽象工厂设计模式是一种创建型设计模式&#xff0c;旨在提供一个接口&#xff0c;用于创建一系列相关或依赖的对象&#xff0c;无需指定具体类。它通过抽象工厂、具体工厂、抽象产品和具体产品等组件构建&#xff0c;相比工厂方法模式&#xff0c;能创建一个产品族。该模…

基于LocalAI与cpolar技术协同的本地化AI模型部署与远程访问方案解析

文章目录 前言1. Docker部署2. 简单使用演示3. 安装cpolar内网穿透4. 配置公网地址5. 配置固定公网地址前言 各位极客朋友们!今天要向大家推荐一套创新性的本地部署方案——LocalAI技术架构。这款开源工具包能够将普通配置的笔记本电脑转化为具备强大算力的AI工作站,轻松实现…

霍尔效应传感器的革新突破:铟化铟晶体与结构演进驱动汽车点火系统升级

一、半导体材料革新&#xff1a;铟化铟晶体的电压放大机制 铟化铟&#xff08;InSb&#xff09;晶体因其独特的能带结构&#xff0c;成为提升霍尔电压的关键材料。相较于传统硅基材料&#xff0c;其载流子迁移率高出3-5倍&#xff0c;在相同磁场强度下可显著放大霍尔电压。其作…

无法运用pytorch环境、改环境路径、隔离环境

一.未建虚拟环境时 1.创建新项目后&#xff0c;直接运行是这样的。 2.设置中Virtualenv找不到pytorch环境&#xff1f;因为此时没有创建新虚拟环境。 3.选择conda环境&#xff08;全局环境&#xff09;时&#xff0c;是可以下载环境的。 运行结果如下&#xff1a; 是全局环境…

从0开始学vue:pnpm怎么安装

一、什么是 pnpm&#xff1f; pnpm&#xff08;Performant npm&#xff09;是新一代 JavaScript 包管理器&#xff0c;优势包括&#xff1a; 节省磁盘空间&#xff1a;通过硬链接和符号链接实现高效存储安装速度更快&#xff1a;比 npm/yarn 快 2-3 倍内置工作区支持&#xf…

Python 网络编程 -- WebSocket编程

作者主要是为了用python构建实时网络通信程序。 概念性的东西越简单越好理解,因此,下面我从晚上摘抄的概念 我的理解。 什么是网络通信? 更确切地说&#xff0c;网络通信是两台计算机上的两个进程之间的通信。比如&#xff0c;浏览器进程和新浪服务器上的某个Web服务进程在通…

边缘计算应用实践心得

当数据中心的光纤开始承载不了爆炸式增长的物联网数据流时&#xff0c;边缘计算就像毛细血管般渗透进现代数字肌理的末梢。这种将算力下沉到数据源头的技术范式&#xff0c;本质上是对传统云计算中心化架构的叛逆与补充——在智能制造车间里&#xff0c;实时质检算法直接在工业…

EXCEL如何快速批量给两字姓名中间加空格

EXCEL如何快速批量给姓名中间加空格 优点&#xff1a;不会导致排版混乱 缺点&#xff1a;无法输出在原有单元格上&#xff0c;若需要保留原始数据&#xff0c;可将公式结果复制后“选择性粘贴为值” 使用场景&#xff1a;在EXCEL中想要快速批量给两字姓名中间加入空格使姓名对…