上位机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上位机软件-技术论坛-西门子中国...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(2814):小程序学习之建立第
- 下一篇: 前端学习(2796):实现左侧数据渲染和