登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年04月出版新書

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

『簡體書』Modbus软件开发实战指南

書城自編碼: 2971832
分類: 簡體書→大陸圖書→計算機/網絡软件工程/开发项目管理
作者: 杨更更
國際書號(ISBN): 9787302464754
出版社: 清华大学出版社
出版日期: 2017-04-01
版次: 1 印次: 1
頁數/字數: 283页
書度/開本: 32开 釘裝: 平装

售價:NT$ 425

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
琴学论集:古琴传承与人文生态
《 琴学论集:古琴传承与人文生态 》

售價:NT$ 773.0
天理与秩序:宋代政治伦理思想研究
《 天理与秩序:宋代政治伦理思想研究 》

售價:NT$ 549.0
怎么办?
《 怎么办? 》

售價:NT$ 442.0
明代文艺思想史
《 明代文艺思想史 》

售價:NT$ 2688.0
原始之美:萨满教与西方人的想象
《 原始之美:萨满教与西方人的想象 》

售價:NT$ 717.0
宽窄说:烟草之书
《 宽窄说:烟草之书 》

售價:NT$ 717.0
女人认知觉醒手册 共2册 做个情绪稳定活得通透的女人 任何时候都不要被情绪绑架 女人不能太单纯
《 女人认知觉醒手册 共2册 做个情绪稳定活得通透的女人 任何时候都不要被情绪绑架 女人不能太单纯 》

售價:NT$ 558.0
耳穴治疗青少年近视与保健
《 耳穴治疗青少年近视与保健 》

售價:NT$ 274.0

建議一齊購買:

+

NT$ 425
《 FreeRTOS源码详解与应用开发———基于STM32(正点原子教你学嵌入式系统丛书) 》
+

NT$ 569
《 深度学习轻松学:核心算法与视觉实践 》
+

NT$ 641
《 树莓派开发实战(第2版) 》
+

NT$ 425
《 Web接口开发与自动化测试——基于Python语言 》
+

NT$ 929
《 STM32库开发实战指南:基于STM32F4 》
編輯推薦:
着重讲述如何快速入门并精通Modbus软件开发技术,适用于初学Modbus通信协议的读者。如果你想用CC语言开发Modbus通信库,如果你想用其它语言(如Visual Basic、Visual C#)开发Modbus应用程序,如果你想从事物联网或Modbus测试开发,本书干货满满,值得一读。
內容簡介:
Modbus是工业自动化领域使用*广泛的通信协议之一,随着电子、计算机和通信技术的不断发展,特别是物联网以及互联网 等概念的兴起,Modbus通信技术也从串行总线发展到了Modbus TCP,方兴未艾。为了让广大在校学生、工业控制和自动化工程师、技术人员了解Modbus协议的内涵,特别是彻底掌握Modbus通信技术的软件开发方法,作者从初学者的角度,由浅入深,循循善诱,以文字和画面相结合的方式撰写了本书。
本书分为11章,依次介绍了Modbus协议,特别是功能码消息帧的定义,然后从软件开发的角度,详细介绍了辅助调试工具、软件开发环境的构筑,重点介绍和解析了libmodbus开发库的源代码,以及使用libmodbus在不同语言环境下的开发技巧。阅读本书,可快速入门并精通Modbus软件开发技术。作为一本软件技术开发指南的书籍,本书不仅仅局限于Modbus通信协议,对其他通信协议的软件开发也有很强的参考价值。
本书可作为各大中专院校、工程设计院、系统集成商和工厂企业的Modbus通信协议开发人员的软件设计和开发的入门指导书籍,也可作为工业自动化领域及物联网开发的参考资料,还可供广大自动化及通信专业的教师、学生及物联网开发爱好者阅读。
關於作者:
杨更更 2003年毕业于清华大学,先后加入中国航天科工集团公司、日本横河电机株式会社等多家大型企业工作。曾作为主要研发人员,参与过多个大型项目的开发,了解并精通各现场总线通信协议,所开发的多个软硬件设备,正在世界各地稳定地运行。作为一个纯粹的技术开发者,闲暇时爱读书,所猎甚广,每有所得便欣欣然也。
目錄
目录
第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.2Modbus Poll的使用16
2.2.1简介16
2.2.2功能17
2.2.3使用方法18
2.3Modbus Slave的使用21
2.3.1简介21
2.3.2功能22
2.3.3使用方法232.4Modbus PollSlave互联互通24
2.5Visual Studio 2015的安装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.6Modbus TCP消息帧格式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.3RTUTCP关联接口函数132
6.3.1RTU模式关联函数133
6.3.2TCP模式关联函数135
6.4部分内部函数详解135
6.4.1函数read_io_status135
6.4.2函数read_registers141
6.4.3函数write_single144
6.4.4函数modbus_mapping_new_start_
address147
6.5开发应用程序基本流程151

第7章完整RTU模式开发范例153
7.1开发RTU Master端154
7.1.1新建工程154
7.1.2添加开发库155
7.1.3添加应用源代码158
7.1.4代码调试166
7.2开发RTU Slave端169
7.2.1新建工程并添加开发库169
7.2.2添加应用源代码169

第8章完整TCP模式开发范例173
8.1开发TCP Client端174
8.1.1新建工程174
8.1.2添加开发库176
8.1.3添加应用源代码177
8.1.4代码调试186
8.2开发TCP Server端189
8.2.1新建工程并添加开发库189
8.2.2添加应用源代码189

第9章Visual Basic中使用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开发Visual Basic程序204
9.4.1创建新项目204
9.4.2添加函数描述文件205
9.4.3调用libmodbus库函数213

第10章Visual C#中使用libmodbus217
10.1开发Visual C#程序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开发自己的Modbus Poll238
11.1.1软件需求分析238
11.1.2命令行解析功能240
11.1.3创建应用程序并调试246
11.2开发自己的Modbus Slave270
11.2.1软件需求分析270
11.2.2创建应用程序并调试272

参考文献284
內容試閱
前言
如果时间能够倒退回到五六年之前,也许人生将会是另外一番际遇。当时的我初次接触到Modbus通信协议,并且需要基于Modbus完成一个质量高度稳定的工业控制程序,怎么办呢?一开始,面对浩如烟海的资料和设计要求确实显得一筹莫展。不过现在想想,如果那时遇到了像这样的一本书,我一定会毫不犹豫地买下来。呵呵,听到这样的话,你心里一定在想: 嘿,王婆卖瓜,自卖自夸。好吧,我承认有一些自夸了,人嘛,都是有那么一点点虚荣心的。但是,我可以保证,当你认真阅读过此书之后,一定会有不一样的收获。其实从初次接触Modbus通信协议起,我就下定决心,写一本适合Modbus初学者的入门书籍,使得大家能够快速上手,避免重走不必要的弯路。可是真正写起来才发现,这不是一时半刻就能够完成的工作。一方面是因为我只能在工作的闲暇时间写作;另外一方面是软件开发技术上牵扯的方方面面太多,如何有条理地组织各种材料也是一个大难题。就这样,写写停停,甚至写作提纲也是几易其稿。好在没有什么压力,在坚持之下最后竟然凑成了这一本看似不错的Modbus开发入门资料。提供给周围的一些人阅读,都觉得不错值得出版,这也给了我信心。正所谓闻道有先后,术业有专攻。我曾经咨询过很多资深的开发人员,他们平日里更多的会去研究和学习各种新奇的开发技术,不会有太多的时间去总结和归纳。据我所知,目前市场上关于Modbus开发的书籍并不太多,以至于至今还没有一本专门介绍Modbus软件开发的书。机缘巧合,我做了第一个吃螃蟹的人。我希望能够通过这本书把我所学习和掌握的一些Modbus软件开发工具和技能介绍给大家,让大家体会到软件开发的乐趣,减轻Modbus开发入门时的迷茫和无助。如果能够实现这个目的,善莫大焉。不仅如此,这本书不仅仅局限于Modbus本身,书中提到的开发技巧和经验对其他的开发工作也有借鉴意义。本书大体可划分为三大部分: 理论篇、实践篇和提高篇,篇章结构如下所示:理论篇主要介绍Modbus协议本身,便于初学者体会Modbus协议的精髓所在,打好基础。实践篇通过对libmodbus开发库源码的分析以及各种范例程序的演示,便于读者快速入门和上手,掌握各种模式下的开发方法和技巧。提高篇则进一步带领读者开发自己的Modbus调试工具。按照各章节的内容,读者可以循序渐进地阅读本书,逐步完成从入门到精通的过程。作为软件开发者,很多人都没有付费购买书籍的习惯。我觉得吧,该付费的时候就别省,也许还不到一顿饭钱,就可以系统地提升自己,让你在同事中脱颖而出,不到一顿饭的投资换来的是成千上百倍的回报。很多人又会说,不用买你的书,我也可以自己通过Google或百度来解决问题啊。是的,的确没错,现在互联网这么发达,没有解决不了的问题,但是这要花费你大量的时间和精力,与其这样,还不如去学更多的东西,做些更有意义的事情。在互联网时代,最重要的是懂得如何站在别人的肩膀上。本书定位本书是一本循序渐进学习Modbus软件开发的书籍,需要你有目的的去阅读。当然,遇到问题或者想了解某个知识点时,可以直接定位到相关的章节,查看内容。本书以通俗易懂的语言和画面描述Modbus软件开发技巧的使用,基本上每个操作都会有画面或者实际程序代码演示,便于读者自学。本书以解决Modbus软件开发中的问题为目的,围绕这一点着重讲述如何快速入门并精通Modbus软件开发技术。其实对于Modbus开发来说必要的硬件不可缺少,但是为了能迅速入门,减少硬件依赖,本书尽可能使用各种软件工具模拟硬件环境,阅读本书一台电脑足矣,这也是本书的一大特色。目标读者 如果你初学Modbus通信协议; 如果你想用CC语言开发Modbus通信库; 如果你想用其他语言(如Visual Basic、Visual C#)开发Modbus应用程序; 如果你想从事物联网或Modbus测试开发; 如果你英语不好; 如果你想节省搜索的时间; 如果你想提高工作效率。那么这本书简直就是为你量身订做的。尽管本人已尽力确保本书的准确性和完整性,但因知识和能力有限,书中难免存在纰漏之处,届时恳请各位读者不吝批评指正,争取将来进一步完善本书,以此来回报大家对本书的支持和厚爱。致谢在本书的写作和出版过程中,得到了很多人的热情帮助和支持,在此一并致谢!首先要感谢创造和发明Modbus通信协议的那些人,正是因为他们创造性的工作才有了如此简洁、优雅并应用广泛的通信协议供大家使用。可以毫不夸张地说,Modbus协议的出现推动了人类工业自动化生产的进步。其次要感谢清华大学的杨开明教授、北京交通大学的杨莉副教授,在本书的写作和出版过程中各位老师都给出了详细的意见和建议。最后,感谢家人的支持和所有阅读了本书的读者。如果能够给各位读者带来哪怕一点收获或体会,那将是对我极大的鼓舞。谢谢!
杨更更〖1〗


第5章libmodbus开发库Modbus作为一种常见的工业通信协议,几乎被所有的设备所支持,如果能在软件或者设备中增强Modbus通信功能,无疑对于市场应用来说是个很吸引人的卖点。而对于Modbus开发来说,网络上存在相当多的开源库,其中libmodbus(http:www.libmodbus.org)和freemodbus(http:www.freemodbus.org)可以说是其中的翘楚,值得开发者认真分析和学习。5.1功能概要古人云: 登高而招,臂非加长也,而见者远;顺风而呼,声非加疾也,而闻者彰。假舆马者,非利足也,而致千里;假舟楫者,非能水也,而绝江河。君子生非异也,善假于物也。确实,在互联网以及开源项目蓬勃发展的时代,闭门造车已显得非常不合时宜。libmodbus 是一个免费的跨平台的支持RTU和TCP的Modbus库,遵循LGPL v2.1 协议。libmodbus支持Linux、Mac OS X、FreeBSD、QNX和Windows等操作系统。libmodbus可以向符合Modbus协议的设备发送和接收数据,并支持通过串口或者TCP网络进行连接。作为一个开源项目,libmodbus还处于开发测试阶段,代码量还不是十分庞大,文档和注释也不够全面,本章通过对libmodbus源代码的阅读过程,一方面可以进一步理解Modbus协议,同时也可以学习下一个好的开源项目的代码组织及开发过程。libmodbus官方网站http:libmodbus.org,现在稳定的版本是v3.0.6,当前最新版是v3.1.4,可以从http:libmodbus.orgdownload下载源码。作为开源软件,还可以从GitHub网站获取最新版本代码。GitHub: https:github.comstephanelibmodbus.git5.2源码获取与编译首先,访问libmodbus官方GitHub网站https:github.comstephanelibmodbus,并下载最新版本源代码。如图51所示,单击【Clone or download】按钮,再单击【Download ZIP】按钮,则自动下载最新的源代码。图51下载libmodbus源码源码下载完毕,解压下载的zip文件,如图52所示。简单查看源代码根目录的构成:图52解压libmodbus源码 doc目录: libmodbus库的各API接口说明文档。 m4目录: 存放GNU m4文件,在这里对理解代码没有意义,可忽略。 src目录: 全部libmodbus源文件。 tests目录: 包含自带的测试代码。其他文件对我们理解源代码关系不大,可以暂时忽略。进一步展开src代码目录,如图53所示。图53libmodbus源码构成 win32: 定义了在Windows下使用Visual Studio编译时的项目文件和工程文件,以及相关配置选项等。其中,modbus9.sln默认使用的是Visual Studio 2008。 Makefile.am: Makefile.am是Linux下AutoTool编译时读取相关编译参数的配置文件,用于生成Makefile文件,因用于Linux下开发,在这里暂时忽略。 modbus.c: 核心文件,实现Modbus协议层,定义共通的Modbus消息发送和接收函数、各功能码对应的函数。 modbus.h: libmodbus对外暴露的接口API头文件。 modbusdata.c: 数据处理的共通函数,包括大小端相关的字节、位交换等函数。 modbusprivate.h: libmodbus内部使用的数据结构和函数定义。 modbusrtu.c: 通信层实现,RTU模式相关的函数定义,主要是串口的设置、连接及消息的发送和接收等。 modbusrtu.h: RTU模式对外提供的各API定义。 modbusrtuprivate.h: RTU模式的私有定义。 modbustcp.c: 通信层实现,TCP模式下相关的函数定义,主要包括TCPIP网络的设置、连接、消息的发送和接收等。 modbustcp.h: 定义TCP模式对外提供的各API定义。 modbustcpprivate.h: TCP模式的私有定义。 modbusversion.h.in: 版本定义文件。下面开始尝试在Visual Studio 2015中编译libmodbus库文件。为了在Visual Studio下展开项目,首先双击configure.js,用以生成 config.h 和 modbusversion.h文件。然后打开前面已经安装的开发环境Visual Studio 2015,在Visual Studio 2015中,打开modbus9.sln文件,弹出项目文件升级对话框,如图54所示。图54libmodbus项目文件升级对话框在图54中勾选全部可选项,然后单击【OK】按钮,完成项目文件升级。在Visual Studio 2015中打开后,源代码展开如图55所示。图55libmodbus项目文件结构此时如果直接编译工程文件,将发生编译错误。原因是其中新生成的文件modbusversion.h没有正确加载,在文件上单击右键选择【Remove】菜单,删除旧的文件,同时,在目录Header Files上右键单击,在弹出的菜单中依次选择【Add】【Existing Item...】,重新加载新生成的modbusversion.h文件,如图56所示。图56修改或者添加文件尝试着再次编译看看: 在项目名称上单击右键,在弹出的菜单上选择【Rebuild Solution】菜单项,如图57所示。libmodbus库文件开始编译。图57编译libmodus库文件编译完成的时候,出现编译错误,如图58所示。图58编译libmodus出现错误为了解决这个错误,同时按下Alt F7键弹出项目属性设置对话框,依次找到【VERSION】项的定义。查看路径为【Configuration Properties】【Linker】【All Options】【Version】,如图59所示。图59Version项的定义找到后直接删除【VERSION】项的定义,再次重新编译库文件。如果一切顺利,在win32目录下将会成功生成modbus.dll和modbus.lib文件。在工具栏上将工程文件目标属性切换到【Release】项,按照上面的方法重新编译Release版,在win32目录下同样成功生成modbus.dll和modbus.lib文件。至此,对libmodbus库文件的编译工作完成,成功生成的动态链接库可以方便地供其他应用程序调用。5.3与应用程序的关系我们已经知道libmodbus是一个免费的跨平台的支持RTU和TCP的Modbus开发库,借助于libmodbus开发库能够非常方便地建立自己的应用程序或者将Modbus通信协议嵌入到单体设备中。libmodbus开发库与应用程序的基本关系如图510所示。图510应用程序与libmodbus的关系在对libmodbus的接口及代码框架简单了解之后,不妨让我们再深入一下细节,探探究竟。看看libmodbus都实现了哪些基础功能?以及源代码中对Modbus各功能码和消息帧是如何包装的?具体内容请看下一章。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.