- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Modbus通信协议智能流量计设计
基于Modbus通信协议智能流量计设计 摘要:为了Modbus现场总线通信协议在一种流量计上的实现,给出了该实现的第一步——原型机搭建的具体过程。系统采用了AVR单片机和RS-485通信总线,采用C语言进行开发,以软件工程所定义的开发流程,从需求分析、概要设计、详细设计和维护等方面对系统地实现进行了详细的描述。
关键词:现场总线;流量计;Modbus;RS-485
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)20-4710-04
在工业生产过程中,流量是需经常测量和控制的参数之一,随着流量计功能的扩展,已经把温度、压力等变量的采集与流量整合成一个仪表,完成了原先需要采用流量计、温度计、压力计和二次仪表才能完成的功能。现场总线在仪表中的使用日益广泛起来。目前使用较多的现场总线有基金会现场总线(Foundation Fieldbus,简称FF),基于CAN通信的DeviceNet,以Siemens等为首的PROFIBUS,Rosemount的HART,三菱电机为主导推出的CC-Link等[1]。现需要在原有的流量仪表上加入Modbus现场总线通信的功能,搭建Modbus现场通信的平台,以及制作基于Modbus通信的样机。
1 需求分析
需求分析是一个项目的开端,也是项目建设的基石。在以往建设失败的项目中,80%是由于需求分析的不明确而造成的[2]。因此一个项目成功的关键因素之一,就是对需求分析的把握程度。涡轮流量计是运用最为广泛。目前正在进行开发的是智能涡轮流量计转换器,具备流量系数的分段修正、可选的温度压力补偿等功能,需要设置的参数和需要读取的过程变量比前几代都有明显的提高。因此亟需采用现场总线的方式对仪表进行访问。
根据之前的预研,确定采用RS-485总线加Modbus通信协议作为智能流量计转换器的通信方式。使程序实现最基本的Modbus通信功能:波特率固定为19200bps,校验为偶校验,能实现最基本的寄存器读写访问,如Modbus的03号功能Read Holding Register、04号功能Read Input Register和06号功能Write Single Register[3]。
2 概要设计
为了能与智能流量计转换器程序上无缝接轨,在选择单片机是使用了与转换器一致的ATmega168芯片。但是为了原型板的搭建方便,尽管在转换器设计中采用了贴片封装的芯片,此处还是选择了双列直插芯片。两者仅封装不同,在功能上对于实现通信功能是完全一致的[4]。对于通信部分RS-485的物理层接口芯片选择了目前广泛使用的MAX485芯片。该芯片为MAXIM公司出品,供电电压为5V[5]。为了配合5V芯片,采用78L05作为整机的供电。仪表输入电压为12V~24V通用。
在ISO/OSI网络模型中,将网络分为七层,从下至上依次是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。Modbus在串行链路RS-485上的实现采用了其中的三层——物理层、数据链路层和应用层[6]。本仪表采用C语言进行开发,支持AVR系列单片机的C编译器主要有CodeVisionAVR、AVR-GCC、IAR、ICCAVR等。C语言编译器由于它具有功能强大、 运用灵活、代码小、运行速度快等先天性的优点,使得它在专业程序设计上具有不可代替的地位。
3 详细设计
本仪表采用MAXIM公司的485接口芯片MAX485作为物理层芯片,并连接到ATmega168的通用串行口进行数据收发。下图为整个仪表原型机的电路图:
电路中使用78L05作为稳压芯片,由于设计仪表输入电压为12V~24V±20%,使用78L05即可满足需求。D1的作用是防止电源反接烧坏仪表。
物理层除了硬件部分,也包含部分的软件。这些软件的功能是将物理层接收到的数据发送给数据链路层,或是将数据链路层需要发送的数据写入物理层硬件设备。这部分软件的主要功能是操作ATmega168的特殊功能寄存器,将UART收到的数据存入特定的缓冲区,或将缓冲区的数据向UART写入并通过ATmega168发送。在本次设计中,UART的波特率固定为19200bps;数据位由于使用Modbus RTU模式,固定为8位,停止位1位;奇偶校验采用偶校验。
3.1数据链路层软件
根据MODBUS Application Protocol Specification V1.1b的描述,Modbus协议定义了一种简单的协议数据单元(Protocol Data Unit,PDU),它是与下层通讯协议(如RS485、以太网等)无关的。而下层特定的数据单元将Modbus PDU进行封装,并被命名为应用数
文档评论(0)