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

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

【干貨分享】關(guān)于.NET上位機開發(fā)的一些心得體會

2020-07-08 16:37 作者:新閣教育  | 我要投稿



課程主題:【手寫Modbus通信庫】
主講人:付老師

課程時間:今晚20:00
掃碼進入直播↓

公眾號:thinger_swj


(1)建議大多數(shù)技術(shù)人員都要學(xué)一門計算機語言,也許你工作現(xiàn)在不會立即用得上。但是編程思維和編程思想對你理解很多技術(shù)問題,會有很大的幫助。

(2)如果你想通過閱讀公眾號的技術(shù)文章學(xué)會一門技術(shù),我勸你還是死了這條心吧,技術(shù)文章可以擴展你的知識面,讓你知道下一步學(xué)習(xí)的方向,卻不會教你具體怎么做。

(3)互聯(lián)網(wǎng)時代,最不缺的是資源和信息,最缺的是具備篩選的能力,如果在資源的汪洋大海中找到自己想要的,這其中,需要自己不斷地摸索。

正文:

? ? ? 今天在這里,作為一個技術(shù)人員,跟大家分享一個上位機開發(fā)的技術(shù)案例,希望可以對大家有所幫助。

? ? ? 上位機這個詞,我相信大家都不陌生,從廣義的角度來說,一切可以和下位機進行通信的HMI都可以稱作為上位機,從狹義的角度來說,是指采用計算機高級語言編寫的上層監(jiān)控系統(tǒng),這里常用的編程語言包括C++、JAVA、Python、C#,毋庸置疑,在工控行業(yè),最適合工控上位機開發(fā)的編程語言莫過于微軟旗下的C#語言。

? ? ? ?這個上位機案例是比較早期開發(fā)的一個項目了,針對的下位機是西門子S7-1500 PLC,由于沒有相對應(yīng)的硬件進行數(shù)據(jù)交互,所以可能大家看到的數(shù)據(jù)不是正常工作的數(shù)據(jù)。這個上位機是一個比較典型的上位機監(jiān)控系統(tǒng),包括各個不同子站的運行參數(shù)及運行狀態(tài)監(jiān)控,重要參數(shù)的設(shè)置,同時具備實時報警、日志查詢、參數(shù)設(shè)置、用戶管理、授權(quán)管理等功能。




開發(fā)流程分析:

??????如果想獨立開發(fā)出這樣的一套系統(tǒng),是需要有一些技術(shù)儲備的,我跟大家簡單分析一下:

(1)首先如果我們自己本身就是做PLC編程的話,那這塊就簡單很多了;如果本身不是做PLC編程的話,需要去了解一下通信變量的格式和數(shù)據(jù)類型。

(2)其次是上位機與PLC的通信方式,PLC的種類和品牌很多,常用的品牌包括西門子、歐姆龍、三菱、基恩士、松下、AB等,不同品牌PLC支持的協(xié)議是不一樣的,對于這個項目用到的S7-1500 PLC,其實也支持很多種通信方式,比如S7、Modbus、TCP/IP、OPCUA等,這里我們選擇的是最方便使用的S7通信協(xié)議。

(3)最后就涉及到C#編程這塊了,這塊也是上位機開發(fā)的核心。基本界面框架的搭建、多線程的應(yīng)用、數(shù)據(jù)通信及解析、實時報警檢測及歷史數(shù)據(jù)儲存等等,都要求我們能夠熟練運用C#語言。

有了上面的技術(shù)儲備之后,那么接下來就跟大家說說具體開發(fā)的過程。


具體開發(fā)流程:

(1)登錄模塊實現(xiàn):如果沒有特別的要求,我一般會采用比較簡潔的登錄界面,登錄模塊的邏輯具有一定的通用性。

(2)用戶權(quán)限管理:對于不同的用戶,一般會存在權(quán)限分配的問題,可以通過用戶組的形式,比如管理員、班組長、操作員,也可以分配到每個用戶。

(3)整體界面布局:對于界面布局這塊,要完全根據(jù)個人及客戶的審美來設(shè)計。首先要確定結(jié)構(gòu)形式,比如上中下、左右,或者多種形式的結(jié)合,我一般以簡潔、清爽為原則,再結(jié)合一下實際工藝和用戶喜好,做一些優(yōu)化。

(4)數(shù)據(jù)通信顯示:數(shù)據(jù)通信是整個上位機的核心,通過數(shù)據(jù)通信及處理為后續(xù)開發(fā)提供數(shù)據(jù)源。數(shù)據(jù)通信主要包括設(shè)備連接、數(shù)據(jù)讀取、數(shù)據(jù)解析、數(shù)據(jù)寫入、斷開連接、斷線重連等一系列操作,一般需要通過多線程、異步、委托等一系列知識,比如簡單的項目,通過定時器也可以實現(xiàn)相應(yīng)的功能。

(5)實時歷史報警:對于實時報警及歷史報警,都會涉及到報警檢測的問題。一般報警會根據(jù)變量情況分為離散量報警和模擬量報警,離散量報警主要是針對布爾變量的上升沿或下降沿的變化狀態(tài)進行檢測,模擬量報警主要是針對非布爾量的輸出數(shù)值進行判斷,模擬量報警狀態(tài)分為高限、高高限、低限、低低限。對于報警的檢測,主要原理就是當前值與上次掃描數(shù)值之間進行比對,判斷是否觸發(fā)了報警。

(6)實時歷史曲線:實時及歷史曲線是上位機的一個重要組成部分,一般實時曲線的顯示是將當前采集的數(shù)據(jù)實時更新到曲線控件中,由于曲線控件的顯示局限性,不可能保留所有數(shù)據(jù),一般可以設(shè)置保留最近半小時或者1小時的數(shù)據(jù)。而歷史數(shù)據(jù)主要是進行查詢使用,便于后期進行故障追溯或數(shù)據(jù)分析。

(7)數(shù)據(jù)報表打?。簩τ谀承╉椖靠赡軙婕暗綌?shù)據(jù)報表的設(shè)計及其打印導(dǎo)出,這個主要是涉及到數(shù)據(jù)的分析及查詢,這個根據(jù)復(fù)雜程度,可以采用不同的方式,比如常用的采用表格控件、RDLC、水晶報表或者其他三方插件。




【干貨分享】關(guān)于.NET上位機開發(fā)的一些心得體會的評論 (共 條)

分享到微博請遵守國家法律
平阳县| 留坝县| 石阡县| 万盛区| 天等县| 鹤山市| 泉州市| 吉木乃县| 汶川县| 甘南县| 浙江省| 宁安市| 桓台县| 衡山县| 广州市| 水富县| 内丘县| 景东| 巩留县| 叶城县| 东乡县| 金阳县| 昌吉市| 平定县| 黔江区| 墨竹工卡县| 迁安市| 女性| 西青区| 湖口县| 嘉定区| 南丹县| 武隆县| 梅河口市| 岢岚县| 搜索| 宜宾县| 策勒县| 齐齐哈尔市| 永福县| 东乌珠穆沁旗|