新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > RS-485总线在汽车地衡计量系统中的应用

RS-485总线在汽车地衡计量系统中的应用

作者:时间:2016-11-20来源:网络收藏
  0 引言

  地衡计量是企业物资计量的主要手段之一,但在实际工作中其管理水平和方法不够健全,尤其是技术手段落后,传统测试仪基于手工操作,因而测量精度和工作效率难以满足现实需要。基于手工管理模式,不仅易滋生人为作弊现象,而且各部门不能充分共享数据,使大量数据的统计、汇总、查询及监管等方面效率低下,影响企业的效益和发展。为此,称重数据的自动采集、处理是完善监控的重要一环,不仅为企业建设具有自身特色的管理现代化的信息网络提供了可靠数据,也促进新的生产和管理理念形成,从而提升企业竞争力。RS-485总线收发器采用平衡发送和差分接收,具有灵敏度高、可靠性高、传送距离远、速度快、抗干扰能力强等优点[1],在工业生产中得到了广泛应用。因此,构建RS-485总线型分布式监控系统具有很高的实用价值。

本文引用地址:http://www.eepw.com.cn/article/201611/319044.htm

  1 分布式监控系统硬件设计

  1.1 概述

  RS-485总线型分布式监控系统以计算机作为上位机,以单片机为核心的测控仪作为下位机。为确保系统工作的可靠性和冗余性,所设计分布式系统采用双方案方式,即上位机工作方案和测控仪工作方案。以上位机工作方案为主,测控仪工作方案为铺,当分布式系统某通道或通信出现故障时,各测控仪可自主工作。

  1.2 分布式系统总体设计

  根据分布式系统工作方式要求和硬件组态设计思想,采用分层体系结构。系统上位机选用具有高可靠性和适用于工业环境的IPC ( industrial personal com-puter)作为管理站,自主开发测控仪,既能独立完成测试工作,也提供RS-485通信接口,在IPC的RS-232端口加一块MODEL1102 RS-232/RS-485接口转换模块,组成RS-485网络分布式监控系统[2]。

  分布式监控系统能确保当某个测控仪通道出现故障时,不影响上位机对其它测控仪监控;当上位机或网络出现故障时,也不会影响现场控制级正常工作。综合汽车地衡计量分布式监控系统的实际需要,由测控仪和传感器构成测控通道,系统硬件总体结构如图1所示。

  

  1.3 测控仪设计

  测控仪设计主要考虑两方面的要求:一方面根据系统总体双工作方案要求,测控仪作为监控系统的下位机,需要具备通信接口;另一方面针对测控仪的前向输入通道传感器动态范围大、会产生振动干扰等特性的需要,要求信号调理模块的放大倍数能根据输入信号的大小自动调整。所设计汽车地衡测控仪系统硬件结构如图2所示。

  

  1.3.1 测试模块

  测量电路模块除AT89S52外,核心电路为信号调理及采集电路。其主要作用是把称重传感器信号转换为AT89S52能接收的CMOS数字电平,利用高性能的模数转换器,以实现称重测试的工作。

  1.3.2 辅助模块

  利用具有I2C总线的铁电存储器FM24C32解决分布式系统故障时,启用单台测控仪工作方案及时保存所测试的数据,待分布式系统正常工作后,及时把所储存数据传送到上位计算机中[3]。利用具有I2C总线的时钟芯片DS1307进行时间设置和测试时间标志。利用具有I2C总线的ZLG7290键盘和显示器控制芯片[4],根据测控仪的操作要求,设置按键的功能,主要包括时间、批号设置的数字键,测试、查询、打印和数据上传等功能键;显示信息主要包括测控仪工作状态和有关测量结果的数据。利用8255芯片实现对微型打印机的控制,解决单台测控仪工作方案启用时所需的输出数据。MAX487芯片用于实现RS-485的串行通信,构成以计算机为核心的RS-485总线型分布式测控系统

  2 系统软件开发

  系统软件开发主要包括测控仪和上位机监控软件开发工作。测控仪以AT89S52为核心,选用方便实用、高效的KeilC51软件作为开发平台[5]。上位机软件开发工具选用功能丰富和应用方便的VB编程软件。

  2.1 上位机监控软件开发

  上位机的软件开发工作主要围绕三个方面:①建立企业所需的数据库,为地衡工作的有效监控提供充分的数据保障;②计算机管理模块规划和开发工作,人机交互接口立足于简便、实用和友好的基本原则,并充分发挥计算机软、硬件资源丰富的优势;③计算机与测控仪的通信,实现信息正常传输工作。在完成人机界面的窗体设计基础上,利用模块化和面向对象编程思想,进行实质性地监控程序开发工作。下面对上位机功能模块的规划和上、下位机通信模块的工作原理作简要说明。

  2.1.1 功能模块

  计算机监控主要利用上位机对各控制器工作参数实现全面监视和控制,在上位机监督和指导下完成称重测控工作。根据系统的功能需求和VB软件的特点,规划上位机功能模块,同时上位机中的功能模块建立在通信程序和数据库及数据表的基础之上,监控软件功能模块规划如图3所示。

  

  上位机功能模块的主要作用如下:

  ①系统管理子模块。完成用户的增减、注册、密码的设置、完成系统初始化处理、系统自检、系统退出功能。

  ②监控管理子模块。实现计算机与测控仪通信,定时采集工作参数,并直观显示所测试数据,同时向测控仪发送控制命令,并实现系统故障诊断及处理。

  ③浏览打印子模块。用于查询和打印测试参数,便于进行分析和统计。

  ④帮助子模块。介绍软件的使用方法、步骤和注意事项。

  2.1.2 上位机与测控仪通信模块

  上位机与测控仪通信是RS-485总线型分布式测控系统的关健,利用AT89S52的串行通信口及MAX487芯片的接口电路实现与IPC通信。AT89S52单片机提供与计算机或其他串行设备连接的异步通信口,而VB提供便于图形化接口的串口操作控件———Mscomm[6],并配合VB中的TIMER控件的定时功能,周期性地从串行口上取数据,并进行数据处理。

  由AT89S52所组成单片机应用系统,即测控仪需要把工作参数和工作状态及时传递到上位机中,同时,上位机利用其友好的界面,对测控仪进行初始化等工作,以实现两者双向通信。通信除了硬件电路外,还需统一两者的通信协议。由于RS-485是一种半双工通信协议,发送数据和接收数据共用同一物理通道,在任意时刻只允许一台网络终端设备处于工作状态,若有一台以上的设备同时发送数据,则会产生总线冲突,使整个系统通信瘫痪。本系统采用主从式查询方式,即工控机给出某一下位机的地址码,向所有下位机都发出询问,当某一下位机接到的地址码与本机地址码相符时,响应指令,发送数据,工控机接收数据,否则不响应也不发送数据。其通信数据格式包括呼叫数据帧、发送数据帧、接收数据命令帧和应答帧[7]。如图4所示即为计算机从AT89S52单片机接收数据过程示意图。

 

  上位机读取某测控仪数据主要程序模块如下:

  Private FunctionRD_cky(String zh)

  Dmi CMD, ADR, CO, znwkS1, SN, TXD AS String

  Dmi LENS, BCC, BCC1, I As Integer

  Dmi ckcs_sz(10) AsSingle

  ∥用于存放从测控仪中读回参数值

  CMD=“0F1H” ∥通信申请

  ADR=zh∥zh=01第1台测控仪的站号地址

  CO=EOT+ADR+ENQ∥连接01站号的字符串

  MSComm1.Output=CO

  ∥向测控仪发送连接命令字符串

  Do

  DUMMY=DoEvents()

  ∥等待接收测控仪回答的字符串

  LoopUntilMSComm1. InBufferCount>=26

  RS=MSComm1. input∥读取接收缓冲区数据

  cky_ydc=Mid$ (RS,2,2)∥取测控仪应答字符串

  If cky_ydc=187 Then∥判断通信是否正确

  x=MsgBox(“通信连接错误!”,16):ExitFunction

  else

  CMD= CMD+ETX: LENS=LEN(CMD): BCC=0

  ∥生成BCC校验和

  FOR I=1 TO LENS

  SN=MID$ (CMD, I,1):BCC=BCC+ASC(SN)

  NEXT

  BCC=BCCMOD 128: BCC=CHR$ (BCC)

  TXD=STX+CMD+BCC

  ∥发送包含校验和的新命令字符串

  MSComm1.Output=TXD

  ∥向测控仪发送连接命令字符串

  Do

  DUMMY=DoEvents()

  ∥等待接收测控仪回答的字符串

  LoopUntilMSComm1. InBufferCount>=26

  RS=MSComm1. input∥读取接收缓冲区数据

  LENS=LEN(RS): BCC1=0

  FOR I=2 TO LENS

  SN=MID$ (RS, I,1):BCC1=BCC1+ASC(SN)

  NEXT

  IF BCC<>BCC1 THEN

  x=MsgBox(“通信连接错误!”,16):ExitFunction

  End If

  FOR I=5 TO LENS

  ∥分解读回的字符串,提取所需参数值到数组

  ckcs_sz(I-4)=MID$ (RS, I,1)

  ∥ckcs_sz数组存放从测控仪中读回的参数值

  NEXT

  End If

  CallDisplay()∥调用显示模块,把提取的有效

  数据,显示于上位相的工作界面中

  End Function

  上述程序段主要包括定义所需的变量、拼接发送字符串、通信的建立、数据校验码的产生以及有效数据的提取,为后续进一步处理和应用奠定了基础。

  2.2 测控仪软件开发

  测控仪软件开发采用结构化和模块化设计方法,分为系统监控程序和中断服务程序两大部分。其中每一部分又由许多功能子模块构成。监控程序主要包括初始化模块、测试与诊断模块、显示模块和键盘扫描与处理等模块。为提高系统工作的实时性,将A/D转换、数据处理和串口通信等工作均安排在中断服务中执行,下面对测控系统主要模块作简要说明。

  2.2.1 故障诊断程序模块

  为确保测控仪正常可靠地工作,在测控仪上电时,运行开机自诊断程序,检测AT89S52中功能部件和应用系统外围电路工作情况;主要包括ROM自检、RAM自检、定时器、A/D通道、FM24C32、DSN307、ZLG7290等模块的自检工作。利用自检程序模块,输出直观的工作状态信息,为系统维护奠定良好基础。

  2.2.2 键扫描和显示处理模块

  测控仪的人机接口主要体现在键盘、显示和报警输出方面。在自检阶段,对于不同检测模块的不同情况,分别显示不同的字符信息;在实时监控正常工作状态时,其显示内容为所测试参数的大小;在键盘操作时,显示其键盘操作内容,如出现报警,其显示器输出相应报警项的提示信号。

  键盘按键包括数字键和功能键,数字键主要用来校正时间、设置报警上、下限和批号输入;功能键主要包括批号设置、日期设置、通道选择、测试启动、查询、打印、数据存储、数据上传和报警清除等功能键。

  3 结束语

  本文介绍了一种基于RS-485总线的数据采集和控制系统,以及VB语言在开发上位机软件中的应用。在该测控系统的应用中,主控计算机与各测控点的单片机之间采用了RS-485串行通信总线,使测控网络的连线简单、传输距离长、信号传输稳定可靠,取得了良好的控制效果。

  总之,本方案一方面采用模块化设计,体现了分布式控制的思想,便于维护和扩展;另一方面,通过建立完善的软件握手信号及软硬件的抗干扰措施,保证了系统间通信的稳定性及数据传输的准确性。因此,系统具有很高的性价比。基于RS-485总线汽车地衡分布式测控系统采用上位机监控和常规测控仪工作方式,不仅功能完善实用,而且具有友好的人机界面,系统运行灵活高效。

  参考文献

  [1]鞠杰,孙自强.基于RS-485总线的智能灯光控制系统[J].自动化仪表,2006,27(5):15-20.

  [2]朱兆优.RS-485总线在远程自动抄表系统中的应用[J].东华理工学院学报,2005,28(6):192-193.

  [3]孙肖子,邓建国,陈南,等.电子设计指南[M].北京:高等教育出版社,2006:474-475.

  [4]李昌禧.智能仪表原理与设计[M].北京:化学工业出版社,2005:47-48.

  [5]郁文,侯振鹏.C语言程序设计———使用MCS-51[M].北京:人民邮电出版社,2006:27-28.

  [6]李世平.利用VB实现PC机与单片机通信[J].计算机与数字工程,2004,32(4):61-62.

  [7]杨侃,朗文鹏,赵维琴.VB6用于PC机与MCS-51单片机多机串行通信[J].仪器仪表用户,2001,8(2):33-34.



评论


相关推荐

技术专区

关闭