计算机控制工程复习(含答案)
成人高考专升本计算机控制技术复习题

成⼈⾼考专升本计算机控制技术复习题⼭东理⼯⼤学成⼈⾼等教育计算机控制技术复习题⼀、选择题1、在计算机控制系统⾥,通常当采样周期T减少时,由于字长有限所引起的量化误差将( )。
A、增⼤B、减⼩C、不变2、某系统的Z传递函数为G(Z)=0.5(Z+0.5)/(Z+1.2)(Z-0.5),可知该系统是( )。
A、稳定的B、不稳定的C、临界稳定的3、在确定A/D变换器精度时,通常要求它的精度应( )传感器的精度。
A、⼤于B、⼩于C、等于4、当系统中含有零阶保持器时,系统的稳态误差与采样周期T ( )。
A、⽆关B、有关 C关系不定5、双线性变换的⼀个特征是;连续传递函数经过双线性变换后所得Z传递函数的稳定增益 ( )。
A、不变B、变⼩ C增⼤⼆、简答题1、已知单位负反馈闭环控制系统的单位阶跃响应的稳态误差为0.1,试问该系统为⼏型系统,系统的开环放⼤系数为多少?2、简述数字滤波技术,其算法有哪些?3、计算机控制系统的控制过程是怎样的?三、综合题1、在数据采样系统中,是不是所有的输⼊通道都需要加采样保持器?为什么?2、设被测温度变化范围为0o C~1200o C,如果要求误差不超过0.4o C,应选⽤分辨为多少位的A/D转换器?2、模拟量输⼊通道由哪些部分组成?各部分的作⽤是什么?3、三相步进电机有哪⼏种⼯作⽅式?分别画出每种⼯作⽅式的各相通电顺序和电压波形图。
4、常⽤的数字滤波⽅法有⼏种?它们各⾃有什么特点?5、在PID调节器中系数p k、i k、d k各有什么作⽤?它们对调节品质有什么影响?6、设加⼯第⼀象限的圆弧AB ,起点A (6,0),终点B (0,6)。
要求: (1)按逐点⽐较法插补进⾏列表计算; (2)作出⾛步轨迹图,并标明进给⽅向和步数。
7、(1)、⼲扰的作⽤途径是什么?(2)、标度变换在⼯程上有什么意义?在什么情况下使⽤标度变换程序? 8、已知模拟调节器的传递函数为()s .s D 1701+=试写出相应数字控制器的位置型和增量型控制算式,设采样周期T=0.2s 。
(完整word)控制工程基础填空题和选择题汇总-杨叔子教材含答案,推荐文档

一、填空题第一章所谓自动控制,就是在没有人直接参与的情况下,使(被控对象)的某些物理量准确地按照预期规律变化。
经典控制理论主要是以传递函数为基础,研究(单输入、单输出)系统的分析和设计问题。
经典控制理论主要是以(传递函数)为基础,研究单输入、单输出系统的分析和设计问题。
给定量与反馈量相减后的量称为(负反馈)。
负反馈是指将系统的(输出量)直接或经变换后引入输入端,与输入量相减,利用所得的偏差量去控制被控对象,达到减小偏差或消除偏差的目的。
负反馈是指将系统的输出量直接或经变换后引入输入端,与(输入量)相减,利用所得的偏差量去控制被控对象,达到减小偏差或消除偏差的目的。
负反馈是指将系统的输出量直接或经变换后引入输入端,与输入量相减,利用所得的(偏差量)去控制被控对象,达到减小偏差或消除偏差的目的。
线性系统是由(线性)元件组成的,系统的运动方程式可以用线性微分方程描述。
在组成系统的元器件中,只要有一个元器件不能用线性方程描述,即为(非线性)控制系统。
对控制系统有一个共同的要求,一般可归为(稳定性)、准确性、快速性。
对控制系统有一个共同的要求,一般可归为稳定性、(准确性)、快速性。
对控制系统有一个共同的要求,一般可归为稳定性、准确性、(快速性)。
线性定常控制系统是指系统参数(不随)时间变化的系统。
描述线性定常控制系统的微分方程或差分方程的系数是(常数)。
线性时变控制系统是指系统参数(时时)变化的系统。
描述线性时变控制系统的微分方程或差分方程的系数是(时间)的函数。
第二章数学模型是描述系统输入量、输出量及系统各变量之间关系的(数学表达式)。
建立系统数学模型有两种方法:(分析法)和实验法。
建立系统数学模型有两种方法:分析法和(实验法)。
(微分方程)是在时域中描述系统动态特性的数学模型。
在线性定常系统中,当初始条件为零时,系统输出量拉氏变换与输入量拉氏变换之比称作系统的(传递函数)。
在线性定常系统中,当初始条件为(零)时,系统输出量拉氏变换与输入量拉氏变换之比称作系统的传递函数。
计算机控制技术期末复习试题附答案

计算机控制技术期末复习试题附答案一、选择题1. 下面哪个不是计算机控制系统的组成部分?A. 控制器B. 传感器C. 运算器D. 计算机主机答案:D2. 控制器的作用是什么?A. 输入信息B. 处理信息C. 输出信息D. 以上都是答案:B3. 在控制系统中,传感器的作用是什么?A. 输入信息B. 处理信息C. 输出信息D. 以上都是答案:A4. 控制器与执行器之间的信息传递通常采用哪种形式?A. 电信号B. 光信号C. 音频信号D. 无线信号答案:A二、填空题1. 在控制系统中,PID是什么的缩写?答案:比例-积分-微分2. 当一个过程变量小于或大于设定值时,控制器需要发出一个____信号来调节执行器。
答案:控制3. 开环控制系统中,控制器完全依赖于____来判断并调节执行器。
答案:设定值三、解答题1. 请解释闭环控制系统和开环控制系统的区别。
答案:闭环控制系统和开环控制系统是两种基本的控制系统结构。
闭环控制系统通过传感器获得反馈信息,将反馈信息与设定值进行比较后进行调节,以使系统输出接近设定值。
开环控制系统则没有反馈环节,控制器仅仅根据设定值来调节执行器。
闭环控制系统具有较好的稳定性和鲁棒性,能够减小外界干扰对系统的影响,但由于需要进行反馈调节,系统可能存在一定的响应延迟。
开环控制系统较为简单,但容易受到干扰的影响,对系统稳定性要求较高。
四、简答题1. 请简述计算机控制技术在工业自动化中的应用。
答案:计算机控制技术在工业自动化中广泛应用,其主要作用是实现对生产过程的自动控制。
通过传感器获取实时数据,计算机控制系统可以实时监测和控制生产过程中的各项参数,将实际数值与设定值进行比较,并通过执行器调节控制。
这种自动化控制能够提高生产效率、降低成本,同时还可以减少人为操作中的误差,提高产品的质量稳定性。
在工业生产中,计算机控制技术广泛应用于各种制造过程中,如汽车制造、电子设备制造、化工生产等。
通过计算机控制技术,可以实现生产过程中的自动监测、自动调节、自动报警等功能,从而提高生产效率,降低生产成本,提高产品的一致性和稳定性。
计算机控制原理复习题

精品文档新建试卷20180629110657一、单选题(共48题,48分)1、已知偏差e(k),积分分离阈值β,以下正确的是()A、B、C、D、2、已知离散系统脉冲传递函数为:G(Z)=(Z+0.5)/(Z-0.5+j0.5)^2 ,可知该系统是()A、稳定的B、不稳定的C、中性稳定的D、精品文档以上答案都不对3、A、也是稳定的B、是不稳定的C、稳定性不一定4、8位的A/D转换器分辨率为()A、0.01587B、0.007874C、0.003922D、0.00097755、一个8位的A/D转换器(量化精度0.1%),孔径时间3.18µm,如果要求转换误差在转换精度内,则允许转换的正弦波模拟信号的最大频率为()。
A、5HzB、50HzC、100HzD、500Hz6、某热处理炉温度变化范围为0~1350℃,经温度变送器变换为1~5V的电压送至ADC0809,ADC0809的输入范围为0~5V,当t=KT时,ADC0809的转换结果为6A,此时炉温为()A、588.98℃B、288.98℃C、361.23℃698.73℃7、如果模拟信号频谱的最高频率为fmax,只要按照采样频率()进行采样,那么采样信号就能唯一的复观。
A、B、C、D、8、一个10位的A/D转换器(量化精度0.1%),孔径时间10μs,如果要求转换误差在转换精度类,则允许转换的正弦波模拟信号的最大频率为()。
A、15HzB、16HC、17Hz14Hz9、如图1所示,V out为8位D/A转换器的双极性输出端,若输入数字量D=11100000(B),基准参考电V REF=5V,则V out为:()A、4.375VB、-4.375VC、3.75VD、-3.75V10、q=20mV时,量化误差为±10mV,0.990~1.009V范围内的采样值,其量化结果都是:()。
2B、1C、100D、5011、软件抗干扰技术包括:()。
控制工程基础(051203)

16.实际系统传递函数的分母阶次
A、小于分子阶次 B、等于分子阶次 C、大于等于分子阶次 D、大于或小于分子阶次
答案:C
17.闭环系统前向传递函数是
A、输出信号的拉氏变换与输入信号的拉氏变换之比 B、输入信号的拉氏变换与输出信号的拉氏变换之比 C、输出信号的拉氏变换与误差信号的拉氏变换之比 D、误差信号的拉氏变换与输出信号的拉氏变换之比
答案:B
37.对于二阶系统,加大增益将使系统的
A、稳态性变差 B、稳定性变差 C、瞬态性变差 D、快速性变差
答案:B
38.控制系统的稳态误差主要取决于系统中的
A、微分和比例环节 B、惯性和比例环节 C、比例和积分环节 D、比例和延时环节
答案:C
39.Ⅰ型系统的速度静差系数等于
A、0 B、开环放大系数
A、正确 B、错误 答案:正确
14.根据自动控制系统是否设有反馈环节来分类,控制系统可分为开环控制系统、闭环控制系 统。
A、正确 B、错误 答案:正确
15.氏线变性换定的常比系。统的传递函数,是在零初始条件时,系统输出信号的拉氏变换与输入信号的拉
A、正确 B、错误 答案:正确
16.线性系统输出与输入之比定义为系统的传递函数。
A、过阻尼的小于临界阻尼的 B、过阻尼的大于临界阻尼的 C、过阻尼的等于临界阻尼的 D、过阻尼的反比于临界阻尼的
答案:A
43.干扰作用下,偏离原来平衡状态的稳定系统在干扰作用消失后
A、将发散离开原来的平衡状态 B、将衰减收敛回原来的平衡状态 C、将在原平衡状态处等幅振荡 D、将在偏离平衡状态处永远振荡
11.控制系统的最大超调量
A、只与阻尼比有关 B、只与固有频率有关 C、与阻尼比和固有频率都有关 D、与阻尼比和固有频率都无关
计算机控制原理复习题

B、增加微分环节D、引入扰动补偿
5、下面关于建模和模型说法正确的是( )。
A、无论是何种系统,其模型均可用来提示规律或因果关系
B、建模实际上是通过数据、图表、数学表达式、程序、逻辑关系或各种方式的组合表示状态变量、输入变量、输出变量、参数之间的关系
C、为设计控制器为目的建立模型只需要简练就可以了
D、控制量只与控制算法和给定值相关
15、采样-保持电路的逻辑端接+5V,输入端从2.3V变至2.6V,输出端为()。
A、从2.3V边至2.6V(变)
B、从2.3V边至2.45V并维持不变
C、维持在2.3V
D、快速升至2.6V并保持不变
16、DAC0832的端接-5V,接运算放大器异名端,输入为1000000B,输出为()。
A、
4.375V
B、
-4.375V
C、
3.75V
D、
-3.75V
10、q=20mV时,量化误差为±10mV,0.990~1.009V范围内的采样值,其量化结果都是:()。
A、
2
B、
1
C、
100
D、
50
11、软件抗干扰技术包括:()。
①数字滤波技术、②开关量的软件抗干扰技术、③指令冗余技术、④软件陷阱
A、加大系数TI
B、加大系数KP
C、加大系数KI
D、加大系数T
24、在计算机控制系统中,T的确定十分重要,原因是()。
A、T太大,系统精度不够
B、T太大,积分作用过强
C、T太小,微分作用太强
D、T太小,积分作用过弱
25、在实际应用中,PID调节可根据实际情况调整结构,但不能()。
计算机控制系统题目(含答案)

n=v-j+q=2 对单位速度输入信号,选择
e (z)
1 (z)
v j
(1 ai z1 )(1
z 1 )q F1( z)
(1
z 1 )2 (1
f11z 1 )
i1
( z )
z
d
i1
(1 bi z 1 )F2 ( z)
(1
z 1 )( f21z 1
f 22 z 2 )
VOUT1 为单极性输出,若 D 为输入数字量,VREF 为基准参考电压,且为 n 位 D/A 转换器,则有
VOUT1
VREF
D 2n
VOUT2 为双极性输出,且可推导得到
VOUT2
(
R3 R1
VREF
R3 R2
VOUT1 )
VREF
(
D 2 n 1
1)
14、三相步进电机有哪几种工作方式?分别画出每种工作方式的各相通电顺序和电压波形图。(6 分)
步轨迹图,并标明进给方向和步数。[8 分]
(1) 插补计算过程如下表(4 分)
步数 偏差判别 坐标进给
偏差计算
坐标计算
终点判断
起点
F0=0
x0=0,y0=5
1
F0=0
-x
F1=F0-2x0+1=-9
x1=x0-1=4,y1=0
2
F1<0
+y
F2=F1+2y1+1=-8
x2=4,y2=y1+1=1
3
F2<0
对于三相步进电机则有单相三拍(简称单三拍)方式、双相三拍(简称双三拍)方式、三相六拍工作方式。 单三拍工作方式各相的通电顺序为:A→B→C→A→…,各相通电的电压波形:
计算机控制技术复习题

计算机控制技术复习题⼀、填空1.计算机控制技术可⽤于计算机控制系统及⾃动化仪表。
2.计算机监督系统SCC的作⽤是:按照⼀定的数学模型计算给定值并提供给DDC计算机。
3.闭环控制系统是指输出量经反馈环节回到输⼊端,对控制产⽣影响。
4.多路开关的作⽤是完成模拟量的切换。
5..采⽤ADC0809构成模拟量输⼊通道,ADC0809在其中起模拟量到数字量的转换和多路开关的作⽤。
7.ADC0809中EOC呈⾼电平,可以向CPU申请中断,说明转换已经结束,EOC 呈低电平,说明处于转换过程中。
8.当D/A转换器的位数多于处理器的位数时,需要两级数据缓存,数据分批传送,输⼊的所有数字位必须同时进⾏转换。
9.防⽌抖动是能否正确读取键值得必要环节,实现⽅法是可以⽤硬件电路或软件程序实现。
10.采⽤共阴极LED多位数码管显⽰时,位选信号为低电平,段选信号为⾼电平。
11.在LED多位数码管显⽰电路中,段选模型决定数码管显⽰的内容。
12..开关量控制系统中,常设有光电隔离器,起耦合、隔离和开关的作⽤。
14.⼩功率直流电机控制系统中,改变转⼦上的通电极性,以便改变电机的转向。
15..RS-232-C串⾏总线电⽓特性规定逻辑1的电平是-3V以下。
18..采⽤全双⼯通信⽅式,数据传输的⽅向性结构为可以在两个⽅向上同时传输。
20.半双⼯可以在两个⽅向上传输,但不能同时传输。
21.采⽤异步传输⽅式,设数据位为7位,1位校验位,1位停⽌位,则其通信效率为70%.22.在⼯业过程控制系统中采集的数据常掺杂有⼲扰信号,可以通过数字滤波程序和模拟滤波电路来提⾼信/噪⽐。
23.标度变换就是把数字量转换成⼈们熟悉的⼗进制⼯程量。
24.使A/D转换器满量程信号达到均⼀化的含义是任何情况下A/D转换器的输⼊最⼤值都为满量程。
25.⽐例调节的强弱可调,作⽤⽐较强,⼏乎贯穿整个调节过程。
26.在计算机控制系统中,T的确定⼗分重要,原因是T太⼩,系统精度不够。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机控制工程复习题一、填空题1.根据计算机在控制中的典型应用,可将计算机控制系统划分为操作指导控制系统、直接数字控制系统、监督控制系统、分布式控制系统和现场总线控制系统。
2.计算机控制系统由硬件和软件两部分组成。
3.假设比特率为B bps,一次谐波频率为B/8 Hz,普通语音级线路截至频率为3000Hz,则允许通过最高谐波次数为24000/B 。
4.数字通信系统主要技术指标为传输速率、出错率、信道容量。
5.实现数据交换方法主要有电路交换、报文交换及分组交换。
6.RS232串口标准传输方式为单端收发,RS485标准传输方式为平衡传输方式。
7.常用的软件调试方式有强行排错法、回溯排错法、归纳排错法及演绎排错法。
8.MSComm控件传输数据类型可分为纯文本数据和二进制数据。
9.使用WinAPI编写串口通信程序读写操作有同步和异步两种方式。
10.基于WinAPI串口通信程序数据接受主要有查询和事件驱动两种方式。
11.Windows多线程编程方式主要有Win32API、标准C库以及MFC类库三种方式。
12.在Windows多线程编程方式中,线程之间主要采用全局变量和自定义消息两种方式进行通信。
13.Win32API提供临界区、互斥对象、信号量及事件对象实现线程之间的同步。
14.控制网络和信息网络集成主要采用网络互联、动态数据交换及数据库技术。
15.软件体系结构主要包括B/S、C/S及单机三种模式。
二、简单题1、试阐述网络体系结构、层次模型及协议之间的关系。
参考答案:层次模型决定是网络模型的分层数及每层的功能定义;协议描述对等层之间的数据传输方式;网络体系结构包括层次模型及协议两个方面。
2、试阐述协议、服务、接口之间的关系;参考答案:服务即功能;接口即调用方式;协议则是服务的实现方式。
三者是紧密相关的。
3、在计算机和单片机通信过程中,考虑下位机(单片机)程序为测试程序,上位机(PC)程序为被测试程序,试举例说明二者正常数据采集(通信)过程。
参考答案:4、试说明MSComm控件RThreshold属性含义。
参考答案:该属性是一个阈值。
当接受缓冲区中字符数达到阈值时,MSComm 控件产生OnComm事件,并且CommEvent属性会设置为ComEvReceive,即接受事件。
若设置为0时,则不论接受缓冲区中有多少字符,都不会产生OnComm 事件。
5、试说明MSComm控件SThreshold属性含义。
参考答案:该属性是一个阈值。
当发送缓冲区中的字符数达到阈值时,MSComm 控件将产生OnComm事件,并且CommEvent属性被设置为CommEvSend值。
6、假设串口采用半双工方式,使用一问一答方式通信协议,接受数据长度存在10字节、15字节和20字节三种可能性的情况下,简要说明接受数据的实际处理方法。
参考答案:置RThreshold为10,在OnComm事件中预读10个字节,判断是否完整帧。
若是完整帧,则设置InputLen为0或10,然后使用GetInput()读取即可。
否则设置InputLen为5,然后GetInput()读取,与前10个字节合并一帧,判断是否完整。
如是非完整帧则设置InputLen为5,然后GetInput()读取。
7、假设串口采用半双工方式,使用一问一答方式通信协议,接受数据长度长度不确定的情况下,简要说明接受数据实际处理方法:参考答案:数据通常包含有特定格式的数据头,可以通过数据头计算出整个数据帧的长度。
假定这些特定格式的数据头长度为10字节。
按照下述步骤处理:设置RThreshold=10,在OnComm事件中首先设置InputLen=10,使用GetInput()函数读取缓冲区,并根据读取数据判断整个数据帧长度。
然后读取InBufferSize 属性值,并判断该值是否为整个数据帧长度与10之差;若不是,则反复读取,直至该值为整个数据帧长度与10之差。
此时设置InputLen=0或InBufferSize值,并使用GetInput( )函数读取缓冲区,将读取数据与前10个数据合并成一个完整的数据帧。
8、简要说明采用MSComm控件进行串口数据采集程序设计步骤。
参考答案:加载控件;初始化及打开串口;事件处理;关闭串口;通信协议约定。
9、简要说明在基于对话框程序中使用MSComm控件的操作步骤。
参考答案:拖放控件图标至窗口,创建控件ID;在对话框头文件申明CMSComm 类变量及引用控件类头文件;创建CMSComm实例;建立控件事件响应代码框架。
10、简要说明WinAPI串口通信同步查询编程方式操作步骤。
参考答案:CreateFile (非重叠方式);初始化串口句柄;WriteFile(发送数据);ReadFile (读取数据);CloseFile (关闭串口)。
11、简要说明WinAPI串口通信异步重叠I/O查询编程方式操作步骤。
参考答案:定义全局变量;创建串口;发出读写操作;读写线程函数的建立;关闭串口;12、简要说明Windows编程中HANDLE(句柄)的概念。
参考答案:指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。
这种间接访问对象的模式增强了系统对引用对象的控制。
13、简要说明Windows多线程编程概念。
参考答案:每个正在系统上运行的程序都是一个进程。
每个进程包含一到多个线程。
进程也可能是整个程序或者是部分程序的动态执行。
线程是一组指令的集合,或者是程序的特殊段,它可以在程序里独立执行。
也可以把它理解为代码运行的上下文。
所以线程基本上是轻量级的进程,它负责在单个程序里执行多任务。
通常由操作系统负责多个线程的调度和执行。
线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程。
线程和进程的区别在于子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定。
线程的运行中需要使用计算机的内存资源和CPU。
13、简要说明Windows中线程和进程的关系。
参考答案:进程:进程是一个程序实例;进程占据4GB地址空间,在该空间存放应用程序执行所需要的各种资源;Win32进程没有活力,是静态的。
线程:线程是CPU调度计算任务的最小单位;Win32进程创建时,会自动创建一个主线程;主线程可以创建其它线程(辅助线程)。
14、简要说明Windows中终止线程的方法。
参考答案:终止线程有三种方法:线程函数自然退出;内部使用退出函数AfxEndThread\ExitThread\_endthread;外部使用TerminateThread函数。
15、如何在MFC类库中使用自定义消息实现线程之间通信?参考答案:(1) 声明自定义消息:在头文件顶部加入消息名称声明:const WM_THREADMSG = WM_USER+100;(2) 声明消息响应函数:在头文件//}}AFX_MSG和“DECLARE_MESSAGE_MAP()”之间声明消息响应函数:Afx_msg LONG OnThreadMsg(WPARAM wParam,LPARAM, lParam)(3). 建立消息连接:在实现文件//}}AFX_MSG_MAP和“END_MESSAGE_MAP()”之间:ON_MESSAGE(WM_THREADMSG, OnThreadMsg)(4). 编写消息响应函数:在实现文件中,添加消息函数函数的实现体:LONG CMyClass::OnThreadMsg(WPARAM wParam,LPARAM lParam) {// 加入响应函数的具体处理代码}(5). 寄送自定义消息:BOOL PostMessage( HWND hWnd, UINT Msg,WPARAM wParam, LPARAM lParam);16、简要说明OSI/RM模型中物理层定义。
参考答案:利用物理传输介质为数据链路层提供物理连接,以透明地传送比特流。
物理层实际上是设备之间的物理接口,它规定了机械特性、电气特性、功能特性及过程特性。
17、简要说明OSI/RM模型中数据链路层的主要功能。
参考答案:提供可靠的比特流传输服务。
18、简要说明TCP/IP层次模型。
参考答案:应用层、传输层(TCP/UDP)、互联网层、主机至网络层。
19、简要说明局域网参考模型中MAC子层的主要功能。
参考答案:决定广播信道中信道分配协议的子层。
三、程序题及设计题1、MSComm控件输入和读出数据均为V ARIANT数据类型,考虑传输数据为纯文本,试编程实现从接受缓冲区中读取字符(给出C++代码片段)。
参考答案:V ARIANT input;char charInput[100];int counts = m_COMM.GetInBufferCount(); //m_COMM为MSComm控件对象If (counts>0) {input = m_COMM.GetInput( );}ASSERT(input.vt == VT_BSTR);CString strInput(input.bstrVal)strcpy(charInput, strInput);2、MSComm控件输入和读出数据均为V ARIANT数据类型,考虑传输数据为二进制,试编程实现从接受缓冲区中读取二进制数据(给出C++代码片段)。
参考答案:V ARIANT input;BYTE rxdata[2048];COleSafeArray safeArray;input = m_COMM.GetInput( ); // 其中m_COMM为MSComm控件对象safeArray = input;long len = safeArray.GetOneDimSize( );for(long k=0; k<len; k++) {safeArray.GetElement(&k, rxdata+k);}3.基于多线程技术、事件驱动方式实现串口双机数据通信程序,该程序即可作为发送方使用也可作为接受方使用。
其中传输数据小于64M;请求包、普通数据包、结束包及响应包帧格式表示如下。
请求包:普通数据包:结束包:响应包:请设计事件处理函数和消息响应函数的流程图。
参考答案:事件处理函数处理流程图消息响应函数处理流程图:其中发送状态1态:发送操作已经开始,请求包已经发出;2态:第一个普通数据包已经发出,等待接受方响应;3态:结束数据包已发送,等待接受方响应;接受0态:等待发送方请求包;1态:等待接受普通或结束数据包。
四、程序阅读题1、HANDLE hCOM;hCOM = CreateFile (“COM2”,GENERIC_READ|GENERIC_WRITE,0,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);if ( hCOM != INV ALID_HANDLE_V ALUE) {SetupComm(hCOM, 1024, 1024);DCB myDCB;GetCommState(hCOM, &myDCB);myDCB.BaudRate = CBR_19200;myDCB.fBinary = TRUE;myDCB.fParity = TRUE;myDCB.ByteSize = 8;myDCB.Parity = ODDPARITY;myDCB.StopBit = ONESTOPBIT;SetCommState(hCOM, &myDCB);}Else {AfxMessageBox(“创建串口失败!”);}参考答案:HANDLE hCOM; // 申明句柄;hCOM = CreateFile (“COM2”, // 使用串口2;GENERIC_READ|GENERIC_WRITE, // 读写方式,可以接受及发送;0,// 不允许共享;NULL,// 默认安全属性;OPEN_EXISTING, // 打开已有端口,不能创建);FILE_ATTRIBUTE_NORMAL, // 非重叠操作;NULL); // 无模板文件if ( hCOM != INV ALID_HANDLE_V ALUE) { // 成功创建SetupComm(hCOM, 1024, 1024); // 设置输入输出缓冲区大小DCB myDCB; // 声明DCB数据结构GetCommState(hCOM, &myDCB); // 获取默认DCB设置myDCB.BaudRate = CBR_19200; // 波特率为19200myDCB.fBinary = TRUE; // 二进制通信方式myDCB.fParity = TRUE; // 允许奇偶校验myDCB.ByteSize = 8; // 数据位为8myDCB.Parity = ODDPARITY; // 奇校验myDCB.StopBit = ONESTOPBIT; // 使用1位停止位SetCommState(hCOM, &myDCB);} // 设置通信参数。