C#联合WINCC之数据通信
【公众号dotNet工控上位机:thinger_swj】
在工控领域中,WINCC仍然占有很大的市场份额。很多时候我们说学习C#开发上位机可以取代传统的组态软件,两者就像冤家一样,然而,即使是冤家,也会有联合的时候。当我们的项目已经采用WINCC落地之后,已经学会C#的我们,还能做哪些事情呢?今天跟大家分享一下如何使用C#,与WINCC联合实现数据通信。
1. 环境搭建
众所周知,WINCC作为西门子家族的一款组态软件,主要是用来和PLC(主要是西门子PLC)通信,因此我们选择的硬件就是一款西门子S7-1200 PLC。软件方面,使用的是WINCC V7.4(其他版本待测试),以及宇宙第一IDE——VS 2019。
这里有个问题提醒一下,当我安装好WINCC V7.4,通过添加驱动和S7-1200 PLC通信时,怎么都连接不上,最后发现应该是WINCC的S7-1200 PLC的驱动有点BUG,缺少一些组件,通过安装TIA博图之后,最终解决。
如果想通过C#联合WINCC访问到PLC里的变量,前提是WINCC项目已经开发好,并且处于运行状态,操作步骤如下:
首先创建一个S7连接,并创建4个变量分别为data1、data2、data3、data4,地址对应DB100.DBD0、DB100.DBD4、DB100.DBD8、DB100.DBD12。
接着创建一个画面,拖入4个显示控件,分别绑定这4个变量,通过博图将4个变量的值分别设置为50.5、60.5、70.5、80.5,
然后运行WINCC画面。
接下来我们要做的是通过编写一个简单的Winform程序来读取WINCC中这4个变量的值并显示,这里有两种方式可以实现这样的效果,一种是通过直接访问WINCC变量进行读取,另一种是通过访问WINCC画面中的控件。
2. 访问WINCC变量
1、首先创建一个新的Windows窗体应用,再从WINCC安装目录中找到两个dll,分别是CCHMIRuntime.dll和CCHMITags.dll,位置默认处于C:\Program Files (x86)\Common Files\Siemens\Bin,将这两个dll复制到debug根目录下并手动添加引用。
2、Windows窗体界面设计如下图所示:
3、编写读取代码
4、编写写入代码
5、读取结果:
6、写入结果
3. 访问WINCC控件
1、重新新建一个窗体,窗体内容和布局与之前一致:
2、读取代码
3、写入代码
4、读取结果
5、写入结果
这里值得注意的是,通过访问控件实现的写入并没有真正写入PLC,所以这种方式仅限于读取数据,但可以通过这种方式来设置控件的其他属性,比如样式、背景、文本等。
本文主要以学习研究为主,针对C#与WINCC之间的数据通信做了较为详尽的描述,相信对于很多电气工程师,尤其是以西门子PLC为主的电气工程师来说,会有很大帮助。也许这种情形目前用途不那么广泛,但是出现这种需求时,就会变得很有用。
我一直坚信因为努力才会有结果,而不是因为看到结果,才想着去努力,而是就像学习C#和上位机一样,你如果不学习,这些内容对你来说可能就是天方夜谭,但是如果你提前学习了,你会发现其实很简单。
近几年随着人工智能、物联网的普及,工控行业发生了很大的变化,每一位电气工程师都应该及时作出调整,至少学习一门高级编程语言,未雨绸缪,以更好的姿态来应对即将到来的智能制造2025。
C#联合WINCC之数据通信的更多相关文章
- 「完整案例」基于Socket开发TCP传输客户端
1 程序界面设计 TCP客户端在上位机开发中应用很广,大多数情况下,上位机软件都是作为一个TCP客户端来与PLC或其他服务器进行通信的.TCP客户端的主要功能就是连接服务器.发送数据.接收数据.断开 ...
- Dynamics CRM 之ADFS 使用 WID 的独立联合服务器
ADFS 的使用 WID 的独立联合服务器适用于自己的测试环境,常用的就是在虚机中使用. 拓扑图如下: wID:联合身份验证服务配置为使用 Windows 内部数据库
- Dynamics CRM 之ADFS 使用 WID 的联合服务器场
使用 WID 的联合服务器场 默认拓扑 Active Directory 联合身份验证服务 (AD FS) 是联合服务器场,使用 Windows 内部数据库 (WID). 在这种拓扑, AD FS 使 ...
- Hibernate(5)—— 联合主键 、一对一关联关系映射(xml和注解) 和 领域驱动设计
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to One 映射关系 一对一单向外键(XML/Annotation) 一对一双向外键关联(XML/A ...
- Federated Identity Pattern 联合身份模式
Delegate authentication to an external identity provider. This pattern can simplify development, min ...
- [占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合
[占位-未完成]scikit-learn一般实例之十一:异构数据源的特征联合 Datasets can often contain components of that require differe ...
- SQL联合查询:子表任一记录与主表联合查询
今天有网友群里提了这样一个关于SQL联合查询的需求: 一.有热心网友的方案: 二.我的方案: select * from ( select a.*,(select top 1 Id from B as ...
- Dynamics CRM 之ADFS 使用 SQL Server 的联合服务器场
此拓扑用于 Active Directory 联合身份验证服务 (AD FS) 不同于使用 Windows 内部数据库 (WID) 部署拓扑,因为不会将数据复制到每台联合服务器场中的联合身份验证服务器 ...
- Dynamics CRM 之ADFS 使用 WID 和代理的联合服务器场
为此部署拓扑 Active Directory 联合身份验证服务 (AD FS) 等同于联合服务器场与 Windows 内部数据库 (WID) 拓扑中,但它将代理服务器计算机添加到外围网络,以支持外部 ...
随机推荐
- PAT 1038 Recover the Smallest Number (30分) string巧排序
题目 Given a collection of number segments, you are supposed to recover the smallest number from them. ...
- linux安装QT-Designer两种方法
1.安装Qt-Creator, Qt-Creator自带了qt-designer 2.安装qt5-default,qttools5-dev-tools
- curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to storage.googleapis.com:443
安装nvm的时候, ➜ ~ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash 错 ...
- 启动centos 不带桌面
方法一:非systemd系统 #runlevel N 5 //表示运行级别为5 #init 3 //将运行级别设为3,此时桌面服务关闭 运行级别说明: 3 多用户模式.允许多用户登录系统,是系统默认的 ...
- [noi.ac省选模拟赛]第11场题解集合
题目 比赛界面. T1 比较简单.容易想到是求鱼竿的最大独立集.由于题目的鱼竿可以被分割为二分图,就可以想到最大匹配. 尝试建边之后会发现边的数量不小,但联系题目性质会发现对于一条鱼竿,它 ...
- (十三)exec-maven-plugin配置及使用
原文链接:https://www.cnblogs.com/lianshan/p/7358966.html 背景: 如果你想在项maven生命周期内,运行一段java代码,或者一段独立的程序,或者说我们 ...
- springboot整合oss
原文链接:https://blog.csdn.net/weixin_42370891/article/details/99102508 登录阿里云,进入到控制台 创建Bucket 导入如下依赖 < ...
- 关于mybatis使用小于号大于号出错的解决方案
原文链接:https://blog.csdn.net/weixin_38061311/article/details/99943807 mybatis 使用的xml的映射文件, 所以里面的标签都是在& ...
- Jenkins项目构建运行
[准备环境] 继Jenkins环境搭建完成后,进行插件的管理 [思路] 项目顺序是,开发提交代码到代码仓库,测试通过Jenkins拉下开发的代码打包部署: 1.开发提交代码 2.Jenkins自动从代 ...
- 多语言工作者の十日冲刺<8/10>
这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺--第八天(05.07) 作业正文 ...