搜档网
当前位置:搜档网 › 上位机界面编程

上位机界面编程

上位机界面编程
上位机界面编程

首先,我们来大概的回忆一下单片机的串口通信。

8051单片机的串行接口由数据缓冲寄存器SBUF、移位寄存器、串行控制寄存器SCON组成。8051单片机的串行接口是一个可编程的全双工通信接口,通过软件编程可以作为通用异步接收和发送器使用,也可作为同步移位寄存器,还可实现多机通信。其帖格式有8位、10位和11位,通过T1或T2设置各种波特率。

1.1 串行口工作原理

在发送和接收数据前,先对串行口进行初始化设置,要明确串行口的工作方式、波特率等。

1.发送数据

发送数据,由累加器A送入发送缓冲寄存器SBUF,在发送控制器控制下组成帧结构,并自动以串行方式从TXD输出,每发送完一帧TI置位,可以通过中断方式或查询方式来了解数据的发送情况。值得注意的是TI只能用软件复位。

2.接收数据

单片机每接收完一帧数据,RI置位,通过中断或查询方式来了解数据的接收情况,然后用MOV A,SBUF指令,将接收缓冲寄存器(SBUF)的值送累加器A。RI与TI一样,也只能用软件复位。

1.2串行口工作方式

8051单片机通过编程可选择4种串行通信工作方式。

1.方式0

在方式0下,串行口用作同步移位寄存器,以8位数据为1帧,先发送或接收最低位,每个机器周期发送或接收1位,其波特率为fosc/12。串行数据由RXD端输入或输出,同步移位脉冲由TXD端送出。方式0数据发送与接收是无起始位和停止位,先发送或接收最低位,数据格式为:

—D0 D1 D2 D3 D4 D5 D6 D7

2.方式1

在方式1下,串行口为10位通用异步接口,数据格式为:——0 D0 D1 D2 D3 D4 D5 D6 D 7 1 ——

发送数据:当执行MOV SBUF,A指令,CPU将1字节的数据写入发送缓冲寄存器SBUF,数据从引脚TXD端输出,当发送完1帧数据后,TI标志置1,可用中断或查询方式来了解数据发送情况,TI只有通过软件复位。

接收数据:接收时,先使REN置1,使串行口处于允许接收状态,RI标志为0,串行口采样到RXD由1到0时,确认是起始位0,就开始接收1帧数据。当停止位到来时,RB8位置1,同时,中断标志位RI也置1,用中断或查询方式,通知CPU从SBUF取

走接收到的数据。

3.方式2和方式3

方式2和方式3均为11位异步通信方式,只是波特率的设置方法不同,数据格式为:

—0 D0 D1 D2 D3 D4 D5 D6 D7 D8 1 ——

发送数据:发送前,先要根据能信协议由软件设置TB8,然后将要发送的数据写入SBUF即可启动发送器。

接收数据:接收时,先使REN置1,使串行口处于允许接收状态,RI标志为0。在满足这个条件的前提下,再根据SM2的状态和所接收到的RB8的状态,才能决定此串行口在信息到来后是否会使RI置1。如果置1,在中断方式下将申请中断,接收数据。

当SM2=0时,不管RB8为0还是为1,RI都置1,此串行口将接收发来的信息。

当SM2=1,且RB8为1时,表示在多机能信情况下,接收的信息为地址帧,此时RI置1。串行口将接收发来的地址。

当SM2=1,且RB8为0时,表示接收到的信息为数据帧,便不是发给本从机的,此时RI不置1,因而SBUF中所接收的数据帧将丢失。

4.多机通信

在方式2和方式3下,有一个专门用于多机通信的功能,这一功能使它可以方便地应用于集散分布系统中,这种系统采用一台主机和多台从机之间通信。多机通信的实现,主要靠主、从机之间正确地设置与判断多机通信控制位SM2和发送或接收的第9位数据位。

在硬件上,所有从机的TXD接主机的RXD,所有从机的RXD 接主机的TXD。在编程序前,首先要给从机地址编号,如分别为00H、01H、02H等,主机设置在工作方式2或方式3,TB8=1,从机初始化时设置SM2=1,处于方式2或方式3的允许接收状态。主机与从机通信前,主机先发送一个地址字节(地址字节和数据字节可用第9位数据位来区别,第9位为1表示发送的是地址)给从机,从机接收到主机发来的信息时,第9位RB8若为1,则置位中断标志位RI,并在中断后判断主机送来的地址与本机是否相同,若相同,则被寻址的从机设置成SM2=0,准备接收即将从主机送来的数据帧,未被选中的从机保持SM2=1的状态。

当主机发送数据时,应置TB8为0,此时,虽各从机处于接收状态,但由于TB8=0,所以只有SM2=0的从机才接收数据,其余从机保持SM2=1状态。

1.3 串行口控制

串行口控制与串行口控制寄存器SCON、电源控制寄存器

PCON、串行口发送/接收缓冲区SBUF中断允许寄存器IE、中断优先级、定时控制寄存器TCON及方式控制寄存器TDOM有关。

1.串行控制寄存器SCON

SCON是一个可位寻址的专用寄存器,地址为98H,用于串行数据通信的控制,位功能如下:

SM0 SM1 SM2 REN TB8 RB8 TI RI

SM0、SM1:串行口工作方式选择位。工作方式的选择如表8.1所示下。

表8.1 串行口工作方式

SM0 SM1 工作方式功能波特率

0 0 0 同步移位寄存器FOSC/12

0 1 1 8位格式2SMOD/32×T1溢出率

1 0

2 9位格式FOSC/32 或FOSC/64

1 1 3 9位格式2SMOD/32×T1溢出率

SM2:多机通信控制位。

在方式2或方式3下,如果SM2=1,当RB8=1(RB8为收到的第9位数据),接收数据送SBUF,并产生中断请求(RI=1),

否则丢失8位数据。

在方式2或方式3下,如果SM2=0,无论RB8=0或1,接收数据装入SBUF,并产生中断(RI=1)。

在方式1下,如果SM2=1,则只有接收到有效的停止位时,才激活RI;如果SM2=0,接收一帧数据,停止位进处RB8,数据进入SBUF,才激活RI。

在方式0下,SM2只能为0。

REN:允许接收位。由软件置位或清0。REN=1,允许接收;REN=0,禁止接收。

TB8:发送数据位。在方式2或方式3下,将要发送的第9位数据放在TB8中。可根据需要由软件置位或复位。在多机通信中,TB8=0表示主机发送的是数据,TB8=1表示主机发送的是地址。

RB8:接收数据位。方式0不使用这位。方式1下,如果SM2=0,RB8的内容是接收到的停止位。在方式2或方式3下,存放接收到的第9位数据。

TI:发送中断标志位。在方式0下,发送完第8位数据时,TI=1。在其它方式下,开始发送停止位时,TI=1。在任何工作方式下TI 必须由软件清0。

RI:接收中断标志位。在方式0下,接收完第8位数据时,RI=1。在其它方式下,接收到停止位时,RI=1。在任何工作方式下RI也必须由软件清0。

2.串行口波特率设置

串行口波特率设置与串行口工作方式及定时控制寄存器TCON、方式控制寄存器TDOM及电源控制寄存器有关。

(1).T溢出率的计算

在串行通信方式1和方式3下,使用定时器T作为波特率发生器。T可以工作于方式0、方式1和方式2,由于定时器方式2是具有自动重装功能的8位定时器,因此常选用它。

溢出周期=(12/fosc)*(256--X) ;式中X为定时器初值,fosc 为晶振频率。

溢出率=1/溢出周期

(2).波特率的计算

(1)方式0和方式2的波特率

方式0的波特率=fosc/12

方式2的波特率=(2SMOD/64)×fosc

(2)方式1和方式3的波特率

方式1和方式3的波特率=2SMOD×fosc/[32×12(256-X)] (3).波特率的设置

TMOD:工作在方式2

PCON:只有工作在方式1、2、3时,如果PCON的SMOD为高电平,则通信整度加倍。

SMOD ———

农民也学单片机2009-05-02 10:12 好,串口通信的基本概念和通信规则我们已经大概的有一个了解了,相信大家都已经熟记在心了。下面,我们开始编写上位机了。先让我们来了解一下串口通信上位机编写的方法有哪些以及要用到哪些技术,其实到现在为止我自己也是一窍不通,也没有具体的书参考,先我们还是这样画葫芦画下去吧,本人对VC的研究也不是很透彻,还得去学好C++,不过一步一步慢慢来吧,告诉自己坚持到底,要坚持到底!

方法一:使用VC++提供的串行通信控件MSComm 首先,在对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project --> Add to Project --> Components and Control插入即可,再将该控件从工具箱中拉到对话框中。此时,你只需要关心控件提供的对Windows 通讯驱动程序的

API 函数的接口。换句话说,只需要设置和监视MSComm控件的属性和事件。

---- 在ClassWizard中为新创建的通信控件定义成员对象(CMSComm m_Serial),通过该对象便可以对串口属性进行设置,MSComm 控件共有27个属性,这里只介绍其中几个常用属性:

---- CommPort 设置并返回通讯端口号,缺省为COM1。

---- Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。

---- PortOpen 设置并返回通讯端口的状态,也可以打开和关闭端口。

---- Input 从接收缓冲区返回和删除字符。

---- Output 向发送缓冲区写一个字符串。

---- InputLen 设置每次Input读入的字符个数,缺省值为0,

表明读取接收缓冲区中的全部内容。

---- InBufferCount 返回接收缓冲区中已接收到的字符数,将其置0可以清除接收缓冲区。

---- InputMode 定义Input属性获取数据的方式(为0:文本方式;为1:二进制方式)。

---- RThreshold 和SThreshold 属性,表示在OnComm 事件发生之前,接收缓冲区或发送缓冲区中可以接收的字符数。

---- 以下是通过设置控件属性对串口进行初始化的实例:

BOOL CSampleDlg::

PortOpen(){BOOL m_Opened; ......

m_Serial.SetCommPort(2); // 指定串口号

m_Serial.SetSettings("4800,N,8,1"); // 通信参数设置m_Serial.SetInBufferSize(1024); // 指定接收缓冲区大小m_Serial.SetInBufferCount(0); // 清空

接收缓冲区m_Serial.InputMode(1); // 设置

数据获取方式

m_Serial.SetInputLen(0); // 设置读取方式

m_Opened=m_Serail.SetPortOpen(1); // 打开指定的串口return m_Opened; }

---- 打开所需串口后,需要考虑串口通信的时机。在接收或发送数据过程中,可能需要监视并响应一些事件和错误,所以事件驱动是处理串行端口交互作用的一种非常有效的方法。使用OnComm 事件和CommEvent 属性捕捉并检查通讯事件

和错误的值。发生通讯事件或错误时,将触发OnComm 事件,CommEvent 属性的值将被改变,应用程序检查CommEvent 属性值并作出相应的反应。在程序中用ClassWizard为CMSComm控件添加OnComm消息处理函数:

void CSampleDlg::OnComm(){ ...... switch(m_Ser ial.GetCommEvent()) { case 2: // 串行口数据接收,处理;}}

---- 方法二:在单线程中实现自定义的串口通信类

---- 控件简单易用,但由于必须拿到对话框中使用,在一些需要在线程中实现通信的应用场合,控件的使用显得捉襟见肘。此时,若能够按不同需要定制灵活的串口通信类将弥补控件的

不足,以下将介绍如何在单线程中建立自定义的通信类。

---- 该通信类CSimpleComm需手动加入头文件与源文件,其基类为CObject,大致建立步骤如下:

---- (1) 打开串口,获取串口资源句柄

---- 通信程序从CreateFile处指定串口设备及相关的操作属性。再返回一个句柄,该句柄将被用于后续的通信操作,并贯穿整个通信过程。CreateFile()函数中有几个值得注意的参数设置:串口共享方式应设为0,串口为不可共享设备;创建方式必须为OPEN_EXISTING,即打开已有的串口。对于dwFlagAndAttribute参数,对串口有意义的值是

FILE_FLAG_OVERLAPPED,该标志表明串口采用异步通信模式,可进行重叠操作;若值为NULL,则为同步通信方式,在同步方式下,应用程序将始终控制程序流,直到程序结束,若遭遇通信故障等因素,将导致应用程序的永久等待,所以一般多采用异步通信。

---- (2)串口设置

---- 串口打开后,其属性被设置为默认值,根据具体需要,通过调用GetCommState(hComm,&dcb)读取当前串口设备控制块DCB(Device Control Block)设置,修改后通过SetCommState(hComm,&dcb)将其写入。再需注意异步读写的超时控制设置,通过COMMTIMEOUTS结构设置超时,调用SetCommTimeouts(hComm,&timeouts)将结果写入。以下是温度监控程序中串口初始化成员函数:

BOOL CSimpleComm::Open( ) { DCB

dcb;m_hIDComDev=CreateFile( "COM2",

GENERIC_READ |

GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTR IBUTE_NORMAL|FILE_FLAG_OVE RLAPPED,

NULL ); // 打开串口,异步操作if( m_hIDComDev == NULL ) return( FALSE );dcb.DCBlength =

sizeof( DCB );GetCommState( m_hIDComDev,

&dcb ); // 获得端口默认设置

dcb.BaudRate=CBR_4800;dcb.ByteSize=8;dcb.Parity = NOPARITY;dcb.StopBits=(BYTE) ONESTOPBIT; ...... }

---- (3)串口读写操作

---- 主要运用ReadFile()与WriteFile()API函数,若为异步通信方式,两函数中最后一个参数为指向OVERLAPPED 结构的非空指针,在读写函数返回值为FALSE的情况下,调用GetLastError()函数,返回值为ERROR_IO_PENDING,表明I/O操作悬挂,即操作转入后台继续执行。此时,可以用WaitForSingleObject()来等待结束信号并设置最长等待时间,举例如下:

BOOL bReadStatus; bReadStatus =

ReadFile( m_hIDComDev, buffer, dwBytesRead,

&dwBytesRead, &m_OverlappedRead ); if(!bRea dStatus) { if(GetLastError()==ERROR_IO_PENDI NG) { WaitForSingleObject(m_OverlappedRead. hEvent,1000); return

((int)dwBytesRead); } return(0); } return ((int)dwBytesRead);

---- 定义全局变量m_Serial作为新建通信类CSimpleComm的对象,通过调用类的成员函数即可实现所需串行通信功能。与方法一相比,方法二赋予串行通信程序设计较大的灵活性,端口的读写可选择较简单的查询式,或通过设

置与外设数据发送时间间隔TimeCycle相同的定时器:SetTimer(1,TimeCycle,NULL),进行定时读取或发送。

CSampleView:: OnTimer(UINT

nIDEvent) { char InputData[30]; m_Seri al.ReadData(InputData,30); // 数据处理}

---- 若对端口数据的响应时间要求较严格,可采用事件驱动

I/O读写,Windows定义了9种串口通信事件,较常用的有:

---- EV_RXCHAR: 接收到一个字节,并放入输入缓冲区。

---- EV_TXEMPTY: 输出缓冲区中的最后一个字符发送出去。

---- EV_RXFLAG: 接收到事件字符(DCB结构中EvtChar成员),放入输入缓冲区。

---- 在用SetCommMask()指定了有用的事件后,应用程序可调用WaitCommEvent()来等待事件的发生。SetCommMask(hComm,0)可使WaitCommEvent()中止。

---- 方法三多线程下实现串行通信

---- 方法一,二适用于单线程通信。在很多工业控制系统中,常通过扩展串口连接多个外设,各外设发送数据的重复频率不同,要求后台实时无差错捕捉,采集,处理,记录各端口数据,这就需要在自定义的串行通信类中创建端口监视线程,以便在指定的事件发生时向相关的窗口发送通知消息。

---- 线程的基本概念可详见VC++参考书目,Windows内部的抢先调度程序在活动的线程之间分配CPU时间,Win 32 区分两种不同类型的线程,一种是用户界面线程UI(User Interface Thread),它包含消息循环或消息泵,用于处理接收到的消息;另一种是工作线程(Work Thread),它没有消息循环,用于执行后台任务。用于监视串口事件的线程即为工作线程。

---- 多线程通信类的编写在端口的配置,连接部分与单线程通信类相同,在端口配置完毕后,最重要的是根据实际情况,建立多线程之间的同步对象,如信号灯,临界区,事件等,相关细节可参考VC++ 中的同步类。

---- 一切就绪后即可启动工作线程:

CWinThrea *CommThread =

AfxBeginThread(CommWatchThread, // 线程函数名(LPVOID) m_pTTYInfo, // 传递的参数THREAD_PRIORITY_ABOVE_NORMAL, // 设置线程优先级(UINT)

0, // 最大堆栈大

小(DWORD) CREATE_SUSPENDED , // 创建标志(LPSECURITY_ATTRIBUTES) NULL); // 安全性标志

---- 同时,在串口事件监视线程中:

if(WaitCommEvent(pTTYInfo->idComDev,&dwEvtMas k,NULL)) { if((dwEvtMask &

pTTYInfo->dwEvtMask )== pTTYInfo->dwEvtMask) { WaitForSingleObject(pTTYInfo->hPostEvent,0xFFF FFFFF); ResetEvent(pTTYInfo->hPostEvent); / / 置同步事件对象为非信号

态::PostMessage(CSampleView,ID_COM1_DATA,0 ,0); // 发送通知消息} }

---- 用PostMessage()向指定窗口的消息队列发送通知消

息,相应地,需要在该窗口建立消息与成员函数间的映射,用ON_MESSAGE将消息与成员函数名关联。

BEGIN_MESSAGE_MAP(CSampleView, CView)

//{{AFX_MSG_MAP(CSampleView)ON_MESSAGE(ID_ COM1_DATA,

OnProcessCom1Data) ON_MESSAGE(ID_COM2_DAT A,

OnProcessCom2Data) .....//}}AFX_MSG_MAPEND_M ESSAGE_MAP()

---- 然后在各成员函数中完成对各串口数据的接收处理,但必须保证在下一次监测到有数据到来之前,能够完成所有的中间处理工作。否则将造成数据的捕捉错误。

---- 多线程的实现可以使得各端口独立,准确地实现串行通信,使串口通信具有更广泛的灵活性与严格性,且充分利用了CPU时间。但在具体的实时监控系统中如何协调多个线程,线程之间以何种方式实现同步也是在多线程串行通信程序实现的难点。

MSComm控件的属性

(必须要熟悉的几个——CommPort:设置并返回通信端口号;Setting:以字符串的形式设置并返回数据传输速率、奇偶校验、数据比特、停止比特;PortOpen:设置并返回通信端口的状态,也可以打开和关闭端口;Input:从接收缓冲区返回和删除字符;Output:向传输缓冲区定一个字符串)

1)CommPort属性

void SetCommPort(short nNewValue); short GetCommPort();

这一属性设置并返回连接的串行端口号,Windows将会利用该串口和外界通信。在设计时,nNewValue可以设置成从

1~16的任何数(默认值为1)。但是如果用PortOpen属性打开一个并不存在的端口时,MSComm控件会产生错误68(设备无效)。

注意:必须在打开端口之前设置CommPort属性。

2)Settings属性

void Settings(LPCTSTR lpszNewValue); String GetSettings();

该属性用于设置并返回数据传输速率、奇偶校验、数据比特、停止比特参数。当端口打开时,如果value非法,则MSComm 控件产生错误380(非法属性值)。其中lpszNewValue用字符串表示,由四个设置值组成,有如下的组成格式:“BBBB,P,D,S”

BBBB为数据传输速率,P为奇偶校验,D为数据比特,S为停止比特。Value的默认值是:“9600,N,8,1”,数据传输速率合法值可以是110、300、600、1200、2400、4800、9600、14400、19200、28800、38400、56000、57600、115200、12800、25600。

奇偶校验值可以是设置为下表的任一值。

设定值描述

E偶校验(EVEN)

M标号校验(MARK)

N无校验(NONE)

O奇校验(ODD)

S空格校验(SPACE)

VC++_串口上位机编程实例

VC++串口上位机简单例程(源码及详细步骤) (4.33MB) VC++编写简单串口上位机程序 2010年4月13日10:23:40 串口通信,MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境等不少,VB、C#、LABVIEW等等,我会的语言很少,C语言用得比较多,但是还没有找到如何用C语言来写串口通信上位机程序的资料,在图书管理找到了用VC++编写串口上位机的资料,参考书籍,用自己相当蹩脚的C++写出了一个简单的串口上位机程序,分享一下,体验一下单片机和PC通信的乐趣。 编译环境:VC++6.0 操作系统:VMWare虚拟出来的Windows XP 程序实现功能: 1、PC初始化COM1口,使用n81方式,波特率57600与单片机通信。PC的COM口编号可以通过如下方式修改: 当然也可以通过上位机软件编写,通过按钮来选择COM端口号,但是此次仅仅是简单的例程,就没有弄那么复杂了。COM1口可用的话,会提示串口初始化完毕。否则会提示串口已经打开Port already open,表示串口已经打开,被占用了。 2、点击开始转换,串口会向单片机发送0xaa,单片机串口中断接收到0xaa后启动ADC转

换一次,并把转换结果ADCL、ADCH共两个字节的结果发送至PC,PC进行数值转换后在窗口里显示。(见文章末尾图) 3、为防止串口被一只占用,点击关闭串口可以关闭COM1,供其它程序使用,点击后按钮变为打开串口,点击可重新打开COM1。 程序的编写: 1、打开VC++6.0建立基于对话框的MFC应用程序Test,

2、在项目中插入MSComm控件:工程->增加到工程->Components and Controls->双击Registered ActiveX Controls->选择Microsoft Communications Control,version6.0->Insert,按

基于VB的上位机程序设计说明

3 基于VB6.0的上位机程序设计 内部培训资料(不得转载) 随着嵌入式系统在电子领域应用的不断深入,可视化的单片机控制与检测系统越来越成为单片机技术的应用热点。广泛应用到工业自动化生产、交通、医疗、教育和各种自动控制等领域,如心电监护、全方位视频跟踪监视。在这些复杂的数字系统中,计算机被称为上位机,通过上位机和相关的软件实现传感信号的检测和对外部设备的控制。利用计算机实现可视化的控制系统包括上位机程序设计、接口设计和单片机系统设计。 单片机相比较计算机而言又叫下位机,是直接对检测对象测量和控制的系统,有时也把接口与下位机设计在在一个系统中统称接口电路。基于计算机基础的上位机程序可以提高复杂的单片机控制系统的人机交互功能。 本项目设计的内容是一个简单的温度检测系统,上位机程序用来检测和显示单片机系统发送的数据,下位机是一个简单的温度检测系统,通过USB接口虚拟一个串口传输数据,上位机程序实时显示温度,并通过曲线的形式描绘出温度的变化过程。上位机程序VB6.0设计,程序执行后,上位机程序要定时向下位机即单片机系统发送指令,下位机在接到命令后就开始发送温度信息。上位机显示的温度曲线要能准确的表示当时的温度,误差不能超过5%,能过显示的温度范围在20摄氏度到80摄氏度之间。上位机程序两次接收的温度数据间隔控制在在1秒钟左右,能够显示的温度曲线的总时间在2分钟左右。 3.1 VB简单认识 VB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发Windows 环境下的各类应用程序。今天我们以VB6.0为基础,简单的认识VB,然后我们就可以利用VB这个强大的开发工具去开发我们需要的各类程序。 3.1.1 VB6.0基本操作 在Visual Basic安装成功之后,安装程序自动在【开始】菜单中建立V isual Basic 6.0的程序组和程序项。单击【开始】按扭,指向【所有程序】选项,再指向【Microsoft V isual Basic 6.0中文版】程序组,单击【Microsoft V isual Basic 6.0中文版】选项即可启动V isual Basic6.0中文版。 在VB6.0启动后,屏幕上将出现如图3-1所示的启动界面,在启动界面中会出现一个【新建工程】对话框。

MFC上位机软件设计

MFC上位机软件设计 VC++串口上位机简单例程(源码及详细步骤) VC++串口上位机简单例程(源码及详细步骤) VC++串口上位机简单例程.rar (4.33 MB) VC++编写简单串口上位机程序 2010年4月13日10:23:40 串口通信,MCU跟PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境等不少,VB、C#、LABVIEW等等,我会的语言很少,C语言用得比较多,但是还没有找到如何用C语言来写串口通信上位机程序的资料,在图书管理找到了用VC++编写串口上位机的资料,参考书籍,用自己相当蹩脚的C++写出了一个简单的串口上位机程序,分享一下,体验一下单片机和PC通信的乐趣。 编译环境:VC++6.0 操作系统:VMWare虚拟出来的Windows XP 程序实现功能: 1、 PC初始化COM1口,使用n81方式,波特率57600与单片机通信。PC的COM口编号可以通过如下方式修改:

当然也可以通过上位机软件编写,通过按钮来选择COM端口号,但是此次仅仅 是简单的例程,就没有弄那么复杂了。COM1口可用的话,会提示串口初始化完 毕。否则会提示串口已经打开Port already open,表示串口已经打开,被占用 了。 (a) to further cultivate and practice the socialist core value concept. Human civilization is the core and soul of the city. Created in deepening the urban civilization, to seize cultivation and practice the socialist core value concept of the fundamental task, to everyone talk about civilization, everywhere to see the civilization "as the goal, to promote the creation tasks implemented. First, we must deepen the Delhi City, good deeds sunshine" is the theme of moral practice, to build the brand of "Da Yi Ju, Houde good deeds" moral. Carefully create activity carrier, highlighting to create a theme, to carry out a wide range of "good side" recommended review activities, carry out moral model itinerant preachers and most beautiful people, the series of model characters selection Activities, aggressively push the tree to a group of people around to learn and amiable, respectable moral typical. To focus on the real refinement "good deeds for the four virtues list built, tubes, each link work; let the moral has become an important force for regulating the behavior of the citizens. A hand grasping the education, focusing on governance, the violation of public order, destruction of public facilities and other acts resolutely exposure. Second, we must deepen the activities to create a civilized. Actively carry out civilized units, township of civilization, civilized window created, and

上位机人机界面组态软件HMIMaker

上位机人机界面组态软件HMIMaker HMIMaker专为易显工控机(工控电脑),VGA工控机开发的的界面编辑设计软件! 具有绘图、按钮、位开关、字符控件、数据监控、实时曲线、动态图片、用户与密码设置等功能,完善的界面设计控件和通讯协议,使用简单,灵活,方便。只需用单机机或PLC通过串口简单发送指令,您的显示部分就一切轻松搞定!"所见即所得"、"0"代码!快速生成超炫图形界面设计,如"制作PPT"一样容易、快速!支持离线和在线模拟,快速验证您的设计效果,方便设计和调试,大大减轻软件开发人员在人机界面开发的负担和提高开发效率,专心于专业产品的开发,避免重复性劳动。为您大大地短了产品的开发周期。 HMIMaker组态软件有以下几方面的功能: (1)强大的界面显示组态功能。可视化的风格界面、丰富的工具栏,操作人员可以直接进人开发状态,节省时间。丰富的图形控仵和工况图库,既提供所需的组件,又是界面制作向导。提供给用户丰富的作图工具,丰富的动画连接方式,如隐含、闪烁、移动等等,使界面生动、直观。可随心所欲地绘制出各种工业界面,并可任意编辑,从而将开发人员从繁重的界面设计中解放出来。 (2)良好的开放性。指组态软件能与多种通信协议互联,支持多种硬件设备。开放性是衡量一个组态软件好坏的重要指标。组态软件向下应能与低层的数据采集设备通信,向上能与管理层通信,实现上位机与下位机的双向通信。 (3) 丰富的功能模块。提供丰富的控件功能库,满足用户的测控要求和现场需求。利用各种功能模块,完成实时监控产生功能报表显示历史曲线、实时曲线、提示报警等功能,使系统具有良好的人机界面,易于操作,系统既叫适用于单机集中式控制、DCS分布式控制,也可以是带远程遇信能力的远程测控系统. (4)强大的数据库。配有实时数据库,可存储各种数据,如模拟量、离散量、字符型等,实现与外部设备的数据交换。

51单片机与上位机串口通信程序设计

51单片机与上位机串口通信程序设计 1. 发送:向总线上发命令 2. 接收:从总线接收命令,并分析是地址还是数据。 3. 定时发送:从内存中取数并向主机发送. 经过调试,以上功能基本实现,目前可以通过上位机对单片机进行实时控制。程序如下: //这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的 #include< reg51.h> #include< stdio.h> #include< string.h> #define INBUF_LEN 4 //数据长度 unsigned char inbuf1[INBUF_LEN]; unsigned char checksum,count3 , flag,temp,ch; bit read_flag=0; sbit cp=P1^1; sbit DIR=P1^2; int i; unsigned int xdata *RAMDATA; /*定义RAM地址指针*/ unsigned char a[6] ={0x11,0x22,0x33,0x44,0x55,0x66} ; void init_serialcomm(void) { SCON=0x50; //在11.0592MHz下,设置串行口波特率为9600,方式1,并允许接收 PCON=0x00; ES=1;

TMOD=0x21; //定时器工作于方式2,自动装载方式TH0=(65536-1000)%256; TL0=(65536-1000)/256; TL1=0xfd; TH1=0xfd; ET0=1; TR0=1; TR1=1; // TI=0; EA=1; // TI=1; RAMDATA=0x1F45; } void serial () interrupt 4 using 3 { if(RI) { RI=0; ch=SBUF; TI=1; //置SBUF空 switch(ch) { case 0x01 :printf("A"); TI=0;break; case 0x02 :printf("B"); TI=0;break; case 0x03 :printf("C"); TI=0;break; case 0x04 :printf("D"); TI=0;break; default :printf("fg"); TI=0;break; } }

什么叫上位机

什么叫上位机,下位机啊,它们是干什么用的啊? #4

级:

‘’‘ PLC组态软件上位机软件 悬赏分:0 - 解决时间:2009-3-25 11:53 PLC组态软件和上位机软件是一回事吗? 提问者:562727077 - 二级最佳答案 组态软件包含了人机界面的功能和与PLC通讯的功能,可以直接编写程序后,使PLC的状态得到形象的体现,同时也可以对PLC下达指令。 上位机包含的意义更广,它不紧包含了组态软件,也可能是VC\VB之类编写的人机界面,或者是类似触摸屏之类的控制件。 因此两者概念不同,不过,通常人所提的上位机一般都指组态软件。

组态软件 百科内容来自于: 组态软件 是指一些数据采集与过程控制的专用软件,它们是在自动控制系统监控层一级的软件平台和开发环境,使用灵活的组态方式,为用户提供快速构建工业自动控制系统监控功能的、通用层次的软件工具。 组态软件应该能支持各种工控设备和常见的通信协议,并且通常应提供分布式数据管理和网络功能。对应于原有的HMI(人机接口软件,Human Machine Interface)的概念,组态软件应该是一个使用户能快速建立自己的HMI的软件工具,或开发环境。在组态软件出现之前,工控领域的用户通过手工或委托第三方编写HMI 应用,开发时间长,效率低,可靠性差;或者购买专用的工控系统,通常是封闭的系统,选择余地小,往往不能满足需求,很难与外界进行数据交互,升级和增加功能都受到严重的限制。组态软件的出现,把用户从这些困境中解脱出来,可以利用组态软件的功能,构建一套最适合自己的应用系统。随着它的快速发展,实时数据库、实时控制、SCADA、通讯及联网、开放数据接口、对I/O设备的广泛支持已经成为它的主要内容,随着技术的发展,监控组态软件将会不断被赋予新的内容。 国外组态软件 1、InTouch:Wonderware的InTouch软件是最早进入我国的组态软件。在80年代末、90年代初,基于Windows3.1的InTouch软件曾让我们耳目一新,并且InTouch提供了丰富的图库。但是,早期的InTouch软件采用DDE方式与驱动程序通信,性能较差,最新的InTouch7.0版已经完全基于32位的Windows平台,并且提供了OPC支持。 2、Fix:Intellution公司以Fix组态软件起家,1995年被爱默生收购,现在是爱默生集团的全资子公司,Fix6.x软件提供工控人员熟悉的概念和操作界面,并提供完备的驱动程序(需单独购买)。Intellution将自己最新的产品系列命名为iFiX,在iFiX中,Intellution提供了强大的组态功能,但新版本与以往的6.x版本并

上位机与下位机之间通信编程

摘要 本文主要描述了利用PC机与A T89C51单片机之间的通信程序设计实现温度显示。并详述了在VC6.0环境下,上位机利用MSCOMM通信控件与单片机之间串口通信实现温度显示。由单片机采集一个温度信号,将采集到的温度信号传送给PC机显示,PC机用VC6.0编写程序,单片机程序用C语言编写,最后用PROTUES软件进行仿真实现温度显示。 关键词:单片机MSCOMM控件VC6.0 AT89C51 温度显示

目录 摘要 1 引言 (1) 2 结构设计与方案选择 (2) 2.1设计任务 (2) 2.1.1单片机的选择 (2) 2.1.2电平转换 (2) 2.1.1单片机的选择 (2) 2.1.3单片机与pc机通信原理 (2) 2.2软件方案选择 (2) 2.2.1 上位机编程方案选择 (3) 2.2.2 单片机编程方案选择 (3) 2.3 总体方案选择 (2) 3 硬件设计 (8) 3.1单片机主要特性 (5) 3.2 MAX232电平芯片介绍10 (10) 3.3 硬件电路设计图 (11) 3.3.1 PC机与单片机通信接口电路设计框图 (11) 3.3.2整体设计原理图 (11) 4软件设计 (12) 4.1上位机程序设计 (12) 4.2下位机程序设计 (13) 5 软硬件调试部分 (21) 5.1 PROTEUS软件仿真 (21) 5.1.1 Protues简介 (21) 5.1.2 Protues仿真电路图 (22) 5.2 VC软件仿真 (21) 结束语 (27) 致谢 (28) 参考文献 (29)

1引言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。 现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。

6 OP27在上位机管理系统改造中的应用

全自动棒材打捆机诞生首钢 首钢自行研制的SG BD/800-1型全自动棒材打捆机,在首钢烟台东星公司诞生。经过20个月的实际生产考核表明,该产品设计合理,运行安全可靠,棒材捆扎紧实,维修方便,完全适应棒材连续生产线全自动打捆包装的要求。 主要用于型材、圆钢、螺纹钢等棒型材料精整包装的打捆机,是一种集机、电、液一体化,科技含量高的设备。随着棒材生产向着连续化、自动化、大型化发展,自动包装技术势在必行。近年来,国内一些钢铁企业已经陆续使用了棒材打捆机。但是,所用设备全是从国外引进的,国内尚无定型产品。 由北京首钢设计院牵头,机电公司、电子公司、首钢烟台东星公司和首钢型材厂参加的攻关小组,经过10个月的艰苦努力,全自动棒材打捆机研制成功,通过了国家冶金局组织的科技成果鉴定。专家们评价,“SG BD/800-1型全自动棒材打捆机,依据使用可靠原则,采用国内外先进技术,设计与制造工艺先进合理,在结构上有创新性改进,操作维护方便,符合规范要求,属国内领先,并达到国外同类产品水平。”建议“用该项成果替代进口产品,在国内棒材厂推广使用,并推向国际市场”。 目前,SG BD/800-1型全自动棒材打捆机获得了国家专利,已有10余台全自动棒材打捆机在生产中推广应用,取得了良好的经济效益。X04.04-03〔首钢矿业公司宣传部刘承军供稿 河北迁安市 064404〕⊙ 环保型金属镀膜液研制成功 最近,一种不用电、无污染,利用新型金属镀膜液代替电镀的新工艺,在山东省莱州工人文化宫府前科技中心研究成功。经实践证明,各项技术指标均优于传统工艺,填补了国内空白。 传统的电镀工艺,投资大,耗能多,污染严重,国家有关部门早已三令五申停止办理新建电镀厂,对不能处理三废的电镀厂,要求一律停产。所以,环境保护已成为当今中小电镀企业必须面对而又棘手的问题。 为了解决上述问题,山东省莱州市工人文化宫府前科技中心联合高等院校一起潜心研究,经无数次试验,终于研究成功这种不用电、无污染,能代替电镀的金属镀膜新工艺。 这种新工艺制成的金属镀膜液,是采用市场上来源广泛的化工原料,按科学配方混合而成。该液无毒无味,使用时不用直流电源,只要将预处理好的工件浸入到这种镀膜液中,浸泡20~40min,便能得到光亮如镜、永不生锈、像电镀一样的产品,且被处理的工件表面硬度提高2~3倍,耐酸碱,耐腐蚀,成本只有传统电镀铬的1/3,是目前代替电镀的理想方法,有着广阔的市场前景,值得在大范围推广应用。X04.04-04〔机械工业信息研究院赵广兴供稿 北京市西城区百万庄大街22号 100037〕③ 汽轮机轴封供汽压力调节系统改进 汽轮机运行中,轴封供汽压力控制系统出现了供汽压力与供汽调节门开度变化不一致、在阀门开启过程中压力存在跃变现象,特别是由辅汽联箱供汽切换为除氧器供汽的过程中,难以对该系统进行有效控制。同时,轴封压力调节系统控制环节上存在阀门动作滞后、调节压力波动大等缺陷,甚至导致手动调节亦无法控制,致使轴封供汽品质下降,进而影响汽轮机真空,严重影响机组的安全经济运行。为此,对轴封供汽压力调节系统进行了特性试验,有针对性地进行改进:(1)针对系统的阀门动作滞后、调节压力波动大的缺陷,利用稳定边界法对调节系统调节PI D参数进行计算整定。先把积分时间T I调至接近无穷大,微分时间T D调至最小值0,比例带δ调至较大值,将调节系统投入运行。然后改变δ进行调试,直至调节过程为等幅振荡为止;(2)针对工况突变造成调节系统超调现象而操作人员又不易发现,利用DCS增设偏差报警、采样点故障等逻辑判断功能,并以报警画面突出显示在CRT上,以提示操作人员及时作相关调整,防止事故发生,确保设备安全稳定;(3)利用DCS对调节系统PI D控制参数及方式进行合理限定,当调节系统或工况骤变时,跳出报警画面并使调节系统自动退出,终止自动调节,防止事态扩大,确保机组的安全及经济性。 轴封供汽压力调节系统改进后运行一年多的实践证明,整定后各项参数符合机组运行工况,调节机构动作灵活可靠,性能参数调整准确灵敏,轴封供汽品质明显提高,消除了轴封供汽质量对汽轮机真空的不良影响,使汽轮机真空度得到有效精密的控制,提高了机组的热效率。改造后机组的热效率提高015%,煤耗降低115g/kW?h,一年节约资金10万余元,经济效益可观。改进后的轴封供汽压力调节系统未再出现调节跃变现象,彻底消除了执行机构不易操作判断的缺陷,消除了汽机保护因此动作造成故障停机的事故隐患,提高了机组安全性。 X04.04-05〔山东武所屯生建电厂许开林、王新国、王秀锋供稿 山东滕州市姜屯镇 277521〕⑦ SET AP系列八角破碎精细筛 江苏省常州市通力机电制造有限公司开发设计一种新型破碎精细筛,该设备集破碎、粗筛、精细筛为一体,适用于铸造厂旧砂的净化与回收。 SET AP系列八角破碎精细筛主要由筛筒、机架、传动系统等组成。其筛筒呈八角形,筛网绷紧固定于八角筛筒上,在筛筒转动时,具有较好的抛射和反弹效果,有利于旧砂的破碎和透筛;筛筒分为三级,第一级破碎,第二级粗筛,第三级精细筛;筛网采用特制钢丝编织网,不仅不易粘砂,而且破碎分筛效果更好;用平行轴螺旋齿轮减速机直接带动主轴,这种传动系统结构简单、可靠、稳定性好;具有筛筒面积大、生产效率高、筛分精细、工作平稳、可靠等特点。X04.04-06〔江苏常州市通力机电制造有限公司高黎明供稿 江苏常州市五星乡新新村金家塘36号 213002〕⑨ OP27在上位机管理系统改造中的应用 荣事达电冰箱公司引进的意大利I M AB公司产冰箱门板成形线,自动化程度高,同时实现14个轴的自动定位。主机为西门子S7-300P LC,主站包括CPU-315DP、F M354、F M351、S M321、S M322、CP340等共13块模块。各工作台均由远程I/O模块,共 信 息设备管理与维修 2004№4 47 ? 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.

上位机设计方案

前言 在我国采用斜井开拓方式的矿井中,随着矿井的不断开采和延伸,井下作业地点距离越来越长。长期以来,职工只能步行,把大量体力和时间消耗在过程中。为此应切实解决井下作业人员体力和时间的武功消耗,确保井下作业的工作和工程质量。目前随着科技水平的不断提高,许多矿井都选用架空人车负担煤矿人员的运输。 基于物联网的矿山井下架空人车系统的基本功能是通过无线传输对车厢进行实现监控,车厢内的工作人员可以在意外事故发生后按下紧急按钮通知地面主控制室采取有效措施,防止灾难发生。 本设计是以组态王软件做为矿井架空人车无线监控系统上位机,完成之后,可以实现对轿厢内情况的视频监控、语音通信、报警以与3播放等功能。控制室可以通过上位机来监控轿厢机内的情况以与和任何一个轿厢进行语音通信,以实现控制室对每个轿厢内状态的监控。

1概述 1.1矿用架空人车的概况 矿用架空人车为矿山长距离安全快速地人员运输提供了经济使用的解决方案。其工作原理类似于地面旅游索道,它通过电动机传动减速机上的摩擦轮作为驱动装置,以架空、无极循环的钢丝绳作为牵引承载,此钢丝绳靠尾轮张紧装置进行张紧和绳长调节,沿途采用托绳支撑,以维持钢丝绳在托轮间的贴合力;抱索器将乘人抱索器或物料箱与钢丝绳连接并循环运行,从而实现运送人员与物料的目的。其优势能长期运输,实现无人值守和远程智能监控运行,无需专门操作司机,维护工作量较少。这种矿用架空人车与斜井人车运输相比较,具有更安全使用、运送能力大、动力消耗小,设备结构简单、维护工作量小等优点,深受井下工人的欢迎,大大提高了井下辅助运输的效率。 与国内快速发展的煤矿采掘机械化水平相比,矿井辅助运输明显落后,已成为制约我国煤炭生产发展的主要因素之一。利用架空乘人装置运送井下人员,减少工人上下班的时间和体力消耗,对矿井的高产高效起到推动作用。 矿用架空人车的最新发展方向呈现大运量、高速度、集中控制、稳定安全等特点。具有大运量、连续运输、连续变坡拐弯的特点,而且运行可靠,易于实现自动化和集中控制,经济效益十分明显。地下矿用架空人车也是煤矿乘人装置最为理想的高效连续辅助运输设备,特别是煤矿高产高效现代化的大型矿井,地下矿用架空人车已成为矿井辅助运输机电一体化技术与装备的关键设备。随着高产高效矿井的发展,矿用架空人车的各项功能指标有了很大提高。 1.2 研究目的和意义 斜井人车是运送现场作业人员的重要设备,其工作性能既关系到安全生产,又影响设备的效率。传统的斜井人员运输,多是采用斜井绞车拖动斜井人车,工作效率低,影响行车安全的因素多,运行和维护成本高。因此,采用巷道内的架空运人缆车对原系统进行改造是一个理想的技术方案。缆车运人系统的电机功率远远小于绞车的电机功率,可节约大量的电能,降低运行成本,系统的结构简单,维护方便,并且能够连续工作,运人效率高。

单片机上位机界面编程软件一览

目前用在单片机嵌入式上位机编程的开发工具有很多,让很多刚入门的工程师们无所适从。那么用来编写单片机嵌入式上位机的工具有那几款呢?下面小编为大家细数一下使用最普遍的几款。 (1)LabVIEW:是NI推出的,和C和BASIC开发环境类似,但是LabVIEW与其他计算机语言有很大区别,其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。特点是:采用了通用的硬件,可以通过改变软件在计算机上实现多种仪器的功能。被公认为测试之王。 2)VB:是由Microsoft公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。 (3)VS:它是微软提供的一个工具集,由各种各样的工具组成。VS可以支持C/C++、VB、JAVA、C#编程。然了一次只能支持一种编程方式。在VS安装完成,第一次运行的时候会让你选择常用语言,如果你选择C/C++,那么他就成了能够进行C/C++编程的平台也许就是你所说的VC了。如果不想用C/C++的话,只需要修改一下他的初始化设置,选择别的编程语言,就成为了另一种的语言的编程环境了。所以总的来说它是一个集成平台。

真正地组件编程。基本上,Qt同X Window上的Motif,Openwin,GTK等图形界面库和Windows平台上的MFC,OWL,VCL,ATL是同类型的东西。

执法记录仪上位机后台管理软件使用手册资料

警用执法记录仪后台管理软件用户操作手册

1.0软件登录操作 双击程序“management.exe”进入登录界面,登录界面如图1-1所示,在连接设备时,将执法记录仪处于开机状态,然后使用随机配送的数据线连接到计算机上,接着输入密码(初始密码:12345678),点击【连接设备】按钮即可,连接成功后,【连接设备】按钮自动变成【断开设备】按钮如下图1-2。软件自动识别设备上设置设备ID和警员ID及通信模式(图1-2)。 图1-1 图1-2

图1-3 软件主界面 1.1. 设备操作 1、状态 当前显示设备ID、警员ID和运行模式。(图1-4)。 图1-4 2、密码 2.1 设备登陆密码修改 设备登入密码修改(默认是:12345678)如下图1-5-1,输入新密码 ,确认新密码,点击【OK】,那么设备登入密码修改成功。

图1-5-1 2.2 硬件解密密码修改 硬件解密密码是执法仪设备SD卡密码(默认是:123456),如下图1-5-2,输入新 密码,确认新密码,点击【OK】,那么硬件解密密码修改成功。 图1-5-2 3、设备ID 如下图1-6,修改为客户自己所需要的设备ID,按【确认】修改成功。 图1-6 4、警员ID 显示【当前警员ID】如下图1-7,【修改警员ID】为客户自己所需要的警员ID号如下图,按【OK】确认修改成功。

图1-7 5、时间 点击【同步到设备】按钮,成功显示同步时间(图1-8)。 图1-8 时间同步 6、分辨率设置 点击下拉框选择客户自己所需要的分辨率(此处可选720p和1080p),然后按【OK】确认修改成功,在设备重启后生效。 图1-9 7、复位 如下图所示输入管理员密码:联系生产商,然后按【确认】确认设备将恢复

上位机界面需求(参考)[1]

文档编号:20140227 记录仪通用上位机 上位控制机软件界面的功能需求 编制:贺燕国 审核: 批准:

上位控制机软件界面的功能需求 一、PC机的硬件、软件及界面组成 本PC机软件组成是:操作系统采用:windows2000以上,支持xp 和最新的 Win7和win8 编程语言选用:VB或其他 对硬件的基本要求:CPU: P4 ,内存: 256 M,硬盘 40 G,光驱: CD 。 显示界面分辨率:1024×768 PC机软件界面主要由6个大界面组成: 1、启动界面;2、功能选择界面; 3、头部治疗界面; 4、体部治疗界面; 5、系统工具界面; 6、文档管理子界面; 系统界面总体分布示意图如(图1)所示

图1

二、PC机软件界面细则 说明:凡界面带有括号的字符,仅作本书说明不作显示。1、启动界面,计算机通电启动后即到该界面,如图2所示。 图2 1.1选择“关于”按键后弹出如下菜单: 图3 1.1.1 公司简介:见附本一《公司简介》。 1.1.2 产品介绍:见附本二《产品介绍》。 1.2 选择“帮助”按键后弹出菜单如下: 图4 1.2.1操作说明:见附本三《系统操作说明》。 1.2.2治疗流程说明,见附本四《治疗流程说明》。

2、 选择启动界面中的“退出”控键,系统关闭。 3、 选择启动界面中的“进入”按键,会弹出如下对话框:图5 图5 3.1输入系统进入密码为六位以上数值或字母,密码数值不在界面输入框中显示,显示密码数值用“*”代替。 3.2 在对话框中选择“确定”,如果输入密码不正确,会弹出如下对话框(图6),操作和返回次数不作限制; 图 6 如果输入密码正确,系统将自动进入自检界面并显示“系统正在自检,请稍候……”此时系统的通讯建立。系统开始初始化自检。 图7 3.2.1如果系统自检时间超过3分钟,系统将视作不正常并提示(红色字)“系统自检错误!”选择“确定”控键后返回到启动界面。

单片机上位机界面编程软件一览(精)

目前用在单片机嵌入式上位机编程的开发工具有很多,让很多刚入门的工程师们无所适从。那么用来编写单片机嵌入式上位机的工具有那几款呢?下面小编为大家细数一下使用最普遍的几款。 (1LabVIEW:是NI推出的,和C和BASIC开发环境类似,但是LabVIEW与其他计算机语言有很大区别,其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。特点是:采用了通用的硬件,可以通过改变软件在计算机上实现多种仪器的功能。被公认为测试之王。 2VB:是由Microsoft公司开发的结构化的、模块化的、面向对象的、包含协助开发环境的事件驱动为机制的可视化程序设计语言。从任何标准来说,VB都是世界上使用人数最多的语言——不仅是盛赞VB的开发者还是抱怨VB的开发者的数量。它源自于BASIC编程语言。VB拥有图形用户界面(GUI和快速应用程序开发(RAD系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VB提供的组件快速建立一个应用程序。 (3VS:它是微软提供的一个工具集,由各种各样的工具组成。VS可以支持 C/C++、VB、JAVA、C#编程。然了一次只能支持一种编程方式。在VS安装完成,第一次运行的时候会让你选择常用语言,如果你选择C/C++,那么他就成了能够进行C/C++编程的平台也许就是你所说的VC了。如果不想用C/C++的话,只需要修改一下他的初始化设置,选择别的编程语言,就成为了另一种的语言的编程环境了。所以总的来说它是一个集成平台。 (4VC:是微软的C++开发工具,有集成开发环境,可提供编辑C语言,C++以及 C++/CLI 等编程语言。VC++有便利的除错工具,特别是包含了微软视窗程式设计(Windows API、三维动画DirectX API,Microsoft .NET框架,开发速度比较快。 (5Delphi:是一个集成开发环境(IDE,使用的核心是由传统Pascal语言发展而来 的Object Pascal,以图形用户界面为开发环境,透过IDE、VCL工具与编译器,配合连结数据库的功能,构成一个以面向对象程序设计为中心的应用程序开发工具。似乎

上位机的功能

历史数据查询打印功能 1.考虑单独使用一个datalog文件,以1分钟为间隔采样一个点,纪录变频器故障,断纸,车速,流量累计值以及其他重要必要的工艺参数,保存一个星期,大概20M,编写简单的第三方软件,提供历史数据查询,统计,打印功能,以供决策和参考 2.对于传动上位机来讲,可以调用报警的dbf数据纪录,分析一段时间以来,每只变频器曾经发生过的故障! 3.在服务器计算机上安装iis,发布asp页面,提供web数据库功能,这样不但dcs局域网内的计算机可以通过IE浏览查询历史报表(web数据库比传统的client/server模式数据库更易于开发和维护),而且提供了企业erp管理系统的接口,办公室里可以浏览现场的运行参数并可打印! 实时数据的统计功能: 目前上位机对实时数据主要提供的是画面显示和总表的功能,其实vba中可以批量处理实时数据并可做统计分析和打印!例如可以查询所有电机的空开未合信号,试验位置信号,电机运行信号,或可以查询所有浆池液位超过90%的,这些统计方便开机前的准备工作和判断哪些浆池液位过高!相对于总表的方式,这种方式更为直观,减少工作量! 调试画面 由于上位机对某些内部信号不做显示,如开关阀的限位开关与继电器的状态的关系,因此上位机可以做这样的一个调试画面,显示这些状态,方便仪表工对阀门的校正 设备堵塞推测 绝大部分压力变送器安装在设备的进出口位置,借此判断设备的堵塞情况,上位机应该让dcs 操作员设定堵塞经验值,并给出可能堵塞的报警显示 dcs变频器的故障分析 像传动一样,dcs变频器若有通信,上位机也可以给出变频器的故障描述,这一般建立在dcs与传动联网的基础上 手自动信号 手自动信号可以以历史趋势图的方式表达 权限 计算机之间应该权限不同,完全做到制浆,造纸,....工段之间,可以看,但不能操作 hlp文挡的操作说明书 ads ads实现了server/client结构的人机界面,若能试验成熟,将有很大的优越性,主要避免了ControlLogix系统的通信瓶颈,在报警方面又具有交互性!而且,ADS可以上INTERNET 网,SERVER上若安装了iis,则INTERNET上所有计算机都可以访问. 应认真考虑ADS的主从结构,要有几台ADS SERVER和备用!亦应付特殊情况下切换服务器! 当然ADS系统也有一定的局限性,不能实现一些EVENT和报警功能!

上位机与下位机之间通信编程

摘要 本文主要描述了利用PC机与AT89C51单片机之间的通信程序设计实现温度显示。并详述了在VC6.0环境下,上位机利用MSCOMM通信控件与单片机之间串口通信实现温度显示。由单片机采集一个温度信号,将采集到的温度信号传送给PC机显示,PC机用VC6.0编写程序,单片机程序用C语言编写,最后用PROTUES软件进行仿真实现温度显示。 关键词:单片机MSCOMM控件VC6.0 AT89C51 温度显示

目录 摘要 1 引言 (1) 2 结构设计与方案选择 (2) 2.1设计任务 (2) 2.1.1单片机的选择 (2) 2.1.2电平转换 (2) 2.1.1单片机的选择 (2) 2.1.3单片机与pc机通信原理 (2) 2.2软件方案选择 (2) 2.2.1 上位机编程方案选择 (3) 2.2.2 单片机编程方案选择 (3) 2.3 总体方案选择 (2) 3 硬件设计 (8) 3.1单片机主要特性 (5) 3.2 MAX232电平芯片介绍10 (10) 3.3 硬件电路设计图 (11) 3.3.1 PC机与单片机通信接口电路设计框图 (11) 3.3.2整体设计原理图 (11) 4软件设计 (12) 4.1上位机程序设计 (12) 4.2下位机程序设计 (13) 5 软硬件调试部分 (21) 5.1 PROTEUS软件仿真 (21) 5.1.1 Protues简介 (21) 5.1.2 Protues仿真电路图 (22) 5.2 VC软件仿真 (21) 结束语 (27) 致谢 (28) 参考文献 (29)

1引言 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。 现代化集中管理需要对现场数据进行统计、分析、制表、打印、绘图、报警等,同时,又要求对现场装置进行实时控制,完成各种规定操作,达到集中管理的目的。加之单片机的计算能力有限,难以进行复杂的数据处理。因此在功能比较复杂的控制系统中,通常以PC机为上位机,单片机为下位机,由单片机完成数据的采集及对装置的控制,而由上位机完成各种复杂的数据处理及对单片机的控制。

上位机监控系统

工控机监控系统 一、系统概述: 监控系统上位机选用华北工控机,P4CPU,256M内存80G硬盘;操作系统为WINDOWS 2000 SP4简体中文版;开发环境为WINCC5.1;与PLC通讯使用工业以太网;通讯规程为S7 FUNCTION。 需要软件: 1WINDOWS 2000 SP4 2SIMATIC NET 05/2000 3WINCC V5.1 4STEP7 V5.3 需要安装以下软件授权 1WINCC RC1024 或RC64K TAGE (A9WRC330 ,A9WRC430) 2SIMATIC NET-IE -S7 (A9SNEX90) 3WINCC USER ARCHIVES (A9W ARC12) 4 STEP7 V5.3授权STEP 7-BASIS V5.3 (A1710453) 同时还要安装WINCC安装盘下\WinCC-Hotfix\文件夹中的文件。 二、启动系统: 在确认上位机电源及通讯线连接无误后,打开上位机电源。操作员可根据屏幕上的提示,输入密码进行注册登录即可进入监控系统运行状态。 三、画面功能介绍: 1.主流程图: 主画面的上方有整条生产线的动态流程图,它可通过显示不同的颜色来反映出各机组设备的实际运行状况。 灰色:设备没有送电; 黑色:设备甩机架; 绿色:设备合闸正常运行; 红色:设备发生重故障; 点击主流程图中各架轧机的设备号会弹出不同的子画面,这些子画面上罗列了各架轧机的运行条件。每个运行条件前都有一个信号灯,信号灯为灰色时,该启动条件还不满足;信号灯为红色时,该启动条件还有故障未排除。 只有当子画面上所有条件前的信号灯都显示为绿色时,该架轧机才能顺利起车。当传动装置确已合闸,设备号会显示为绿色。 在活套设备号下方显示的是每个活套的实际角度和电流。 当过钢时,流程图上可动态显示红钢的真实位置。 在主画面右上角有“根数统计”值,显示的是轧制至成品机架的钢的根数。当操作员点击“根数清零”按键时,过钢根数会清零,然后重新开始计数。 在主轧线的下方是各架轧机的数据显示,包括设定线速度、实际线速度、实际转速、电流以及级联量。操作员可根据这些数据对轧制情况进行调整和操作。 2.轧制规程 点击“轧制规程”功能键即可进入“轧制规程表”子画面。该画面分三

上位机监控系统说明书

目录 一、 功能介绍 (2) 二、 操作介绍 (2)

一、功能介绍 1.运行数据实时显示; 2.升降电流操作和其它设备的启停/升降操作,所有操作均有防误操作功能; 3.整流系统报警实时显示及记录存储; 4.历史曲线数据查询; 5.可根据用户生产管理需求,设计多级授权操作管理模式。 二、操作介绍 1.开机后,自动运行到登录画面,点击进入“进入系统”。切换到“系统图”画面; 2.菜单说明 序号 菜单 说明 备注 1 点击打开整流监控系统图 2 点击打开整流报警画面 3 点击打开机组操作画面 4 点击打开历史曲线画面 5 通讯网络 点击打开通讯状态画面 6 点击报警声音清除 7 管理权限 8 点击登录、退出整流监控系统

3. 主要操作说明 序号 符号 说明 备注1 点击进行升档、降档操作 2 点击确认升档、降档操作 3 方法一:先单击“给定值读取”再单击“直流给定”后的“0000”会出现软键盘,输入根据工艺要求所需电流值,单击“给定值确认”即完成升降电流操作.方法二:在参数设定栏中输入100值,(此设定值根据用户自定 义),升降电流操作区旁边有一个向上的三角形和一个向下的三角形,单击一下向上的三角形表示给定电流在当前值上加100A;单击一下向下的三角形表示给定电流在当前值上减100A。 4 点击“报警记录”可以显示当前报警和已经发生过的报警条目,正在报警 的条目为红色,故障解除后报警条目为绿色。点击“报警查询”,选择日

期后,画面显示报警记录,也可选择 显示所有报警记录。 5 如果要求退出系统,系统管理员登陆 后才能退出.点击“系统管理”菜单, 输入系统管理员密码,点确定,点击 “退出系统”菜单再点击“是”即可 退出。 6 其他操作 与1-2方法一致 4.在计算机上不能正常升降电流或其它情况下,可以在近控柜的控制器上进行升/降电流操作。 5.如通讯中断或计算机死机,可以重新启动计算机,不影响整流正常运行。

相关主题