本書系統(tǒng)地講解了C#上位機與下位機之間進(jìn)行通信的相關(guān)知識,以各種實用案例為載體,注重實際應(yīng)用,對初學(xué)者學(xué)習(xí)C#上位機軟件開發(fā)具有一定的幫助和指導(dǎo)作用。 本書分為四部分:第一部分對工業(yè)控制系統(tǒng)架構(gòu)和常用數(shù)據(jù)類型轉(zhuǎn)換進(jìn)行說明;第二部分介紹了串口通信和以太網(wǎng)通信基礎(chǔ);第三部分主要針對Modbus RTU和Modbu TCP通信協(xié)議進(jìn)行了詳細(xì)說明;第四部分主要闡述了自定義控件的開發(fā)以及C#如何聯(lián)合WinCC和運動控制卡。 本書適合需要系統(tǒng)學(xué)習(xí)C#上位機開發(fā)的電氣工程師或自動化工程師,以及一些IT程序員轉(zhuǎn)型OT參考,也可以作為高等院校智能制造、電氣工程和自動化類專業(yè)的師生參考。
付加勁一直從事自動化領(lǐng)域相關(guān)技術(shù)工作,從PLC編程到上位機及DCS組態(tài),再到C#、LabVIEW軟件開發(fā),從2017年開始從事在線教育工作,開發(fā)了大量的上位機項目,編寫了數(shù)本自研教材,對上位機數(shù)據(jù)采集及應(yīng)用非常熟悉,同時對運動控制、機器視覺、WEB物聯(lián)網(wǎng),也有著較深的理解。
目 錄
第1章 工業(yè)控制系統(tǒng) 1
1.1 工業(yè)控制系統(tǒng)架構(gòu) 1
1.2 下位機發(fā)展應(yīng)用 2
1.2.1 PLC 2
1.2.2 單片機 4
1.2.3 運動控制器 5
1.3 上位機發(fā)展應(yīng)用 7
1.3.1 人機界面 7
1.3.2 組態(tài)軟件 8
1.3.3 高級語言開發(fā) 8
1.4 上位機與下位機通信 9
1.4.1 串口通信 9
1.4.2 以太網(wǎng)通信 12
第2章 上位機開發(fā)數(shù)據(jù)類型轉(zhuǎn)換 17
2.1 基礎(chǔ)數(shù)據(jù)類型說明 17
2.1.1 常用數(shù)據(jù)類型 17
2.1.2 大小端字節(jié)順序 18
2.1.3 為什么會存在大小端 19
2.2 字節(jié)集合類ByteArray封裝及應(yīng)用 20
2.2.1 字節(jié)集合類ByteArray 21
2.2.2 ByteArray實際應(yīng)用 23
2.3 數(shù)據(jù)類型轉(zhuǎn)換類 23
2.3.1 ByteArray轉(zhuǎn)換類ByteArrayLib 23
2.3.2 byte轉(zhuǎn)換類ByteLib 29
2.3.3 bit轉(zhuǎn)換類BitLib 29
2.3.4 short轉(zhuǎn)換類ShortLib 32
2.3.5 int轉(zhuǎn)換類IntLib 33
2.3.6 long轉(zhuǎn)換類LongLib 34
2.3.7 string轉(zhuǎn)換類StringLib 35
2.4 操作結(jié)果類OperateResult 36
2.4.1 OperateResult的設(shè)計過程 37
2.4.2 OperateResult的使用說明 39
第3章 串口通信與通信應(yīng)用 41
3.1 SerialPort串口對象 41
3.1.1 SerialPort構(gòu)造方法 41
3.1.2 SerialPort常用屬性 42
3.1.3 SerialPort常用方法 43
3.1.4 SerialPort常用事件 44
3.2 掃碼槍串口通信案例 44
3.2.1 項目創(chuàng)建及界面設(shè)計 45
3.2.2 項目架構(gòu)設(shè)計 46
3.2.3 串口參數(shù)配置 46
3.2.4 串口通信封裝實現(xiàn) 52
3.2.5 串口掃碼功能應(yīng)用 54
3.3 歐姆龍PLC串口通信實戰(zhàn) 57
3.3.1 搭建仿真歐姆龍PLC環(huán)境 58
3.3.2 Hostlink協(xié)議C-Mode通信應(yīng)用 67
3.3.3 Hostlink協(xié)議Fins通信應(yīng)用 77
第4章 以太網(wǎng)通信與通信應(yīng)用 82
4.1 TCP/IP基礎(chǔ) 82
4.1.1 TCP三次握手 83
4.1.2 TCP四次揮手 84
4.1.3 Socket編程基礎(chǔ) 86
4.2 TCP服務(wù)器及客戶端程序編寫 89
4.2.1 服務(wù)器程序編寫 89
4.2.2 TCP客戶端程序編寫 92
4.2.3 服務(wù)器與客戶端通信測試 94
4.3 西門子PLC以太網(wǎng)通信案例 96
4.3.1 西門子PLC仿真環(huán)境 97
4.3.2 PLC程序編寫 101
4.3.3 上位機通用讀取 106
4.3.4 上位機通用寫入 114
4.4 西門子S7通信應(yīng)用 118
4.4.1 PLC通信配置 118
4.4.2 S7.NET通信庫封裝 120
4.4.3 PLC通信通用讀取思路 124
4.4.4 PLC通信解決方案 127
第5章 Modbus通信協(xié)議說明 128
5.1 Modbus基礎(chǔ)知識說明 128
5.1.1 Modbus存儲區(qū) 128
5.1.2 Modbus地址模型 129
5.1.3 Modbus功能碼 130
5.1.4 Modbus仿真軟件 132
5.2 Modbus RTU/ASCII通信協(xié)議 138
5.2.1 讀取輸出線圈 139
5.2.2 讀取輸入線圈 140
5.2.3 讀取保持型寄存器 141
5.2.4 讀取輸入寄存器 142
5.2.5 預(yù)置單線圈 143
5.2.6 預(yù)置單寄存器 143
5.2.7 預(yù)置多線圈 144
5.2.8 預(yù)置多寄存器 144
5.3 Modbus TCP/UDP通信協(xié)議分析 145
5.3.1 Modbus TCP/UDP協(xié)議分析 145
5.3.2 讀取輸出線圈 147
5.3.3 讀取輸入線圈 148
5.3.4 讀取保持型寄存器 148
5.3.5 讀取輸入寄存器 149
5.3.6 預(yù)置單線圈 150
5.3.7 預(yù)置單寄存器 151
5.3.8 預(yù)置多線圈 151
5.3.9 預(yù)置多寄存器 152
第6章 Modbus RTU串口通信應(yīng)用 154
6.1 NModbus4通信庫使用說明 154
6.1.1 NModbus4通信庫安裝說明 154
6.1.2 Modbus RTU通信庫封裝應(yīng)用 155
6.2 西門子200Smart實現(xiàn)Modbus RTU通信 161
6.2.1 PLC程序編寫 161
6.2.2 Modbus RTU通信測試 165
6.2.3 上位機通信程序 165
6.3 Modbus RTU一主多從實現(xiàn)溫濕度采集 168
6.3.1 溫濕度變送器地址說明 169
6.3.2 溫濕度變送器模塊通信測試 169
6.3.3 上位機實現(xiàn)多溫濕度采集 170
第7章 Modbus TCP以太網(wǎng)通信應(yīng)用 175
7.1 西門子S7-1500 PLC實現(xiàn)Modbus TCP通信 175
7.1.1 PLC程序編寫 175
7.1.2 Modbus TCP通信庫封裝 178
7.1.3 上位機通信應(yīng)用 179
7.2 三菱FX5U PLC之Modbus TCP通信 182
7.2.1 PLC配置說明 182
7.2.2 Modbus地址分析及測試 185
7.2.3 上位機通信應(yīng)用 186
第8章 自定義控件封裝及應(yīng)用 190
8.1 自定義控件分類 190
8.1.1 擴(kuò)展控件 190
8.1.2 組合控件 193
8.1.3 繪制控件 194
8.2 HeadPanel控件 198
8.2.1 HeadPanel控件分析 198
8.2.2 HeadPanel控件開發(fā) 199
8.3 TextShow控件 205
8.3.1 TextShow控件分析 205
8.3.2 TextShow控件開發(fā) 206
8.4 Led控件 209
8.4.1 Led控件分析 209
8.4.2 Led控件開發(fā) 209
第9章 C#聯(lián)合WinCC組態(tài)軟件應(yīng)用 215
9.1 WinCC使用.NET控件 215
9.1.1 WinCC如何添加.NET控件 215
9.1.2 WinCC與西門子PLC通信 217
9.2 C#實現(xiàn)讀寫WinCC變量 221
9.2.1 C#讀取WinCC變量 221
9.2.2 C#寫入WinCC變量 222
9.3 C#實現(xiàn)訪問WinCC控件 224
9.3.1 C#讀取WinCC控件 224
9.3.2 C#寫入WinCC控件 226
第10章 C#上位機聯(lián)合運動控制卡 228
10.1 運動控制卡基礎(chǔ)知識 228
10.1.1 運動控制卡與PLC的區(qū)別 228
10.1.2 運動控制卡的種類與選型 230
10.1.3 運動控制與機器人的區(qū)別 231
10.2 脈沖型運動控制卡使用說明 231
10.2.1 ECI1408產(chǎn)品說明及接線使用 232
10.2.2 運動控制函數(shù)庫二次封裝 236
10.2.3 多軸運動控制應(yīng)用案例 246
10.3 總線型運動控制卡EtherCAT通信 251
10.3.1 ECI2828運動控制卡使用說明 251
10.3.2 ECI2828運動控制卡脈沖控制 252
10.3.3 ECI2828運動控制卡EtherCAT控制 255
10.4 運動控制卡Modbus TCP通信 259
10.4.1 運動控制卡Modbus協(xié)議說明 259
10.4.2 運動控制卡Modbus通信應(yīng)用 260