我正在尝试确定要为我的工作购买这两个中的哪一个。我使用的是SIMULINK,但没有使用LabVIEW。有没有人同时使用过这两种方法并想提供一些详细信息?我的调查标准是用户友好性,库和模板功能的可用性,实时探测功能,COTS硬件接口(interface)的机会,代码生成的质量,可测试性的设计(即,易于进行单元/验收测试)等。但是,如果任何人都想用更多的标准来教育我,请务必这样做!
对于不了解SIMULINK和LabVIEW的任何人-这些都是用于图形数据流建模(以及代码生成)的特定领域语言(DSL)。这些是多行业工具,并且在工程设计和建模中被大量使用。
重要-我很想知道SIMULINK和LabVIEW是否提供实时探测。例如,我有一个要模拟的模型。如果在该模型中存在与某些构建块相关联的变量,我能否查看它们随着模拟的继续而变化?我知道SIMULINK肯定是不可能的,因为它具有逐步调试器。我不知道LabVIEW中有任何类似的东西。
我确实没有使用过LabVIEW,并且由于我的工作网络受到下载限制和管理特权问题而无法暂时获得它。这就是为什么我不能仅使用NI网站得出结论的原因。如果有任何白皮书可以解决这个问题,我也很想知道:)
自上次发布以来更新
我已经使用过MATLAB代码生成器,不会说这是最好的。但是,我现在听说SIMULINK嵌入式编码器是最好的代码生成器,几乎是它自己的一种。任何人都可以确认这是否对安全性至关重要的系统设计有利,即从安全性关键子系统模型生成代码。我知道Mathworks一直在努力缩小差距,以实现完全灵活的生产级C/C++代码生成。
我知道理想的答案是“根据您要尝试做的事,同时使用两者”。有趣的是,我认为我正在朝着这个方向前进。 ATEOTD,这笔钱很多,需要“花钱”。
提前致谢。
最佳答案
我绝对没有Simulink的经验,所以我只对LV进行评论,尽管在Wikipedia上对Simulink的快速阅读似乎表明它主要集中在仿真和建模上,而LabVIEW肯定不是这种情况。
好的,因此,首先,LV不是DSL。尽管您不想在任何项目中使用它,但它是一种通用的编程语言,应将其考虑在内。我知道NI有一个用于LV的仿真工具包,如果您要这样做的话,可能会为您提供帮助,但是我对此完全没有经验。我看到的图像似乎表明它为LV添加了一种特殊的图进行仿真。
其次,LV不限于任何类型的硬件。这是一种通用语言,因此您可以编写完全不使用任何硬件的代码,可以使用或在NI的硬件上运行的代码,或者可以使用任何硬件的代码(例如,通过DLL调用,.NET程序集,RS232, TCP,GPIB或您可以想到的任何其他选项)。各种设备的LV驱动程序很多,驱动程序的质量通常取决于编写该驱动程序的人。
第三,您当然可以在LV中进行实时探测。就像使用C或Java一样,您可以编写代码,并且在运行代码时,可以使用多种调试选项:
当然,由于您在谈论代码,因此您也可以简单地编写代码以将值显示在图形或数字指示器的屏幕上或将其记录到文件中,因此无需进行实际探测。您还可以添加分析代码等。
第四,您可以尝试以全功能评估模式下载并运行LV。如果我没记错的话,NI目前会给您7天,如果您在他们的网站上注册,那么它会给您45天。如果您无法在工作计算机上执行此操作,则可以在家中尝试。如果您的问题仅在于下载,则可以尝试联系您本地的NI办事处,并要求他们向您发送DVD。
请注意,我对建模和仿真一无所知,因此我不知道要执行所需的操作实际上需要编写哪种代码。我假设如果NI有一个特殊的模块,那么它不是您可以完全用常规代码覆盖的(至少如果您想要原始符号,则不是),但是我想说的是,如果您可以编写能完成此任务的代码,如果您想用C语言编写,就没有理由不应该用LV编写代码(当然,假设您知道如何用LV编写代码)。