基于串口通信的上位机通用软件平台
基于串口通信的上位机通用软件平台[20191213111502]
摘 要
串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低,因此串口通信在工业控制中有着广泛的应用。
在基于串口通信的各类大型应用系统中,上位机软件平台的开发是很重要的组成部分。由于下位机不同,不同类型的通信协议、通信方式也不同,一般上位机都是针对特定类型的下位机定制的。一个通用、可配置的上位机软件平台能够极大提升工程技术人员的工作效率。
本次课题主要设计一个上位机通用软件平台,在这个平台上用户可以简单方便地设计出上位机界面和应用程序。实现方法通过设计一个PC界面,用户可以在该软件界面上增加按钮,输入文本,设计上位机界面。这个PC界面,简化了操作程序。PC界面采取VC++编程,通过优化协议,设计出一个人机界面,分模块实施,达到课题要求。
论文的重点是在于设计个主要软件功能模块,完成了数据的输入、数据输出的显示、以及优化了通信协议。
查看完整论文请+Q: 351916072
关键字:】串口通信通用平台上位机PC界面VC++
目 录
摘 要 I
ABSTRACT II
第一章 绪 论 1
1.1 选题背景 1
1.2 实现方法 2
1.3 意义 3
第二章 需求分析 4
2.1 市场需求 4
2.2 通信协议模块需求 4
2.3 输入数据模块 5
2.4 数据输出显示 5
2.5 上位机开发软件要求 6
2.6 对PC机硬件要求 6
第三章 模块的实现 8
3.1 串口操作 8
3.1.1 数据帧构架 11
3.1.2 VSPD的使用 12
3.1.3 串口调试助手 13
3.2 协议的优化 15
3.2.1 定义数据包格式 16
3.2.2 状态机的引入 17
3.3. 输入数据模块 21
3.3.1 变量数据录入 21
3.3.2 弹出菜单选择(0x01) 25
3.4 数据输出模块 26
3.4.1 滑刻度显示 27
3.4.2 变量图标显示(0x00) 29
第四章 应用实例 31
4.1 上位机编程 31
4.2 实现单片机模块串口通信 31
4.3 实现PC机双串口互通信 32
4.4 PC机与智能仪器串口通信 34
4.5 结论 36
结论 37
致 谢 38
参考文献 39
附录 42
一、外文翻译英文原文: 42
二、中文翻译 61
第一章 绪 论
1.1 选题背景
在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息[2]。
在工业控制系统中,计算机逐渐取代了常规的模拟仪表对工业控制系统的调节和控制。采用计算机对工业控制系统进行调节和控制,大大提高了系统的控制质量,是工业控制系统技术装备的根本性变革。在常规控制系统中,由于仪表设备自身功能的限制,难以对系统中的信息进行复杂及时的处理。而计算机具有采集、传送、存贮、处理大量数据的能力,因而能够容易地实现各种复杂、精确的控制算法。相对于常规的模拟仪表控制系统,计算机控制系统控制功能更强、精度更高、抗干扰能力更好。计算机控制系统将计算机技术与控制理论相结合,极大地提高了控制系统自动化程度,是自动控制技术发展的一个里程碑。因此计算机控制系统不仅应用于石油、化工、冶金、电力、轻工、纺织等各种工业生产过程领域中,在农业、交通、环保、楼宇等民用领域中也得到了广泛的应用[13]。
计算机控制技术的发展,促进了控制系统中的各种现场设备的发展和变革。现场设备是指位于现场的各种测量和控制设备,它是工业生产过程中重要的基础自动化设备之一。早期的现场设备大多是一些常规的模拟仪表,它是通过传感器或变送器检测物理信号并转换成标准的4 -20m.A模拟信号进行传输。这种方式在检测环节中存在精度低、动态补偿能力差、无自诊断功能的问题;在传输环节中存在着信号只能单向传输的问题。这两个问题从根本上制约了整个控制系统向更高层次方向的发展。随着计算机控制系统的规模越来越大、工艺过程越来越复杂,系统中采用的现场设备的数量大大增加,而且对现场设备的技术要求也不断提高,使得现场设备越来越趋于数字化和智能化。这些智能化的现场设备内嵌有微处理器,不但能够完成数字信号的通信和处理,还可以完成非电量信号检测、变换和放大等模拟信号的处理。智能化现场设备采用的数字通信方式不仅大大提高了系统的测控精度,而且使现场设备抗干扰能力也得到很大改善。
工业控制中现场设备广泛应用了串口屏。串口屏,顾名思义就是用户单片机或PLC只需要串口就可以驱动的显示屏。它由显示驱动板、外壳、LCD液晶显示屏,三部分构成。接收用户单片机串口发送过来的指令,完成在LCD上绘图的所有操作。
由于很多工业显示屏都是针对可编程控制PLC开发的,对于一般工业控制没有太多的工业显示屏。北京迪文科技出产的DGUS屏,基于串口指令操作,用户可以自主设计上位机界面,能有效的做到工业控制,自主研发。这是一款成熟的串口通信产品。本次毕设通过模拟DGUS屏,设计一个PC界面,运用PC机强大的数据运算功能来达到完美的串口通信,有效的提高工业控制。
1.2 实现方法
目前,随着集成电路集成度的增加,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空奥妙复杂系统不可缺少的智能部件。在工业控制中,计算机的作用是监控现场设备运行的状态。当现场设备出现问题在计算机上就可以显示出各设备之间的状态(如正常,报警,故障等)。用一台计算机作为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的控制系统。
用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。串口是计算机上一种非常通用的设备通讯协议,大多数计算机包容两个基于RS232的串口。串口同时也是仪器仪表设备通过用的通讯协议,很多GPIB兼容的设备也带有RS-232口。同时串口通讯协议也可以用于获取远程采集设备数据。
本次毕设主要采用VC++编程,通过对MSCOMM控件和API函数的运用,达到毕设的要求。针对用户需要增加按钮或者界面的要求,开发相应的配置文件,设计不同的参数寄存器。
针对串口通信方式,主要采取异步、全双工串口通信,串口模式为8n1(51单片机的MOD1,9bit UART),即每个数据传送采用10个位:一个起始位,8个数据位,1个停止位。
串口的所有指令或者数据都是16进制(HEX)格式;对于字型(2字节)数据,总是采用高字节先传递(MSB)方式。比如0x1234传送时先传送0x12.
设计出的软件通用平台采用直接变量驱动显示方式,所有的显示和操作都是预计预先设置好的变量配置文件来工作。两种不同的工作方式导致用户应用时的软件架构和二次开发难度完全不同。
在有些中、小型工业自动化项目应用中,当整个系统由一些相对独立、功能完善的不变(比如支持Modbus协议的温控仪或其他二次仪表)构成时,用户可以直接把该软件当成主机使用,基于用户自主开发的二次平台可以完全运行,替代常规仪表的工作。
1.3 意义
在现有的基于串口通信的上位机软件中,基本都是根据具体问题而开发的,很少有能够通用的上位机软件平台。本次课题的意义是能够开发出一个通用的上位机平台,融合各种串口通信,用户可以自主开发各种上位机程序,达到自己的需求,成功的应用到各种串口应用项目中。这样能使编程过程简化,缩短编程时间,快捷高效地设计出各种上位机程序,节约了时间,降低成本,能使得工业控制的效率大大提高,并且能够适用于任何有需要的工业控制场所中。一个通用、可配置的上位机软件平台也能够极大提升工程技术人员的工作效率。
第二章 需求分析
2.1 市场需求
上位机软件一般都是根据具体问题而编写的,缺少通用性。在工业控制中,由于会发生很多不同的问题,因此,一款能够通用的基于串口通信的上位机软件平台开发,能提高工程技术人员的开发效率,能够很好的帮助工业控制,也能够更好的让工业发展,减少企业的负担,节约人力资源,使得自动化工业进一步推进。
一般工业监控都会应用到串口屏,串口屏能很好的处理和分析数据,同时也让工业监控进入了高清显示的时代。串口屏的应用使工业监控进入了一个高效的领域,安全、高效、快捷的显示工业生产中的各个环节,如果出现了情况,能够及时快捷的做好应对措施。本次模拟开发一个上位机通用软件,直接用PC机控制,能加大对数据的分析和处理能力,也能更好的节约成本,让工业显示进入高清时代。友好的人机界面设计,也能更加方便的操作,为工业生产和监控带来便利。
2.2 通信协议模块需求
串口是计算机上一种非常通用的设备通信协议,大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信接口;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信中,通信需要双方协调,这是就需要一个协议来约定通信的内容,包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等。为了解决串口通信中的数据传输容易出错、可靠性差、安全性不高且容错能力低等问题,本次毕设需要优化通信协议,解决上述在串口通信中会出现的各种问题,并且在通信中能够有效的防止这一类错误的发生。
在通信协议中,做到能够兼容单片机串口通信、PLC串口通信、PC机串口通信和智能仪表的串口通信。让用户自主开发的上位机程序能够真正兼容不同类型的下位机,达到通用性的标准。
因此用户不需要重新开发通信协议,只需要自主开发上位机界面和程序,就可以有效的做到串口通信。
2.3 输入数据模块
根据上位机通用软件平台的设计理念,用户可以自主开发页面和应用程序。那么必然会有输入数据模块,输入的数据会是多样的。在用户进入页面设计后,这时候会有很多的变量需要设置。如用户需要设计一个页面,这时就需要相应的图形变量和文本变量。这些变量需要事先设置好,放入寄存器内,供用户选择和应用,例如文本框的输入。
数据输入:从虚拟输入键盘、鼠标等向计算机输入数据。
输入的数据可以是多样的可以是ASCII文本录入,也可以是GBK汉字文本录入。
针对工业监控中的实际情况,会用到各种各样的数据录入,针对以上情况,结合生产实例,在输入数据模块,可以为用户提供变量数据的录入、弹出菜单选择、增量调节、拖动调节、RTC设置、按键返回值和文本录入。
那样能更好的为用户进行二次开发,减少技术工作的人员的负担,提高技术工作人员的工作效率。
2.4 数据输出显示
当串口接收到数据时,依据通信协议,会在显示屏上输出数据。输出的参数必须与格式控制符中的格式类型、个数和位置上一一对应。
针对格式控制符的实际应用状况,采用十六进制无符号形式输出整数。
当下位机依据串口传送来数据的时候,上位机会根据指令,自主分表该数据的格式,判定变量类别,给出相应的回答。
根据数据的访问地址不同,上位机会给出不同的答复。
当接收的数据时图标数据时,上位机会给出相应的图标显示和数据长度,会自行动画页跳转、或者形成动画。(例如手机充电会出现电池图样。)
当接收的数据是智能仪表的数据时,上位机会弹出相应的仪表刻度图样,并且指针会根据数据的地址,给出相应的滑动。
当接收的数据是文本变量时,上位机会根据相应的地址和数据长度,从ASCII字库和GBK字库给出相应的文本输出。
变量数据输出示例图如图2.1所示:
图2.1 变量数据输出显示示例
2.5 上位机开发软件要求
编译环境:Microsoft Visual C++2005 Redistribytable
开发软件:Microsoft Visual C++6.0
2.6 对PC机硬件要求
对于PC的具体要求详见下表2.1:
表2.1 硬件要求表
接口 3.3V CMOS
CPU 最低 Intel MMX 233MHZ
内存 256M以上
摘 要
串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,但其传输速度比并行传输低,因此串口通信在工业控制中有着广泛的应用。
在基于串口通信的各类大型应用系统中,上位机软件平台的开发是很重要的组成部分。由于下位机不同,不同类型的通信协议、通信方式也不同,一般上位机都是针对特定类型的下位机定制的。一个通用、可配置的上位机软件平台能够极大提升工程技术人员的工作效率。
本次课题主要设计一个上位机通用软件平台,在这个平台上用户可以简单方便地设计出上位机界面和应用程序。实现方法通过设计一个PC界面,用户可以在该软件界面上增加按钮,输入文本,设计上位机界面。这个PC界面,简化了操作程序。PC界面采取VC++编程,通过优化协议,设计出一个人机界面,分模块实施,达到课题要求。
论文的重点是在于设计个主要软件功能模块,完成了数据的输入、数据输出的显示、以及优化了通信协议。
查看完整论文请+Q: 351916072
关键字:】串口通信通用平台上位机PC界面VC++
目 录
摘 要 I
ABSTRACT II
第一章 绪 论 1
1.1 选题背景 1
1.2 实现方法 2
1.3 意义 3
第二章 需求分析 4
2.1 市场需求 4
2.2 通信协议模块需求 4
2.3 输入数据模块 5
2.4 数据输出显示 5
2.5 上位机开发软件要求 6
2.6 对PC机硬件要求 6
第三章 模块的实现 8
3.1 串口操作 8
3.1.1 数据帧构架 11
3.1.2 VSPD的使用 12
3.1.3 串口调试助手 13
3.2 协议的优化 15
3.2.1 定义数据包格式 16
3.2.2 状态机的引入 17
3.3. 输入数据模块 21
3.3.1 变量数据录入 21
3.3.2 弹出菜单选择(0x01) 25
3.4 数据输出模块 26
3.4.1 滑刻度显示 27
3.4.2 变量图标显示(0x00) 29
第四章 应用实例 31
4.1 上位机编程 31
4.2 实现单片机模块串口通信 31
4.3 实现PC机双串口互通信 32
4.4 PC机与智能仪器串口通信 34
4.5 结论 36
结论 37
致 谢 38
参考文献 39
附录 42
一、外文翻译英文原文: 42
二、中文翻译 61
第一章 绪 论
1.1 选题背景
在国内外,以PC机作为上位机,单片机作为下位机的控制系统中,PC机通常以软件界面进行人机交互,以串行通信方式与单片机进行积极交互,而单片机系统根据被控对象配置相应的前向,后向信息通道,工作时作为主控机对象,作为被控机接受PC机监督,指挥,定期或受命向上位机提供对象及本身的工作状态信息[2]。
在工业控制系统中,计算机逐渐取代了常规的模拟仪表对工业控制系统的调节和控制。采用计算机对工业控制系统进行调节和控制,大大提高了系统的控制质量,是工业控制系统技术装备的根本性变革。在常规控制系统中,由于仪表设备自身功能的限制,难以对系统中的信息进行复杂及时的处理。而计算机具有采集、传送、存贮、处理大量数据的能力,因而能够容易地实现各种复杂、精确的控制算法。相对于常规的模拟仪表控制系统,计算机控制系统控制功能更强、精度更高、抗干扰能力更好。计算机控制系统将计算机技术与控制理论相结合,极大地提高了控制系统自动化程度,是自动控制技术发展的一个里程碑。因此计算机控制系统不仅应用于石油、化工、冶金、电力、轻工、纺织等各种工业生产过程领域中,在农业、交通、环保、楼宇等民用领域中也得到了广泛的应用[13]。
计算机控制技术的发展,促进了控制系统中的各种现场设备的发展和变革。现场设备是指位于现场的各种测量和控制设备,它是工业生产过程中重要的基础自动化设备之一。早期的现场设备大多是一些常规的模拟仪表,它是通过传感器或变送器检测物理信号并转换成标准的4 -20m.A模拟信号进行传输。这种方式在检测环节中存在精度低、动态补偿能力差、无自诊断功能的问题;在传输环节中存在着信号只能单向传输的问题。这两个问题从根本上制约了整个控制系统向更高层次方向的发展。随着计算机控制系统的规模越来越大、工艺过程越来越复杂,系统中采用的现场设备的数量大大增加,而且对现场设备的技术要求也不断提高,使得现场设备越来越趋于数字化和智能化。这些智能化的现场设备内嵌有微处理器,不但能够完成数字信号的通信和处理,还可以完成非电量信号检测、变换和放大等模拟信号的处理。智能化现场设备采用的数字通信方式不仅大大提高了系统的测控精度,而且使现场设备抗干扰能力也得到很大改善。
工业控制中现场设备广泛应用了串口屏。串口屏,顾名思义就是用户单片机或PLC只需要串口就可以驱动的显示屏。它由显示驱动板、外壳、LCD液晶显示屏,三部分构成。接收用户单片机串口发送过来的指令,完成在LCD上绘图的所有操作。
由于很多工业显示屏都是针对可编程控制PLC开发的,对于一般工业控制没有太多的工业显示屏。北京迪文科技出产的DGUS屏,基于串口指令操作,用户可以自主设计上位机界面,能有效的做到工业控制,自主研发。这是一款成熟的串口通信产品。本次毕设通过模拟DGUS屏,设计一个PC界面,运用PC机强大的数据运算功能来达到完美的串口通信,有效的提高工业控制。
1.2 实现方法
目前,随着集成电路集成度的增加,电子计算机向微型化和超微型化方向发展,微型计算机已成为导弹,智能机器人,人类宇宙和太空奥妙复杂系统不可缺少的智能部件。在工业控制中,计算机的作用是监控现场设备运行的状态。当现场设备出现问题在计算机上就可以显示出各设备之间的状态(如正常,报警,故障等)。用一台计算机作为上位机完成复杂的数据处理,组成一种以集中管理、分散控制为特点的控制系统。
用串行总线技术可以使系统的硬件设计大大简化、系统的体积减小、可靠性提高。同时,系统的更改和扩充极为容易。串口是计算机上一种非常通用的设备通讯协议,大多数计算机包容两个基于RS232的串口。串口同时也是仪器仪表设备通过用的通讯协议,很多GPIB兼容的设备也带有RS-232口。同时串口通讯协议也可以用于获取远程采集设备数据。
本次毕设主要采用VC++编程,通过对MSCOMM控件和API函数的运用,达到毕设的要求。针对用户需要增加按钮或者界面的要求,开发相应的配置文件,设计不同的参数寄存器。
针对串口通信方式,主要采取异步、全双工串口通信,串口模式为8n1(51单片机的MOD1,9bit UART),即每个数据传送采用10个位:一个起始位,8个数据位,1个停止位。
串口的所有指令或者数据都是16进制(HEX)格式;对于字型(2字节)数据,总是采用高字节先传递(MSB)方式。比如0x1234传送时先传送0x12.
设计出的软件通用平台采用直接变量驱动显示方式,所有的显示和操作都是预计预先设置好的变量配置文件来工作。两种不同的工作方式导致用户应用时的软件架构和二次开发难度完全不同。
在有些中、小型工业自动化项目应用中,当整个系统由一些相对独立、功能完善的不变(比如支持Modbus协议的温控仪或其他二次仪表)构成时,用户可以直接把该软件当成主机使用,基于用户自主开发的二次平台可以完全运行,替代常规仪表的工作。
1.3 意义
在现有的基于串口通信的上位机软件中,基本都是根据具体问题而开发的,很少有能够通用的上位机软件平台。本次课题的意义是能够开发出一个通用的上位机平台,融合各种串口通信,用户可以自主开发各种上位机程序,达到自己的需求,成功的应用到各种串口应用项目中。这样能使编程过程简化,缩短编程时间,快捷高效地设计出各种上位机程序,节约了时间,降低成本,能使得工业控制的效率大大提高,并且能够适用于任何有需要的工业控制场所中。一个通用、可配置的上位机软件平台也能够极大提升工程技术人员的工作效率。
第二章 需求分析
2.1 市场需求
上位机软件一般都是根据具体问题而编写的,缺少通用性。在工业控制中,由于会发生很多不同的问题,因此,一款能够通用的基于串口通信的上位机软件平台开发,能提高工程技术人员的开发效率,能够很好的帮助工业控制,也能够更好的让工业发展,减少企业的负担,节约人力资源,使得自动化工业进一步推进。
一般工业监控都会应用到串口屏,串口屏能很好的处理和分析数据,同时也让工业监控进入了高清显示的时代。串口屏的应用使工业监控进入了一个高效的领域,安全、高效、快捷的显示工业生产中的各个环节,如果出现了情况,能够及时快捷的做好应对措施。本次模拟开发一个上位机通用软件,直接用PC机控制,能加大对数据的分析和处理能力,也能更好的节约成本,让工业显示进入高清时代。友好的人机界面设计,也能更加方便的操作,为工业生产和监控带来便利。
2.2 通信协议模块需求
串口是计算机上一种非常通用的设备通信协议,大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信接口;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。
串口通信中,通信需要双方协调,这是就需要一个协议来约定通信的内容,包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等。为了解决串口通信中的数据传输容易出错、可靠性差、安全性不高且容错能力低等问题,本次毕设需要优化通信协议,解决上述在串口通信中会出现的各种问题,并且在通信中能够有效的防止这一类错误的发生。
在通信协议中,做到能够兼容单片机串口通信、PLC串口通信、PC机串口通信和智能仪表的串口通信。让用户自主开发的上位机程序能够真正兼容不同类型的下位机,达到通用性的标准。
因此用户不需要重新开发通信协议,只需要自主开发上位机界面和程序,就可以有效的做到串口通信。
2.3 输入数据模块
根据上位机通用软件平台的设计理念,用户可以自主开发页面和应用程序。那么必然会有输入数据模块,输入的数据会是多样的。在用户进入页面设计后,这时候会有很多的变量需要设置。如用户需要设计一个页面,这时就需要相应的图形变量和文本变量。这些变量需要事先设置好,放入寄存器内,供用户选择和应用,例如文本框的输入。
数据输入:从虚拟输入键盘、鼠标等向计算机输入数据。
输入的数据可以是多样的可以是ASCII文本录入,也可以是GBK汉字文本录入。
针对工业监控中的实际情况,会用到各种各样的数据录入,针对以上情况,结合生产实例,在输入数据模块,可以为用户提供变量数据的录入、弹出菜单选择、增量调节、拖动调节、RTC设置、按键返回值和文本录入。
那样能更好的为用户进行二次开发,减少技术工作的人员的负担,提高技术工作人员的工作效率。
2.4 数据输出显示
当串口接收到数据时,依据通信协议,会在显示屏上输出数据。输出的参数必须与格式控制符中的格式类型、个数和位置上一一对应。
针对格式控制符的实际应用状况,采用十六进制无符号形式输出整数。
当下位机依据串口传送来数据的时候,上位机会根据指令,自主分表该数据的格式,判定变量类别,给出相应的回答。
根据数据的访问地址不同,上位机会给出不同的答复。
当接收的数据时图标数据时,上位机会给出相应的图标显示和数据长度,会自行动画页跳转、或者形成动画。(例如手机充电会出现电池图样。)
当接收的数据是智能仪表的数据时,上位机会弹出相应的仪表刻度图样,并且指针会根据数据的地址,给出相应的滑动。
当接收的数据是文本变量时,上位机会根据相应的地址和数据长度,从ASCII字库和GBK字库给出相应的文本输出。
变量数据输出示例图如图2.1所示:
图2.1 变量数据输出显示示例
2.5 上位机开发软件要求
编译环境:Microsoft Visual C++2005 Redistribytable
开发软件:Microsoft Visual C++6.0
2.6 对PC机硬件要求
对于PC的具体要求详见下表2.1:
表2.1 硬件要求表
接口 3.3V CMOS
CPU 最低 Intel MMX 233MHZ
内存 256M以上
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jxgc/zdh/4909.html