应用首先我认为,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中,和一个单片机连接,成功读取到了温湿度数据。
宝安区人大领导莅临镭神智能指导工作,送来关怀与温暖
Freenome利用AI的深度学习技术提前防范癌症
虹科动态 | 虹科诚邀您于3月1日-3月3日参加SIAF广州工业自动化展
Meta表示,美国贸易关税正在损害AR/VR投资
Intel重磅推出多款独立控制芯片
聊聊上位机与组态软件之间的那些事儿
海为N60S2T系列PLC在焊锡机中自动控制设计
德赛西威开启昇龙计划变革转型之路正式开始
电动离心式分样器的功能特点都有哪些
英特尔扩大与中国百度的AI合作
英飞凌推出车用全新XENSIV™ TLE4971系列传感器
三频闪仪电路 Triple Stroboscope
不经历风雨怎么见彩虹_吉利集团控股丹麦盛宝银行
aigo固态U盘U393:实现固态硬盘协议使用双接口高效传输
不锈钢管道焊缝腐蚀渗漏原因及治理方法
一种全新的方式来研究宇宙中的暗物质和暗能量
如何解决物联网设备的互联网安全威胁
瑞昱全方位通讯网路及多媒体芯片解决方案亮相
安科瑞霍尔传感器的应用范围以及技术参数
过流继电器工作原理_过流继电器的作用