Posts by mil3k

    Here is an example how I save position when the interruprion function is triggered in one of my processes.

    Instruction I use is GETS, $PX000 is position in PULSE and P10 is my destination.

    Next Position P10 is converted (CNVRT) to P11 in UserFrame #4

    In your program you have:

    GETS PX123 $PX000

    CNVRT PX123 PX123 BF

    Try it as P123.

    $PX001 is current position in XYZ.




    ///NPOS 0,0,0,0,0,0


    ///GVARS 0,0,0,0,0,2,0,0

    P010 Interrupt_point

    P011 Inter_point_UF4


    ///DATE 2021/10/05 10:23

    ///COMM Save current position to P VAR

    ///ATTR SC,RW

    ///GROUP1 RB1,BS1


    'Get current POS in PULSE (PX000)

    'and save in position Var P10

    GETS Interrupt_point $PX000

    'Convert position variable P10 to

    'P11 in UserFrame#4

    CNVRT Inter_point_UF4 Interrupt_point UF#(4)


    The relay isn't being used anywhere else and I just give up at this point.

    I feel your pain... but I din't give up. Double check if you don't have BMOV instruction used somewhere in the CIO file. If you have it ensure to release desired range of source/destination relays from it and then try again.

    I had BMOV #20520,158,#00500 and wanted to link 8 groups (64bits) of internal relays with general purpose inputs started from #00730. When I started I had an error during compilation, something about illegal, double use of relay. For some time, I couldn't find to what relays that alarm was related to. Because #00730 was in the middle of BMOV instructions I couldn't find it.

    So when I figure it out, I did below:

    1) Found BMOV instruction where desired inputs were used.

    2) Split it in two BMOV instructions:

    BMOV #20520,22,#00500

    BMOV #20740,114,#00730

    3) Compile and check if everything is still as it was.

    4) Release first 8 bytes from second instruction

    BMOV #20520,22,#00500

    BMOV #20830,106,#00810

    5) Compile and check if no error and release groups are free to use.

    6) Link groups of auxiliary relays (internal) with groups of GP Inputs

    STR #70017

    BMOV #20520,22,#00500

    GSTR #76650

    GOUT #00730

    GSTR #76660

    GOUT #00740

    GSTR #76670

    GOUT #00750

    GSTR #76680

    GOUT #00760

    GSTR #76800

    GOUT #00770

    GSTR #76810

    GOUT #00780

    GSTR #76820

    GOUT #00790

    GSTR #76830

    GOUT #00800

    STR #70017

    BMOV #20830,106,#00810

    7) Compile and check if everything works as I wanted.

    Good thing is that you need to do it only once, after that you can just use your CIO file with every other robot or just copy and paste this section to new robot's CIO file.

    Now, after above modification in the CIO file, if I would like to have on my GP Inputs alarms I could try this:

    1) Add these three lines

    MOV M340 W#76650

    MOV M341 W#76670

    MOV M342 W#76690

    or 2) remove links I did in step 6 and use instead:

    MOV M340 W#00730

    MOV M341 W#00750

    MOV M342 W#00770

    See the YRC Operator's Manual. Starting on page 6-106 are parameters and M-registers. The M-registers can send to the External Outputs and viola to the plc/hmi.

    Hi Devils,

    Which operator's manual are you referring to? Could you give a number. There are different versions for Europe and America.

    Is there any chance that you are pointing to "Present robot position output function" and parameters S1C208G-S1C225G?


    I founded:


    Chapter 6.12 Present Manipulator Position Output Function

    Europe: E1102000220GB01 "General operation’s Robot controller User manual"

    Chapter 7.12 Present robot position output function.

    It is useful in simple cells, but with external axes is not so easy.

    Is there any way to send coordinates in UserFrame instead of Base?

    Hi all,

    I'm asking for help to resolve problem I have with DX200. Few weeks ago I have been asked to increase number of variables from 128 to 500,to match other robots. I went to Maintenance Mode and change the value. Then reboot. After that the controller automatically boot to Maintenance Mode and gave me Alarm 270[0], Alarm 801[1134] and Alarm 802[31]. I contacted local Yaskawa office and they helped me to load backup CMOS which I did before started messing with the controller.

    But since that day every CMOS.BIN file I created is corrupted and can't be used as a backup.

    I'm not sure, if I didn't reboot during some CMOS writing and I corrupted CF card. There was no indication on the TP that something is going on in the controller before I rebooted.

    Double check Payload and ensure you didn't type mm values (from drawing) to cm boxes (on robot).*
    I did this type of mistake and robot return SRVO-50 alarm every time when it stops and servos were turned off (dead man switch released).

    * I assumed that robot is set to work in metric units and LR mate's default unit is cm.

    Just to add my 5 cents to fank's comment.

    If you can add some kind of ID to the pallet, then in master it be read on GI[] and store in Bxxx variable as job name/number. In next line use command call job Bxxx to call the pallet pattern job.
    In your job, at the beginning you may write offset values which controller can read and store in I or D registers and later use to parallel shift pick up point P1.

    Where I work we often use simple proxy switches and bolt head as pallet ID. When proxy detect head gives ON when not OFF. If one group input is not enough for pallet ID you can use another one, 16 bits should be enough.

    Hi Benxi,
    You can program everything on the TP. Yaskawa offline software is called MotoSim EG VRC.
    Excellent source of documentation, just fill up form and enjoy access to manuals

    Here is an example from DX100. We use variables R and D.

    *Shift received data to new variables
    SET R011 R001 /This is X offset
    SET R012 R002 /This is Y offset
    SET R013 R003 /This is Z offset
    SET R014 R004 /This is Rx offset
    SET R015 R005 /This is Ry offset
    SET R016 R006 /This is Rz offset

    *change units, micro to milimeters
    MUL R011 1000
    MUL R012 1000
    MUL R013 1000
    MUL R014 10000
    MUL R015 10000
    MUL R016 10000
    *Change Real var to Double var
    SET D001 R011
    SET D002 R012
    SET D003 R013
    SET D004 R014
    SET D005 R015
    SET D006 R016
    * Set offsets into Position3 elements
    SETE P003 (1) D001 /Replace existing P3 X data with value of variable D001
    SETE P003 (2) D002 /Replace existing P3 Y data with value of variable D002
    SETE P003 (3) D003 /Replace existing P3 Z data with value of variable D003
    SETE P003 (4) D004 /Replace existing P3 Rx data with value of variable D004
    SETE P003 (5) D005 /Replace existing P3 Ry data with value of variable D005
    SETE P003 (6) D006 /Replace existing P3 Rz data with value of variable D006

    Hi all,
    Is it possible to use mulit window view (like DX100 type) on NX100 teach pendant? If it is possible, how can I turn it on?

    My controller software version is:
    System: NS3.84.00C (US/PL)-72
    Param: 4.80
    Model: ES200N-B0*
    Appli: General
    Language: 3.84-72-00 / 3.84-72-00

    CPU System ROM Boot ROM
    NCP01 3.80 -------
    NPP01 3.65-72 3.01
    AX*#0 3.73-72 2.00

Advertising from our partners