LABVIEW的深入探索之LABVIEW能否读写物理内存
2015-08-25 来源:eefocus
除了直接操作端口外,个别情况下我们可能会遇到直接读写物理内存的问题。LABWINDOWS/CVI提供了几个有关物理内存的函数,自然我们可以通过CIN或者DLL,使LABVIEW间接具有操控物理内存的能力,但这不是我们今天要探索的。
下面是CVI支持的IO端口操作函数和有关物理内存操作的函数列表和简单说明。
Port IO Input Byte From Port inp Input Word From Port inpw Input Double Word From Port inpd Output Byte To Portoutp Output Word To Port outpw Output Double Word To Port
outpd
Physical Memory Access Read From Physical Memory ReadFromPhysicalMemory Read From Physical Memory ExReadFromPhysicalMemoryEx Write To Physical Memory WriteToPhysicalMemory Write To Physical Memory ExWriteToPhysicalMemoryEx Map Physical Memory MapPhysicalMemory Unmap Physical Memory
UnMapPhysicalMemory
过去一般的做法是把上述的函数封装成DLL或者创建CIN。
如果我们跟踪LV中的端口操作函数,可以发现LV中的IN OUT实际上也是通过调用一个DLL中的函数,从函数名称上也应该是封装了上述的函数。
实际上,这个DLL文件包含了很多函数,只是没有直接向用户敞开,下面是隐藏的函数列表。
从DLL文件名称上看,该DLL文件应该是重新封装的打包DLL..
下面我们探索一下这些隐含的函数是否直接可用,由于直接操控物理内存,使用时要特别注意。看看CVI中ReadFromPhysicalMemory函数的原型定义。
--------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------
经常使用计算机端口操作的朋友们可能经常会在BIOS中查看计算机串口、并口的端口地址。COM1和COM2的地址一般为0X3F8和0X2F8,计算机并口的数据寄存器地址一般为0X378,早期计算机也有0X3BC的情况。这些端口地址在计算机启动后,会直接映射到0X400开始的一段内存空间上。DOS时代可以直接通过DEBUG来查看,下面我们通过读物理内存函数来验证一下这些函数是否可用。
从实验的结果上看,正确返回了0X3F8 0X2F8 0X378,这说明了这些隐含的函数是完全可用的。这些函数使用时必须谨慎,下面给出读物理内存函数的详细配置,以防出现问题。
- 300PLCmpi转以太网通过CHNet-S7300与LABVIEW OPC通信
- e络盟利用免费数据记录软件和 CompactDAQ 硬件增强传感器测量功能
- 开发一种基于Matlab与LabVIEW的电机测试平台
- 基于LabVIEW软件设计的调试平台在工业控制中的应用
- e络盟开售NI LabVIEW+套件,加速测试产品上市
- e络盟将携手NI举办网络研讨会,带您了解LabVIEW
- 一种基于STM32和LabVIEW的无线温湿度检测系统的设计
- 基于单片机DHT22温湿度LabView上位机监控系统设计
- 基于labVIEW与单片机的上位机与下位机通信
- e络盟携手NI,推出LabVIEW与测试自动化教育课程