Labview供给支撑VXI总线、GPIB总线、RS?232串行总线接口硬件的驱动程序库,但它对物理内存的操作受到限制,且对硬件操作的实时性欠好。但它供给了CIN(CODeInterfaceNode)节点。用户可在LabVIEW中确认CIN节点的进口与出口参数个数类型,在C编译环境下,生成.lsb文件,然后在LabVIEW中对CIN节点挑选Loadcinobjectcode,最终将该节点封装成一个VI,由主程序调用。选用CIN节点,也可充分运用Win95支撑多线程的功用,进步运转功率,运用主线程监控各子线程,有用地防止因硬件通讯过错而导致程序被挂起的现象,一起,可充分运用Win95有用的内存办理技能,进步数据处理及运算速度。
2.1VI规划
首先在块流图(BlockDiagram)上放置一个CINVI,然后经过CIN弹出菜单中的AddParameter添加接线端子(Terminal),经过接线端子来标识CIN的输入和输出。接线端子一般有输入输出接线端子(Input?OutputTerminal)和输出接线端子(Output?OnlyTerminal),在缺省情况下,接线端子是输入输出接线端子,其左面是输入,而右边是输出。在生成的代码中,与输入输出接线端子对应的是一个参数,经过该参数,数据输入CIN,CIN可以运用该参数的值或修正参数的值可以由该参数回来;假如输入输出接线端子的右边没有运用,即只要输入,则CIN只能运用该参数的值而不能修正它。关于输出接线端子,它只要输出端,没有输入端。由LabVIEW在内存中设置空间保存CIN的回来值。在界说了CIN接线端子后,将设定的数据操控器(Control,衔接输入)、数据指示器(Indicator,衔接输出)与对应的接线端子用线(Wire,代表数据流)衔接起来,这样将确认所生成代码中的参数类型。
上面的进程仅仅界说了CIN的内部接口,还必须界说VI的编程接口,即肖像/衔接器,经过它才干在程序中调用规划好的VI。在肖像/衔接器的规划中,尽量使所画的肖像可以表达出所规划的VI的功用,选用在肖像上标识该VI称号的办法。衔接器则是标明肖像的输入输出特点,数据和信息经过衔接器的端点在两个VI间传递。这样就规划好了一个VI,但要给它装入方针代码后才干履行。
2.2生成.c文件
在规划好CINVI后,可用LabVIEW生成C言语格局的.c文件。下面是咱们规划的StdCMD.VI所生成的StdCMD.c文件:
在所生成的文件中,主动包括了文件extcode.h,它是界说可以被CIN运用的根本数据类型和外部子程序的头文件。假如规划的CIN代码含有体系调用,还必须包括文件hosttype.h。当CIN代码履行时,LabVIEW调用CINRun函数,经过CINRun函数的参数传递VI的输入输出值。LabVIEW界说的程序回来值是MgErr数据类型,在履行完CIN代码后,LabVIEW可以查看回来值并确认代码履行是否有过错。
2.3用户代码规划
在CINRun函数体内编写用户代码是完结所规划的CINVI功用的要害。在咱们所规划的5个VI中,这部分代码的编写主要是运用规划好的驱动程序完结多机测控体系的操控使命,将驱动程序的接口函数封装在VI内,在用LabVIEW编制测验软件时,经过调用VI来完结对多机测控体系的操控操作。
2.4编译代码生成.lsb文件
在Windows95/98下,运用VisualC+5.0IDE编译规划代码,详细操作进程如下:
(1)创立一个新的DLL项目。在VisualC++5.0IDE环境中挑选菜单指令File
New…..在弹出的对话框中New:域中挑选ProjectWorkspace项,按OK键。在接着弹出的对话框中Type:域中挑选Dynamic?LinkLibrary项,在Name:域中输入StdCMD(该项意图称号),在Platforms:域中挑选Win32(表明即将生成的DLL是32位的),在Location:域中输入(或按Browser…键,挑选)源代码文件地点的途径(注:编译进程中生成的中心文件和可履行代码也会发生在这个途径下),按Create…键完结DLL项意图创立。