微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 用labview做的ZLGusbcan的驱动,生成可执行文件后为什么总是不能正常驱动设备?

用labview做的ZLGusbcan的驱动,生成可执行文件后为什么总是不能正常驱动设备?

时间:10-02 整理:3721RD 点击:
用labview做的ZLGusbcan的驱动,生成可执行文件后为什么总是不能正常驱动设备?


接收数据的快慢也跟你程序本身的设置有关系吧。你在程序里的延迟要仔细把控一下。

看 文件 是否完整需要调用的dll文件 路径是否正常引用

这个问题解决了,是因为调用的dll文件重复了。删除了一个就可以运行了。

但是现在有遇到一个新的问题,就是与下位机相连的时候,接受数据接收的特别慢,下位机都断电好久了,上位机还在读数,以至于上位机往外发送数据的时候发不出去。为什么呢?

这个问题解决了,把程序中的延时都删掉了,然后变成中有一个事件结构中的某一个事件编程出现了问题。但是又出现了一个新的问题,我想向不同的ID号中发送数据帧,只点一次发送,这样应该怎么实现呀?

将ID号存在数组中,然后用循环来控制发送。

把ID号和发送的内容弄成数组,用for循环来发送

发送知道是这样发送了,但是具体还没有实施。我能再问你一个问题吗?就是如何把两个按钮联系起来,按一下其中一个,另外一个也会实施动作?我希望底下那些升降按钮按动一下,就能触发发送按钮。应该使用什么功能?


你可以把那些升降按钮弄成升簇和降簇,然后用事件结构来执行这两个簇的值改变事件,在事件里调用发送函数发送相应的报文,或者是在事件中用发送按钮的值信号属性节点,在簇的值改变事件中触发发送事件然后跳到发送事件里发送报文。

谢谢你的回答,很清楚明白

我又遇到了一个问题,,我希望用右1这个按钮来实现升降,用你们之前说过的方法,吧id号,放到数组中,然后用for循环来控制发送,用了循环次数的值信号属性节点的值改变事件驱动发送函数。但是每次发送的都是往数组最后一个id中发送两遍数据,而不是每一个id发送一遍?请问这个问题应该怎么解决?



有没有人帮助呢?自己顶一下

把ID的那个数组放到for循环之外,从外面引进来才是按照数组的索引一个一个来,放到循环里面时,你只能看到你设置的循环次数的那个id被发送了。for循环除了起到循环作用之外还有自动索引数组的功能,你把数组放在循环里它就索引不了数组了。

把数组放到了for循环外边还是不行,不开usbcan的时候发送就显示两次发送失败,吧usbcan打开之后,还是等这个循环结束之后连续向第二个id号中发送两次数据,这是哪里的问题呀?


是这样,这个驱动总体是有三个while循环所构成的,一个是主循环,一个是接收函数循环,一个是发送函数循环,数据输入和ID输入都是在主循环里,这三个循环是通过产生用户事件联系起来的,我又试了一下,每次都是主while循环中的某一个事件全部运行结束后,才能运行接收或者发送循环,也就是说,只有这个for循环全部循环完毕,才能调用发送函数,执行次数虽然在运行过程中是值变化的也不能执行发送函数。之后这for循环循环完才能执行发送函数。是不是因为产生用户事件的问题?我是想不明白了,脑细胞都快死光了,也没有解决了。呜呜



我有新开了一个帖子,您也可以去那里指导我,在这里也行

估计是因为你用的这个“执行次数”来触发事件结构的问题。执行次数虽然每循环一次都会变一次,但是这个值信号的属性节点要输出的时候只有等for循环结束了才会有值输出。你要么把那个“执行次数”值改变这个事件里的程序都放到这个for循环中来吧。要么就直接把这个ID数组放到发送报文的地方,在那里用for循环来控制发送。另外记住不管是for循环还是while循环,如果要将循环里的值在循环外面引用的话,这个值只有当循环结束了才会输出,也就是你只能看到是最后一个值。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top