I have an RJ3iB with a router. In my program, once I sent the spindle ON command to the router (DO) I have a wait statement that looks at the speed feedback (AI) from the spindle. Once the spindle is up to speed, the robot starts cutting our parts. The problem is that when the robot is in manual, if the operator releases the dead man the spindle turns off. When he restarts the program, the robot continues with it's motion without waiting for the spindle to come back up to speed. How do I make the robot so that no matter where it is in the program, if the spindle isn't up to speed, it won't move? This seems like it would be trivial to do with BGLogic, but unfortunately I don't have that option.
How to prevent movement based on analog input feedback
-
TitusLepic -
August 26, 2015 at 8:54 PM -
Thread is marked as Resolved.
-
-
Do you have an Autoexec program specified for Cold and Hot Start in the CONFIG menu? We do that with our robots, but they are all R30iA and newer, not sure about RJ3iB controllers. The autoexec will run on startup and you can make it loop and continually check for that condition. You could tie an output or flag into the HOLD input in the UOP.
-
I don't currently have an autoexec program. After a bit of searching, I think I understand how to set one up. My question is on the UOP input. From what I'm understanding, UOP uses a physical connection on my input and output cards to trigger a specific function. I.e, I'm going to have to run a wire from an output to an input, map that input to UI[2], and write the autoexec program to keep that output high unless my hold condition is met? If that's what it takes, I can do it, but if there's a way to do it strictly in software that would be preferable.
Sorry about the ignorance on my part, I don't have a manual or any sort of advanced training.
-
edit: I can't read, you don't have background logic.
To assign hold to a flag, you would just punch in slot 34, rack 1, then the flag you want to assign it to. When the flag is on, the hold bit will be on.
-
Like Nation said, I use flags for some of the UOP inputs. Rack 34, Slot 1, Start 1 would map Flag 1 to the UI you want to control. Your program can then turn on/off that flag depending on the status of the router. The autoexec program can't have a motion group. And the Ignore Pause setting should be true.
-
I'm getting the message "port assignment is invalid." Also, I've looked through all my menus and can't find mention of flags anywhere. Is there an option or system variable that I need to enable?
-
Not sure if this has anything to do with it, but I found a variable group that looks like it might be related? $IO_UOP_CFG
Current settings:
1 $UOP_TYPE 1
2 $IN_RACK -1
3 $IN_SLOT -1
4 $IN_STRTPT -1
5 $OUT_RACK -1
6 $OUT_SLOT -1
7 $OUT_STRTPT -1 -
Not sure what that variable is. You should be able to see the flags in the I/O menu by pressing the TYPE button. That controller may not have Flags.
The other option is to specify one of the spare digital outputs that you might have. You would specify the Rack, slot, start for that particular Output point. The rack and slot numbers should be the same as you have specified in the Digital Output config. The start number will be how many points away from the first DO point. If you have DO1-DO16 and you want use DO12 for the UI input then the start number would be 12. It is a pointer to the specific Output point in that range of outputs.
-
Reading through the documentation, it looks like flags are part of the package that background logic uses. If you don't have background logic, you won't have flags.
Another option for assignment would be to assign an output to a memory port. These are internal memory bits that are only visible inside the robot, they don't go anywhere. To do that you would assign it to Rack 0, slot 0.
You would then assign the hold bit to the same memory port, and then fire the output from your startup program.
-
This makes sense. I can set it up in roboguide. On the actual robot though, I can set the DO to Rack 0 Slot 0 with no errors, but when I set the UOP to Rack 0 Slot 0 I get an "Invalid port assignment" message.
-
You will need to assign the START value also for both the DO and the UOP. I just tried it with assigning DO81 to Rack 0 Slot 0 Start 1 and UOP (UI1) to Rack 0 Slot 0 Start 1. It worked great in Roboguide.
Thanks Nation for pointing out how to use the internal memory bits, that is a neat trick to use the DO's.
-
I have my DO[100-108] set to Rack 0 Slot 0 Start 1.
I have my UI[2] set to Rack 0 Slot 0 Start 2.From what I'm understanding, DO 101 should trigger UI[2]. Instead, UI[2] is showing as an invalid port assignment.
-
Not sure what the issue is with yours. I tried your config on an M-16 in Roboguide and it worked OK.