无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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)軟件么?的評論 (共 條)

分享到微博請遵守國家法律
田阳县| 新津县| 新巴尔虎右旗| 仙桃市| 阳原县| 长阳| 济宁市| 定兴县| 皮山县| 子长县| 渑池县| 鄱阳县| 抚松县| 彭水| 嘉定区| 呈贡县| 沈阳市| 务川| 二手房| 郧西县| 陆丰市| 辉南县| 澄迈县| 房产| 东乌珠穆沁旗| 广西| 丹阳市| 怀集县| 稻城县| 壤塘县| 平安县| 武邑县| 广宁县| 泊头市| 东山县| 南澳县| 荥经县| 晋宁县| 临西县| 金寨县| 庆城县|