I wana read the "motor on" state for FANUC robot like an ABB robot from outside ,for example , read SI,SO or other register, if possible, which register I can read ?
Thanks.
I wana read the "motor on" state for FANUC robot like an ABB robot from outside ,for example , read SI,SO or other register, if possible, which register I can read ?
Thanks.
There is a system variable that shows the brake status. $MOR.$brk_status
You could use BG Logic to set a DO equal to this. DO[x] = ($MOR.$brk_status). True = brakes released, motors are powered. False = Brakes engaged.
Another option would be to use the UO[3] Program busy output. Though if the program is at a wait the motors might time out and engage their brakes, but this output will still be on.
Thanks for your reply.
I don't want to change any program in the robot and realize reading the state of motor.I checked the UO list ,UO[3] is used for indicating program running ,plz refer to the attached PNG.
Looking forward to receiving your reply.
Yes UO[3] is probably the easiest.
It doesn't mean motor is on, it means program running, which may be good enough for you. Usually the motors are on when program is running, except if at a wait for longer than the brake timer. Also this wouldn't tell you if the robot is being jogged.
Thanks.
Is there a good way to read UO[3] real-time,for example via ethernet port to a PC?
Well now you tell me it's for a PC
How fast do you consider real time? What's your purpose for this? Are you willing to spend money?
There are different methods for communicating robot to PC so after you answer I can make a recommendation.
Why UO[3]? Program Running is not the same as motors On.
Read UO[2].
There is a system variable that shows the brake status. $MOR.$brk_status
You could use BG Logic to set a DO equal to this. DO[x] = ($MOR.$brk_status). True = brakes released, motors are powered. False = Brakes engaged.
Another option would be to use the UO[3] Program busy output. Though if the program is at a wait the motors might time out and engage their brakes, but this output will still be on.
This the method I prefer when I really want to know if the servos are running.
Well now you tell me it's for a PC
How fast do you consider real time? What's your purpose for this? Are you willing to spend money?
There are different methods for communicating robot to PC so after you answer I can make a recommendation.
Sorry for my un-clear previous information.
For real time ,I expect that I can get the state as long as the motor state changed and I don't want to spend money.
Plus questoin:
I can see the UO list in a virtual robot system (via web server), while in a real robot (R-30iB) I can't ,is there some setting in the controller?
Thanks in advance.
The same webserver is available on the real robot, you have to give it an IP address under menu>host comm>tcp/ip. Then plug your pc into the same network and browse to that address.
Are you just needing to look it up on the webserver or what are you wanting to do with that signal? On the webserver you would need to refresh to see a state change.
I want to read Fanuc robot variables ,suach it's running status, motor current, temperature ,torque.
The previous question maybe because of peripheral unit board not mounted.
What "$MOR.$PG_MCTL" stand for ,and where I can find all of the system variables' comments?
Thanks.
Are you just wanting to check these variables manually by navigating the webserver or are you trying to pull this information into another program?
Pull to another Program.
Are you just wanting to check these variables manually by navigating the webserver or are you trying to pull this information into another program?
What programming language are you using?
It is possible via http request. You would have to poll the status in your program.
We user C#.
How can we poll the status via http request? Is it for free?
Thanks.
If you want to read UO[2] you can read the content from the webserver. Just replace the IP address below "127.0.0.1" with the actual IP address of your robot. This pulls in the state of all IO so your program would then need to find just UO[2] and then read the state.
Thanks,HawkME.We tried this way before.But the update frequency is low (about 2 seconds/update), if we want to get a real-time variable such as the torque, it seems not fast enough.
Is there any other good way?
If you want to read UO[2] you can read the content from the webserver. Just replace the IP address below "127.0.0.1" with the actual IP address of your robot. This pulls in the state of all IO so your program would then need to find just UO[2] and then read the state.
Do you know where I can find the comments for the system variables of the webserver?For example the variables in "SYCLDINT.VA".
Thanks in advance.
That is probably the only free way to read the values with a PC. Any other method would require purchasing a communication protocol option, such as karel and socket messaging, or PCDK.
What do you mean by variable comments? There is manual that gives descriptions of system variables but it is incomplete. Is there a certain variable you are looking for?
I'm not sure how many or which certain variables.Can you share me the manual ?
Thanks.