labview的串口
放在外面的话,plc收不到发送的命令,里面的话,总是造成labview的彻底瘫痪..
不知该怎么办了..
如果外层不用while 循环的话,那该采用什么结构比较合适呢?谢谢@!
可是防在外面,plc接收不到命令呀,,这是什么原因?
plc是啥
程序有问题吧,把这一段贴上来看看
请确认PC何PLC的串口设置一致,比如Baud rate, stop bit, 等等,另外,是不是要用null modem cable? 也就是一端的发送连到另一端的接收。
这个都统一了,把最外层的 while循环去掉后,就可以使plc动作了,但是加上后就不行了..
然后把visa close放到循环里面就可以连续执行几次,然后死掉...
等我把整个程序传上来大家看一下吧..
看了你的程序,放在while里面崩溃是必然的。原因:
循环间没有加延迟,而向visa的write命令是不会像read那样等待操作完成的,而是只要发送出去就算完成,因此电脑会以它所能的最快速度向串口发送write命令,串口这东西本来就容易死机……因此,卡卡。
建议:
在while循环里面加上操作完成的判断(看仪器说明),或者至少加上足够仪器操作完成的时间延迟,或者干脆每次值改变才对com口进行写操作,而不是不断地写。
o..
把visa close防在外面的话,里面加延迟不是还是一样的结果么?
我昨天曾尝试在里面加了延迟,然后也把visa close防在了循环里面,结果就是在那wait的几秒之间给plc的命令有效,然后就死了..
我传上去的程序,运行时不会死掉,但是似乎根本没把命令发出去,plc的串口没收到,根本不动作..
第二种方法的话,是不是外层换成事件出发结构呀?
才开始用labview...所以比较菜鸟-_-!
每次在循环里面开开关关的累不累啊……
最重要的是,你write了以后仪器会不会有回应?一般的串口仪器都会在收到命令执行结束以后回应一句ok之类的,如果不read就继续发指令仪器当然会停止响应。你再好好看看说明书吧