Posts by cejka

    I continue to dig into this topic. I recently got manual that describes the necessary steps how to do what I want. There is also a note about Motion Hardware Setup Program which one will need to be able to configure the auxiliary axis HW added to the controller. The manual was originally equipped with Floppy disk containing the desired software, but unfortunately it was not included when I bought it. Does anyone have the floppy disk or know where can I get it? My sources tells me that no one are going to sell it right know. Any hint?

    I don't have particular maintenance and troubleshooting manual for P-150 but for the first impression yours VCUs looks like very simmilar to the one I have (S-700 Arm with R-H). When I stated that you'll need 36 PWMs total I thinked about bypassing PWM signals that is originally provided by Auxis Control Board which AFAIK is some kind of DSP. Because it is two axis VCUs there are two 20pin connectors signed as CN1L and CN1M. One for each axis with following layout:

    1,3,5 ... PWMA - PWMC (in) multiplexed with ALM1,ALM2,ALM4 (out) ... PWMs (in) and Alarm code (out)
    2,4,6 ... COMA - COMC ... PWM commons
    7 ... DRDY ... Servo amp. ready
    8 ... IR ... Phase-R current
    9 ... GDR ... Phase-R current
    10 ... IS ... Phase-S current
    11 ... GDS ... Phase-S current
    12 ... MCON ... MCC control
    13 ... GND ... Ground
    14,16,18 ... PWMD - PWMF (in), PWMD multiplexed with ALM8 (out)
    15,17,19 ... COMD - COMF
    20 ... NC

    I'm pretty sure you'll find necessary information about signal description and connections in this manual:…-Ref-Manual-/382000943655

    Actually I don't know how to run them alone I didn't try that yet by myself but I saw some Spanish guy retrofit his S-700 to Mach3 and AFAIK he succeeded. Which one of ServoAmps do you have in there? I think you'll need six fast PWMs for each axis (total of 36 PWMs), some kind of decoder for APCs and some glue logic around.

    Try to run a karel function and bring on an error. For example, try to move the robot to a invalid position or try to use a array with a index value is invalid (if you use "0", is a invalid index). The execution stops and you can see on TP the line in your .kl program that the fault was occurred.

    emanuel_eng you were right. Recently I digged deeply into this topic and for now I'm definitelly sure that it is possible to do reverse translation from *.PC to *.KL. The p-code itself does not run directly on CPU arch, it is some kind of bytecode that KAREL controller operating system interprets on the fly. BUT things will not be so easy just because of every particular KAREL system OS have own KAREL translator version and *.PC file format as the FANUC add more and more features over time. I'm still working on it but for now I'm able to reverse translate some basic KAREL statemets related to R-H controller. If there will be enough interest I'll start some online service around lately.

    Hi everyone,

    I'm trying to figure out what hardware will one need to integrate into R-H controller to be able to have 7th or may be more auxiliary axes. I cannot find any usefull information about this particular topic. Is there anyone who achieve this before and is willing to provide some information? Because I could not find anything I start to think that I need only Axis Control Board, Servo Amplifier and Motor like it is present inside mechanical unit. Am I wrong? Can anyone kick me in this?


    Please let us know which mechanical unit do you have so we'll know if it has IRC or APC encoders.

    I have RH controller also with S700 mechanical unit. It does not need to be recalibrated everytime the controller starts because it has battery backed APC encoders. But if your MU have IRC encoders the calibration is as follows:


    1) safety first - no personel in working envelope of robot
    2) power up controller and clear all faults
    3) jog the robot near to its reference position
    4) switch off the teach pendant
    5) turn off REMOTE keyswitch on operators panel
    6) press CALIBRATE button on operators panel
    7) the IN CYCLE light come on and lights until calibration is done. When it is done successfuly it will go out as same as the NOT CALIBRATED light does.


    AFAIK mechanical unit has zero marks on each axis. So either you need to jog the robot to these positions or you do have a mastering fixture with which the robot is zeroed to and tell the controller that mechanical unit is at zero position as follows.

    1) power up the conntroller
    2) turn on REMOTE keyswitch on operators panel
    3) using teach pendant jog the robot to mastering position (marks or fixture)
    4) call up KCL> using CRT/KB terminal (installed od remote)
    5) type "UTIL" + ENTER
    6) type "MASTER" + ENTER
    7) type "Y" as response to "Are you sure?" question
    :smiling_face_with_sunglasses: type "Y" if you are mastering to zero marks or type "N" if you are mastering using mastering fixture as response to "Mastering at 0 degrees Y/N?" question
    9) press ENTER twice
    10) Power down and up the controller and you are done

    Hope it helps.


    I've checked the 100VAC (position 3 and 4 on T1 terminal) if it is going to every servo. And it is not. When I try to reset an error using FAULT RESET button on operators panel it "clicks". It seems that servo amps itselfs are ok. Thank you, I'll dig that clue more deeply. :merci:

    Story continues.

    Yesterday I've received new CMOS RAM module, installed it and successfully upload KAREL software into the controller. I've also resolved all errors and warnings which rised after a successful boot but one last remains. Error "4020 Velocity ready is OFF OCF". I can't reset if by FAULT RESET button. When I've tried it rises back again.

    Does any of you knows what is going on guys? Thanks in advance for any clues.

    I'm in curiosity too. AFAIK there are two possible options.

    1) .PC code runs directly on CPU of the controller
    2) .PC code is some kind of bytecode which runs on virtual machine which runs directly on CPU of the controller

    In first point there will be necessary to know every possible CPU architectures which had been on every controller over time to be able to talk about KAREL decompiler better to say universal KAREL decompiler.

    In second point we can talk about KAREL decompiler or universal KAREL decompiler because KAREL will be the same on every possible CPU architecture because hardware layer is separated there from bytecode by virtual machine.

    I think that second point is less likely than first one. You may have to take into mind that KAREL has different versions over time.

    So I can imagine that there is decompiler for KAREL version 3.05 on RJ controller or 2.22 on RH controller. But universal? I think it is a dream excl. point 2 above or under condition that every CPUs on FANUC controller had same architecture in relation to point 1.

    So it would be better to talk about which CPU architecture come with each type of controller. Because I have RH controller here I'm obviously curios which architecture comes with it. If it's standard x86 by Intel it will not be so hard to decompile the .PC code I would say.


    I can't recommend that. The USB-to-serial converters always introduces some problems if they have to work as pure serial. On my R-H controller is RS-232-C but in today's computers are RS-232-E or RS-232-F as I know. Even my serial port on laptop under Putty does not work very well with the controller. So my solution to this is to build plain old PC. This PC I'm going to mount inside controller and permanently connect it to it's RS232 ports. I'll install GNU/Linux on it, DOSbox with necessary software for communication with robot. Then I will be able to communicate with it using any computer over LAN via some ssh or nx connection. I think this is cleanest solution to avoid problems with notebok that is being updated during it's everyday usage which may lead to unnecessary problems.

    Hope you'll get it to work no matter the way you choose.


    Sure it can be loaded back into controller. I suppose you have R-J2. I don't know it but I think the process will be simmilar to the R-H. So I tell you what I have to do to get my software back. You may find it usefull.

    As a robot's controller do behave as classic PC I'm sure you know well there is a BootROM mode (at PC known as BIOS). It is stored inside EPROMs which lies on one of the board (Shared RAM Board) on controller. Mine is labeled as 2.22PA. That means that controller has BootROM version 2.22P Rev. A. After you start the controller which has no software in it it will goes directly to BootROM mode. If not the USER PB #1 and USER PB #2 buttons have to be pressed while pressing Power ON button.

    You did not mention if your controller has CRT monitor with keyboard. If not it is important to get or make some RS-232 cable to be able to establish communication between ordinary PC and controller to see what is going inside and send commands what to do using some VT220 emulator - some PUTTY like software or simmilar. Without CRT or PC cable you'll not be able to set the controller back to operation.

    Then if you set everything on BootROM mode there should be software loaded into controller CMOS RAM. CMOS RAM operates as a "harddrive" on which will be basic software (operating system) stored and will run from. If you buy the machine with software floppy discs you are half a way to success. If you did not get it from seller you are in trouble and have to buy it from FANUC. AFAIK that would be expensive. Software is robot specific because it contains specific data loaded into servos etc.

    Ok you have a communication ability (CRT or cable) and have a software.

    You have to have FLOPPY hardware which you'll connect to controller or you may have emulate it with KFLOPPY software. Also can be ordered from FANUC. To be able to emulate the floppy hardware you have to have another RS-232 cable, also known as KFLOPPY cable. You can buy it or make one yourself. That KFLOPPY software you will use to upload software into controller.

    To upload software you power down the controller. Then push HOLD button while pressing Power ON. The controller will seek floppy diskettes with software and if you follow instructions on screen (CRT or cable with VT220 terminal emulator) the software will be strored in controller. Then after another controller power on the software will be automatically loaded and robot will be back in operation.

    I'm in trouble with my CMOS RAM so I'm not able to upload any software back to the controller and check this procedure if it really works but it should. Especially for R-H controller.

    Hello there, I'm just going through the simmilar process with my Fanuc S700 but with RH controller. As far as I know from documentation if you don't replace batteries every year it will be drained by CMOS RAM board and thus it will be erased and no software and settings will stay in there.

    Back again. The controller powers up today. For future reference the cause of problem was blowed fuse on power source unit F14 (2.0A) and shorted +24 E power cord.

    Another problem occured today

    So I started up the controller and been thrown to BMON>.
    Then I typed "DEVICE" + ENTER
    Then I typed "INIT CM0"
    Then "Y"
    Then "ABCD" as name of memory card
    Then "1200" as size in kB
    and get "Initialization successful" -> Everything looks good

    I continued by typing "EXIT" to go back to BMON>
    Then I typed "SYSTEM" to get actual table of memory been initialized and insted of I get errors: "109 Parity error" and then "38 Storage device must be initialized".

    I tried initialization several times with same results.

    I also typed "BUS" at BMON> to get info about what is connected to the system bus and CMOS RAM was listed there.

    Is that mean that CMOS RAM board is failing and needs to be replaced? Could anybody post some idea what is going on?

    I'm back. Recently I fix all of cutted cables acording to manual and now I have another problem. Today I've tried to power the controller up for the first time but it won't. I connect the main line cable then switch on main power and when I press the control power on (green) button I can hear a contact block engaging. Immediately after the contact block disengages and ALM LED goes ON. It can be released by pressing OFF button. So I've consult it with a manual and check fuse on T4 transformer - it's ok and PIL LED goes ON after main power switch goes on, then I've checked fuses F1, F2, F3 on power input unit - all of them ok. Then I've checked all big fuses on servo transformer - all of them ok. But RH controller still won't power up. Any body can help?

    Thanks for an assurance. I would know when I'll try to upload that floppys into the controller for sure. As I'm a GNU/Linux guy terminal emulator, DOS emulation and other stuff on PC side will be the smallest problem I guess.

    I've searched the entire forum for sw load and this two topics seems to be most helpful for entire task:…er-cm0/msg60623/#msg60623…serve!/msg60360/#msg60360

    I see it now as robot's does like an ordinary PC does. BIOS (EPROM) is in there and because it has blank harddrive (CMOS RAM) for now it needs to install it's operating system (floppy discs). And after that I can make some applications (program) the robot will execute, am I right?

    As I think you know that kind of controller so if I may have more questions about it:

    1) Would it be possible to extends CMOS RAM as manual says that it is possible have up to 4MB? Will it be necessary or handy?
    2) I have an idea what I want and expect from robot but I definitely don't know how the process of programming it standardly goes? Don't have any operation manual or so. It goes something like: a) in PC I write KAREL program move here and move there b) compile it using some translator c) transfer to controller and start it? And then? How to debug it and check remotely if it's doing what it's been programmed for? What I'll need to do stuff like this? Manuals? Software? Or am I wrong and the process goes completely different?
    3) I have some kind of safety considerations in my mind so, how I do tell the robot something like be carefull here comes a person with a dog and cat so STOP RIGHT NOW! Or something like here is some table and there is some window so DO NOT GO THERE!
    3) Can I by some kind of RS-232 communication keep an eye on what is going on inside controller online or all communication with the controller acts only as copying files this and there?
    4) How to convince the controller to handle G-code export from some CAD program? Is that implemented inside or I have to write some application in KAREL for it?

    Sorry for dumb questions. I have a lot of them because I've been unkissed by this kind of technology until now. And as for now I'm pleased I've been.

    I'm still in process of checking robot's hw connections and still working on it in my spare time. :hammer1:

Advertising from our partners