I have a PXI Chassis with the HS CAN card: PXI-8512/2. I'm using Port 1 and have programmed everything in LabVIEW 2010. My project is to automate some test procedures by controlling devices via the CAN.
Everything has been working out pretty well for me until today. I'll run my program and everything will seem to be fine and then randomly I'll get a little blip from the red LED and the signal that was supposed to be transmitted is never seen by the device. Sometimes it will stay red and the every signal thereafter is not transmitted successfully. Both of these screw up my test.
I have no idea what might be causing this and so am looking to anyone that can point me somewhere for information. I have two parts I'd like to do to get this done. The first one is to figure out why it is happening and then try to prevent it. The other thing I'd like to do (and probably more important in the long run) is to be able to run some sort of feed back to know if the signal was delivered or not. If it wasn't record that it wasn't and then resend the signal. Do this until it's sent.
Any help or suggestions would be appreciated. Thank you.
Can you please explain any changes (HW or SW) between the initial condition of your application (when it was performing as expected in a stable manor) and its current condition?
I was working on it on Friday and as far as I noticed it had been working fine. I went home for the weekend and came back on Monday and this started to happen.
I can assure you that nothing as far as hardware goes has changed.
Since Friday, there has been a couple updates to the software. I was trying to build an installer to include my application to run on computer without LabVIEW installed. I had to download and install NI-488.2 2.8.1 and NI-XNET 1.3 runtime engines to include them in the installer. I believe the previous versions were NI-488.2 2.7.3 and NI-XNET 1.1.1, but I can't remember for sure.
The only other things that have changes are adjusting constant values within my LabVIEW program. All of which define wait periods, the CAN frame, the CAN port, some TDMS property values, and a VISA address, etc. Earlier in the week, I was having issues with my subVI's communicating properly and so created the entire program without subVI's and it ran perfectly. Then I re-createed my subVI's in a way that worked better for my program. Again everything worked perfectly.
One thing I'd like to point out that I was thinking about today is that my program requires that I hold a button for a specified amount of time and when I left the CAN.TxTime at its default it wouldn't work because the CAN device would see the signal disappear and then reappear. So I have a property node that sets all my signals to these values:
CAN.TimingType = Cyclic Data
CAN.TxTime = 0.001
I think that it might be possible that the TxTime is too high and the device can't keep up, but if I lower it to half that I run into difficulty holding the button again.
If there is anymore information that you need let me know, I appreciate the help.
Also, do you (or anyone) have any thoughts on how I could set up some sort of feedback loop to ensure all data was transfered correctly?