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

时间:2009-09-02来源:网络
 该软件主要实现方式如下:

  在重载的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秒。在该函数里,主要是恢复辅助通信线程以及调用数据显示程序p定时刷新数据等。

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

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

五. 结束语

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

1 2

关键词: 网络 控制系统 温控 总线 RS422A 现场 基于 CAN

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版