24小时论文定制热线

咨询电话

热门毕设:土木工程工程造价桥梁工程计算机javaasp机械机械手夹具单片机工厂供电采矿工程
您当前的位置:论文定制 > 毕业设计论文 >
快速导航
毕业论文定制
关于我们
我们是一家专业提供高质量代做毕业设计的网站。2002年成立至今为众多客户提供大量毕业设计、论文定制等服务,赢得众多客户好评,因为专注,所以专业。写作老师大部分由全国211/958等高校的博士及硕士生设计,执笔,目前已为5000余位客户解决了论文写作的难题。 秉承以用户为中心,为用户创造价值的理念,我站拥有无缝对接的售后服务体系,代做毕业设计完成后有专业的老师进行一对一修改与完善,对有答辩需求的同学进行一对一的辅导,为你顺利毕业保驾护航
代做毕业设计
常见问题

Modbus协议串口通信VC++程序的开发

添加时间:2018/07/02 来源:未知 作者:admin
串行通讯的距离从几米到几千米, 传输线最少时只需一根即可实现通信, 比较适合远距离通讯传输, 在工业控制、测量设备以及远程监控中串行通讯广泛使用。Microsoft Visual C++作为微软公司面向对象程序的开发平台, 具有集成的开发环境, 支持C、C++等编程语言。
以下为本篇论文正文:

  摘要:串口通讯是工业设备组网的主要通讯接口, Mod Bus协议作为一种全球通用的工业标准, 是不同设备组成工业网络的总线协议。本文采用VC++开发平台, 设计开发基于Mod Bus协议的串口通讯软件, 以实现不同设备的组网和远程监视控制。

  关键词:串口传输; Modbus协议; MSComm控件; ModSim32软件;

  串行通讯的距离从几米到几千米, 传输线最少时只需一根即可实现通信, 比较适合远距离通讯传输, 在工业控制、测量设备以及远程监控中串行通讯广泛使用。Microsoft Visual C++作为微软公司面向对象程序的开发平台, 具有集成的开发环境, 支持C、C++等编程语言。Mod Bus协议在OSI七层参考模型中作为应用层协议, 是全球最早应用于工业现场的总线协议。目前, Mod Bus协议已经成为一种通用工业标准, 不同设备通过Mod Bus协议可以组成工业网络, 实现集中监控。本设计针对V C++开发平台设计并实现了基于Mod Bus协议的串口通讯软件。

  1、串口通信原理

  1.1、串行通信的特点

  串口通信的特点是数据流在通讯传输线上逐位按顺序分时进行传输, 每次通信双方传输一个数据位, 也就是一个二进制数0或1, 以最小单位二进制数0或1逐位进行传输。串口通信分为三种传输模式, 分别是全双工、半双工和单工, 具体划分是按照数据流的方向划分, 数据通常是在通信双方的二个站点之间点对点进行传输[1]。

  1.2、串行通信的接口标准

  一个完整的的串行通信系统如图1所示, 该系统包括数据终端设备 和数据通信设备。

  串行接口标准定义了DTE的串行接口电路与DCE之间的连接标准, 包括连接电缆、接口几何尺寸、引脚功能和电平定义等, 在计算机网络中, 构成网络的物理层协议。

  1.3、串行传输协议

  通讯协议是一种对通讯双方之间进行通讯交流规则的约定。协议中规定了双方进行通讯的数据格式、传送速度、控制字符、同步方式、检错方式及传送步骤。通讯协议属于OSI七层参考模型中的数据链路层[2]。串口通讯按照同步方法的不同分为异步传输和同步传输。

  1.4、Modbus通信协议

  按照OSI七层参考模型, Modbus通讯协议属于应用层协议, 是一种全球通用的工业标准。标准Modbus通讯, 具有两种通信模式分别是Modbus RTU和Modbus ASCII模式。无论是RTU模式还是ASCII模式, Modbus信息以帧的方式传输, 每帧有确定的起始点和结束点, 使接收设备在信息的起点开始读地址, 并确定要寻址的设备 (广播时对全部设备) , 以及信息传输的结束时间[3]。

  2、通信软件设计与实现

  本文基于VC++软件开发设计串口通信传输的上位机软件, 归纳了实现串口通信传输的三大模块, 分别是通信串口初始化、通信参数初始化以及串口数据接收处理流程, 并概括总结了实现串口通讯编程的步骤和流程。

  2.1、串口初始化

  上位机与从机终端监控采集仪表通过串口实现通讯, 首先通讯软件需要对上位机串口进行初始化, 串口初始化内容包括设置实施通讯传输的上位机端口号, 设置通讯参数如数据位、波特率、停止位和校验位, 收发数据类型, 串口打开等操作。执行串口初始化的流程图如图2所示。

  2.2、基于特定通讯协议通讯参数初始化

  不同设备实现通讯, 双方需要遵循一定的通信准则, 要实现不同设备之间的串口通讯传输就必须规定通讯双方使用相同的通讯协议。上位机软件若要实现主从设备之间的串口通讯需要对双方所采用的通讯参数进行初始化操作, 本设计以Modbus RTU协议为例介绍如何通过编程实现串口通讯协议的初始化操作, 流程图如图3所示。

  2.3、基于串口事件的接收数据处理

  上位机软件采用MSComm控件编程实现串口通讯时, 如何从串口接收缓冲区准确接收从机发送来的数据是串口通讯软件的核心部分。采用MSComm控件从串口接收数据是通过触发On Comm事件执行Get Input () 函数读缓冲区数据, 完成串口数据的接收。On Comm事件触发的条件是Comm Event属性的值变化, 无论何时Comm Event属性值发生变化就会触发On Comm事件。串口通讯传输过程中当接收缓冲区接收到数据时, Comm Event属性的值被置为2, 并触发On Comm事件。

图1 串行通信系统
图1 串行通信系统

图2 串口初始化流程图
图2 串口初始化流程图

图3 通讯参数初始化流程图
图3 通讯参数初始化流程图

  上位机软件采用MSComm控件通讯, 处理输入缓冲区和输出缓冲区的数据是软件编程的一个难点。串口通讯过程中读取输入缓冲区数据和软件写入输出缓冲区的数据都是VARIANT类型, 上位机软件通讯使用的数据包括多种类型有二进制数值、文本型字符串, 正确处理VARIANT类型数据与二进制数据、字符串数据转换是上位机软件能否实现正常串口通讯的关键) 。

  3、软件调试及数据分析

  本文采用虚拟软件模拟测试和硬件调试两种方法, 对串口通信软件进行功能调试和数据分析。

  3.1、虚拟软件模拟测试

  虚拟软件模拟测试分为三部分, 分别是终端智能监控仪表、通信传输端口和上位机软件;其中, 终端采集监控仪表采用Mod Sim32软件模拟实现, 通信端口采用VSPD XP5软件虚拟, 上位机软件基于VC++开发平台编程实现。

  搭建虚拟软件测试平台, 第一步, 打开上位机上的VSPD XP5虚拟串口软件, 虚拟两个串口COM1、COM2, 将两个虚拟串口模拟连接。第二步, 启动Mod Sim32从机模拟软件, 初始化从机设备属性, 包括从机设备地址、串口通信参数、寄存器功能代码、寄存器地址和添加从机各寄存器储存数据, 并打开COM1串口。第三步, 运行上位机通信软件, 保持上位机串口通讯参数初始化与Mod Sim32模拟软件一致。

  3.2、硬件搭建调试

  硬件联调测试首先需要搭建硬件环境, 。上位机通过RJ45网口接入以太网访问串口服务器IP地址实现与串口服务器通讯, 以实现上位机与终端采集仪表通信。

  3.3、软件调试中存在的问题及解决方案

  上位机软件调试中出现部分采集数据为乱码, 通过对软件的逐条测试发现, 由于上位机软件串口通信采用基于On Comm事件驱动, 并且程序中MSComm控件的MSComm属性值设置为1, 所以通信端口接收缓冲区数据多于或等于1个字符时便引发一个接收数据事件。实际串口通讯传输时采集终端发送的数据较多, 每次传输并未完全传输结束就触发了接收数据事件, 使得上位机软件采集到的数据出现乱码。

  4、结语

  本文在设计实现基于VC++开发平台的串口通信传输软件的基础上, 对编程开发串口通讯软件归纳凝练了三大模块, 分别是串口初始化模块、基于通讯协议的通讯参数初始化模块和基于串口事件的接收数据处理模块, 并介绍了串口通讯编程的流程和步骤。采用Mod Sim32软件模拟从机设备搭建虚拟软件测试平台既节约了软件开发成本, 又提高了软件开发效率和软件代码质量, 减少了软件运行中的bug。硬件连接调试进一步优化了上位机软件在实际运行环境中存在的干扰等问题。

  参考文献
  [1]王秀彪.浅谈基于半双工通信系统的通信控制协议设计[J].民营科技, 2010, (09) :36-37.
  [2]许永康.RS-232转RS-485网络的通信[J].微计算机信息, 2007, 23 (10) :228-229.
  [3]阚能琪.VC++串口通信中多线程技术的应用研究[J].西华大学学报 (自然科学版) , 2005, 24 (04) :84-85.

相关内容
相关标签:VC毕业设计
好优论文定制中心主要为您提供代做毕业设计及各专业毕业论文写作辅导服务。 网站地图
所有论文、资料均源于网上的共享资源以及一些期刊杂志,所有论文仅免费供网友间相互学习交流之用,请特别注意勿做其他非法用途。
如有侵犯您的版权或其他有损您利益的行为,请联系指出,论文定制中心会立即进行改正或删除有关内容!