本書系統(tǒng)地講解了如何利用C#開發(fā)智能制造工程,以具體項(xiàng)目為載體,重在實(shí)戰(zhàn),講解如何搭建智能制造系統(tǒng)的C#軟件架構(gòu)及如何開發(fā)出優(yōu)秀的C#代碼。本書分為3部分:基礎(chǔ)篇、進(jìn)階篇和實(shí)戰(zhàn)篇。基礎(chǔ)篇首先講解了智能制造的基本概念及其相關(guān)的軟/硬件環(huán)境,然后對(duì)智能制造的開發(fā)軟件C#的基礎(chǔ)知識(shí)進(jìn)行了詳細(xì)的講解;進(jìn)階篇對(duì)C#的高級(jí)特性和設(shè)計(jì)模式進(jìn)行了詳細(xì)的講解;實(shí)戰(zhàn)篇引入了運(yùn)動(dòng)控制器,針對(duì)智能制造的幾個(gè)熱點(diǎn)應(yīng)用領(lǐng)域——自動(dòng)化領(lǐng)域、物聯(lián)網(wǎng)領(lǐng)域、機(jī)器視覺(jué)領(lǐng)域進(jìn)行了詳細(xì)的講解,并依托具體的項(xiàng)目講解如何利用C#搭建智能制造系統(tǒng)的軟件架構(gòu)。本書可作為高等院校智能制造、機(jī)械工程和自動(dòng)化類專業(yè)的教材,也可作為智能制造、自動(dòng)化等相關(guān)領(lǐng)域的科技工作者、技術(shù)人員、軟件開發(fā)人員的實(shí)戰(zhàn)指導(dǎo)書。
劉江省,博士、副教授,機(jī)械工程學(xué)會(huì)生產(chǎn)工程分會(huì)委員,山東省計(jì)量測(cè)試學(xué)會(huì)幾何量分會(huì)理事,山東省裝備制造業(yè)協(xié)會(huì)理事。常年工作在研發(fā)一線,具有20多年的項(xiàng)目研發(fā)經(jīng)驗(yàn)。研究方向?yàn)橹悄苎b備的研究及開發(fā)等。
目錄
基礎(chǔ)篇
第1章 智能制造導(dǎo)論 2
1.1 智能制造簡(jiǎn)介 2
1.1.1 智能制造的起源 2
1.1.2 智能制造的定義 3
1.1.3 智能制造發(fā)展的3個(gè)階段 3
1.1.4 智能制造技術(shù)產(chǎn)業(yè)鏈 6
1.2 智能制造的硬件 8
1.2.1 PLC和運(yùn)動(dòng)控制器 8
1.2.2 輸入/輸出 11
1.2.3 計(jì)算機(jī)/觸摸屏 11
1.2.4 驅(qū)動(dòng)器和電機(jī) 11
1.2.5 執(zhí)行機(jī)構(gòu) 12
1.2.6 反饋裝置 13
1.2.7 通信接口 13
1.3 智能制造的軟件 17
1.3.1 工業(yè)軟件 17
1.3.2 嵌入式軟件和非嵌入式軟件 18
1.3.3 上位機(jī)和下位機(jī) 19
1.4 C#語(yǔ)言與.NET Framework平臺(tái) 20
1.4.1 上位機(jī)開發(fā)平臺(tái) 20
1.4.2 C#介紹 21
1.4.3 .NET Framework介紹 21
1.5 本書主要內(nèi)容和章節(jié)安排 23
第2章 C#應(yīng)用程序開發(fā)基礎(chǔ) 25
2.1 Visual Studio開發(fā)環(huán)境 25
2.1.1 Console控制臺(tái)應(yīng)用程序 27
2.1.2 類庫(kù)的開發(fā)與應(yīng)用 30
2.1.3 Windows窗體應(yīng)用程序 33
2.1.4 常用的Windows標(biāo)準(zhǔn)控件 37
2.1.5 控件屬性和事件 38
2.1.6 窗體設(shè)計(jì)實(shí)例 40
2.2 生成、運(yùn)行與調(diào)試 42
2.2.1 生成和運(yùn)行 42
2.2.2 調(diào)試 44
2.3 C#基本語(yǔ)法 46
2.3.1 C#程序結(jié)構(gòu) 46
2.3.2 命名空間 47
2.3.3 關(guān)鍵字 48
2.3.4 標(biāo)識(shí)符 48
2.3.5 代碼注釋 49
2.4 C#代碼編寫規(guī)范 49
2.4.1 字母大小寫約定 50
2.4.2 命名注意事項(xiàng) 50
2.5 本章小結(jié) 51
第3章 C#語(yǔ)言基礎(chǔ) 52
3.1 數(shù)據(jù)類型 52
3.1.1 值類型 52
3.1.2 引用類型 55
3.1.3 裝箱與拆箱 57
3.2 數(shù)據(jù)類型之間的轉(zhuǎn)換 57
3.2.1 類型鑄造 58
3.2.2 通過(guò)string進(jìn)行類型轉(zhuǎn)換 58
3.2.3 使用as操作符進(jìn)行類型轉(zhuǎn)換 61
3.3 常量與變量 61
3.3.1 常量 61
3.3.2 變量 64
3.4 運(yùn)算符與表達(dá)式 65
3.4.1 算術(shù)運(yùn)算符 65
3.4.2 關(guān)系運(yùn)算符 67
3.4.3 邏輯運(yùn)算符 68
3.4.4 位運(yùn)算符 69
3.4.5 賦值運(yùn)算符 70
3.4.6 條件運(yùn)算符 72
3.4.7 其他運(yùn)算符 72
3.4.8 運(yùn)算符優(yōu)先級(jí) 73
3.5 C#語(yǔ)言的結(jié)構(gòu) 74
3.5.1 分支語(yǔ)句 74
3.5.2 循環(huán)語(yǔ)句 79
3.5.3 跳轉(zhuǎn)語(yǔ)句 82
3.6 數(shù)組 83
3.7 類 85
3.7.1 類的定義 85
3.7.2 類的成員 86
3.7.3 構(gòu)造函數(shù) 87
3.7.4 析構(gòu)函數(shù) 89
3.8 方法 91
3.8.1 方法的聲明 91
3.8.2 參數(shù)傳遞 93
3.9 屬性 96
3.10 接口 98
3.10.1 接口的概念 99
3.10.2 接口的實(shí)現(xiàn) 99
3.11 本章小結(jié) 101
第4章 C#面向?qū)ο蟮木幊碳夹g(shù) 102
4.1 面向?qū)ο蟮母拍?102
4.1.1 面向過(guò)程的編程思想 102
4.1.2 面向?qū)ο蟮木幊趟枷?103
4.1.3 面向?qū)ο蟪绦蛟O(shè)計(jì)3原則 104
4.2 類的封裝與繼承的實(shí)現(xiàn) 110
4.3 類的抽象與多態(tài)的實(shí)現(xiàn) 114
4.3.1 方法重載 114
4.3.2 運(yùn)算符重載 116
4.3.3 虛方法與方法覆蓋 118
4.3.4 抽象類與抽象方法 120
4.4 本章小結(jié) 121
?
進(jìn)階篇
第5章 C#高級(jí)特性 123
5.1 集合 123
5.1.1 動(dòng)態(tài)數(shù)組類 124
5.1.2 哈希表類 125
5.1.3 排序列表類 127
5.1.4 堆棧類 128
5.1.5 隊(duì)列類 130
5.2 泛型 131
5.2.1 泛型方法 132
5.2.2 泛型類 133
5.2.3 泛型集合 134
5.3 委托與事件 138
5.3.1 委托 138
5.3.2 事件 147
5.4 多線程技術(shù) 150
5.4.1 什么是線程 150
5.4.2 線程生命周期 150
5.4.3 主線程 151
5.4.4 Thread 類的一些常用屬性和方法 151
5.4.5 創(chuàng)建線程 152
5.4.6 管理線程 156
5.4.7 銷毀線程 158
5.5 反射技術(shù) 159
5.5.1 什么是反射 160
5.5.2 反射技術(shù)的應(yīng)用 160
5.5.3 反射技術(shù)的優(yōu)/缺點(diǎn) 165
5.6 本章小結(jié) 166
第6章 C#圖形圖像編程 167
6.1 GDI+繪圖基礎(chǔ) 167
6.1.1 Graphics類 167
6.1.2 Graphics類的常用方法 168
6.1.3 Graphics繪制實(shí)例 169
6.2 繪制圖形 171
6.2.1 常用繪圖對(duì)象 171
6.2.2 繪制功能 174
6.2.3 綜合實(shí)例 177
6.3 圖像處理 181
6.3.1 圖像的讀取、保存和轉(zhuǎn)換 182
6.3.2 圖像的復(fù)制和粘貼 185
6.3.3 彩色圖像處理 189
6.4 本章小結(jié) 195
第7章 C#設(shè)計(jì)模式 196
7.1 什么是設(shè)計(jì)模式 196
7.2 設(shè)計(jì)模式的七大原則或法則 198
7.2.1 單一職能原則 198
7.2.2 開放封閉原則 199
7.2.3 里氏代換原則 200
7.2.4 依賴倒轉(zhuǎn)原則 201
7.2.5 接口隔離原則 201
7.2.6 合成復(fù)用原則 202
7.2.7 迪米特法則 203
7.3 常用設(shè)計(jì)模式的實(shí)現(xiàn) 204
7.3.1 單例模式 204
7.3.2 工廠方法模式 206
7.3.3 簡(jiǎn)單工廠模式 209
7.3.4 抽象工廠模式 213
7.3.5 策略模式 217
7.3.6 觀察者模式 220
7.4 本章小結(jié) 225
實(shí)戰(zhàn)篇
第8章 運(yùn)動(dòng)控制器的C#應(yīng)用開發(fā) 227
8.1 運(yùn)動(dòng)控制導(dǎo)論 227
8.1.1 運(yùn)動(dòng)控制系統(tǒng)的組成 228
8.1.2 運(yùn)動(dòng)控制系統(tǒng)的分類 229
8.1.3 運(yùn)動(dòng)控制器的應(yīng)用領(lǐng)域 231
8.2 運(yùn)動(dòng)控制系統(tǒng)的應(yīng)用 231
8.2.1 運(yùn)動(dòng)控制系統(tǒng)的功能 232
8.2.2 單軸運(yùn)動(dòng) 233
8.2.3 多軸運(yùn)動(dòng) 236
8.3 用ZBasic開發(fā)下位機(jī)軟件 239
8.4 用C#開發(fā)上位機(jī)軟件 241
8.5 正運(yùn)動(dòng)的運(yùn)動(dòng)控制器的C#例程 246
8.5.1 單軸控制 246
8.5.2 多軸插補(bǔ) 250
8.6 本章小結(jié) 254
第9章 C#在自動(dòng)化領(lǐng)域的應(yīng)用開發(fā) 255
9.1 上位機(jī)軟件功能分解 255
9.2 底層控制模塊的開發(fā) 257
9.2.1 控制器的底層控制功能分析 257
9.2.2 代碼實(shí)現(xiàn) 258
9.3 流程控制模塊的開發(fā) 274
9.3.1 公共定義 274
9.3.2 流程類的封裝 275
9.3.3 流程控制類 280
9.3.4 流程控制模塊的類關(guān)系圖 282
9.3.5 流程控制模塊的使用 282
9.4 其他模塊的開發(fā) 284
9.5 UI 285
9.6 本章小結(jié) 286
第10章 C#在物聯(lián)網(wǎng)領(lǐng)域的應(yīng)用開發(fā) 288
10.1 物聯(lián)網(wǎng)導(dǎo)論 288
10.1.1 物聯(lián)網(wǎng)的定義和特征 288
10.1.2 物聯(lián)網(wǎng)的起源和發(fā)展 288
10.1.3 物聯(lián)網(wǎng)的應(yīng)用 289
10.1.4 物聯(lián)網(wǎng)的傳輸方式 290
10.2 串口通信和串口通信網(wǎng)絡(luò) 290
10.2.1 串口通信 290
10.2.2 串口網(wǎng)絡(luò)服務(wù)器 292
10.2.3 串口參數(shù) 293
10.3 Modbus通信協(xié)議 293
10.3.1 什么是Modbus通信 293
10.3.2 Modbus寄存器 294
10.3.3 Modbus功能碼 295
10.4 用C#實(shí)現(xiàn)串口通信 297
10.4.1 SerialPort類 298
10.4.2 TcpClient類 300
10.4.3 NModbus 302
10.5 C#在物聯(lián)網(wǎng)中的開發(fā)實(shí)例 306
10.5.1 面向蝶閥裝配的半自動(dòng)檢測(cè)及其質(zhì)量追溯系統(tǒng) 306
10.5.2 系統(tǒng)的連接示意圖及硬件選型 307
10.5.3 串行網(wǎng)絡(luò)的建立 308
10.5.4 串口基類的建立 312
10.5.5 各類串口設(shè)備的連接 313
10.5.6 類結(jié)構(gòu) 320
10.6 本章小結(jié) 321
第11章 C#在機(jī)器視覺(jué)領(lǐng)域的應(yīng)用開發(fā) 322
11.1 機(jī)器視覺(jué)導(dǎo)論 322
11.1.1 什么是機(jī)器視覺(jué) 322
11.1.2 機(jī)器視覺(jué)能干什么 323
11.1.3 機(jī)器視覺(jué)的基本構(gòu)成 324
11.2 EmguCV 328
11.2.1 什么是EmguCV 329
11.2.2 如何下載和使用EmguCV 330
11.3 在線視覺(jué)檢測(cè)開發(fā)案例 331
11.3.1 尺寸測(cè)量 332
11.3.2 二維碼識(shí)別 341
11.4 本章小結(jié) 351
參考文獻(xiàn) 352