0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C#上位机是为了取代组态软件?

汽车电子技术 来源: dotNet工控上位机 作者: 新阁教育付工 2023-02-22 15:47 次阅读

前言

大家好!我是付工。

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

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

应用

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

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

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

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

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

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

上位机读取WinCC

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

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

图片

第一种方案:通过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()

图片

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

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

图片

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

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

上位机嵌入WinCC

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

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

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

图片

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

图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 应用
    +关注

    关注

    2

    文章

    438

    浏览量

    34150
  • 组态软件
    +关注

    关注

    4

    文章

    231

    浏览量

    27048
  • 上位机
    +关注

    关注

    27

    文章

    941

    浏览量

    54787
收藏 人收藏

    评论

    相关推荐

    怎么用C#编写上位

    我是个新手小白,刚刚过来学习,老师希望我用C#编写上位,请问我该怎么去做
    发表于 01-20 22:11

    基于SIM800的GPRS通信实现 C#上位服务器接收

    调试助手没有这个功能,因此编写了C#上位软件上位软件
    发表于 11-24 22:28

    C#上位显示不完全

    我用原子的板子和C#上位通讯。上位显示不完全。但是用网络助手通讯的话,显示是完全的。所以应该是我C#
    发表于 04-02 23:26

    c#/winform c#/wpf c++/QT上位

    c#/winform c#/wpf c++/QT上位,本人从事上位
    发表于 09-21 21:20

    C#上位实战开发指南

    C#上位实战开发指南
    发表于 11-22 19:25 0次下载

    PLC和上位组态软件通讯方式

    PLC和上位组态软件不在同一个地方,那PLC如何远程和上位通讯呢。现在物联网技术快速发展,PLC通过互联网就能实现和
    的头像 发表于 06-27 08:05 1.2w次阅读
    PLC和<b class='flag-5'>上位</b>机<b class='flag-5'>组态</b><b class='flag-5'>软件</b>通讯方式

    C#|上位开发新手指南(一)概述

    C#是一种功能强大的编程语言,用于开发Microsoft Windows平台上的应用程序。在工业控制、自动化、智能化等领域,使用C#开发上位已经成为一种常见 的做法。如果你对于如何学
    发表于 05-08 10:24 10次下载
    <b class='flag-5'>C#</b>|<b class='flag-5'>上位</b><b class='flag-5'>机</b>开发新手指南(一)概述

    C#|上位开发新手指南(三)框架

    上位开发中,Windows Forms是使用最广泛的C#框架之一。Windows Forms是.NET Framework中的一个GUI框架,提供了丰富的GUI控件和易于使用的编程 模型,可以
    发表于 05-08 10:27 3次下载
    <b class='flag-5'>C#</b>|<b class='flag-5'>上位</b><b class='flag-5'>机</b>开发新手指南(三)框架

    C#编写简易的上位

    标题C#编写简易的上位 代码如下:
    发表于 05-08 09:42 7次下载
    <b class='flag-5'>C#</b>编写简易的<b class='flag-5'>上位</b><b class='flag-5'>机</b>

    自己做一个C#串口上位

    最近想发一个之前自己做的一个简单的串口上位,当然,工作时写的要比这个复杂了。除了C#可以写上位,我同事也有用QT的,具体的哪个好不 做
    发表于 05-09 14:24 7次下载
    自己做一个<b class='flag-5'>C#</b>串口<b class='flag-5'>上位</b><b class='flag-5'>机</b>

    C#上位开发常遇问题

    C#上位开发常遇问题C#引用C++ 动态库/静态库 静态库 动态库 unsafe和fixed关键字的应用 unsafe fixed Pat
    发表于 05-09 11:21 0次下载
    <b class='flag-5'>C#</b><b class='flag-5'>上位</b><b class='flag-5'>机</b>开发常遇问题

    C#上位之新建工程

    由于课程需要使用C#语言开发一个上位。主要功能有可用通过串口读取下位的数据,并将其传入数据库内。 首先,需要建立一个C#的工程。我是用的
    发表于 05-29 16:58 1次下载
    <b class='flag-5'>C#</b><b class='flag-5'>上位</b><b class='flag-5'>机</b>之新建工程

    项目实战:C#上位+arduino下位+控制点亮LED灯

    上位C#上位通过串口发送接收控制协议,来控制下位; 下位
    发表于 05-18 10:51 9次下载
    项目实战:<b class='flag-5'>C#</b><b class='flag-5'>上位</b><b class='flag-5'>机</b>+arduino下位<b class='flag-5'>机</b>+控制点亮LED灯

    聊聊上位组态软件之间的那些事儿

    首先我认为,C#上位并不是为了取代组态软件,而是对
    的头像 发表于 06-02 17:46 2895次阅读
    聊聊<b class='flag-5'>上位</b><b class='flag-5'>机</b>与<b class='flag-5'>组态</b><b class='flag-5'>软件</b>之间的那些事儿

    上位组态软件有哪些类型

    上位组态软件(也称为SCADA系统,即监控控制与数据采集系统)是一种用于实时监控和控制工业过程的计算机系统。这类软件广泛应用于石油、化工、电力、水处理、交通等领域。
    的头像 发表于 06-06 10:12 1196次阅读