我正在努力确定为我的工作购买这两个中的哪一个.我使用过SIMULINK而不是LabVIEW.是否有人使用过两者并希望提供一些细节?我的调查标准是用户友好性,库和模板功能的可用性,实时探测设施,COTS硬件接口机会,代码生成质量,可测试性设计(即易于生成单元/验收测试)等.但是,如果有人想用更多标准教育我,请务必这样做!
对于不了解SIMULINK和LabVIEW的人 - 这些都是针对图形数据流建模(以及代码生成)的特定于域的语言(DSL).这些是多工业工具,非常多地用于工程设计和建模.
重要信息 - 我很想知道SIMULINK和LabVIEW是否提供实时探测.例如,我有一个我想要模拟的模型.如果有与该模型中某些构建块关联的变量,我可以在模拟继续时查看它们吗?我知道SIMULINK肯定不可能,因为它有一个逐步调试器.我不知道LabVIEW中有类似的东西.
我真的没有使用LabVIEW,暂时无法获取它,因为我的工作互联网有下载限制和管理权限问题.这就是为什么我根本不能仅使用NI网站得出结论的原因.如果有任何白皮书可以解决这个问题,我也很想知道:)
自上次发布后更新
我使用过MATLAB代码生成器,并不会说它是最好的.但是,我现在听说SIMULINK嵌入式编码器是最好的代码生成器,几乎是其中一种.任何人都可以确认这是否有利于安全关键系统设计,即从安全关键子系统模型生成代码.我知道Mathworks不断尝试缩小差距,以实现完全灵活的生产级C/C++代码生成.
我知道一个理想的答案是,"取决于你想要做什么,使用两者兼而有之".有趣的是,我认为我正朝着这个方向前进.ATEOTD,这是一笔很多钱,需要"很好"地度过.
提前致谢.
小智 16
我使用了1995年的labVIEW和2000年的Simulink.现在我参与了控制系统设计,使用labVIEW Real Time和使用MATALAB/Simulink/DSPACE的汽车ECU模拟机器人系统.
LabVIEW专注于测量系统,MATLAB/SIMULINK用于动态仿真,因此,
如果您运行复杂的模拟,并且您的工作是创建/调试控制器或工厂的复杂仿真模型,请使用Simulink + RealTimeWorkShop + StateFlowChart.LabVIEW没有用于动态模拟的有效代码生成器.RTW生成更小,更快的代码.
如果您的主要工作是为机器开发带控制器和GUI的系统,或者您想在现场部署控制器,请使用labVIEW.
如果您的主要工作是开发灵活的HIL或SIL系统,并且具有良好的GUI,则可以使用VeriStand.Veristand可以混合使用Simulink和LabVIEW代码.
如果你有很大的预算(非常大)并且你正在从事汽车控制原型,DSPACE硬件是汽车ECUS或OPAL开发电力电路的快速开发的一个非常好的选择.但仅适用于控制器的原型或HIL测试.
从COTS硬件的角度来看:Mathworks不制造硬件 - > Matlab/Simulink支持来自多家供应商的硬件.
NI生产/销售硬件 - > LabVIEW Real Time专注于支持NationalInstruments硬件.没有COTS完全替换.
我完全没有使用Simulink的经验,所以我只评论LV,虽然在维基百科上快速阅读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中编写代码).