基于RS422A现场总线的温控网络控制系统

发布者:csydtc最新更新时间:2009-09-11 来源: 微计算机信息关键字:网络控制系统  RS422A总线  实时性  多线程 手机看文章 扫描二维码
随时随地手机看文章

  一. 概述

  RS-422A总线是EIA公布的“平衡电压数字接口电路的电气特性”标准,这个标准是为改善RS-232C标准的电气特性,又考虑与RS-232C兼容而制定的。RS422A是工业界广泛使用的双向、差动平衡驱动和接收传输线标准接口 ,它以全双工方式通信 ,支持多点连接 ,允许创建多达 32个节点的网络,具有传输距离远 (最大传输距离为 1200m) ,传输速率快 ( 1200m时为 100kbit/s)等优点 ,相对于其它总线,如FF、CAN、LonWorks等而言,具有结构简单、成本低廉、安装方便、与传统的DCS兼容等特点;此外,市场上很多现场仪表都有RS422A总线接口,因此采用该总线可以很容易地开发一些中小型网络测控系统。结合某一工程项目的实际特点 ,我们采用了RS422A通信接口来实现远程数据通信系统。

  在该工程项目中,系统采用两级主从总线型网络结构。温度等变量的控制主要由总线上的各个智能仪表实现,上位机根据控制要求修改智能仪表的给定值等参数,以及一些数字量的监控显示等。该项目所选智能仪表为上海大华-千野仪表有限公司生产,参数相当复杂,具有较强的控制以及通信功能。同时,利用上位机软硬件资源丰富,以Windows为操作平台,因此开发的应用软件有强大的管理功能以及非常友好的人机界面。本系统应用软件采用Microsoft Visual C++6.0开发,充分利用VC++灵活快速,对视窗编程和多任务编程的方便接口,开发出来的软件具有完善的数据采集、设定、报警、实时监视等功能。应用结果表明,该系统有效的实现了对温度控制系统的监控,效果良好。

  二. 系统结构

  该智能仪表功能较为完善,控制精度高。自带RS422A通信卡,通信命令多达一百多条,上传及接受数据量大,主要包括各步温度设定值、PID参数值、报警参数值、传感器修正值、模糊控制参数值等等。现场总线采用RS422A总线,因为RS422A总线具有结构简单、成本低廉安装方便等优点。智能仪表挂接在 RS422A总线上,通过RS422A/232C装换器和PC串口相连接。为此配置有十几台(可扩展)智能仪表,RS422A/232C转换器一块,并且每一台仪表设置唯一的地址。温度的控制由下位机(智能仪表)完成。主控计算机完成的功能有1)主动读取下位机相关数据2)改变温度控制的设定值以及其它的参数,但不直接完成对温度的控制。3)显示温控曲线画面,温控仪集中显示画面以及报警数据等的动态显示。4)数据的存储,统计,报表等。系统的硬件结构图如图1所示。

系统的硬件结构图

图1 系统的硬件结构图

  三. 通信协议

  1) 物理层采用平衡型标准RS422接口 ,以提高数据传输的可靠性。在平衡型标准RS422A中,

  发送器与接收器均以差分方式工作 ,每个信号用两根导线传输 ,信号的电平由两根导线上的信号的差值来表示。

  2) 数据链路层本系统采用异步串行通信方式。系统约定,波特率:9600bps,偶校验,1个起始位,7个数据位,1个停止位,采用ASCII码作为传输代码。总线上的传输帧分为命令帧和数据帧。命令帧又分为为建立连接包含地址信息的地址命令帧和对已建立连接要求上传或者下传数据的控制命令帧。后者和数据帧的文本格式如下:

后者和数据帧的文本格式

  3)网络层由PC机实现该层协议的功能。总线上的传输帧中,地址命令帧是控制PC机以广播的形式发出,用于唤醒总线上的某台仪表,握手请求与之建立通信关系,然后相应的仪表向控制PC机回传本机地址,则握手成功;否则仪表向PC机回传否定应答。当PC机要和目前通信的仪表以外的其他仪表通信时,必须首先放弃目前的通信关系,发送放弃通信命令帧。然后再从新按照上述方式建立连接。建立连接,放弃连接以及温控仪的应答格式如下所示:

放弃连接以及温控仪的应答格式

  其中ENQ ﹑EOT ﹑ACK 为控制码 结束码表示一帧的结束

  4)应用层 工业智能仪表的RS422A总线网络系统的应用层,是对控制PC机与智能仪表之间相互传送的信息组帧,即数据格式按照一定的格式和含义进行定义。

  四. 系统软件设计

  系统管理软件采用面向对象技术,基于Windows2000平台,用VC++6.0编程开发。系统应用软件由实时动态过程和历史记录浏览两大部分组成,实时动态过程包括数据采集及设定、运行控制、数据管理三大模块组成,数据采集及设定模块定时从下位机即智能仪表采集和设定过程实时数据。控制模块主要是控制仪表的运行或停止等以及运行段选择,数据管理模块包括数据通信、数据显示、报警、打印、存储等功能。

   根据实时系统的特征,监控软件中多个任务同时运行,为了不让一个任务执行的时候,阻塞别的任务,我们充分里了Windows系统允许多进程、多线程编程的特点,将系统的分成几个模块。首先,将历史纪录浏览和实时动态过程分成两个进程,因为这两个过程有很大的差别。历史纪录浏览中的数据是静态的,对实时性没有要求,而且可以在生产过程之中或之后运行都可以,在开发这部分程序时,可以不用考虑时间的问题。实时动态过程却是一个实时性要求很高的任务,在这个过程中主要要完成通信、显示、控制、打印等任务,另外还要完成数据的转储。

  (1) 动态进程设计

  线程一词指程序指令顺序的执行,每个程序独立执行程序代码中的一系列指令。从用户或应用程序编程的角度看,程序中的线程是同时运行的。操作系统通常靠线程与线承建的快速切换控制来达到这种同时的感觉(但如果计算机有多个处理器,则系统可以直接同时执行线程)。程需要在某个时间完成多个任务时(许多引用程序都是这样),将每个任务放在不同的线程中不仅使程序更加有效,而且能简化开发工作。

  在设计实时动态进程时我们把它分成了两个线程:主线程和通信线程。主线程定时启动通信线程,通信线程执行完一次通信任务后自动悬挂。在正常情况下,主线程两次恢复通信线程之间的时间是能够保证一次通信线程的完整执行。

  在数据存储方面,为了提高系统的动态性能,要求能快速访问数据存储区,我们将数据存放在两个地方。正在进行的生产过程的过程数据首先存放在内存开辟的数据缓冲区内,这样主线程能很快的访问到。另外,将几次通信的数据定期存放到硬盘上,这样能防止因停电等意外事故造成数据的损失。

  在程序设计时我们采用了面向对象设计的思想,比如我们把温控仪看成一个对象,有关的数据结构及其操作完全封装在一个类里面,这样程序的数据结构分离也可以实现分离,这对于软件的扩展,对于软件开发和调试都会带来极大的方便。

  该软件主要实现方式如下:

  在重载的void CRS422AnetView::OnDraw(CDC* pDC)函数里面调用自定义函数StartOfSystem(pDC),后者打开并配置好串口,启动通信线程,设置记时器等。其主要代码如下:

  void CRs422AnetView::StartOfSystem(CDC *pDC)

  {

  ……

  m_hCom=CreateFile(m_sPort, GENERIC_READ | GENERIC_WRITE, 0, NULL,

  OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED,NULL);

  if(m_hCom==INVALID_HANDLE_VALUE)

  return FALSE;

  DCB dcb;

  if(!GetCommState(m_hCom, &dcb)) return FALSE;

  dcb.fBinary=TRUE;

  dcb.BaudRate=m_nBaud;

  dcb.ByteSize=m_nDataBits;

  dcb.fParity=TRUE;

  dcb.Parity=EVENPARITY;

  dcb.StopBits=ONESTOPBIT;

  return SetCommState(m_hCom, &dcb);

  ……//以上为打开并配置串口代码

  SetTimer(1,5000,NULL); //启动定时器,定时间隔为5妙

  CwinThread*m_pThreadd=AfxBeginThread(CommProc,this->GetDocument(), THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED, NULL); // 创建并挂起线程

  if(m_pThreadd==NULL)

  {

  CloseHandle(m_hCom);

  return FALSE;

  }

  else

  {

  m_bConnected=TRUE;

  m_pThreadd->ResumeThread(); // 恢复线程运行

  }

  ……

  }

   UINT CommProc(LPVOID pParam)为辅助通信线程,该线程完成设定值以及动态数据的读取,其程序流程图如下所示:

程序流程图

  void CRS422AnetView::OnTimer(UINT nIDEvent)为响应计时器消息的函数,定时被触发,本程序中定时间隔为5秒。在该函数里,主要是恢复辅助通信线程以及调用数据显示程序﹑定时刷新数据等。

  (2) 历史纪录浏览进程设计

  历史纪录的浏览是为了对过去生产过程的回顾,可将产品的质量和过程的设定结合起来进行分析,对以后的生产提供参考,以便能提高产品的生产质量。这个进程提供了一定的查询功能,能将历史纪录用曲线的方式回放出来,能将重要的过程锁定下来,也能删除过程纪录。

  五. 结束语

  本文介绍的基于RS422A现场总线的温控网络系统已经在现场运行了较长时间,系统运行稳定可靠,充分发挥了网络管理的便捷优点,提高了生产效率。显然,对于一些中、小规模的测控系统,采用RS422A是一个很好的选择。

关键字:网络控制系统  RS422A总线  实时性  多线程 引用地址:基于RS422A现场总线的温控网络控制系统

上一篇:基于CAN总线的电气火灾监控系统设计
下一篇:CAN总线在电梯远程监控系统中的应用

推荐阅读最新更新时间:2024-03-30 21:29

焦炉集气管压力模糊神经网络控制系统
摘要:针对焦炉集气管压力这类多变量非线性系统,提出一种基于模糊神经网络的智能协调控制方案。应用遗传算法对模糊神经网络结构和参数进行优化,并采用PLC的逻辑梯形图语言编程实现智能协调运算。工程应用表明了系统设计的有效性。 关键词:可编程控制器 模糊神经网络 智能控制 焦炉集气管压力控制是焦炉控制的关键之一。压力大时焦炉冒烟严重,近距离不能看清设备,大量焦炉媒气进入空气中,污染环境;压力小时空气吸入严重,影响焦炉寿命和焦炉煤气质量。因此,采用先进控制手段,对焦炉焦气管压力进行长期稳定控制,对于改善环境、提高煤气回收量和质量、提高焦炉辅助产品产量和质量,具有重要的意义。焦炉集气管控制系统的主要问题有: (1)焦炉集气管压力系统是一
[应用]
基于Windows CE的心电图机软件系统的设计与实现
0 引言   据世界卫生组织的数据,心血管病已经成为造成全球人口死亡的主要因素。由于心电图检查在诊断此病上具有准确可靠、方法简便、对病人无损害等特点,在临床上被广泛应用。然而目前普遍采用的基于PC机平台的心电图机,虽功能全面,但体积庞大、成本较高。而市场上便携式心电图机大多采用低档单片机实现,无操作系统,处理能力弱,功能简单,只能进行心电信号的采集、显示与简单的数据处理,人机界面不友好。随着大规模的专用集成电路和计算机芯片的发展,基于32 bit微处理器的嵌入式系统以低成本、较高的性能和可靠性等诸多优势,应用日益广泛。基于这种现状,本文提出了一款高性能、多功能的便携式心电图机,采用AU1250处理器与Windows CE操作系统
[医疗电子]
基于Windows CE的心电图机软件系统的设计与实现
Linux 补丁显示龙芯 3A6000 系列处理器将支持同步多线程 SMT 技术
龙芯中科此前透露,龙芯 3A6000 已流片回来,但仅经过初步测试,后续还有性能摸底、优化与产品化的过程,而且完成产品化计划需要半年到一年的时间。 自上月开始,龙芯工程师已经为 Linux 进行适配,以便在其即将推出的 3A6000 系列处理器上稳定运行 Linux。 龙芯近日发布了新的 Linux 补丁,表明龙芯 3A6000 处理器将支持同时多线程(SMT) 技术。类似于常见的英特尔、AMD 和 POWER 处理器,SMT 可使逻辑核心数量翻倍,即 4 核 8 线程这类形式。 同时多线程(Simultaneous multithreading,SMT)也称同步多线程,英特尔营销术语即“超线程”,是一种提高具有硬件多
[嵌入式]
无线传感器网络之LED景观照明控制系统的方案
太阳能LED照明系统作为绿色能源近年来得到广泛应用,介绍了一种基于传感器网络、简单可靠、部署方便的太阳能景观照明控制系统,基于ZigBee无线传感器网络架构实现系统内照明单元的光强及色彩控制,使用轮询机制解决各照明单元状态实时采集以及广播帧同步协同照明单元完成场景转换,所有系统信息通过GPRS网络由上位机控制软件集中处理。 LED灯与传统照明光源相比具有功耗低、寿命长、响应速度快、无辐射、可高频开关闪断,调光方便等优点,是景观照明的重要选择之一。目前,太阳能LED景观照明系统在城市广场、主体公园等领域得到越来越广泛的应用。本文介绍的基于无线传感器网络广场景观照明系统实现了远程控制LED灯的开关、光强、色彩,可灵活构建多个景观场
[嵌入式]
风河公司将支持Sun公司UltraSPARC下一代多内核处理器
全球领先的设备软件优化( DSO )厂商风河系统公司日前宣布, Wind River 网络设备平台 Linux 版( Wind River Platform for Networking Equipment, Linux Edition )将被针对 Sun 微系统公司推出的新一代 UltraSPARC  T1 处理器进行优化并提供全面支持。风河先进的运行时( run-time )平台与 Sun 全新的开源 64 位多线程处理器架构的完美结合,将极大地改善高端 ATCA 应用的性能,为电信级设备供应商( TEM )和网络设备供应商( NEP )构建下一代计算密集型( compute
[焦点新闻]
基于TCP/IP的多线程通信及其在远程监控系统中的应用
      摘 要: 提出了一种在Windows NT下基于TCP/IP协议的多线程通信的设计与实现方法,在此基础上给出了多线程通信在蓄电池远程监控系统中的应用实例。       关键词: 多线程 实时性 TCP/IP协议 远程监控系统        传统的应用程序都是单线程的,即在程序运行期间,由单个线程独占CPU的控制权,负责执行所有任务。在这种情况下,程序在执行一些比较费时的任务时,就无法及时响应用户的操作,影响了应用程序的实时性能。在监控系统,特别是远程监控系统中,应用程序往往不但要及时把监控对象的最新信息反馈给监视客户(通过图形显示),还要处理本地机与远程机之间的通信以及对控制对象的实时控
[测试测量]
利用MIPS多线程处理器优化SoC设计
   多线程 是一种基于硬件或软件的处理技术,它的首要目标是计算型工作中利用并发来提高性能。多线程也可以用于区别各种任务,以便可以将优先权分配给更多时间敏感的流量,如语音、视频或关键数据。而公认的基于软件的多线程技术,如任务切换和基于软件的线程调度已经存在了相当一段时间,很少有人知道基于硬件的多线程的历史。基于硬件的多线程技术其实已经存在了相当长一段时间,其实现可以追溯到20世纪60年代的CDC6600。在CDC6600电脑中,10个硬件线程被用来保证从I/O 处理器 到约16个外围设备的响应时间。这个例子的处理器运行速度远远超过了许多I/O设备,是一个充分利用多线程优势的典型应用,因为空闲处理时间可以被从线程到线程切换的有益工作所
[汽车电子]
利用MIPS<font color='red'>多线程</font>处理器优化SoC设计
通过任务分割提高嵌入式系统的实时
摘要:分析长任务对嵌入式系统实时性的影响,在此基础上提出任务分割是提高嵌入式系统实时性的一种有效途径;总结长任务分割的方法,给出一个通过任务分割提高嵌入式系统实时性的实例。 关键词:嵌入式系统 实时内核 时间片 任务分割 引言 随着工业的飞速发展,人们对系统实时性的要求越来越高。计算机技术的进步客观上也为进一步提高实时性提供了可能。因此近年来,嵌入式实时系统的研究已经成为单片同应用领域的又一大热点,实编排软件也越来越多,有商业软件,也有免费的代码。然而影响系统实时性的因素很多,有硬件,也有软件的。这就决定了提高系统的实时性并不是一件十分容易的事情,除了使用高性能的CPU和高效的实时内核外,在实时系统应用的过程中,还要结合具体
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新工业控制文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved