为了解决这个问题,可以借助其他编程语言编写出通信程序,再利用LabVIEW提供的外部代码接口机制调用这些程序。本课题所用到的USB通信程序已经编写好,并以动态链接库形式保存在PC机硬盘内。使用时只需在LabVIEW程序下根据调用规范设置相关路径和参数就可以使程序在运行的时候调用此动态链接库,使得模拟被控对象能够通过USB总线和I/O硬件电路与PLC通讯起来。下面对动态链接库技术进行简单的介绍。
2.3 动态链接库
动态链接库是由可执行程序模块组成的函数库,包含了其他 DLL 或应用程序可重复调用的函数、数据、类、资源等,是重要的代码共享技术之一[16]。调用这些代码的程序将与代码库进行动态链接,代码库一旦被载入到内存里面,就可以被多个应用程序使用,而不用重复编译和连接。 DLL 不能直接运行,但可 以被其他执行文件(如.EXE 文件和其他 DLL 文件)动态调用。在动态链接库中可以定义两种函数:导出函数和内部函数。导出函数可以被其他程序调用;内部函数则只能在库内使用,它的定义和普通程序函数一样。
动态链接是相对于静态链接而言的。动态链接不是将应用程序所调用的DLL导出函数的代码复制到程序中去,而仅是在应用程序中加入了调用函数的描述信息。只有当应用程序被装入内存时,才会与相应的 DLL 建立链表关系。因此当多个应用程序同时调用 DLL 导出函数时,无需重新加载 DLL,不像静态链接那样必须包含库中所调用函数的代码。
使用 DLL 最大的优点就是 DLL 的编写与具体编程语言及编译器无关,只要遵循其调用规范,那么 DLL 文件就可以被多个应用程序,甚至不同语言编写的应用程序调用,大大缩小了应用程序的执行代码,有很强的通用性。使用 DLL不是将其库代码拷贝,而是在程序中记录函数的入口点,只在程序执行时才将代码装入内存,系统运行效率高;另外,将 DLL 文件作为一个独立的模块设计并与调用它的应用程序相分离,这样在软件需要升级时,只要修改下 DLL 文件即可,提高了软件的开发速度。
动态链接库技术真正实现了资源共享,借助动态链接库可以实现应用程序与外部设备共享,如USB设备。在本课题中LabVIEW与单片机进行通讯时,只要调用动态链接库提供的导出函数就能完成对PLC输入/输出信号的读写操作,方便快捷。 基于物料分检系统的PLC模拟对象软件设计与开发(5):http://www.751com.cn/zidonghua/lunwen_14238.html