关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 基于RS422A现场总线的温控网络控制系统

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

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

本文引用地址:https://www.eepw.com.cn/article/163597.htm

  在重载的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) 历史纪录浏览进程设计

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

五. 结束语

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


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭