Enumeration conflict error message

Hello today i have been working on my code for tele-op and finish VI i keep getting a Wire: Enumeration Conflict error message, im i need of assistance. Below is the screenshot of my error.





The Finish VI is where you can close and destroy any I/O resources your program has opened. It looks like the solenoid and DIO are actually Open VIs rather than the Refnum Registry Get VI that the other I/O uses.

So you can delete the Opens outside the sequence and drop the Solenoid and DIO Refnum Registry Get nodes, wire in the name of the I/O, and wire the refnums into close.

More to your initial question, the error code is saying pretty much the same thing I’ll say. Your enumerated data types do not have the same values in the same order. If you show the help window and hover, you will probably see the description of them and be able to figure out which ones you want.

Greg McKaskle

Thank you the finish vi is now fixed but i still dont understand how im suppose to connect the limit switch channel to the DIO in OPEN and the retract solenoid channel/extend solenoid channel to Solenoid OPEN.





Put the mouse pointer over the right side of the enumerated constant. It will turn into a “wire” cursor. Drag from there to the proper input on the Open VI. That will create the necessary connection.

Typically, you would right-click on the input terminal of the VI and choose Create -> Constant from the popup menu. That will make the connection and the enum at the same time.

when i connect it the open i get an error message and a red x and it won’t connect I believe the problem is the typedef

Delete those disconnected enums. Forget about them. Then right-click on the Open VI’s input terminal and choose Create -> Constant from the popup menu. It will appear, already wired, ready for you to select the proper enum value.

I would highly advise against opening and closing your objects in Teleop. Put the compressor, solenoid, and DIO opens in Begin and use a Refnum Set to pass the data between .vi’s. I also see a compressor close in teleop. Move this to Finish.vi to gracefully close the reference when you stop code execution.

I would also not recommend having a timer delay in Teleop. Teleop is already its own loop and shouldn’t be slowed down any more, or your robot may go into safety mode and disable outputs.

The warnings you are getting are referring to objects that are required to be wired for them to work. Specifically looking at your DIO In Get, you need a Refnum Get of the same type connected to that with the correct name you have set in Begin.vi. This will tell it what DIO channel to look at to get the value.

Good catch! I hadn’t even noticed that.

Juan, it looks like you’ve taken one of the LabVIEW examples and tried to copy the whole thing into Teleop. That’s not going to work. To see how to do it properly, look at Tutorial 7 - Integrating Examples into Robot Code. The tutorials are reached from the “Getting Started” screen which appears when you launch LabVIEW.