The subVI ran find and did not give an error. It gave you a result in the string that says "communication error".
You should wrap the scan from string with a case structure so that it only executes if the string does not say "communicaiton error".
That or do a Clear Specific Error after the Scan from String so it clears Error 85.
As RavensFan said that is the response from the amplifier. You might need to do some more troubleshooting and figure out why it's giving you that response. Does it happen all the time or is there some specific case that causes it? How are you connected to the device? Serial? USB?
I mainly use GPIB-USB-HS from NI to connect.
4 pieces of equipment are needed in my experiment. I was testing under two scenarios:
1. 4 pieces of equipment are connected in parallel using their GPIB ports and then they are converted to USB with the adapter, including the amplifier. The GPIB-USB-HS is connected to PC using a USB hub to type c port of PC. 1 more equipment is also connected using GPIB wires but not powered up.
2. 3 pieces of equipment are connected in parallel using their GPIB ports and then they are converted to USB with the adapter, including the amplifier. The remaining equipment is changed to a USB-only model and I am using its USB port. Both the GPIB-USB-HS and the remaining USB-only model are directly connected to USB port of PC, without USB hub.
The random error I faced happened sometime in scenario 1. For now, scenario 2 doesn't report the error and runs well. I plan to redo the scenario 1 on Thursday.
Also, I take the advice to ignore error 85 using clear error.vi.
Something else you can do (which I've never had to do but could see myself having to do one day) is append a message to error 85 with both the format string and the input string. As soon as the error shows on your screen, you will know why it happened. This goes for Scan From String in general, not just this situation.
Saying "Thanks that fixed it" or "Thanks that answers my question" and not giving a Kudo or Marked Solution, is like telling your waiter they did a great job and not leaving a tip. Please, tip your waiters.
Well communication errors do happen even with no errors in a program, especially in a noisy environment and when a lot of communication is happening. If you want to try and pinpoint the failure there are tools like NI IO Trace that will allow you to log the communication. At the very least I would probably have some logic to try and get the fault status a few more time before throwing in the towel. Something like putting the VI in a for loop wired for 5 iterations and a conditional terminal so that if there is no error, end the for loop before the other iterations, but that is my personal take on it.