全国服务热线:

15861139266

C#上位机与组态软件的那些事儿,苏州PLC培训,苏州上位机培训,苏州机器视觉培训
发布时间:2024-02-29 14:47:17 点击次数:154

经常有人会问我,C#上位机是不是就是为了取代组态软件?组态软件是不是就没用了?

今天跟大家聊聊,上位机与组态软件之间的那些事儿。


应用

首先我认为,C#上位机并不是为了取代组态软件,而是对组态软件的补充,C#上位机与组态软件有各自应用的场合。

如果你懂组态,不会C#编程,愿意购买组态授权,项目没有特殊的需求,比如自定义协议、复杂业务、对接第三方系统等,组态软件从功能和界面上能够满足需求,那么,组态软件无疑是适合的。

如果你可以独立开发上位机,不愿意购买组态软件,那么你肯定会选择自主开发上位机。

技术本质上没有好坏之分,技术是为了服务于项目,结合自身情况,结合不同场合选择合理的技术方案,才是技术人的意义所在。

那么,有没有一种场合,可以将C#上位机与组态软件联合起来使用呢?下面就以西门子的WinCC为例,谈谈上位机如何联合组态软件实现通信。

我打算从两个方面来说明,一种是上位机通过WinCC来获取数据,另一种是上位机如何弥补WinCC的一些功能不足。


上位机读取WinCC

我们首先看下上位机如何通过WinCC来获取到数据,有这么几种方案,可以参考一下:

前提是WinCC项目已经开发好,并且处于运行状态,运行WinCC画面,这里连接了一个S7-1500的PLC,如下图所示:

1.png

第一种方案:通过WinCC的运行时库

WinCC安装目录中有两个dll,分别是CCHMIRuntime.dll和CCHMITags.dll,位置默认处于C:\Program Files (x86)\Common Files\Siemens\Bin,将这两个dll复制到debug根目录下并手动添加引用,然后创建通信对象。


 CCHMIRUNTIME.HMIRuntime hmi = new CCHMIRUNTIME.HMIRuntime();

通过调用读取方法即可实现读取。


hmi.Tags["data1"].Read()

2.png

第二种方案:通过WinCC的OPC服务器

WinCC从V7.2版本开始支持OPC服务器,可以支持OPCDA和OPCUA,我们直接通过一个OPC客户端来连接测试一下:

3.png

第三种方案:通过WinCC的数据库

WinCC的数据库使用的是SQLServer,WinCC变量归档数据是以压缩的形式存储在数据库中的,第三方开发的应用程序可以通过WinCC提供的OLE-DB接口解压并访问这些数据。


上位机嵌入WinCC

我们再看看上位机如何弥补WinCC的一些功能不足,比如自定义协议或WinCC不支持的一些协议,WinCC从7.0版本开始支持.NET自定义控件,所以我们可以将一些业务和通信封装在自定义控件中,然后嵌入到WinCC中来实现一些WinCC实现不了的功能。

这里以ModbusRTU协议为例,其他自定义协议类似,我们都知道,WinCC是不能直接支持ModbusRTU通信的。

这里我做了一个测试,开发了一个自定义控件,里面集成了串口连接及ModbusRTU通信协议读取温湿度,仅为测试使用,因此功能做的很简单:

4.png

我将这个控件集成到WinCC中,和一个单片机连接,成功读取到了温湿度数据。

5.png


立即咨询
  • 品质服务

    服务贴心周到

  • 快速响应

    全天24小时随时沟通

  • 专业服务

    授权率高,保密性强

  • 完善售后服务

    快速响应需求,及时性服务

直播课程
软件开发基础课程
上位机软件开发课
机器视觉软件开发课
专题课
联系方式
电话:15861139266
邮箱:75607082@qq.com
地址:苏州吴中区木渎镇尧峰路69号
关注我们

版权所有:江苏和讯自动化设备有限公司所有 备案号:苏ICP备2022010314号-1

技术支持: 易动力网络