Need help on programming my turn table (group2) by itself rather than at the end of motion with CTV. I keep getting a fault 0V alarm G2 when the robot speed slows to < 6mm/sec. So for now since it runs by itself I'm hoping to program them running the table in the background.
Any suggestions would be appreciated.
Turn table Group 2
-
athomas8 -
June 27, 2018 at 7:45 PM -
Thread is marked as Resolved.
-
-
Since it is a separate group, one way to do it would be to have your main program masked to only lock group 1 for motion, and a second program masked to only lock group 2 for motion, then set up the turn table program controlling group to to run on a loop, looking at a group input corresponding to an angle, and then moving a single joint to that angle. Use the Run command to launch your turn table program as a separate thread, and then send the rotation position, and if needed the rotation speed, to the Group Input, and it will handle that motion simultaneously with your robot program.
There are other ways, this is just my first thought.
-
Thank you Robo_Eng_13 .... that's what i was trying to do and you reminded me that i needed to change the group masking. My only thought is how do i set up the group outputs/ inputs?
-
We do all of our I/O via Ethernet IP, so that is all the experience i have, however the setup should be similar for any comm method.
We have our Digital and Group Inputs set to the same range of bits (so that we can send and receive integers via groups, but check individual bits with digital). The second post https://www.robot-forum.com/robotforum/fan…rom-all-of-us)/ has a good breakdown of what racks and slots do what. I use Rack 89 Slot 1.
When you set up a Digital Input/Output, you only set up the Rack, Slot, and Start for each range. With Group Input/Output, you also set up how many bits each group is. So, if you set every group to a length of 1, then they would behave exactly like digital. If you are dealing with Ethernet, i would recommend setting up all of your groups to have length of 8 or 16, and always start at 8 bit increments (we have some set to non 8 based lengths, and ran into issues with sending more bits than we planned to receive and overwriting data in other groups.
Once you determine the Comm Method and the Rack/Slot you will be using, then decide what values and how many you will need to send, then configure group inputs of the appropriate size to handle the values.
Tip. If you need to send 320.56, then plan to send 32056 as an integer, and then divide by 100 inside the robot logic. I have not done enough experimenting to be 100% sure, but i believe Group Input/Output are signed, so plan on needing one extra bit for sign. The controller will not throw any sort of error if your value exceeds what the group can handle. If your group is N bits long, and your value is M bits long, then it will either truncate the top (M-N) bits, or overwrite unexpected data in the bit range adjacent, so be careful of that.