C_编程实现Modbus通信协议.docx_第1页
C_编程实现Modbus通信协议.docx_第2页
C_编程实现Modbus通信协议.docx_第3页
C_编程实现Modbus通信协议.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编程实现 通信协议崔晶,徐晓光,倪康,夏雯娟(安徽工程大学 电气 工程学院,安徽 芜湖 )摘 要:运用 编程语言开发了 通信系统,实现温湿度采集。 系统下位机采用具有 通信功能的温湿度检测模块,多个模块通过 总线连接,并 通 过 转 换 器 将 通 信 总 线 连 接 到 机 串 口。 系 统以 协议访问每个温湿度模块,实现了多点温湿度采集。关键词: ;温湿度中图分类号:文献标志码:文章编号:()引言 是 一 种 安 全、稳 定、简 单、高效及面向对象 的编程语言,它解决了 语言内存泄露和缓 冲区溢出等 问 题,具 有 很 好 的 错 误 处 理 能 力。 语言 是 在 平 台 下 进 行 代 码 演 练。 是一种 全 新 的 编 程 环 境,主 要 负 责 运 行 代码,确保代码的安全性和准确性,同时负责管理内 存、线程调度等 核 心 服 务。 运 用 编 程 容 易 实 现 协议的串行通信,并具有更好的安全性。目前,温湿度检测系统不断趋于规模化及远程 化,基于 编程的 通信系统实 现 的 温 湿 度采集,可在 总 线上 进行远距离多点温湿 度检测。 此研究内容在环境监测、工业数据采集等 方面具有一定的实用价值。 协议 协议简介协 议 是 应 用 于 或其他控制器上 的一种通用语言。 通过此协议,控制器与控制器、控 制器通过网络(如以太网)与其他设备之间可以实现 串行通信。 该协议已经成为通用工业标 准,运 用 协 议,不同厂商的控制设 备可以互 连 成 工 业网络,实现集中监控。文中 通 信 协 议 采 用 的 是 模 式, 当控制器设置为在 网络上以 (远程终 端单元)模式通信时,消息中每 位包含两个十六进 制字符。 在相同的波特率下,这种方法比 方 式传送的数据量大。代码系统是由 位二进制数或 位十六进制数()组 成,在 传 输 过 程 中,数 据 共 包 含 个 起 始 位、 个数据 位、 个 奇 偶 校 验 位 (如 无 校 验 则 无 此 位)和停止位。 当有校验位时停止位占用 位,无校 验位时停止位占用 位。 校验消 息 中 包 括 了 一 个 基 于 (循 环 冗 余 检 测)方 法 的 错 误 检 测 域,检 测 整 个 消 息 的 内 容。 码 包 含 个 字 节,即 位 二 进 制 数。 在 校验前,将 位寄存器全部预置为。 在进行 校验时,除 位数据位外,起始位、停止位和奇偶校 验位都不参与计算。在计算 时,先将 位数据和寄存器中存储 的数据相异或,得到的数据向低位移一位,然后把最 高位补为,再对最低位检查。 如最低位 为 ,则 把寄存器中的内容与预置数相异或;若最低位为, 则不进 行 异 或 运 算。 重 复 次,即 进 行 次 移 位。 接着,下一个 位数据再和此时寄存器中的内容相 异或,这个过程也重复 次。 全部信息处理完以后, 寄存器中所存储的内容即为 码。 这个 码 将以低字节先加入、高字节后加入的顺序,跟随在 数据之后,由发送设备发送。 的类微软自推出 开发工具开始, 其 类库中就包含了类, 实现了串 口 通 信 的 绝 大 部 分 功 能。 采 用 类实现上位机与温湿度变送器之间的串口通信,通过收稿日期:作者简介:崔晶(),女,山西长治人。 硕士生,研究方向:数据融合与信息检测。 崔 晶,徐晓光,倪 康,夏雯娟: 编程实现 通信协议改变 类的 方 法 和 属 性,可实现串口的打 开和关闭,并实现对串口的波特率等属性的设置。类的属性及方法见表。表 的常用属性及方法在进行通信前,需确定主、从机的波特率(波特率不同会致使通信不成功)。 该变送器 上的两位拨 码开关即是波特率设置开关,通过开关状态的设置 可实现波 特 率 的 设 置。 本 通 信 系 统 设 置 波 特 率 为,拨码开关都设置为 。 温湿度变送器 的 通信参数如表 所示。表 温湿度变送器的 通信参数名称说明获取或 设置串行波特率获取或 设置每个字节的标准数据位长度 获取或 设置奇偶校验检查协议 获取或 设置每个字节的标准停止位数 获取或 设置通信端 口,包 括 但 不 限 于 所 有 可用的 端口获取 一 个 值,该 值 指 示 对 象 的 打开或 关闭状态关 闭 端 口 的 连 接,将 属 性 设 置 为 ,并释放内部 对象 打开一个新的串行端口连接从 输入缓冲区中读取 从 输入缓冲区中同步读 取 一 个 字 节已重载,将数据写入串行端口输出缓冲区 丢弃来自 串 行 驱 动 程 序 的 接 收 缓 冲 区 的 数 据 丢弃来自 串 行 驱 动 程 序 的 传 输 缓 冲 区 的 数 据 波特率数据位停止位校验位用户选择设置无该温湿度变送器的主机命令帧有个字节,包括地址码、功能码、寄存器地址、寄存器个数和 校验码。从机回应帧有个字节,包括地址码、功能码、 数据长度、湿度数据、温度数据、 校验码。温湿度 变送器主、从机命令帧格式分别如表和表所示。表主机命令帧格式 字节功能描 述例子地 址码功能码 寄存器地 址高 寄存器地 址低 寄存器个数高 寄存器个数低 校验码低 校验码高协议实现温湿度采集系统实例系统设计框图系统总体框图如图 所示,共设计有 个温湿 度变 送 器,都 挂 接 在 同 一 条 总 线 上,通 过 模块连接到 机上。 温湿度变送器 使用 直流电源; 模块直接从 机串口取电,故不需要外接电源。 图 中,温湿度变 送器负责对室内环境温湿度的采集,并把检测到的 温湿度转 换 为 可 传 送 的 数 据 并 存 储。 变 送 器 具 有 通信接口,可用 协议与主站通信。表从机回应帧格式字节功能描 述例子地 址码功能码 数据长度 湿度数据高位 湿度数据低位 温度数据高位 温度数据低位 校验码低 校 验 码 高 上位机软件系统采用 作为上位机编程 软件,通过 编程语言实现 通信协议,从 而使 机串 口 以 主、从方式逐个从温湿 度 变 送 器 读取温湿度数据,并且将采集到的数据在上位机界 面中实时显示。在温湿度 采 集 过 程 中, 机 作 为 系 统 的 主 节 点,温湿度变送器作为从节点。 主节点根据系统节 点的数量和地址范围,按照约定的通信参数发送相 应的指令,实现与每个节点的通信,进行数据采集。程序开始运行后,首先设置串口,包括 串 口 号、波特率、数据位、校验位和停止位,然后打开上位机图温湿度变送器系统设计框图系统采 用 壁 挂 式 网 络 型温湿度变送器作为下位机,其采用高品质数字集成 传感器,具有高稳定性、低延滞性、强抗化学污染能 力和可重复性等优点,被广泛应用于楼宇自动化及 暖通自动控制系统中。 通过可靠的数字电路,可将 环境中的温度与湿度转换成标准 信 号,可靠地与上位机系统通信,便于进行集散监控。该温湿度变送器采用 通用协议, 新乡学院学报串口,为读取温湿度数据做准备,再将地址码、功能码、寄存器地址和个数等命令传送给温湿度变送器。 温湿度变送器收到命令后,将数据反馈回上位机,由 上位机提取出温湿度数据,并在界面中显示。面显示出房间号、温度及湿度数据。 若读取温湿度数据时出现错误,将提示相应的错误信息。() ; ()清除接收和发送缓存区 (); (); ; ;建立发送命令数据();发送命令数据到串口并读取接收到的数据 (,); ();();获取温度数据 ( ); (,)(); (); ();获取湿度数据( ); (,)(); (); (); ()协议的编程实现串口设置串 口 参 数 的 正 确 设 置 是 数 据 采 集 与 传 输 的 前提,参考程序如下。;设置串口号();设 置 波 特 率();设 置 数 据 位 ()( ),);设置停止位()(), );设置校验位发送数据方法 ()该方法主要功能是将地址码、功能码、寄存器地址、寄存器个数和 校验码合成命令发送给温湿 度变送 器,实 现 主 机 命 令 的 询 问。 使 用 ()方法发送命令,内存占用少且响应速度快,可 快速地读取温湿度数据,提高采集效率。 程序如下。(); ();地址 码 ();功 能码 ()() );寄存器地址 (); ()() );寄存器个数(); (,);取得 校验码 ; ; ();:检验接收到的数据()( );温湿度数据读取程序首先判断串口是否打开,若已打开,则清除 接收 和 发 送 缓 存 区,然 后 将 发 送 的 命 令 数 据 写入串口的输出缓存区;再由温湿度变送器对 接收到的 进行校验后返回数 据 ; 之后程序对进行解析,并分别在上位机界 崔 晶,徐晓光,倪康,夏雯娟: 编程实现 通信协议工具、集成开发环境()等工具,可实现基于 的 串口通信,该界面设计简洁清晰,操作简 单,便于实现。( );( );结束语文中通过 上位机软编程件 实现了基于 语言的 串行通 信,可 完 成 工业自动化控制系统中的远程数据采集及监测等功 能。 该通信系统编程模式简单、易于使用、有较强的 实时性和有效性。参考文献:通信测试界面该通信测试界面也采用 实 现,通信测试界面设计如图 所示。 是微软公司推出的开发软件,具有基本 完整的开发工具集,包括了如 工具、代码管控梁 斌 玉叩 响 之 门 北 京:电 子 工 业 出 版 社,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论