- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
从0开始FreeModbus应用-chang原创课件
从应用角度学习FreeModbus
前言
FreeModbus本身没有什么说明文档。网上已经有了一些介绍,有些是内核分析,很有深度;有一些是应用笔记,实际应用时可能会用到。作为一个新入,我并不想了解那么多。我只想按步就班地知道到底要怎样能够很快地用起来。收集了一些资料,花了一些时间才终于基本搞清楚了一个大概。下面我从新人应用的角度来谈谈,参考甚至抄摘了前人的文档。入手主要是FreeModbus-V1.5自带的AVR平台下的DEMO项目,适当考虑FREERTOS下的特点。
FreeModbus简介
(本节摘抄自“百度百科”的词条“FreeModbus”)
FreeMODBUS一个奥地利人写的Modbus协议。它是一个针对嵌入式应用的一个免费(自由)的通用MODBUS协议的移植。Modbus是一个工业制造环境中应用的一个通用协议。Modbus通信协议栈包括两层:Modbus应用层协议,该层定义了数据模式和功能;另外一层是网络层。FreeMODBUS 提供了RTU/ASCII 传输模式TCP协议。FreeModbus遵循BSD许可证,这意味着用户可以将FreeModbus应用于商业环境中。
准备工作
下载FreeModbus-V1.5.0.zip,解压到当前文件夹。在当前文件夹下会生成“freemodbus-v1.5.0”目录。如果选择了解压到“freemodbus-v1.5.0\”,则会形成两级“freemodbus-v1.5.0”,可以不管,也可用复制粘贴的方法删除一级。将此目录(或两级目录)改为“freemodbus_v1.5.0”,否则后面用AVRSTUDIO4.12编译时会出错。
下载ATMEL公司的AVRSTUDIO4.12并安装。再下载AVR的GCC编译器avr-toolchain-installer-3.3.0.710-win32.win32.x86.exe并安装,它会集成到AVRSTUDIO4.12中。
关于freemodbus和STUDIO工程,后面会结合freemodbus文件目录结构进一步介绍。继续准备。
下载并安装虚拟串口VSPD。
设置串口3与4互连(后面PROTEUS里面的硬件,串口设置为3;ModScan32主机软件,串口设置为4),如图所示:
下载并安装ModScan32包,绿色版里直接运行ModScan32.exe就行了。它可以当作ModBus主机,也可以查看收发的数据,起监测作用。连接设置:菜单--connection--connect,出现下面界面,按图设置:
注意:串口是用的N,8,1的模式,没有校验位,原例子程序是需要有even偶校验位,后面会改原代码。因为总是模拟通不过,换这个就通过了,具体原因没有去找。
再点“rotocol selection”,如下图设置:
报文设置: 菜单--setup--data define,然后如下图所示:
按上述连接并设置后,结果应出现类似下面的显示界面(如有不对,需设置数据格式等):
上面是正常取得寄存器地址1000~1004的数据时的情况(从机正常返回)。现在没有PROTEUS仿真,肯定是没有正常返回的,应是下面的界面:
上面两幅图中,返回数据的寄存器是按31000的格式,因为这是3X系输入寄存器。用功能码04。从报文的角度,不用理会,仍认为是寄存器1000。下面会重点分析地址1000输入寄存器的细节。
为了监控串口4的进出数据,可以设置:菜单--setup--display options--show traffic,此时显示下面界面(注意,选择用HEX显示,也是在setup菜单下进行选择):
有黑色背景的是从串口4返回的(需有从机应答),没有背景的是本程序通过串口4 发出去的。
发出去的一帧报文是0a 04 03 e7 00 04 40 c1,共8个字节。0a--device id 10,即从机地址,可以设置为1~247;04--功能码04,为读INPUT REGISTER;03 e7--从机输入寄存器起始地址,即十进字999;00 04--寄存器个数为4个字(功能码04是针对字寄存器);40 c1--CRC校验值。这里不辞辛苦将报文写出来,不是为了介绍报文,报文格式参见MODBUS标准。请关注寄存器起始地址,报文里寄存器的起始地址是999,比上述界面上的Address:1000少1。也即,这里主机的寄存器起始地址1000,可能的最小值是1,而报文的寄存器地址,可能的最小值是0。提前说一下,FreeModbus里需要我们编写的几个回读函数,其寄存器地址,也是从1开始的,报文里的地址需减1。
言归正传,接着做准备工作。现在请下载并安装PROTEUS仿
您可能关注的文档
- 人才培养方案的制定与实施讲座2015-4-26课件.ppt
- 人教七下《邓稼先》课件.ppt
- 人文素养知识点归纳100幅名画课件.doc
- 人有两个宝家升国旗课件.doc
- 人机接口技术课件.ppt
- 人权民权化(陈晓枫)课件.ppt
- 人民币升值对河北省进出口贸易影响研究课件.doc
- 人民币汇率趋于稳定跨境资金流动总体平稳课件.pptx
- 人民币上的风景人物课件.docx
- 人教美术二下漂亮的包装纸课件.ppt
- 场地脚手架工程施工方案(3篇).docx
- 2024年浙江省丽水市松阳县玉岩镇招聘社区工作者真题及参考答案详解一套.docx
- 2024年河南省郑州市惠济区古荥镇招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市淳安县文昌镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省台州市三门县小雄镇招聘社区工作者真题带答案详解.docx
- 2024年浙江省宁波市余姚市河姆渡镇招聘社区工作者真题及完整答案详解1套.docx
- 2024年浙江省丽水市景宁畲族自治县雁溪乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省杭州市临安市板桥乡招聘社区工作者真题及答案详解一套.docx
- 2024年湖北省宜昌市点军区土城乡招聘社区工作者真题及答案详解一套.docx
- 2024年浙江省台州市路桥区桐屿街道招聘社区工作者真题附答案详解.docx
最近下载
- 鲁教版初中八年级的上册英语短语句型.docx VIP
- 新人教版高中数学选择性必修第一册全套PPT课件及配套讲义.pptx VIP
- 四川省拟任县处级试题 四川省拟任县处级党政领导干部任职资格考试题.doc VIP
- 鲁教版八年级上册英语短语句型.doc VIP
- 最新人教版(2023年新版)信息技术四年级上册(含课后反思).pdf VIP
- 2025年广东省广州市高二下学期期末考试物理(理)试卷Word版含答案 .pdf VIP
- 简单的个人简历模板.pdf VIP
- 上消化道穿孔教学查房.pptx VIP
- 科研方法论知到智慧树期末考试答案题库2025年南开大学.docx VIP
- 2023山西临汾市永和县招用公益性岗位人员50人笔试备考题库及答案解析.docx VIP
文档评论(0)