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

    文章

    436

    浏览量

    33970
  • 组态软件
    +关注

    关注

    4

    文章

    225

    浏览量

    26725
  • 上位机
    +关注

    关注

    26

    文章

    860

    浏览量

    54041
收藏 人收藏

    评论

    相关推荐

    组态型工控(嵌入式工业电脑)、上位组态软件

    `组态型工控(嵌入式工业电脑)、上位组态软件——“高性价比”、“高清”、“高品质”、“高速”、“超低功耗”、 “大分辨率”
    发表于 02-26 01:02

    C#的入手,请指导

    大家对于C#利用控件编写上位的程序,就是为了做个数据采集然后绘制成曲线的界面,方便用户及时了解信息。我已经加载了NI的图形控件。但是由于第一次接触
    发表于 01-25 20:43

    LabVIEW 能控制C#编写的软件

    已经有C#写好的上位程序,并生成了软件达到控制板块的功能。现需用LabVIEW编写新程序,原本的上位
    发表于 03-16 08:35

    单片爱好者福利。。。。学习C#开发上位

    这段时间在学习C#,想搞点小型的上位,毕竟老是去找现成的上位用不爽,开发自己的上位
    发表于 01-08 16:35

    怎么用C#编写上位

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

    以太网通信上位C#代码该怎么编写?

    STM32F4以太网通信,用C#上位接收F4以太网传输的数据,求编写上位C#代码。
    发表于 09-12 03:47

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

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

    C#串口助手上位偶尔出现乱码

    这是我短接txd rxd 自发自收的情况1.我的上位2.stc的上位3.原子的上位我想问下
    发表于 03-20 03:47

    C#上位显示不完全

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

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

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

    鸿蒙篇:鸿蒙开发板接入OneNet ,使用C#上位进行消息发布

    接上篇鸿蒙开发板进行OneNet消息订阅,此次完善C#上位消息发布,依旧使用MQTT协议。C#端界面如下图所示,主要完成两部分内容1)鸿蒙开关灯,2)鸿蒙接收
    发表于 01-15 20:55

    如何用C#上位的波形进行绘制呢

    如何用C#上位的波形进行绘制呢?心电监测前端硬件电路是由哪些部分组成的?
    发表于 11-05 09:30

    怎样通过C#上位与STM32下位之间进行通信呢

    C#作为上位的代码如何去实现?怎样通过C#上位与STM32下位
    发表于 02-18 07:20

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

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

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

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