LabVIEW“驱动程序” - 入门

问题描述:

我已经编写了一个独立的应用程序,通过RS-232端口控制设备,一些客户希望能够在LabVIEW中使用该设备。我已经看到一些线程描述了在学习使用LabVIEW时从哪里开始,但是我想知道是否有人有为LabVIEW编写插件/驱动程序的经验(这是正确的词?),并且可能指向正确的方向。LabVIEW“驱动程序” - 入门

现有的应用程序是图形用户界面,可以让人们以更高层次的概念控制设备 - 而不是必须知道的串口通讯科的东西语法和协议。我也想把它抽象出来,以便用户可以将某些东西插入到LabVIEW中,并且我认为它暴露了一些动词和方法,这些动词和方法允许操纵设备并向客户端提供数据。

我觉得这是从LabVIEW串行端口接口,但我相信使用这种设备的人不希望有写的代码(解析器和等)与设备进行通信。

有两种选择,你想要做什么。

  • 创建一个DLL,您的设备的用户可以call from LabVIEW

  • 在LabVIEW中重写您的应用程序。

为了达到最大可能的潜在客户,选项1将是您最佳的解决方案。如果您的客户特别要求LabVIEW驱动程序,那么选项#2可能是该特定客户最少的麻烦。原因在于,LabVIEW是一种非常有用的语言(用于自动化和数据采集),并且对于许多LabVIEW开发人员来说,它是他们知道的唯一语言(或者他们唯一知道的唯一一种语言)。

最好的资源用于LabVIEW编程是National Instruments Knowledge Base。由于LabVIEW仅在这样一个小部分中很受欢迎,因此在那里没有太多其他Web资源。我读回来的时候我在LabVIEW编程

一本书是LabVIEW Power Programming。它有很多很好的示例代码,如果我没有记错,它会告诉你如何使用用C++编写的第三方DLL。但它绝对是不是表明你是如何编写这些DLL的。

+0

是的 - 那是我找到的麻烦。我会尝试在该网站上寻找更多信息。 – Tim 2008-10-23 01:09:50

LabVIEW能够处理与少的问题RS232通讯 - 你只需要提供与该设备使用的命令和语法的列表,客户,也许一个小的框架或范例VI与基本功能。

我赞成你想提供一个更强大的驱动程序,不需要用户来解析自己的命令;大多数供应商通常称之为LabVIEW'驱动程序',只不过是一些简单的GUI中捆绑的命令('init','read')。

您不必重新构建完整的应用程序,只是给他们足以让他们自己开始=)

要开始,你可能会想使用VISA in LabVIEW

+0

谢谢 - 我了解LV支持rs232,就像你说的,我想让设备使用起来非常简单。 (我不是设备mnfgr - 只是一个开发人员填充(微小)需求) – Tim 2008-10-23 23:48:13

如果您准备投入一点时间学习如何在LabVIEW中进行编程,可以找到有关如何开发仪器驱动程序的相关信息:herehere

实质上,您应该提供一组VI(LabVIEW代码的单元),用于实现设备支持的各种操作。 LabVIEW程序员将使用VI应该提供的VISA资源(即串行端口)和错误输入/输出端口将这些序列链接在一​​起。查看第二个链接的例子。

如果你不想学习如何正确地做到这一点 - 你的第二篇文章建议你不要 - 然后创建一个暴露必要功能的DLL,或者让一个LabVIEW程序员为你编写驱动程序。如果您可以提供足够的协议文档,而且它不是非常复杂,那么应该花一个下午。如果您的用户对LabVIEW非常感兴趣,那么他们中的一位可能会很乐意为您提供适当的折扣或奖励 - 对于任何能够胜任LabVIEW的人来说,这并不难,而且他们已经有了自己的双手在你的设备上,并了解它的功能。您可能首先要与其他LabVIEW用户一起测试结果,因为您无法评估他们自己的工作质量。

如果你走的是DLL路径,你需要检查你需要的参数是否与LabVIEW数据类型兼容。我不是C/C++程序员,所以我不能详细告诉你这是什么意思,但this可能会有所帮助(Rolf Kalbermatter是LabVIEW与外部代码连接的大师)。

如果你想找到一个LabVIEW程序员,那么NI可以通过他们的联盟方案向你推荐一个。

(编辑就写的DLL添加链接LAVA论坛后用于LabVIEW)

+0

谢谢。当我们有时间去做时,我一定会以正确的方式做到这一点。我只是认为这将是相当简单的,以得到这个工作。 – Tim 2008-10-28 04:21:15

你的客户想用LabVIEW中使用你的代码。这并不意味着你必须编写LabVIEW代码。

LabVIEW可以与DLL进行交互。这里的技巧是避免更复杂的数据结构。如果你保持传递基本数据类型的价值,你将没有问题。 LabVIEW也可以处理数组与DLL之间的数组。避免指向指向结构的指针或指针。

LabVIEW还可以与.NET程序集进行交互。

通过TCP/IP使用客户端/服务器模型也没有什么可阻止您。