So at this point I was ecstatic. I knew if I could get this far, then there was a much better chance that things were in better shape than I had worried they might be in. After power up, I was immediately greeted with some error codes. The teach pendant display is just a two line LCD display, so the information it provides is pretty minimal.
The first error I got was ERROR 771. The user manual had this explanation:
From my experience earlier working with the encoders on my bench, I know the encoder sets all status flags (including the overspeed flag) after the external backup battery source is disconnected. Since this robot had been without battery for the encoders all these years, this made sense to me. I jumped right into the encoder reset procedure in the manual.
Each motor, under the plastic covers, has a 2 pin red plastic connector coming off of the encoder connector. If a shorting jumper is installed in this location, 5V is applied to the encoder reset pin. Holding this condition after power on for 4 seconds clears all the errors and resets the multi-turn counter on the encoder. This was done one encoder at a time, starting with J1 and working my way up to J6. After each reset, the teach pendant would display a new error code, first ERROR 772, then 773, and finally 776.
This was completed without issue. I'm so grateful to Denso for providing the old manuals for this robot! I don't think I could have figured any of this out without them. Next was the CALSET procedure. This requires you to place the robot into a known configuration against the hard stops and run a procedure which the controller uses to learn the encoder positions at the ends of travel and relate them to the RANG calibration values which I'll explain in a minute.
The manual is pretty clear about the procedure, however whenever I got to step 5, I would get an ERROR 8 and the CALSET would terminate. It took me a minute to figure this out since ERROR 8 was an active ESTOP circuit, and I was able to verify all my circuits were closed and working properly.
Eventually I found the service manual has a chapter titled "Descriptions of Major Error Codes". In here, there was a mention to a function which is not clearly described in the user manual. Apparently the INPUT cable is not an optional component, and it has several signals which are needed to perform standard operations on the robot. Specifically in this case, the INPUT cable is part of the ESTOP circuit and needs a connection between pins 1 and 3. I had left these "optional" external interface cables disconnected during startup. I soldered the two tiny 28 AWG wires together and wrapped them in electrical tape. From there, I could complete the CALSET operation without any fuss.
I'll add at this point that the functions on the teach pendant are not very intuitive. Most keys have 2-3 functions which need to be selected using the shift key. The manual lacks a comprehensive description of all the functions on the teach pendant, so much of my knowledge of navigating the options has come from copying some example procedures from various parts of the manual and trying to modify what they are doing to my needs. In most cases, either nothing happens or it will throw an error code at me.
With CALSET done, I needed to go in and verify the 18 critical parameters for robot operation were loaded properly. These are PLIM (positive software joint angle limit), NLIM (negative software joint angle limit), and RANG (robot calibration data). Using a procedure from the manual, I was able to read all these values and set some of the PLIM and NLIM values back to default. These might be changed by an end user to make sure the robot can't run into an obstacle that is in its workspace (like a wall). The RANG values are unique numbers for each joint that are measured carefully at the factory when it was built. They represent the angle in degrees of the joint when it is pressed against the hard stop. The values are measured down to 3 or 4 decimal places. The robot combines these values, along with the encoder data saved during CALSET to perform the kinematic equations and locate the robot in 3D space. If these values (printed on a sticker on the robot itself) were to be lost, the robot would be nearly inoperable and could not properly perform any cartesian motion. Similarly, if the hardstops were to be moved, the same issue would occur. The RANG values in the controller matched those printed on the robot which confirms that this was the control box paired with this exact robot when it was running, and that it wasn't mistakenly swapped after it was discarded. That is a big issue with buying used robots.
After I got these done, the robot was clear of errors other than a RECPLACE BATT. message that would show up each time I turned the controller on. This is a preventative maintenance message that is based on the elapsed time since battery replacement (in my case, 9 years overdue), but is not an actual error message indicating low battery or depleted battery. When the connectors come for the controller battery, I will replace it.
Pressing the MOTOR ON button gave a resounding click of a contactor inside the controller pulling in, a relay in the controller clicking on, and the two brakes of the J2 and J3 motors releasing. The motors hummed to life with they typical whining of AC servo motors as the PWM voltage runs through the windings. I messed around with trying to move the motors but couldn't get anywhere. First thing I learned was that the deadman switch needed to be held to get it to do anything. Once I was holding that and pressed the jog button for J1, I was greeted with an ERROR 4 message. The manual explained that once per power on, the calibration operation needs to be run. This slightly bumps each motor forward and backward. This comes from a limitation in the Tamagawa encoders where full resolution is not available until the motor shaft has been moved 2 mechanical degrees after power on. Once each motor is moved slightly, the encoder resolution is increased x64.
At this point, I cleared the error, pressed [CAL] and [ENT] on the teach pendant. The motors hummed a little (the motion after the gearbox reduction is imperceptible) and the teach pendant displayed CAL OK. I tried moving the joint motors again and got no motion and no errors. From reading the manual earlier I remembered something about the robot starting up at 0% speed as a safety precaution. I found this section in the manual and entered [SP] and [100] on the teach pendant followed by [ENT]. The robot confirmed the speed was set to 10%. Any time the teach pendant is in MANUAL mode (rather than AUTO) the speed is multiplied by 10% for safety (and 5% if in TEACH CHECK) which in this case brought the speed down to 1% of maximum. From there I was able to hold the deadman switch and press J1+ and the joint started to move!
EDIT: Everything went well at this point up until jogging J4. It would only move in one direction and error on overtravel in the other no matter where is was positioned. Turns out that the CALSET procedure has some contradictory information between the image, text description, and CALSET procedure steps. I had done the CALSET against the wrong hard stop. Once corrected, the joints moved correctly.
To be continued!