新書推薦:
《
全球城市案例研究2023:基于网络的合作与竞争国际经验借鉴
》
售價:NT$
908.0
《
引爆:炸药、硝酸盐和现代世界的形成
》
售價:NT$
388.0
《
人类星球:我们如何创造了人类世(企鹅·鹈鹕丛书013)
》
售價:NT$
418.0
《
伏候圣裁:中国古代的君主与政治
》
售價:NT$
449.0
《
艺术图像学研究(第一辑)
》
售價:NT$
857.0
《
摆脱强迫的人生(修订版)
》
售價:NT$
403.0
《
知宋·宋代之司法
》
售價:NT$
454.0
《
空间与政治
》
售價:NT$
398.0
|
編輯推薦: |
本书内容系统全面,适合有意从事上位机开发的自动化工程师学习。1.对利用C#开发上位机进行了系统详尽的阐述,包括多线程采集、自定义控件开发、wincc控件开发、数据库操作、SCADA开发等内容。2.针对自动化工程师,紧密结合工控行业,对C#语法讲解部分进行精简,重点阐释核心语法,摒弃那些不适用于自控工程师的知识,并穿插讲解应用程序开发,提高读者阅读兴趣。3.搭配工程案例,并且提供程序源文件,方便读者学以致用。
|
內容簡介: |
本书针对自动化工程师,全面、深入地介绍了C#上位机开发的基础知识、设计思路与功能实现,旨在帮助读者快速掌握上位机开发的基本原理、技术要点和实践方法。本书内容主要包括C#基本语法、常用控件和布局技巧,C#与WinCC数据交互,SCADA面向组件开发,利用C#实现设备通信,通信驱动库封装,数据库应用开发,文件操作与访问,程序安装与部署等。本书内容翔实、实用性强,紧密结合自控行业技术人员的IT知识需求,在C#语法讲解中穿插大量程序实例,提高读者学习兴趣和编程成就感。同时,通过典型的上位机应用开发讲解,帮助读者掌握实际应用开发技能,学以致用。本书适合从事上位机开发的自动化工程师学习,也可供控制工程、自动化相关专业的师生参考。
|
目錄:
|
第1章 C#上位机开发概述 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 第一个C#程序 006
1.9 WinForm和WPF 015
1.10 RAD工具 015
1.11 事件驱动模型 016
1.12 Runtime 016
第2章 数据类型与运算符 017
2.1 变量 017
2.2 常量 019
2.3 基本数据类型 020
2.4 枚举 022
2.5 结构 023
2.6 数组 025
2.6.1 一维数组 025
2.6.2 多维数组 026
2.6.3 数组的数组 028
2.7 object 028
2.8 var 029
2.9 变量命名规则 029
2.10 运算符 030
2.10.1 一元运算符 031
2.10.2 二元运算符 032
2.10.3 三元运算符 032
2.11 程序注释 032
2.12 代码折叠 033
2.13 变量作用域 033
2.13.1 循环体中的变量 034
2.13.2 方法或者事件中的变量 035
2.13.3 类字段 036
2.14 关键字 037
2.15 命名空间 038
2.16 实用技巧 039
2.16.1 快速输入 039
2.16.2 错误提示 040
第3章 流程控制 041
3.1 条件语句 041
3.2 选择语句 043
3.3 循环语句 045
3.3.1 for 045
3.3.2 while 046
3.3.3 do…while 047
3.3.4 foreach 048
3.4 跳转语句 048
3.4.1 goto 048
3.4.2 break 049
3.4.3 continue 049
3.4.4 return 050
第4章 高级类型 051
4.1 数据字典 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 标签控件(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 绑定数据表(Access) 078
5.9.2 绑定数据表(SQL Server) 083
5.9.3 代码操作DataGridView 085
5.10 菜单(MenuStrip) 088
5.11 工具栏(ToolStrip) 090
5.12 状态栏(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 默认布局 103
6.2 边界布局 103
6.3 流式布局 104
6.4 网格布局 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 几个概念 119
7.4.2 绘制直线 119
7.4.3 绘制矩形 121
7.4.4 绘制圆形 122
7.4.5 绘制文本 123
7.4.6 填充矩形 124
7.5 常见应用 125
7.5.1 进制转换 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技术 135
9.1.2 访问WinCC变量 135
9.1.3 访问WinCC控件 139
9.2 使用C#开发WinCC控件 142
9.2.1 自定义控件 142
9.2.2 自定义按钮控件 143
9.2.3 开发WinCC支持的控件 152
9.2.4 自定义控件和WinCC交互 154
第10章 多线程 159
10.1 进程和线程 159
10.2 进程中的循环 160
10.3 多线程例子 161
10.4 Thread类 162
10.4.1 构造函数 162
10.4.2 属性 162
10.4.3 方法 163
10.5 ThreadPool 164
10.6 Task 167
10.7 async/await 170
第11章 面向对象与面向组件编程 173
11.1 面向对象编程概述 173
11.2 阀门对象 175
11.2.1 属性 176
11.2.2 方法 177
11.2.3 事件 178
11.2.4 实例化 179
11.3 面向组件编程概述 181
11.4 阀门组件 181
11.4.1 在项目中创建组件 182
11.4.2 接口信号 184
11.4.3 组件属性 185
11.4.4 组件方法 187
11.4.5 Faceplate 190
第12章 委托、事件与回调 194
12.1 委托 194
12.2 事件 198
12.3 回调 199
第13章 设备通信 202
13.1 串口通信 203
13.2 Socket通信 209
13.2.1 Socket基本知识 209
13.2.2 Socket通信适用场景 211
13.2.3 Socket通信流程 211
13.2.4 Socket通信实例 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 导入类库 249
13.5.3 设计界面和编码 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协议简介 270
13.7.2 FINS的使用 271
13.8 多任务通信 277
13.8.1 主界面 277
13.8.2 设置界面 278
13.8.3 连接PLC 281
13.8.4 轮询程序 283
13.9 通信驱动的设计模式 285
13.9.1 适配器模式 285
13.9.2 公共通信驱动 286
13.9.3 使用通信驱动 290
第14章 工厂数据中心 292
14.1 数据库与数据库管理系统 292
14.1.1 实时数据库 293
14.1.2 在Visual Studio里管理数据库 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 数据中心框架 336
14.2.1 接入设备 336
14.2.2 网关 338
14.2.3 交换机 339
14.2.4 数据库 340
14.2.5 服务器 340
14.2.6 云服务器(ECS) 341
14.3 物联网平台 344
14.3.1 物联网与MQTT 344
14.3.2 搭建物联网云平台 344
14.3.3 基于C#的物联网云平台 353
14.4 数据展示分析 358
14.4.1 LiveChart 359
14.4.2 准备工作 360
14.4.3 支持缩放的数据展示窗体 360
14.4.4 查询并展示数据 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 设置文件 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 打包项目 392
|
內容試閱:
|
以前我常在想,对于自动化工程师来说,如果你一直想走技术路线,那么该往哪个方向发展?我相信很多人肯定也考虑过这个问题。以我个人的经验来看,从自动化到信息化,融合OT和IT,是个不错的选择。目前自动化和信息化中间像是有个鸿沟,懂自动化的人不懂信息化,懂信息化的人又不懂自动化。这样会有什么问题?首先,对于一个复杂的智能制造项目来说,沟通成本高,架构无法合理设计。因为有些任务放在自动化里实现比较合理,而有的任务则放在信息化里实现更为合理。面对这种情况,只有同时熟悉自动化和信息化的人才会懂得合理规划项目架构。其次,对于项目中的问题,很容易出现自动化的人和信息化的人互相推诿、扯皮。这时如果有一位同时熟悉自动化和信息化的工程师就可以避免这种情况。未来,伴随着产业升级,同时精通自动化和信息化的智能制造架构师将会非常抢手。只要你稍微留意一下,就会发现目前市场上这类人才需求已经越来越多了。
另一方面,自动化技术发展一日千里,客户的控制需求也越来越高,相信很多自动化工程师已经感觉到因为缺乏高级编程语言技能而越来越使自己对很多工作感觉力不从心。比如在工厂数据采集中的各种非标协议转换、报表需求、数据存储、视觉识别,以及MES/ERP之间的信息交互等。在互联网浪潮下,很多新兴企业颠覆了传统行业,对于自动化行业来说亦是如此,仅仅拥有传统自控知识显然已经无法适应现如今的工业制造对自动化的要求。
微软的C#语言凭借完整而强大的技术体系,使其在工业生产领域的信息化系统中占据了主流地位。很多上位机(这里的上位机指的是SCADA)和生产过程管理系统都是采用C#开发。本书紧密结合自控行业对IT知识的需求,专门针对自动化工程师学习运用C#开发上位机或管理系统而编写。
本书是一本零基础入门教程,在内容上摒弃了那些不适用于自控工程师的知识点,比如控制台应用等,因为通常自控工程师不会涉及此类工作。另外,编程语言的学习通常是枯燥的,很多人往往还没有入门就放弃了!为了避免此类情况发生而使大家很快就可以获得编程成就感,本书减少了语法篇幅,将应用程序开发穿插在语法中来提高读者学习兴趣,而不至于半途而废。
本书的章节编排如下:前8章是C#的一些基本知识,涵盖了对C#的基本语法、常用控件、布局技巧等的介绍。这些知识点是开发C#应用程序的基础,如果你是从零开始学习,那么建议你一定要完整地学习完。如果你对C#的基本知识有过了解,那么可以不必在这部分花费太多时间。第9章我们安排了C#和WinCC的数据交互内容。这里开始了第一次实际应用开发,通过本章的学习,可以初步了解到C#的强大功能。第10~12章是三个章节的语法知识学习,结合SCADA开发中常用的Icon和Faceplate来演示面向组件开发。第13章讲解C#如何和设备通信,包含了S7、OPC、Modbus、Fins等主流通信协议。另外还引入了设计模式,讲解如何封装自己的通信驱动库。第14章结合数据库应用开发讲解了数据存储和展示。在数据库开发方面,从最基础的SQL语句使用到ORM使用都有涉及,涵盖面很完整。第15章讲解了常用的文件操作和访问、程序安装部署等一些C#应用开发中经常用到的技能。
本书在内容编排上涉及的知识点比较多,不可能对每个知识点面面俱到,所以我们对每个知识点进行了一定的裁剪,力求能够使用较小的篇幅就把每个知识点讲明白。因此我们建议大家在学习时除了基本语法外,部分知识点可以先有个基本了解,知道它的使用场景以及如何简单地应用,在接触到项目需求时可以结合实际情况再深入学习。比如OPC、Fins通信等一些未必马上能用到的技术。
编程技术的学习是需要持之以恒的,对于自控工程师来说尤其如此。希望大家在学习过程中不要急躁,只要稳扎稳打,持续保持学习热情,肯定可以实现自己的目标。
本书侧重于C#在工控行业中的应用开发,对于C#及.Net类库的知识难以全面介绍,所以大家在看完本书后如果还有兴趣深入了解它们,可以自行参考微软的帮助文档。
由于著者本人对C#的认知有限,书中不当之处在所难免,恳请工控界同行及IT界相关人士不吝指教,任何问题请发送邮件至huangwei@hwlib.cn,谢谢大家!
著者
|
|