本书系统地讲解了如何利用C#开发智能制造工程,以具体项目为载体,重在实战,讲解如何搭建智能制造系统的C#软件架构及如何开发出优秀的C#代码。本书分为3部分:基础篇、进阶篇和实战篇。基础篇首先讲解了智能制造的基本概念及其相关的软/硬件环境,然后对智能制造的开发软件C#的基础知识进行了详细的讲解;进阶篇对C#的高级特性和设计模式进行了详细的讲解;实战篇引入了运动控制器,针对智能制造的几个热点应用领域——自动化领域、物联网领域、机器视觉领域进行了详细的讲解,并依托具体的项目讲解如何利用C#搭建智能制造系统的软件架构。本书可作为高等院校智能制造、机械工程和自动化类专业的教材,也可作为智能制造、自动化等相关领域的科技工作者、技术人员、软件开发人员的实战指导书。
刘江省,博士、副教授,机械工程学会生产工程分会委员,山东省计量测试学会几何量分会理事,山东省装备制造业协会理事。常年工作在研发一线,具有20多年的项目研发经验。研究方向为智能装备的研究及开发等。
目录
基础篇
第1章 智能制造导论 2
1.1 智能制造简介 2
1.1.1 智能制造的起源 2
1.1.2 智能制造的定义 3
1.1.3 智能制造发展的3个阶段 3
1.1.4 智能制造技术产业链 6
1.2 智能制造的硬件 8
1.2.1 PLC和运动控制器 8
1.2.2 输入/输出 11
1.2.3 计算机/触摸屏 11
1.2.4 驱动器和电机 11
1.2.5 执行机构 12
1.2.6 反馈装置 13
1.2.7 通信接口 13
1.3 智能制造的软件 17
1.3.1 工业软件 17
1.3.2 嵌入式软件和非嵌入式软件 18
1.3.3 上位机和下位机 19
1.4 C#语言与.NET Framework平台 20
1.4.1 上位机开发平台 20
1.4.2 C#介绍 21
1.4.3 .NET Framework介绍 21
1.5 本书主要内容和章节安排 23
第2章 C#应用程序开发基础 25
2.1 Visual Studio开发环境 25
2.1.1 Console控制台应用程序 27
2.1.2 类库的开发与应用 30
2.1.3 Windows窗体应用程序 33
2.1.4 常用的Windows标准控件 37
2.1.5 控件属性和事件 38
2.1.6 窗体设计实例 40
2.2 生成、运行与调试 42
2.2.1 生成和运行 42
2.2.2 调试 44
2.3 C#基本语法 46
2.3.1 C#程序结构 46
2.3.2 命名空间 47
2.3.3 关键字 48
2.3.4 标识符 48
2.3.5 代码注释 49
2.4 C#代码编写规范 49
2.4.1 字母大小写约定 50
2.4.2 命名注意事项 50
2.5 本章小结 51
第3章 C#语言基础 52
3.1 数据类型 52
3.1.1 值类型 52
3.1.2 引用类型 55
3.1.3 装箱与拆箱 57
3.2 数据类型之间的转换 57
3.2.1 类型铸造 58
3.2.2 通过string进行类型转换 58
3.2.3 使用as操作符进行类型转换 61
3.3 常量与变量 61
3.3.1 常量 61
3.3.2 变量 64
3.4 运算符与表达式 65
3.4.1 算术运算符 65
3.4.2 关系运算符 67
3.4.3 逻辑运算符 68
3.4.4 位运算符 69
3.4.5 赋值运算符 70
3.4.6 条件运算符 72
3.4.7 其他运算符 72
3.4.8 运算符优先级 73
3.5 C#语言的结构 74
3.5.1 分支语句 74
3.5.2 循环语句 79
3.5.3 跳转语句 82
3.6 数组 83
3.7 类 85
3.7.1 类的定义 85
3.7.2 类的成员 86
3.7.3 构造函数 87
3.7.4 析构函数 89
3.8 方法 91
3.8.1 方法的声明 91
3.8.2 参数传递 93
3.9 属性 96
3.10 接口 98
3.10.1 接口的概念 99
3.10.2 接口的实现 99
3.11 本章小结 101
第4章 C#面向对象的编程技术 102
4.1 面向对象的概念 102
4.1.1 面向过程的编程思想 102
4.1.2 面向对象的编程思想 103
4.1.3 面向对象程序设计3原则 104
4.2 类的封装与继承的实现 110
4.3 类的抽象与多态的实现 114
4.3.1 方法重载 114
4.3.2 运算符重载 116
4.3.3 虚方法与方法覆盖 118
4.3.4 抽象类与抽象方法 120
4.4 本章小结 121
?
进阶篇
第5章 C#高级特性 123
5.1 集合 123
5.1.1 动态数组类 124
5.1.2 哈希表类 125
5.1.3 排序列表类 127
5.1.4 堆栈类 128
5.1.5 队列类 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 多线程技术 150
5.4.1 什么是线程 150
5.4.2 线程生命周期 150
5.4.3 主线程 151
5.4.4 Thread 类的一些常用属性和方法 151
5.4.5 创建线程 152
5.4.6 管理线程 156
5.4.7 销毁线程 158
5.5 反射技术 159
5.5.1 什么是反射 160
5.5.2 反射技术的应用 160
5.5.3 反射技术的优/缺点 165
5.6 本章小结 166
第6章 C#图形图像编程 167
6.1 GDI+绘图基础 167
6.1.1 Graphics类 167
6.1.2 Graphics类的常用方法 168
6.1.3 Graphics绘制实例 169
6.2 绘制图形 171
6.2.1 常用绘图对象 171
6.2.2 绘制功能 174
6.2.3 综合实例 177
6.3 图像处理 181
6.3.1 图像的读取、保存和转换 182
6.3.2 图像的复制和粘贴 185
6.3.3 彩色图像处理 189
6.4 本章小结 195
第7章 C#设计模式 196
7.1 什么是设计模式 196
7.2 设计模式的七大原则或法则 198
7.2.1 单一职能原则 198
7.2.2 开放封闭原则 199
7.2.3 里氏代换原则 200
7.2.4 依赖倒转原则 201
7.2.5 接口隔离原则 201
7.2.6 合成复用原则 202
7.2.7 迪米特法则 203
7.3 常用设计模式的实现 204
7.3.1 单例模式 204
7.3.2 工厂方法模式 206
7.3.3 简单工厂模式 209
7.3.4 抽象工厂模式 213
7.3.5 策略模式 217
7.3.6 观察者模式 220
7.4 本章小结 225
实战篇
第8章 运动控制器的C#应用开发 227
8.1 运动控制导论 227
8.1.1 运动控制系统的组成 228
8.1.2 运动控制系统的分类 229
8.1.3 运动控制器的应用领域 231
8.2 运动控制系统的应用 231
8.2.1 运动控制系统的功能 232
8.2.2 单轴运动 233
8.2.3 多轴运动 236
8.3 用ZBasic开发下位机软件 239
8.4 用C#开发上位机软件 241
8.5 正运动的运动控制器的C#例程 246
8.5.1 单轴控制 246
8.5.2 多轴插补 250
8.6 本章小结 254
第9章 C#在自动化领域的应用开发 255
9.1 上位机软件功能分解 255
9.2 底层控制模块的开发 257
9.2.1 控制器的底层控制功能分析 257
9.2.2 代码实现 258
9.3 流程控制模块的开发 274
9.3.1 公共定义 274
9.3.2 流程类的封装 275
9.3.3 流程控制类 280
9.3.4 流程控制模块的类关系图 282
9.3.5 流程控制模块的使用 282
9.4 其他模块的开发 284
9.5 UI 285
9.6 本章小结 286
第10章 C#在物联网领域的应用开发 288
10.1 物联网导论 288
10.1.1 物联网的定义和特征 288
10.1.2 物联网的起源和发展 288
10.1.3 物联网的应用 289
10.1.4 物联网的传输方式 290
10.2 串口通信和串口通信网络 290
10.2.1 串口通信 290
10.2.2 串口网络服务器 292
10.2.3 串口参数 293
10.3 Modbus通信协议 293
10.3.1 什么是Modbus通信 293
10.3.2 Modbus寄存器 294
10.3.3 Modbus功能码 295
10.4 用C#实现串口通信 297
10.4.1 SerialPort类 298
10.4.2 TcpClient类 300
10.4.3 NModbus 302
10.5 C#在物联网中的开发实例 306
10.5.1 面向蝶阀装配的半自动检测及其质量追溯系统 306
10.5.2 系统的连接示意图及硬件选型 307
10.5.3 串行网络的建立 308
10.5.4 串口基类的建立 312
10.5.5 各类串口设备的连接 313
10.5.6 类结构 320
10.6 本章小结 321
第11章 C#在机器视觉领域的应用开发 322
11.1 机器视觉导论 322
11.1.1 什么是机器视觉 322
11.1.2 机器视觉能干什么 323
11.1.3 机器视觉的基本构成 324
11.2 EmguCV 328
11.2.1 什么是EmguCV 329
11.2.2 如何下载和使用EmguCV 330
11.3 在线视觉检测开发案例 331
11.3.1 尺寸测量 332
11.3.2 二维码识别 341
11.4 本章小结 351
参考文献 352