I am interested in finding out what the Teach Pendant sends...
I haven’t broke into the teach pendant communications yet. I do know the Main system sends a constant stream of data to the pendant. I think it keeps the display updated. IT seems like a lot of overhead, but the pendant is sometimes the only interface an operator has, so it might make sense.
The Serial pin out is important, but don’t forget the ‘Deadman’, Speed, and ‘E-Stop’ circuits.
The Deadman is a loop that lets the robot know it is safe to keep moving. Usually the pendant has a button on the side and a switch in the back. If the pendant is hanging up the back switch is held in, If the pendant is not hanging up, the operator has to hold in the ‘Deadman’ in order to keep the robot moving.
The Estop is a circuit loop through the whole system. Break the loop and everything stops. If you are going to have a virtual device, you could just loop these two lines through the connector I guess.
The final is a toggle switch that sets the move speed in the teach mode. Normally the robot will move slowly but flipping the switch will enable faster movement.
There is also an Accessory port... I found some documentation that says it is RS232 and can be used by an external computer... but I can't seem to find out exactly what is sent for control. It could be a command set like VAL, or it could be something more streamlined like J6200 to drive joint 6 to position 200... and so far... no way to find out.
The Accessory port is just a serial port on the system. You need to access the memory locations 776520 – 776526 to use it.
776520 Rcv Status register
Only 2 bits:
<6> R/W – Enable =1 / Disable =0)
<7> R - 1 = Ready to read. Cleared by Reading Buffer
776522 Rcv Buffer
16 bits ( yes 16!)
<7:0> 8 bit data
<11:8> - Not used
<12> Parity Error
<13> Frame Error
<14> Overrun Error
<15> Any error (set if there is ANY error)
776524 Tx Status Register
3 bits
<0> R/W - 1=Space mode. Create a space or Break signal.
<6> R/W – 1 = Enable
<7> W - Buffer Empty –or- TX complete
776526 TX Buffer
8 bits
<7:0> - Data to be sent
I can send you a sample program that shows how to access this port from inside VAL. Once it is set up, it is just a port that the VAL program can use for a printer, or any other Aux I/O you want.
To actually control the joins from outside of VAL you will want to use the ALTER mode. It requires another serial card. They are still out there on ebay. Adding another card you get another 4 ports. The SUPERVISOR and ALTER ports allow you to directly control the arm from outside. A small VAL program is still needed, but you loose all the Kinematics and frame tools of VAL so you will need to do all the heavy lifting in your own code.
I’ll get the materials I have together if you are interested in those also.
-Mike