使用软件代码改变CAN属性节点时,没有作用。



硬件: Industrial Communications>>CAN

问题: 为什么当使用软件代码改变CAN属性节点时,没有作用?

解答:

一些CAN属性只能在使用CAN Start.vi执行任务前,使用软件进行设置。原因是因为很多属性会影响通信沟通的方式,这样的话在开始任务之后再进行动态的改变,会无可避免的损坏现在的通信状态(例如波特率的属性节点)。如果是这样,会得到如下的错误。

因此如果想要使用软件代码去修改CAN的属性,需要在开始任务之前进行设置。例如,如果使用Channel API,就不能使用CAN Init Start.vi,而是要使用更高一级的VI CAN Initialize.vi和CAN Start.vi。在这两个VI之间可以插入CAN Set Property.vi来设置一些属性。

下面的附件提供了一个范例,在范例中,开始任务之前设置CAN的属性,而其他在开始任务之后尝试改变属性是不正确的。可以通过运行附件中的VI看到效果。附件VI中先设置波特率,再通过CAN Get Property.vi得到该值。然而,如果在Start.vi之后执行CAN Set Property.vi,就会发生错误。

 



相关链接: Product Manuals: NI-CAN Hardware and Software Manual and Specifications
KnowledgeBase 3DNBCA4B: Interpreting Values Written to and Returned by the ncWaitForState function or ncWait.vi
KnowledgeBase 3X2IG5C5: Error -1074388969 When Running a CAN Program

附件:

 



DoesSetProperty.vi - DoesSetProperty.vi
DoesNotSetProperty.vi - DoesNotSetProperty.vi


报告日期: 09/24/2004
最近更新: 06/29/2014
文档编号: 3DNAUQ4B