After my last post about 3 weeks ago when I was learning labview, I am happy to say I think I’m doing pretty well. We do have a problem though…
The code worked just about but what happens is when I run the bot the Watchdog will flash on the dashboard on and off… the compressor and tank drive will run when it says “teleop enabled” and will circuit off when it says “watchdog not fed”
I have a second problem as well though. None of the solonoids are working! I was told since we use both pwm sides that i need to set one side to one button and another to another button… (picture below)
Third problem is that with this… the autonomous code isnt working either. None at all.
I have checked for electrical problems with both things as well as checking all the pwm placements and everything is in check.
I did add a few new things lately in the finish area that weren’t there before. I have yet to test this and maybe will today. I will post something if there is a change.
Anyone have any ideas? I have posted pictures of each coded area below.
I have spread some things in pictures out for your viewing ability.
The “watchdog delay and feed” pattern you’re using for autonomous is not appropriate for Autonomous Iterative. Put it in Autonomous Independent instead. The way you’re doing it now will disrupt communication. You’re feeding the user watchdog, but the system watchdog will still shut down the robot outputs. I haven’t looked at what it does in detail, so there might be other problems as well.
The additions you made to Begin and Finish seem fine. However, it looks like the code which ought to be in Teleop was added instead to the framework’s communication loop, and it looks like you’re trying to open new references to resources instead of using the “RefNum Get” to obtain the reference that was opened in Begin. I suggest that you start over with a fresh project, and this time make changes to Begin.vi, Finish.vi, Teleop.vi, and Autonomous Independent.vi only.
Both the telop and the autonomous iterative should process very quickly and return. Both your telop and your autonomous iterative continue processing for a long time. Since they don’t get back to robot main quickly, I think that is the cause of your watchdog problems. You’ve added DS communication VIs which are redundant with the ones in robot main and may also be causing problems.
Look at the default telop (if you create a new project). You should be able to take most of the code within your while loop and paste it into the execute case in the default telop. This returns quickly.
For your autonomous, the easiest solution would be to take the code and put it in autonomous independent instead. Autonomous independent is started in parallel with the rest of the code and doesn’t need return quickly.
What type of solenoids are you using? If you’re using 24v solenoids (like the ones that came in the kit this year), you need to make sure the solenoid breakout is wired with 24v. If you’re using single solenoid valves, you need to keep the value set, so based on your code you’d need to hold the joystick button.
I was told iterative was for things that would be like a “list” this happens… then this happens… and so on…
with the refnum get thing… i dont understand what you are saying… I was told by the team who taught me that the idea had to be “SET” in begin andd then “GET” where i have to use it… could you make an example picture maybe?
should i lengthen the watchdog time on the autonomous?
what do you mean by the DS things? I dont remember adding a thing. This was made straight out of a fresh project
alright, I’ll put it in the excecute
I will do that with the autonomous :] thanks
the solonoids: we have 2 of them. both double sided… the one for our arm is a festo from this year and the other is a older one i guess a 12v. they are both hooked to the slot 8 on the crio by a 2 wire pwm (i forget the technical name)
quote from mark: how should i go along doing that? could you make a quick example i could see? i tried to follow the examples given in labview.
I was told to have a button for opening and closeing on there though i would like to just press it and have it come back when i release