毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
基于VXI总线枪弹杀伤力测试系统应用程序开发(9)
3.1.4 显示数据
“显示数据”部分包括存储器中数据的读取,及对读取的数据的初步处理、显示。按下“显示数据”按钮后的程序流程图如图3-11所示。
当按下“显示数据”按钮后,进行数据的读取和处理,此时不允许再进行测量,所以将“开始测量”按钮设置为禁用。然后读取“靶间距离”及“直方图块数”控件值,供数据处理时使用。另外需要获得本次测量使用的计时基准脉冲的周期值,这需要获得“计数基频”控件值,然后根据控件值对应的基频进行计算。核心代码如下:
GetCtrlVal (panelHandle, PANEL_RINGSLIDE_JIPIN, &c);
switch (c)
{
case 0:zhouqi=5000;break; // 200k周期 5000ns
case 1:zhouqi=2000;break; // 500k周期 2000ns
case 2:zhouqi=1000;break; // 1M周期 1000ns
case 3:zhouqi=500; break; // 2M周期 500ns
case 4:zhouqi=200; break; // 5M周期 200ns
case 5:zhouqi=100; break; // 10M周期 100ns
case 6:zhouqi=50; break; // 20M周期 50ns
case 7:zhouqi=25; break; // 40M周期 25ns
default:zhouqi=5000;break;
}
获得需要的控件值后,准备对弹丸个数进行读取。在读取之前先将首发时间间隔T存入存储器中。之所以要使用上位机给出存储信号,是因为数据存入存储器的允许信号是以下一个弹丸的过靶信号来触发的,而首发时间间隔是在最后一个弹丸到来时写入锁存器,所以不会再有下一个弹丸到来,而改用上位机给出存储允许信号。同样可以使用IVI驱动器中的写操作寄存器函数实现。
完成T的存储之后,就可以进行弹丸个数的读取。使用IVI驱动器中的函数CSY_READ_GeshuReg (ViSession vi, int *ge_shu)直接实现函数个数的读取。此函数首先使用写操作寄存器函数向操作寄存器D2位写入读弹丸个数寄存器预置信号,然后对弹丸个数寄存器进行读取,此时读取的实际是存储器中数据的个数,然后将此数据进行转换,换算成实际弹丸的个数,由指针*ge_shu输出。
读取弹丸个数后,先判断弹丸个数是否为0,如果弹丸个数为0则给出提示信号,表示此次测试没有弹丸通过;如果不为0,就可也以用它来限定循环此处进行存储器中数据的处理了。通过驱动部分可以知道,在IVI驱动器中包含了三个数据读取函数。所以在应用软件中可以有两种方法实现主、辅存储器的读取。
如果使用CSY_READ_DATA (ViSession vi, int zhu_fu, ViInt16 addr, int *d_out)实现读取,需要使用for()循环,逐个读取。这种方式使用于调试程序会使调试比较方便。核心语句如下:
共14页:
上一页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
下一页
上一篇:
卷绕式真空镀膜机卷绕系统结构设计+CAD图纸
下一篇:
SolidWorks交通路锥自动输送机构设计+文献综述
基于网络技术的转向架应力监测与评估
多层次总线下的煤矿安检...
RS-485总线的理论与实践【2945字】
profibus现场总线茬筛贮焦生...
基于ANSYS的螺纹连接受力与变形分析
基于3DMAX绞吸式挖泥船的动作仿真
基于轮-履变结构的轮椅式...
医院财务风险因素分析及管理措施【2367字】
C#学校科研管理系统的设计
神经外科重症监护病房患...
国内外图像分割技术研究现状
公寓空调设计任务书
志愿者活动的调查问卷表
中国学术生态细节考察《...
AT89C52单片机的超声波测距...
10万元能开儿童乐园吗,我...
承德市事业单位档案管理...