連載丨手把手教你winform上位機系列一:認識winform上位機

2021-02-19 工控論壇

上位機是指可以實時監控工業生產現場數據的人機互動設備,屏幕會上顯示各種信號變化(液壓,水位,溫度等)。一般上位機分為工控機(Wincc,組態王,力控工業組態軟體),觸控螢幕(威綸通,臺達,西門子HMI等),和Windows桌面應用。

今天要講的是Windows系統下的Winform桌面應用作為上位機,大家是不是用觸模屏和組態軟體是總是想實現一些特殊功能但是組態軟體本身不支持該功能,但是Winform可以做到你想做的一切,Winform是微軟Visual Studio IDE開發平臺下的桌面應用開發,我們可以充分利用C#高級語言的優勢和靈活性以及高擴展性來開發我們的上位機監控界面,先來個簡單Winform項目圖:

下位機是直接控制設備獲取設備狀況的計算機,一般是PLC/單片機之類的。

上位機發出的命令首先給下位機,下位機再根據此命令解釋成相應時序信號直接控制相應設備(溫控器,伺服電機,步進電機,變頻器,電磁閥等)。下位機實時讀取設備狀態數據(一般模擬量,如測溫熱電偶,電機速度,開關量等),轉化成數位訊號反饋給上位機。一般來說上下位機都需要編程,都有專門的開發系統。

上下位機如何通訊,一般取決於下位機,通常上位機和下位機通訊可以採用不同的通訊協議,上位機根據下位機硬體支持的通信協議,可以有RS232的串口通訊或者採用RS485串行通訊。當用計算機和PLC通訊的時候,不但可以採用傳統的串行通訊,還可以採用更適合工業控制的雙線的PROFIBUS-DP通訊,或者是Modbus通信協議,以及通過第三方OPC伺服器來進行數據通信。

知道了上下位機接下來讓我們先來了解一下我們的上下位機開發環境:

1.西門子博途V14 :plc編程軟體

2.微軟VisualStudio2012:Winform上位機編程

軟體的獲取和安裝可以百度一下,在此跳過,因為我們的重點是上位機編程。

安裝好軟體以後,接下來我們寫一個簡單的demo案例來體驗一下winform

1,新建winform項目

打開VS2012軟體 點擊【文件】--》【新建】--》【項目】

選擇Windows--》Windows窗體應用程式,自定義項目名稱

這裡我們修改項目默認名稱為PLC控制

建立完項目後進入項目開發裡了

工具欄:提供各種基本控制項(對應觸模屏來說控制項就好比是按鈕,文本框,下拉菜單,報表等等)

項目管理:可以理解為創建的窗口,配置的文件,引用的資源文件的目錄索引

控制項屬性:當你選中某個控制項時會在右下角顯示當前控制項的各個屬性,可以進行修改屬性,比如設置按鈕開關的顏色,文本框背景色,字體大小等等。

具體內容在後續文章會一一詳細講解,今天的任務是認識上位機好了,讓我們先建立一個簡單的窗體界面吧!

通過拖拽窗體右下角使窗體達到你想要的大小,接下來拖拽工具欄裡的butoon按鈕,

拖拽完成後單擊窗體的button1按鈕,右下角屬性彈出

修改按鈕顯示內容text為LED 

使用相同的方法添加一個文本標籤label到窗體並將文本修改為燈泡,並在屬性裡設置背景色backcolor為紅色

接下來我們按F5模擬一下

界面搭建完成,接下來的內容需要編程實現了:我們先來實現一個簡單的led開關功能,當我們點擊led按鈕時燈泡亮起來變為黃色,再點一次led按鈕燈泡熄滅變為紅色,如此就實現了一個開關控制燈泡的上位機了

接下來跟著我一步步操作:

1.雙擊led按鈕

 

現在進入了後臺編程,led按鈕事件就是當你點擊按鈕時觸發的一個函數,我們現在需要將我們的邏輯功能寫在這個函數裡面,回想下我們要實現的是不是led按鈕切換燈泡開斷,在界面上反應出來就是led點擊切換燈泡背景色,好了,現在開始編寫邏輯。

編程要養成好的代碼習慣,所以我們需要給我們的led和按鈕取名字,什麼?不是已經通過text屬性修改了嗎?怎麼還要改,oh,no,那是顯示文本不是控制項名稱,我們要做的是修改控制項名稱,如下圖,好了,將led按鈕也改好,不要使用中文命名,如果英文不好可以使用拼音字母命名,比如dengpao 

改好控制項名稱以後,添加如下代碼,

這時候如果你有c語言基礎應該是能看明白,什麼看不明白,ok,已經注釋好了,什麼還不明白?現在你可以買一本C#入門書籍,先了解基本的語法了。

我們再來運行我們的程序,F5按下

不停的單擊led你會看見燈泡的背景色在紅色和黃色之間不停的變換,也就相當於燈泡的不停開斷,界面部分到此結束。

下一次我會給大家詳細講解如何編寫plc燈泡開斷(這個好像大家應該都會),劃重點了啊!下一次我們的重點是如何將led按鈕和燈泡與plc進行通信,並且真實的控制燈泡的亮滅。謝謝大家閱覽,有什麼好的意見和補充歡迎各位前輩指正!

*如果你也喜歡這篇分享,歡迎轉到朋友圈,轉載請後臺聯繫小編*

商務合作:0755-26546361

❦歡迎私撩,非誠勿擾❦

相關焦點

  • 連載丨手把手教你winform上位機系列二:PLC編寫及配置
    上一節我們已經搭建好了winform上位機的界面顯示部分,現在我們需要做的事情如下:1.PLC程序編寫及通信配置
  • 手把手教你用Labview寫一個串口上位機
    收錄於話題 #手把手系列但是在我們的開發過程中,肯定不能時刻都有一個設備供我們調試使用,藉助VSPD軟體,可以在電腦上創建一對內部連接的虛擬串口。大家在安裝完VSPD後肯定也發現了,通過VSPD添加的埠總是成對出現的,如COM1、COM2。這兩個埠是內部連接的。如果向COM1發送數據,則會在COM2收到,既這兩個埠是可以相互通信的。
  • C# WinForm 程序免安裝 .NET Framework(XP/win7/win10環境運行)
    運行winform程序的,名字要與放入app目錄的控制臺程序對應│ 使用說明.txt│ 備用DLL.zip  mono環境下的dll,如果缺少了dll,可以將dll解壓後,放到runtime\lib目錄裡面│ 目錄結構.bat│ ├─app 這目錄存放你寫的exe程序,裡面是兩個示例demo│ any.exe 示例控制臺程序│ winform.exe
  • C# winform程序免安裝.net framework在XP/win7/win10環境運行
    運行winform程序的,名字要與放入app目錄的控制臺程序對應│  使用說明.txt│  備用DLL.zip  mono環境下的dll,如果缺少了dll,可以將dll解壓後,放到runtime\lib目錄裡面│  目錄結構.bat│ ├─app 這目錄存放你寫的exe程序,裡面是兩個示例
  • 什麼是上位機?上位機的開發軟體有哪些?
    什麼是上位機?怎麼自己編程做一個上位機程序?這種概念問題還是建議大家百度之後,然後在知乎@電子菌,要不然問題太多,公子回復不過來!
  • 如何使用Python開發串口通訊上位機(一)
    用Python開發串口通訊型上位機,其實並非最優解,本系列更新只為個人學習與總結。如果有C語言底子,嵌入式層面的上位機開發,C++ Builder,C#才是更加好用的利器。什麼是上位機從事過嵌入式軟體開發或者工控機開發的,對上位機應該都不陌生。
  • 上位機難?那分享下我的經歷
    當時的我不會上位機,我一個人用了兩個月(後來因為項目小,但花了兩個月,導致後面我不被重用)把這個項目推到了尾聲,但上位機一直放在一邊,之前聊過,由於我的公司不正規,沒有正兒八經的培訓,一切靠自己。上位機沒人教真的有些難,當時我手上只有一個別的工程的上位機程序,一切只能靠自己去摸索,但工期越來越緊,留給我的時間不多,然而,轉折來了,在我自學的第五天,那時候我正卡在報警畫面上,項目經理和我說,甲方預算不夠了,上位機取消了,我當時特別高興,然而現在的高興實際上是很不應該的。
  • winform傻瓜講解
    winform真的,把所有的代碼都看懂了,打會了,考試就能如魚得水,也沒有選擇,還可以神龍擺尾一下,所以說這篇裡我就主要給你們講講代碼,說一說比較重要或者好拿分的部分。
  • Qt 串口上位機開發《Rice 上位機 學習開發》
    前幾天分享了一個使用C#開發的串口上位機,那麼今天教你如何100行QT代碼實現一個串口上位機。
  • 如何定時啟停Winform應用程式
    這段時間,因為業務需要,要將一個由C#開發的winform應用程式做下定時關閉、開啟操作。折騰了一番,碰到了一些小坑,總算搞定了。
  • 【原創】教你如何擁有自己的「串口」上位機
    不過有時候你會覺得用別人的串口工具會感覺到很痛苦。太多限制,太局限性,比如要抓取調試的LOG的某個欄位,要實時監控數據,要對接收到的數據進行解析,用sscom、putty、xshell等上位機都無法實現自己想要的功能。所以我們要定製畫一款屬於自己的上位機,來實現自己想要的功能,想怎麼搞就怎麼搞。
  • 什麼是上位機,什麼是下位機?
    上位機是指可以直接發出操控命令的計算機,一般是PC/host computer/master computer/upper computer,屏幕上顯示各種信號變化(液壓,水位,溫度等)。工具/原料方法/步驟概述: 上位機發出的命令首先給下位機,下位機再根據此命令解釋成相應時序信號直接控制相應設備。
  • 遷移 WinForm 應用從 dotnet framework 到 dotnetcore3.0
    遷移 WinForm 應用從 dotnet framework 到 dotnetcore3.0Intro微軟從 dotnetcore3.0 開始已經開始支持 wpf 以及 winform
  • 經驗 【修改版】winform傻瓜講解
    winform真的,把所有的代碼都看懂了,打會了,考試就能如魚得水,也沒有選擇,還可以神龍擺尾一下,所以說這篇裡我就主要給你們講講代碼,說一說比較重要或者好拿分的部分。
  • winform已死?這8個Winform開源項目還有多少人在用?
    https://github.com/yhuse/SunnyUI3.Live-Charts.NET 簡單,靈活,交互式和強大的圖表。支持winform、wpf。https://github.com/oxyplot/oxyplot5.CSharpSkinC#Winform控制項界面庫源碼,主要提供大家重繪控制項的代碼方式和技巧
  • 上位機基於C#通過TCP/IP和庫卡機器人通訊
    如果你沒有C#編程的相關基礎,可以先參考:從零開始基於西門子PLC用C#通過OPC編寫一套簡易車間能源信息系統(附代碼)因為本文不是介紹該軟體的安裝,所以就不多做解釋,下面的內容默認已經能用自帶的測試軟體獲取庫卡機器人發送過來的數據。
  • 上位機儀錶盤實時顯示機器人速度
    後臺留言,大家一起支持原創,推動機器人使用和發展本公眾號對各類ABB機器人應用,仿真,畢業設計提供技術支持,詳細後臺留言本公眾號誠摯希望與各機器人培訓機構,機器人使用單元合作,提供技術支持,詳細後臺留言點擊文章最後的閱讀原文,即可獲得完整上位機儀錶盤實時顯示機器人速度
  • 這樣學上位機,是不是有意思多了
    收錄於話題 #上位機開發實踐 寫在前面 有小夥伴跟我說:為了兌現承諾,這次給大家安排一個小項目案例
  • Matlab上位機開發(五)Matlab串口通信
    串口中斷處理回調函數在上一節設置屬性的最後有這樣一行代碼:scom.BytesAvailableFcn = @callback;這行代碼就是設置串口中斷處理回調函數,如果是純m文件可以這樣設置,但是在GUI界面中還要傳入
  • C#上位機專題課程,計劃2月21號啟動
    應大部分學員要求,硬體家園啟動C#上位機專題教學。