在工控领域中,WINCC仍然占有很大的市场份额。很多时候我们说学习C#开发上位机可以取代传统的组态软件,两者就像冤家一样,然而,即使是冤家,也会有联合的时候。当我们的项目已经采用WINCC落地之后,已经学会C#的我们,还能做哪些事情呢?今天跟大家分享一下如何使用C#,与WINCC联合实现数据通信。【公众号dotNet工控上位机:thinger_swj

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 FilesSiemensBin,将这两个dll复制到debug根目录下并手动添加引用。

2、Windows窗体界面设计如下图所示:

3、编写读取代码

4、编写写入代码

5、读取结果:

6、写入结果

3. 访问WINCC控件

1、重新新建一个窗体,窗体内容和布局与之前一致:

2、读取代码

3、写入代码

4、读取结果

5、写入结果

这里值得注意的是,通过访问控件实现的写入并没有真正写入PLC,所以这种方式仅限于读取数据,但可以通过这种方式来设置控件的其他属性,比如样式、背景、文本等。

本文主要以学习研究为主,针对C#与WINCC之间的数据通信做了较为详尽的描述,相信对于很多电气工程师,尤其是以西门子PLC为主的电气工程师来说,会有很大帮助。也许这种情形目前用途不那么广泛,但是出现这种需求时,就会变得很有用。

我一直坚信因为努力才会有结果,而不是因为看到结果,才想着去努力,而是就像学习C#和上位机一样,你如果不学习,这些内容对你来说可能就是天方夜谭,但是如果你提前学习了,你会发现其实很简单。

近几年随着人工智能、物联网的普及,工控行业发生了很大的变化,每一位电气工程师都应该及时作出调整,至少学习一门高级编程语言,未雨绸缪,以更好的姿态来应对即将到来的智能制造2025。

C#开发工控上位机编程 csdn_C#联合WINCC之数据通信相关推荐

  1. 基于C#的工控上位机软件开发从入门到学废,需要几步?

    基于C#的工控上位机软件开发从入门到学废,需要几步? 随着工控产品的应用,开始大幅度渗透进民用领域.涉及的工控产品范围广泛,如PLC.DCS.变频器.仪表.电机.SCADA.低压及配电元器件等. 准备 ...

  2. C#工控上位机——框架

    C#工控上位机 第一部分:UI模块 先点击一下Panel,在点击一下屏幕. 先选中Panel,在进行属性设置. 图标连接 嵌入式窗体 设置按键的事件 using System; using Syste ...

  3. C# Winform工控上位机控件库

    C# Winform工控上位机控件库 通讯库集成:支持西门子.欧姆龙.施耐德等主流PLC 报警窗口:报警配置自动弹出 报警历史:报警历史自动保存 数据库操作:增删改查 说明:包含DLL库和使用教程,不 ...

  4. C#工控上位机实例_工控学习,搞工控的到底什么是上位机,什么是下位机?

    上位机 上位机是指可以直接发出操控命令的计算机, 一般是PC/host computer/master computer/upper computer, 屏幕上显示各种信号变化(液压,水位,温度等). ...

  5. C#工控上位机实例_「C#上位机」西门子1200PLC实用定位控制程序案例

    ​1. 引言 本文是一篇综合性非常强的文章,从PLC输入输出及步进电机接线开始,到PLC运动控制程序编写,再到后续的ModbusTCP通信协议及上位机编程实现最终控制,涉及知识面比较广,能够让我们很好 ...

  6. C#工控上位机实例_南京物流仓库【仓库物流】_智能云仓储库存wms管理分配货_电子标签价签拣货系统_工控erp上位机软件开发设计...

    ?南京滨江开发区300平方变压器250KVA厂房陆郎加油站附近开发区 | 物流仓库 | 厂房招租 南京滨江开发区陆郎加油站附近300平方独门独户厂房招租?变压器250KVA?适合小型磨具机械加工无污染 ...

  7. C#工控上位机开发-->1、C#快速编程入门

    学习目标: 一.控制台的输入输出 二.C#中的变量使用 三.字符串的拼接与格式化的三种方式 四.数据类型转换的三种方式 学习内容: 1 控制台的输入输出 (1)输入方法:Console.Read(); ...

  8. 【CNC——第6篇】PMAC上位机编程基础篇(上位机和下位机如何通信)

    拓展链接: PAMC官网:DELTA TAU. 官网手册:手册大全 PMAC官网: PCOMM32PRO用户手册 PMAC 的内部变量 内部变量分为四种,I 变量为电机等常用基本控制变量,P 变量为全 ...

  9. PMAC上位机编程基础1---编程环境配置

    最近看了一篇上海交通大学的硕士毕业论文,提到了关于PMAC的上位机编程,觉得蛮有意思.于是也想写一个小界面试一试.看了两三天文档,经过N次调试,终于完成了实现电机JOG运动的界面,其实回过头来想想,还 ...

  10. 如何用c语言写上位机软件,上位机的工作原理_上位机编程用什么软件

    描述 上位机的工作原理 通讯过程 两机如何通讯,一般取决于下位机,TCP/IP一般是支持的,但是下位机一般具有更可靠的独有通讯协议,购买下位机时,会带一大堆手册光盘,告诉你如何使用特有协议通讯,里面会 ...

最新文章

  1. 多delegate使用
  2. 一千个不用 Null 的理由,你还用?
  3. Delphi7的控件安装与删除
  4. 《计算机网络》学习笔记_(2、物理层)
  5. 网站运行java_定制化Azure站点Java运行环境(5)
  6. oracle11g AUD$维护
  7. C语言基础知识之基本数据类型相关的总结
  8. UE4手册中文翻译速查表
  9. javascript正则表达式一
  10. [P2396] yyy loves Maths VII
  11. teradata 数据定义
  12. MediaInfo使用简介(新版本支持HEVC)
  13. DPDK学习0 -- 学习步骤
  14. Win10x64安装Dolby
  15. Linux 开发环境 -- glibc 升级(不建议轻易升级)
  16. 算法培训(一)---排序算法
  17. 我的第一个Python爬虫——谈心得
  18. 谷歌protobuf简介
  19. 红帽企业linux8,红帽发布企业版 Linux(RHEL) 8.0
  20. 性能测试:手机IOS性能测试

热门文章

  1. 免费网站域名去哪找?免费域名靠谱吗?
  2. 用html做龙卷风特效,利用HTML5实现Canvas龙卷风特效
  3. Windows命令:tracert
  4. c语言输出七行的菱形,C语言输出一个菱形图案(有程序)
  5. 如何用python进行回归分析_如何用python进行回归分析
  6. 查询ISBN号验证ISBN号调用api接口查询书籍信息
  7. 神经网络基本原理、误差逆传播BP算法公式推导与多层神经网络的Python实现
  8. 计算周数的方式 - 现在是今年的第几周?
  9. celeste第二章_『第二章』 蔚蓝的剑
  10. php图片颤抖,PHP-使用jquery 怎么做出图片的震荡效果