本書針對(duì)自動(dòng)化工程師,全面、深入地介紹了C#上位機(jī)開發(fā)的基礎(chǔ)知識(shí)、設(shè)計(jì)思路與功能實(shí)現(xiàn),旨在幫助讀者快速掌握上位機(jī)開發(fā)的基本原理、技術(shù)要點(diǎn)和實(shí)踐方法。本書內(nèi)容主要包括C#基本語法、常用控件和布局技巧,C#與WinCC數(shù)據(jù)交互,SCADA面向組件開發(fā),利用C#實(shí)現(xiàn)設(shè)備通信,通信驅(qū)動(dòng)庫封裝,數(shù)據(jù)庫應(yīng)用開發(fā),文件操作與訪問,程序安裝與部署等。
本書內(nèi)容翔實(shí)、實(shí)用性強(qiáng),緊密結(jié)合自控行業(yè)技術(shù)人員的IT知識(shí)需求,在C#語法講解中穿插大量程序?qū)嵗,提高讀者學(xué)習(xí)興趣和編程成就感。同時(shí),通過典型的上位機(jī)應(yīng)用開發(fā)講解,幫助讀者掌握實(shí)際應(yīng)用開發(fā)技能,學(xué)以致用。
本書適合從事上位機(jī)開發(fā)的自動(dòng)化工程師學(xué)習(xí),也可供控制工程、自動(dòng)化相關(guān)專業(yè)的師生參考。
第1章 C#上位機(jī)開發(fā)概述 001
1.1 .Net Framework 002
1.2 .Net Standard 002
1.3 .Net Core/.Net 004
1.4 C# 004
1.5 Native和Managed程序 006
1.6 Visual Studio 006
1.7 安裝Visual Studio 006
1.8 第一個(gè)C#程序 006
1.9 WinForm和WPF 015
1.10 RAD工具 015
1.11 事件驅(qū)動(dòng)模型 016
1.12 Runtime 016
第2章 數(shù)據(jù)類型與運(yùn)算符 017
2.1 變量 017
2.2 常量 019
2.3 基本數(shù)據(jù)類型 020
2.4 枚舉 022
2.5 結(jié)構(gòu) 023
2.6 數(shù)組 025
2.6.1 一維數(shù)組 025
2.6.2 多維數(shù)組 026
2.6.3 數(shù)組的數(shù)組 028
2.7 object 028
2.8 var 029
2.9 變量命名規(guī)則 029
2.10 運(yùn)算符 030
2.10.1 一元運(yùn)算符 031
2.10.2 二元運(yùn)算符 032
2.10.3 三元運(yùn)算符 032
2.11 程序注釋 032
2.12 代碼折疊 033
2.13 變量作用域 033
2.13.1 循環(huán)體中的變量 034
2.13.2 方法或者事件中的變量 035
2.13.3 類字段 036
2.14 關(guān)鍵字 037
2.15 命名空間 038
2.16 實(shí)用技巧 039
2.16.1 快速輸入 039
2.16.2 錯(cuò)誤提示 040
第3章 流程控制 041
3.1 條件語句 041
3.2 選擇語句 043
3.3 循環(huán)語句 045
3.3.1 for 045
3.3.2 while 046
3.3.3 do…while 047
3.3.4 foreach 048
3.4 跳轉(zhuǎn)語句 048
3.4.1 goto 048
3.4.2 break 049
3.4.3 continue 049
3.4.4 return 050
第4章 高級(jí)類型 051
4.1 數(shù)據(jù)字典 051
4.2 dynamic 054
4.3 list 055
4.4 泛型 056
第5章 常用控件 059
5.1 公共屬性 059
5.1.1 Name 059
5.1.2 Text 060
5.1.3 Enabled 060
5.1.4 Location 061
5.1.5 FlatStyle 063
5.1.6 BackColor 063
5.1.7 Font 063
5.1.8 ForeColor 063
5.1.9 BackgroundImage 064
5.1.10 Visible 064
5.1.11 Size 065
5.1.12 Dock 065
5.1.13 Locked 065
5.2 按鈕控件(Button) 066
5.3 文本框控件(TextBox) 067
5.4 標(biāo)簽控件(Label) 068
5.5 下拉列表框控件(ComboBox) 069
5.6 ListBox 071
5.7 DateTimePicker 072
5.8 ListView 073
5.9 DataGridView 078
5.9.1 綁定數(shù)據(jù)表(Access) 078
5.9.2 綁定數(shù)據(jù)表(SQL Server) 083
5.9.3 代碼操作DataGridView 085
5.10 菜單(MenuStrip) 088
5.11 工具欄(ToolStrip) 090
5.12 狀態(tài)欄(StatusStrip) 092
5.13 Timer 093
5.14 LinkLabel 095
5.15 TreeView 096
5.16 contextMenuStrip 097
5.17 PictureBox 099
第6章 窗體布局 103
6.1 默認(rèn)布局 103
6.2 邊界布局 103
6.3 流式布局 104
6.4 網(wǎng)格布局 106
6.5 卡片布局 108
6.6 混合布局 108
第7章 常用類庫 113
7.1 Convert 113
7.2 BitConvert 114
7.3 DateTime 115
7.3.1 屬性 115
7.3.2 方法 116
7.4 GDI+ 119
7.4.1 幾個(gè)概念 119
7.4.2 繪制直線 119
7.4.3 繪制矩形 121
7.4.4 繪制圓形 122
7.4.5 繪制文本 123
7.4.6 填充矩形 124
7.5 常見應(yīng)用 125
7.5.1 進(jìn)制轉(zhuǎn)換 125
7.5.2 vbpowerpacks 126
第8章 第三方UI控件庫 130
8.1 CSkin 130
8.2 ReaLTaiizor 132
8.3 NuGet簡介 134
第9章 C#與WinCC 135
9.1 C#訪問WinCC 135
9.1.1 COM技術(shù) 135
9.1.2 訪問WinCC變量 135
9.1.3 訪問WinCC控件 139
9.2 使用C#開發(fā)WinCC控件 142
9.2.1 自定義控件 142
9.2.2 自定義按鈕控件 143
9.2.3 開發(fā)WinCC支持的控件 152
9.2.4 自定義控件和WinCC交互 154
第10章 多線程 159
10.1 進(jìn)程和線程 159
10.2 進(jìn)程中的循環(huán) 160
10.3 多線程例子 161
10.4 Thread類 162
10.4.1 構(gòu)造函數(shù) 162
10.4.2 屬性 162
10.4.3 方法 163
10.5 ThreadPool 164
10.6 Task 167
10.7 async/await 170
第11章 面向?qū)ο笈c面向組件編程 173
11.1 面向?qū)ο缶幊谈攀? 173
11.2 閥門對(duì)象 175
11.2.1 屬性 176
11.2.2 方法 177
11.2.3 事件 178
11.2.4 實(shí)例化 179
11.3 面向組件編程概述 181
11.4 閥門組件 181
11.4.1 在項(xiàng)目中創(chuàng)建組件 182
11.4.2 接口信號(hào) 184
11.4.3 組件屬性 185
11.4.4 組件方法 187
11.4.5 Faceplate 190
第12章 委托、事件與回調(diào) 194
12.1 委托 194
12.2 事件 198
12.3 回調(diào) 199
第13章 設(shè)備通信 202
13.1 串口通信 203
13.2 Socket通信 209
13.2.1 Socket基本知識(shí) 209
13.2.2 Socket通信適用場景 211
13.2.3 Socket通信流程 211
13.2.4 Socket通信實(shí)例 212
13.3 S7通信 222
13.3.1 幾種常用的通信庫介紹 223
13.3.2 S7NetPlus的使用 223
13.3.3 Sharp7的使用 233
13.4 OPC DA 241
13.4.1 添加OPC DA Client 241
13.4.2 使用OPC DA Client 243
13.5 OPC UA 247
13.5.1 OPC UA Server配置 247
13.5.2 導(dǎo)入類庫 249
13.5.3 設(shè)計(jì)界面和編碼 251
13.6 Modbus 255
13.6.1 NModbus4簡介 255
13.6.2 NModbus的使用(TCP Client) 257
13.6.3 EasyModbus的使用(TCP Server) 265
13.7 FINS通信 269
13.7.1 FINS協(xié)議簡介 270
13.7.2 FINS的使用 271
13.8 多任務(wù)通信 277
13.8.1 主界面 277
13.8.2 設(shè)置界面 278
13.8.3 連接PLC 281
13.8.4 輪詢程序 283
13.9 通信驅(qū)動(dòng)的設(shè)計(jì)模式 285
13.9.1 適配器模式 285
13.9.2 公共通信驅(qū)動(dòng) 286
13.9.3 使用通信驅(qū)動(dòng) 290
第14章 工廠數(shù)據(jù)中心 292
14.1 數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng) 292
14.1.1 實(shí)時(shí)數(shù)據(jù)庫 293
14.1.2 在Visual Studio里管理數(shù)據(jù)庫 294
14.1.3 SQL語句 296
14.1.4 ADO.Net 299
14.1.5 Access 300
14.1.6 SQL Server 307
14.1.7 SQLite 315
14.1.8 SQLiteHelper 325
14.1.9 ORM框架 328
14.2 數(shù)據(jù)中心框架 336
14.2.1 接入設(shè)備 336
14.2.2 網(wǎng)關(guān) 338
14.2.3 交換機(jī) 339
14.2.4 數(shù)據(jù)庫 340
14.2.5 服務(wù)器 340
14.2.6 云服務(wù)器(ECS) 341
14.3 物聯(lián)網(wǎng)平臺(tái) 344
14.3.1 物聯(lián)網(wǎng)與MQTT 344
14.3.2 搭建物聯(lián)網(wǎng)云平臺(tái) 344
14.3.3 基于C#的物聯(lián)網(wǎng)云平臺(tái) 353
14.4 數(shù)據(jù)展示分析 358
14.4.1 LiveChart 359
14.4.2 準(zhǔn)備工作 360
14.4.3 支持縮放的數(shù)據(jù)展示窗體 360
14.4.4 查詢并展示數(shù)據(jù) 363
第15章 文件操作及其他 368
15.1 C#操作文件 368
15.1.1 txt 368
15.1.2 Excel 371
15.1.3 ini 374
15.1.4 設(shè)置文件 380
15.1.5 XML文件 383
15.2 多語言界面 386
15.2.1 配置資源文件 387
15.2.2 語言切換 389
15.3 異常處理 391
15.4 安裝與部署 392
15.4.1 安裝插件 392
15.4.2 打包項(xiàng)目 392