Problem with the command SOUT

  • Hello everyone, I have a problem with my kawasaki c40f-a021 robot.

    Every time I turn on the robot in the Flexpendent I get error 800 or "Program does not exist" and it is not possible to reset the error.

    Doing some tests I noticed that this error is caused by this command present in the program:


    SOUT 2200 = 2201


    If I comment this command the error does not occur. This command has always been present within the program and has always gone correctly.


    I cannot understand the reason for the error and how to fix it. Can anyone help me?


    Thanks for your help

  • 'SOUT' is part of SLOGIC which back in the day, was usually used with a 1FS board for remote I/O usually to connect to PLC's and weld power sources.

    SLOGIC program would be created similarly as a ladder based instructional set called SPG and then transferred to 1FS board and would then act as a software PLC to exchange data between PLC and controller and weld power source.


    However, SLOGIC can be used without 1FS board as standard AS commands but limited to standard IO and internal signal formats.


    What that command actually is doing is looking for software signal 2201 to control software signal 2200.

    If it is turned on, software signal 2200 will turn on, if it is off, software signal 2200 will be off.


    In order to fix this, we need to determine:

    - Are you using 1FS board to communicate between PLC and weld power source.

    - What specifically internal signals 2200 and 2201 are being used for.

    - Can you look in dedicated inputs and see if 2200 is allocated for anything - like ext program reset.

    - You could try entering the command in the keyboard SIGNAL -2201 and then see if the error resets.


    It would be better for you to post a controller file save, I asked for this in your previous post regarding this error, but you didn't reply.

  • Sorry, the backup is attached.


    How can I see if I am using the 1FS card? Is there a hardware configuration list inside the flexpendant?


    I saw that the two signals 2200 and 2201 are respectively:

    mk_reset_prg = 2200; RESET PROGRAM (dedicated signal)

    mk_drv_res_prg = 2201; control of the RESET PROGRAM signal


    Also I followed your advice and tried entering the keyboard command SIGNAL -2201 to see if the error resets but nothing happens. I tried entering the SIGNAL 2201 command and it seems to work. The error resets and does not seem to appear. Unfortunately I didn't have much time to rehearse but it seems to work.

    Can you help me understand the reason for this behavior? I can't understand why everything works by setting it.


    Thank you very much for helping.




    Backup_20220222.zip

  • How can I see if I am using the 1FS card?

    You have a look in the card rack and see if it is installed in one of the option slots.

    If you need help, post a photo of the card rack and I'll tell you whether it's installed or not.

    Looking at your backup, I don't think it is though as there is no SPG program and looks like Tiesse (Italian integrator) is just using the standard AS format instructions for the standard IO and internal signals.


    Can you help me understand the reason for this behavior? I can't understand why everything works by setting it.

    Depends on just how well you understand Kawasaki.

    If you check Aux 111 Dedicated input signals, you will see: EXT. PROGRAM RESET set for 2200.

    This means whenever signal 2200 is pulsed on=>off, it will reset the current loaded program to step1.


    Kawasaki has a feature called RPS, and when this is ON and used in conjunction with dedicated input ext program reset signal is ON, results in:

    - It will clear the current program, and load up program pg0.

    - As you don't have pg0, the error 'program does not exist' appears.

    - Where has pg0 vanished to, have you renamed it to something else?


    The part of the code that is controlling this is in a program called pc_master.

    This starts up from autostart3.pc, when you first turn the controller on - RPS ON is set.

    The initial IF/END statement is a condition check and dependent on the condition check, turns RPS ON again and contains the command to turn on signal 2201 for 0.1 sec which is PULSE mk_drv_res_prg,0.1


    After that IF/END you can see the command SOUT 2200 = 2201

    As this command does not sit in ANY condition check, it always executes on each scan of pc_master.

    Which means Signal 2200 always reflects the status of 2201.

    Upon each scan of pc_master, the IF/END condition check result is true, it will carry out a program reset.

    As pg0 does not exist, you will keep receiving the 'program does not exist error'.


    So to stop this happening if you are not using pg0 as a main routine to call subroutines, you can either:

    - Set RPS OFF and un-allocate dedicated input signal EXT. PROGRAM RESET and make sure it is off.

    - Just un-allocate dedicated input signal EXT. PROGRAM RESET and check it is turned off.

    - Turn off the autostart3.pc system switch (if you are not using the PC Tasks).


    However, as I am not the author of this code, any modifications will no doubt have an impact on the overall operation of it and may well introduce further problems.

    From what I can see, this is an inherited robot full of programs and data you may not be using, if that's the case, I would clean it out.


    But fundamentally as explained above, this is the reason you are receiving the error.

  • Thanks a lot, I tried to write to Tiesse but being an old robot they probably don't have backup.

    I found a 2006 backup inside the floppy but unfortunately there was no pg0 () on that too. It is probably a problem that has persisted for many years.

    I have created a new Pg0 in which I load I write the 2201 signal to one and then I load the Master program. It would seem to work.


    I wanted to ask you for further advice given my little knowledge on kawasaki robots. I have loaded a welding program already present inside the controller but unfortunately it does not carry out any welding. I cannot understand how the communication between the robot and the welding machine takes place. I expected to find physical outputs dedicated to welding but it doesn't seem like that.


    How can I understand how this communication takes place?


    Then I would have another doubt. I saw from the backup that the automatic function is associated to the 2001 flag. What are the conditions under which this bit is at 1? I tried to put the robot in automatic, it worked but the bit was at 0.


    A thousand thanks.

    Edited once, last by Draga ().

  • I tried to write to Tiesse but being an old robot they probably don't have backup.

    Sounds about right, it's probably a good 15-20 years old isn't?

    I found a 2006 backup inside the floppy but unfortunately there was no pg0 () on that too. It is probably a problem that has persisted for many years.

    Not necessarily, unless you know how it was integrated, just by going off the code, doesn't mean there were problems.


    The RPS functionality coupled with the external program reset is common across all Kawasaki controllers - explained in the extended IO manual, but not comprehensively explained.


    As for pg0 not being there, it may well be this controller has been in several other places before you received it, and therefore bits of modifications and additions will have appeared.


    If you look at .PROGRAM master() and follow that through, you will see this appears to be the main program calling the other subroutines of an application, it could be that used to be called pg0.


    I have loaded a welding program already present inside the controller but unfortunately it does not carry out any welding. I cannot understand how the communication between the robot and the welding machine takes place. I expected to find physical outputs dedicated to welding but it doesn't seem like that.

    Did you expect it to just automatically weld?

    What weld power source have you got connected, and how is it wired to the controller?

    Do you know about the dedicated input and output signals?

    Do you know about the 1GN board (if fitted)?

    What hardware is insider the controller - picture would help?

    Which program are you referring to?

    Have you looked at BLOCK and AS Language programming for the Kawasaki?

  • Thank you. Attached is the photo.

    Initially I tried to create my own welding program by studying the "supplementary operation manual for tig welding" but I could not weld or at least move the carriage tow. So I tried various programs inside the controller such as pg222 (and many others) but even those don't seem to work. I can't figure out if there are dedicated physical outputs to see if the robot actually commands a weld or not.



    Then I would have another doubt. I saw from the backup that the automatic function is associated to the 2001 flag. What are the conditions under which this bit is at 1? I tried to put the robot in automatic, it worked but the bit was at 0.


    A thousand thanks.

  • Check out Aux 111 and 112 for the dedicated signals that are set.


    That's the IO interface to the weld power source.

    Do you know if it's working, looks dead to me?

    Do you know if it's wired up correctly between weld power source and robot controller?

    Do you have documentation for your Fronius power source, contact them and they will supply it.


    The robot 1HW and/or 1GN will interface with that unit or via an interface bank (looks like there is a relay bank next to it).


    2001 is just Automatic output, when all conditions are met as set in Aux 112 for automatic, then that output will turn on.

    It is only an output that would be used to tell a PLC that the robot is in automatic and ready to run.

  • You'll have to post pictures of the card rack in the controller and also the relay bank, in order for me to gain an idea of how it's configured.

    Your dedicated inputs and dedicated outputs for arc controls are all disabled, so it maybe you have the 1GN board connected instead, or they have been intentionally disabled.

    The more pictures the better.

  • OK, thanks a lot. Tomorrow I try to take some pictures. Sorry I'm late but I checked all the various wiring. Thanks again.

    I remade the cable that goes from the welding machine to the robot and now it works. Finally I manage to sadare.

    Now I have to understand how to manage to adjust the welding parameters inside the robot. Unfortunately, I can't figure out how to change them and associate them with a specific weld. You know by chance give me some advice. I found a manual for tig welding but unfortunately of a slightly newer robot than mine. I couldn't find any specific welding manuals for my robot.


    Do you happen to know where I can find it?


    Thank you.


    Sincerely.

Advertising from our partners