在物联网和网际网路+的时代,不懂Modbus如何玩转物联网?Modbus是工业自动化领域使用最广泛的通信协定之一,随着电子、计算机和通信技术的不断发展,特别是物联网以及“网际网路+”等概念的兴起,Modbus通信技术也从串列汇流排发展到了Modbus TCP,方兴未艾。为了让广大在校学生、工业控制和自动化工程师、技术人员了解Modbus协定的内涵,特别是彻底掌握Modbus通信技术的软体开发方法,作者从初学者的角度,由浅入深,循循善诱,以文字和画面相结合的方式撰写了本书。
本书分为11章,依次介绍了Modbus协定,特别是功能码讯息帧的定义,然后从软体开发的角度,详细介绍了辅助调试工具、软体开发环境的构筑,重点介绍和解析了libmodbus开发库的原始码,以及使用libmodbus在不同语言环境下的开发技巧。阅读本书,可快速入门并精通Modbus软体开发技术。作为一本软体技术开发指南的书籍,本书不仅仅局限于Modbus通信协定,对其他通信协定的软体开发也有很强的参考价值。
本书可作为各大中专院校、工程设计院、系统集成商和工厂企业的Modbus通信协定开发人员的软体设计和开发的入门指导书籍,也可作为工业自动化领域及物联网开发的参考资料,还可供广大自动化及通信专业的教师、学生及物联网开发爱好者阅读。
基本介绍
- 书名:Modbus软体开发实战指南
- 又名:Modbus软体开发实战指南
- 作者:杨更更
- ISBN:9787302464754
- 类别:物联网 MODBUS 软体开发 编程
- 页数:284
- 定价:59
- 出版社:清华大学出版社
- 出版时间:2017年
- 装帧:平装
- 开本:185mm*230mm 1/16
本书着重讲述如何快速入门并精通Modbus软体开发技术,适用于初学Modbus通信协定的读者。如果你想用C/C++语言开发Modbus通信库,如果你想用其它语言(如Visual Basic、Visual C#)开发Modbus应用程式,如果你想从事物联网或Modbus测试开发,本书乾货满满,值得一读。
目录
第1章初识Modbus1
1.1背景2
1.2模型4
1.3协定版本4
1.4通信设备6
1.5事务处理6
1.6专业术语9
第2章Modbus开发环境11
2.1虚拟串口软体12
2.1.1什幺是虚拟串口软体12
2.1.2使用方法13
2.2ModbusPoll的使用16
2.2.1简介16
2.2.2功能17
2.2.3使用方法18
2.3ModbusSlave的使用21
2.3.1简介21
2.3.2功能22
2.3.3使用方法232.4ModbusPollSlave互联互通24
2.5VisualStudio2015的安装28
第3章Modbus协定的相关知识31
3.1协定概要32
3.2Modbus暂存器34
3.2.1暂存器种类说明34
3.2.2暂存器地址分配35
3.3Modbus串列讯息帧格式35
3.3.1ASCII讯息帧格式36
3.3.2RTU讯息帧格式36
3.3.3地址域38
3.3.4功能码域39
3.3.5数据域39
3.4Modbus差错校验39
3.4.1LRC校验40
3.4.2CRC校验42
3.5位元组序和大小端49
3.5.1来历49
3.5.2为什幺会有大小端50
3.5.3什幺是“大端”和“小端”51
3.6ModbusTCP讯息帧格式53
3.6.1协定描述53
3.6.2查询与回响报文例56
第4章Modbus功能码详解59
4.1功能码概要60
4.201(0x01)读取线圈/离散量输出状态61
4.2.1功能说明61
4.2.2查询报文61
4.2.3回响报文62
4.2.4藉助工具软体观察和理解63
4.302(0x02)读取离散量输入值72
4.3.1功能说明72
4.3.2查询报文72
4.3.3回响报文73
4.403(0x03)读取保持暂存器值74
4.4.1功能说明74
4.4.2查询报文74
4.4.3回响报文75
4.504(0x04)读取输入暂存器值76
4.5.1功能说明76
4.5.2查询报文76
4.5.3回响报文77
4.605(0x05)写单个线圈或单个离散输出78
4.6.1功能说明78
4.6.2查询报文79
4.6.3回响报文79
4.706(0x06)写单个保持暂存器80
4.7.1功能说明80
4.7.2查询报文80
4.7.3回响报文81
4.808(0x08)诊断功能82
4.8.1功能说明82
4.8.2查询报文82
4.8.3回响报文83
4.8.4诊断子功能码84
4.911(0x0B)获取通信事件计数器87
4.9.1功能说明87
4.9.2查询报文87
4.9.3回响报文88
4.1012(0x0C)获取通信事件记录89
4.10.1功能说明89
4.10.2查询报文89
4.10.3回响报文90
4.1115(0x0F)写多个线圈91
4.11.1功能说明91
4.11.2查询报文91
4.11.3回响报文92
4.1216(0x10)写多个保持暂存器93
4.12.1功能说明93
4.12.2查询报文93
4.12.3回响报文95
4.1317(0x11)报告从站ID(仅用于串列链路)96
4.13.1功能说明96
4.13.2查询报文96
4.13.3回响报文97
4.14Modbus异常回响97
第5章libmodbus开发库101
5.1功能概要102
5.2源码获取与编译102
5.3与应用程式的关係109
第6章libmodbus源码解析111
6.1类型与结构定义112
6.1.1精细类型定义112
6.1.2常量定义114
6.1.3核心结构体定义之一115
6.1.4核心结构体定义之二120
6.2常用接口函式122
6.2.1各类辅助接口函式122
6.2.2各类Modbus功能接口函式126
6.2.3数据处理的相关函式或宏定义131
6.3RTU/TCP关联接口函式132
6.3.1RTU模式关联函式133
6.3.2TCP模式关联函式135
6.4部分内部函式详解135
6.4.1函式read_io_status()135
6.4.2函式read_registers()141
6.4.3函式write_single()144
6.4.4函式modbus_mapping_new_start_
address()147
6.5开发应用程式基本流程151
第7章完整RTU模式开发範例153
7.1开发RTUMaster端154
7.1.1新建工程154
7.1.2添加开发库155
7.1.3添加套用原始码158
7.1.4代码调试166
7.2开发RTUSlave端169
7.2.1新建工程并添加开发库169
7.2.2添加套用原始码169
第8章完整TCP模式开发範例173
8.1开发TCPClient端174
8.1.1新建工程174
8.1.2添加开发库176
8.1.3添加套用原始码177
8.1.4代码调试186
8.2开发TCPServer端189
8.2.1新建工程并添加开发库189
8.2.2添加套用原始码189
第9章VisualBasic中使用libmodbus193
9.1函式调用约定与修饰名194
9.1.1函式调用约定194
9.1.2函式修饰名196
9.1.3调用约定的使用198
9.2模组定义档案198
9.3对libmodbus开发库的改造200
9.3.1添加__stdcall调用符200
9.3.2添加DEF模组定义档案201
9.4开发VisualBasic程式204
9.4.1创建新项目204
9.4.2添加函式描述档案205
9.4.3调用libmodbus库函式213
第10章VisualC#中使用libmodbus217
10.1开发VisualC#程式218
10.1.1创建新项目218
10.1.2添加函式描述档案219
10.1.3调用libmodbus库函式226
10.2基于C#的NModbus类库230
10.2.1什幺是NModbus类库230
10.2.2NModbus类库用法232
第11章打造自己的Modbus调试工具237
11.1开发自己的ModbusPoll238
11.1.1软体需求分析238
11.1.2命令行解析功能240
11.1.3创建应用程式并调试246
11.2开发自己的ModbusSlave270
11.2.1软体需求分析270
11.2.2创建应用程式并调试272
参考文献284