最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

C#上位機是為了取代組態(tài)軟件么?

2022-12-20 15:45 作者:新閣教育  | 我要投稿

前言

大家好!我是付工。

經(jīng)常有人會問我,C#上位機是不是就是為了取代組態(tài)軟件?組態(tài)軟件是不是就沒用了?

今天跟大家聊聊,上位機與組態(tài)軟件之間的那些事兒。

應用

首先我認為,C#上位機并不是為了取代組態(tài)軟件,而是對組態(tài)軟件的補充,C#上位機與組態(tài)軟件有各自應用的場合。

如果你懂組態(tài),不會C#編程,愿意購買組態(tài)授權,項目沒有特殊的需求,比如自定義協(xié)議、復雜業(yè)務、對接第三方系統(tǒng)等,組態(tài)軟件從功能和界面上能夠滿足需求,那么,組態(tài)軟件無疑是適合的。

如果你可以獨立開發(fā)上位機,不愿意購買組態(tài)軟件,那么你肯定會選擇自主開發(fā)上位機。

技術本質(zhì)上沒有好壞之分,技術是為了服務于項目,結(jié)合自身情況,結(jié)合不同場合選擇合理的技術方案,才是技術人的意義所在。


那么,有沒有一種場合,可以將C#上位機與組態(tài)軟件聯(lián)合起來使用呢?下面就以西門子的WinCC為例,談談上位機如何聯(lián)合組態(tài)軟件實現(xiàn)通信。

我打算從兩個方面來說明,一種是上位機通過WinCC來獲取數(shù)據(jù),另一種是上位機如何彌補WinCC的一些功能不足。(需要C#聯(lián)合WinCC通信資料,找安妮老師:thinger005)

上位機讀取WinCC

我們首先看下上位機如何通過WinCC來獲取到數(shù)據(jù),有這么幾種方案,可以參考一下:

前提是WinCC項目已經(jīng)開發(fā)好,并且處于運行狀態(tài),運行WinCC畫面,這里連接了一個S7-1500的PLC,如下圖所示:

圖片


第一種方案:通過WinCC的運行時庫

WinCC安裝目錄中有兩個dll,分別是CCHMIRuntime.dll和CCHMITags.dll,位置默認處于C:\Program Files (x86)\Common Files\Siemens\Bin,將這兩個dll復制到debug根目錄下并手動添加引用,然后創(chuàng)建通信對象。

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

通過調(diào)用讀取方法即可實現(xiàn)讀取。

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


第二種方案:通過WinCC的OPC服務器

WinCC從V7.2版本開始支持OPC服務器,可以支持OPCDA和OPCUA,我們直接通過一個OPC客戶端來連接測試一下:

圖片


第三種方案:通過WinCC的數(shù)據(jù)庫

WinCC的數(shù)據(jù)庫使用的是SQLServer,WinCC變量歸檔數(shù)據(jù)是以壓縮的形式存儲在數(shù)據(jù)庫中的,第三方開發(fā)的應用程序可以通過WinCC提供的OLE-DB接口解壓并訪問這些數(shù)據(jù)。

上位機嵌入WinCC

我們再看看上位機如何彌補WinCC的一些功能不足,比如自定義協(xié)議或WinCC不支持的一些協(xié)議,WinCC從7.0版本開始支持.NET自定義控件,所以我們可以將一些業(yè)務和通信封裝在自定義控件中,然后嵌入到WinCC中來實現(xiàn)一些WinCC實現(xiàn)不了的功能。

這里以ModbusRTU協(xié)議為例,其他自定義協(xié)議類似,我們都知道,WinCC是不能直接支持ModbusRTU通信的。

這里我做了一個測試,開發(fā)了一個自定義控件,里面集成了串口連接及ModbusRTU通信協(xié)議讀取溫濕度,僅為測試使用,因此功能做的很簡單:

圖片

我將這個控件集成到WinCC中,和一個單片機連接,成功讀取到了溫濕度數(shù)據(jù)。

圖片


C#上位機是為了取代組態(tài)軟件么?的評論 (共 條)

分享到微博請遵守國家法律
田林县| 开江县| 顺平县| 津市市| 祥云县| 揭西县| 商水县| 松滋市| 潢川县| 涿州市| 汉川市| 新乡县| 德化县| 高尔夫| 拜泉县| 洛扎县| 朝阳区| 武乡县| 鞍山市| 长宁区| 教育| 侯马市| 安溪县| 本溪市| 荆门市| 定边县| 板桥市| 平果县| 白玉县| 泰安市| 昌江| 兴海县| 新郑市| 沈阳市| 贵港市| 广丰县| 尚义县| 屯门区| 冷水江市| 南安市| 兴隆县|