采用串口通信技术实现Modbus数据通信

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期: GCCN 2 DC 2 G3。 获学士学 作者封亚斌, 男, DHOD 年生, DHH3 年毕业于郑州工业大学, 位, 工程师; 研究领域为现场仪表及自动控制。
(上接第 ./ 页)
在很大程度上降低了操作人员的劳动强度, 因此深受 广大操作人员喜爱。
参考文献
D 秦斌 % 可 编 程 控 制 器 在 锅 炉 自 动 控 制 中 的 应 用 % 自 动 化 仪 表, (I) :NG P N3 DHH4, DH 洪国胜 % Q"*0;<R;*"65SC F ISC 范例教程 % 中国铁道出版社 % -"$:$’* 公司 % -M.=KM, -O 2 GCC 可编程序控制器系统手册 % DHHH
封亚斌
而参 块使用。通信模块实现与 !"# 系统的数据通信, 数设置模块用于设置系统工作及通信参数。 为了提高软件运行效率, 实时响应 !"# 系统的通 信请求, 软件采用了多线程技术, 数据获取模块作为独 立的辅助工作线程, 由定时器触发定时地获取当前监 测系统采集的数据; 参数设置、 串口与 !"# 通信模块 作为主线程提供用户操作界面以及应答 !"# 系统的 通信请求。软件正常运行时始终处于等待 !"# 通信 请求状态, 当软件接受到 !"# 系统请求监测系统的数 据命令时, 就将共享缓冲区内的监测数据转换为符合 7%89:; 协议的数据报文放入串口的发送缓冲区发送 至 !"# 系统。图 - 是软件的执行流程图。
表5 678 数据帧格式
的系 统, 它 与 9IK 装 置 的 集 散 控 制 系 统( 0"1234255 之间没有直接的接口, 空压机组的监测数 I7, L M ***) 据不能在集散控制系统中显示, 工艺人员就不能根据 空压机组的实际状况调整工艺负荷; 也不能及时发现 空压机组实际运行过程中的隐患和故障, 会对设备和 生产造成影响; 也不能对空压机组的实际运行参数进 行分析, 寻找设备的故障和设备运行的最佳工艺参数 和指标。因而需采用更为先进的监控技术解决之。
《自动化仪表》 第 59 卷第 /. 期
5..: 年 /. 月
采用串口通信技术实现 !"#$%& 数据通信
!"#$%& ’()( *"++%,-.()-", /+012+2,)2# $3 4&-,5 627-(1 8"7) *"++%,-.()-", 92.:,"1"53
封亚斌
(江苏仪征化纤股份有限公司化工厂, 仪征 ’(()**)
.
引言
我公司原有的空压机组工况监测系统是一个独立
(美国标准信息交换代码) 模式通信的代码 K8,NN 系统为: ! 一个起始位; 最小的有效位先发送; " Q 个数据位, # ( 个奇偶校验位或无; (无奇偶校验位时为 ’) ; $ ( 个停止位 % 错误检测域; (纵向冗长检测) 。 & P6, / F5 678 数据帧格式
)
) %*
系统通信参数
通信计算机采用的通信参数 ( E(79) ,A.D F ,A.G ! 串行端口 ( /;0#7;9$) HICC/E* " 波特率 ( E;7"9J) 无 ( ’(’$) # 奇偶校验 ( #;9; /"9*) 4 位 $ 数据长度
( *9(E /"9*) D 位 % 停止位 ) % " +,- 系统的通信参数 ( E7(9(6(<) 1- 2 345 1KL ! 通信协议 ( /;0#7;9$) HICC/E* " 波特率 ( E;7"9J) 无 ( ’(’$) # 奇偶校验 ( #;9; /"9*) 4 位 $ 数据长度 ( *9(E /"9*) D 位 % 停止位
地址 功能码 数据数量 数据 ( … 数据 1 P6, 高字节 P6, 低字节
S.
;6<3=22 !87<0!74<> 4>27680=>7!74<>,?,@A 59,>,A /., <’$A ,5..:
采用串口通信技术实现 $%&’() 数据通信 投 资 很 大。 而 $%&’()’** +!" , -... !"# 系 统 互 联, !"# 系统通信网络提供了 /# , 012 总线互联的 #3 接口 增设 !"# 的 #3 接口卡 功能, 采用 /# , 012 /+4 方式, 和 #3 5+6 卡, 自行开发软件, 模拟 7%89:; 协议实施监 建立 !"# 与空压机监控系统 测系统与 !"# 系统互联, 的数据通信, 从而可以节省很大的投资费用。系统总 其中虚线所示部分为实施或改造 体结构如图 < 所示, 的模块。
/
0,-"1# 协议简介
!"#$%& 协议是应用于电子控制 器上 的 一 种通 用
地址 功能码 数据数量 数据 ( … 数据 1 ,6, 高字节 ,6, 低字节
(远程终端单元) 模式通信的代码系统为: 6IO ! 一个起始位; " R 个数据位; # ( 个奇偶校验位或无; (无奇偶校验位时为 ’) ; $ ( 个停止位 % 错误检测域; (循环冗长检测) 。 & ,6,
图数据服务软件流程图
软件参数设置模块 该模块用于配置软件运行参数, 包括监测系统当
前保存的数据文件路径以及串行通信参数 (串行端口 号、 通信波特率、 奇偶校验位、 数据位和停止位等) 两部 分。前者用于数据获取模块, 后者直接为通信模块服 务。
"
数据通信软件总体结构
监测系统 7%89:; 数据通信软件由通信参数设置、
.
结论
通过我们自行开发的软件, 成功地利用串口技术
解决了空压机组监测系统与 实现了 .(#/0* 数据通信, +,- 的数据通信。 但系统中的通信计算机仅仅实现空压机组监测系 远远没有充分利用计算机的资 统与 +,- 的数据通信, 源。在现有的基础上, 我们可以用通信计算机实现从 存放到实时数据库后传送到工厂 +,- 采集生产数据, 实现生产数据的共享。此外还可以利用此 的 M’97;’$9, 计算机与 +,- 实现双向通信, 从 +,- 采集数据, 将用 先进算法计算后的结果回送到 +,-, 实施先进控制, 优 化生产过程。
来自百度文库
数据获取、 串口通信三大模块组成, 其结构如图 D 所示。
图0 图D 7%89:; 数据通信软件结构
参数设置界面 (程序主界面)
参数设置采用了基于对话框的界面, 如图 0 所示。 当所有的参数设置完毕后, 点击 “ #’&8” 发送按钮即可 启动数据获取线程, 循环获取监测系统采集的空压机 数据, 而主通信线程则一直处于等待 !"# 请求命令状
图<
系统的总体结构
! =!
通信软件 为了避免对原有已稳定运行的监测软件作修改,
因而与 !"# 系统的互联通过开发设计独立的 7%89:; 数据通信软件来实现。该软件在中控室通信计算机上 运行, 接受来自 !"# 系统的数据请求, 并直接读取现 场监测计算机采集的相关数据传送至 !"# 系统。中 控室通信计算机作为 !"# 系统的数据服务器, 其 7%8> 9:; 数据通信软件直接通过对等网络从现场监测计算 机获取监测数据, 向 !"# 系统提供所需的信息。实施 数据 交 换 时, 采 用 7%89:; 通 信 协 议, !"# 作 为 主 站 ( ?@;A’B) 、 通信计算机作为从站 ( ;*@C’) , 由 !"# 定时向 通信计算机发出数据请求。 7%89:; 数据通 信软 件 实 现 !"# 的数据显示与 现场同步。从 监 测系 统 至 !"# 系统的 数 据 包 括 所 有 振 动 监 测 点 的 峰 值, 以及目前 温度、 流量等信息。 !"# 系统中尚未显示的压力、 " =#
语言。通过此协议, 控制器之间、 控制器和其他设备之 间可以进行通信。它已经成为一种通用工业标准。有 了它, 不同厂商生产的控制设备可以连成一个网络进 行集中监控。 !"#$%& 协议定义了一个控制器 能认 识 使 用的 消 息结构, 而不管它们是经过何种网络进行通信的。它 描述了一控制器请求访问其它设备的过程、 如何回应 其它设备的请求, 以及怎样侦测错误并记录等。它制 定了消息域和内容的公共格式。 !"#$%& 有 K8,NN 和 6IO 两种传输方式。 / F/ !2344 数据帧格式


工业控制从单机控制发展到集中控制、 集散控制, 现已进入网络时代, 工业控制系统之间联网已成为趋势。介绍了用 +, - !"#$%& 协议 串口通信 ,6, 7,8
实现空压机组监测系统与 0"1234255 公司的集散控制系统的连接。 ./* 编程来模拟 !"#$%& 协议, 关键词 !"#$%&’$ 9:";2&& ;"1<:"5 =>& $221 #2?25"@2# A:"B &C1D52 %1C< ;"1<:"5 <" ;21<:>5CE2# ;"1<:"5 >1# #C&<:C$%<2# ;"1<:"5F G"4 C< C& @>;C1D <"4>:#& 12<4":H 2:>,<=%& 12<4":HC1D @:";2&& &3&<2B& C& <=2 #2?25"@C1D <:21# F I=2 @>@2: C1<:"#%;2# <=2 ;"112;<C"1 $2<4221 >C: ;"B@:2&&": B"1C<":C1D &3&<2B >1# 0"123J 4255 7,8 4C<= 2B%5><C1D !"#$%& @:"<";"5 $3 %&C1D +, -- ./* @:"D:>BBC1D F ()*+,%-# !"#$%& @:"<";"5 82:C>5 @":< ;"BB%1C;><C"1 ( ,6,) 7,8 ,3;5C; :2#%1#>1;3 ;=2;HC1D
图 D 中数据获取模块用于获取当前监测系统采集 的空压机数据, 并将其保存在共享缓冲区内供通信模
2E
《自动化仪表》 第 ". 卷第 */ 期
"//) 年 */ 月 站为本机地址 CCD, 就将请求的数据经 ,1, 校验后放 入发送缓冲区发送至 +,- 系统, 然后进入下一次等待。
态。该界面同时也是数据服务软件的主运行界面。软 件运行 后可通过 点击 “ !"#$” 隐藏按 钮将 主 界面 最 小 化, 隐藏于系统任务栏上的通知区域。 ! %" 数据获取模块 该模块用来获取当前监测系统从空压机房实时监 测计算机传过来的最新数据。该模块设计为一独立线 程, 其优先级低于通信线程。此外, 为了减少网络通信 负担, 采 用 &"’#()* 定 时 器 消 息 定 时 获 取 监 测 数 据。 该线程运行时, 首先根据用户选定的数据文件路径 (监 测系统保存当前数据文件的路径) , 读取监测系统的参 数配置文件, 保存于内存中对采集的空压机组原始数 据进行标定。此后, 不断根据 &"’#()* 定时器消息读 取当前采集的空压机组原始数据, 标定后保存至共享 缓冲区内供通信线程使用。 ! %! #$%&’( 通信模块 中控室的通信计算机与 +,- 的通信是在 .(#/0* 协议上通过 1- 2 345, 串行接口进行的。本软件采用 (以 下 简 称 .-,(::) 控 ."67(*(89 ,(::0’"6;9"(’* ,(’97(< 件实现 .(#/0* 通信协议与 +,- 的串行通信。 .-,(:: 是 ."67(*(89 公司提供的简化 &"’#()* 下串行通信编程 的 =69">$? 控件, 它为应用程序提供了通过串行接口收 发数据的简便方法。具体来说, 它提供了两种处理通 方法, 一是 信问题的方法: 一是事件驱动 ( $>$’9@#7">$’) 查询法。在使用事件驱动法设计程序时, 每当有新字 符到达, 或端口状态改变, 或发生错误时, .-,(:: 控 而应用程序在捕获该事件后, 件将触发 A’,(:: 事件, 通过检查 .-,(:: 控件的 ,(::B>$’9 属性可以获知所 发生的事件或错误, 从而采取相应的操作。这种方法 的优点是程序响应及时, 可靠性高。 本软件采用了事件驱动的方法。程序初始化通信 串口参数后, 一直处于等待 A’,(:: 事件状态。当收 到 +,- 发过来的数据后, 解析数据包, 如果请求的从
表/ !2344 数据帧格式
5
0,-"1# 数据通信实施方案
根据这一情况, 我们设想将空压机组监测系统与
在 0"1234255 I7, L M*** 系统连接起来实现数据通信, 同时记录其历 7,8 中及时显示空压机组的运行参数, 史参数, 从而实现对空压机组的有效监控。 5 F/ 通信接口 采用从上层运用商业化的软件实 现监 测系统 与
相关文档
最新文档