日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

上位机plc编程入门_上位机-使用C#编程语言编写PLC上位机软件-技术论坛-西门子中国...

發布時間:2023/12/9 C# 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 上位机plc编程入门_上位机-使用C#编程语言编写PLC上位机软件-技术论坛-西门子中国... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用C#編程語言編寫PLC上位機軟件(源碼在文章最后)

本程序使用WPF做界面,C#做邏輯,為了界面美觀使用了老外的一個開源皮膚框架,邏輯代碼為了和S7-1200通訊使用了行內一位大神的庫。

借鑒大神的框架在文章后面會提到(這里也是為了尊重原創作者的勞動成果)。

下面來看看界面,再一一介紹下程序框架:

主界面(使用一個win窗口來作為顯示,界面左側有彈出菜單,界面內容通過菜單按鈕調用Page來實現界面內容轉換)

控制界面使用了按鈕和滑動條,按鈕模擬了HMI的工作模式,彈起和按下事件分別置位復位PLC變量,滑塊是自己做的一個Style,WPF這點還是很方便的。

參數輸入界面模擬了 HMI的 IO域,編輯時不刷新變量,輸入完成后寫入變量,再更新變量里的內容;右邊配方功能也是模擬的西門子HMI里配方功能,保存參數到序列化文件,讀取的時候反序列化寫入PLC變量

曲線記錄界面使用了DynamicDataDisplay 開源控件來做為曲線顯示,此控件比較強大。在曲線顯示的同時后臺還要記錄數據,在此使用了list來緩存數據并保存到序列化文件,在記錄完成后反序列化一次性寫入access數據庫。

數據查詢界面利用日歷控件來作為搜索access數據的條件,篩選出零件編號,再把零件編號的對應數據以曲線方式呈現出來,同時也可以以表格方式呈現

故障報警界面使用listbox控件做為顯示,利用的消息隊列來排序故障信息

更改皮膚顏色界面是這個UI框架附帶的功能,效果蠻好。

下面來介紹下程序

界面初始化時連接PLC

PLC連接方法

建立一個實體類,作為需要讀取的PLC變量,一次性讀取多個變量數據。

曲線刷新使用了多線程,關于數據全部在后臺線程里進行,不影響界面運行

曲線數據更新到list使用了linq語法來篩選出需要的數據進行讀和寫

序列化數據內容,寫入到access,當時試過一遍讀取數據一遍寫入數據庫,發現耗時很長,后來想到序列化,緩存再一次性寫入,速度提高很多。

目前就介紹到這里,有需要做類似項目的同行可以在下面評論聯系,相互學習。

QQ:8300877 ? ?QQ群:923525781

本程序源碼github地址

如果喜歡可以star或是fork。

這里介紹一下PLC通訊庫

HslCommunication組件庫;

NuGet地址:

https://www.nuget.org/packages/HslCommunication/

Material DesignXamlToolKit 皮膚框架源碼

github地址

https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit

總結

以上是生活随笔為你收集整理的上位机plc编程入门_上位机-使用C#编程语言编写PLC上位机软件-技术论坛-西门子中国...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。