Posts by 95devils

    Is the external axis set up as a base or a station? If base you would set the interference up as a base reference coordinate. Robot and track within a certain position. If set as a station you would set the control group up as S1, or, S2, or S3, etc. The station would be just the track. The robot arm could be anywhere.


    To check you could use the DIN instruction. The DIN reads the status of something. You would want to read in a SOUT#( ). The SOUTs are specific outputs. Interference #1 is SOUT#(57), interference #2 is SOUT#(58), etc.


    Example:


    DIN B000 SOUT#(57)


    When this line executes the controller looks to see if the hardware is in interference area 1. If so, B000 will have a 1 in the content's box. If not, B000 will have a 0 in the content's box. You can then write logic based on the value.

    Best I have, don't know if it helps. The cable is pass through. Pin 1 to pin 1, pin 2 to pin 2, etc.. This is for a North American standard XRC.


    Pin 1 jumpered to pin 4
    Pin 2 DSW- goes to XIU CN07-4
    Pin 4 jumpered to pin 1.
    Pin 5 DSW+ goes to XIU CN07-3


    Pin 9 goes to 2GS CN03-3 +24 Vdc
    Pin 10 goes to 2GS CN03-2 024Vdc


    Blue hose cable is communication line XCP CN02
    Pin 12 PPSIG*
    Pin 13 PPSIG
    Pin 11 FG


    Pin 3 PPESP+ goes to XIU CN07-1
    Pin 6 PPESP- goes to XUI CN07-2


    Pin 7 PPESP1 goes to 2XT terminal strip
    Pin 8 PPESP2 goes to 2XT terminal strip

    The active tool is shown in the Status Display area in the upper right of the programming pendant screen when you have tool number switching permitted. The active tool would be used for jogging and when you either add, insert, or modify a servo command position or position variable in the job.


    When you record, insert, or modify a position or position variable the active tool at the time is associated with that position or variable. The most recent tool would be whatever the last step was that was run.


    The active tool displayed and the tool positions were recorded in do not have to be the same. You could have tool 27 displayed and the jobs recorded in tool 10. The job would run fine. It's not until you jog, add, insert, or modify that the active tool becomes relevant.


    I'm intentionally leaving deleting a position. Depending on another setting the active tool may or may not cause an error.


    With computer software, like C, you can write instructions that would get the active tool at the time.

    Not familiar with Kuka. Yaskawa has a zeroing function. It is a sensor that is installed on an axis. Through a programming pendant screen the axis will move. The sensor detects the transitions and re-writes the abso data. This function can't be added on after the sale. It must be ordered at the time of purchase so the robot has the correct castings to accept the sensor.

    What I/O board are you using? NPN or PNP?


    I'm using a YIU01 NPN (sinking) board. If I were to hook up a relay for OT#(1) I would have 24Vdc (CN309-A18 or B18 going to the + side of the coil. The - side of the coil would then go to CN309-B10.


    Something to think about. CN306 and CN309 are transistor outputs. They are only good for 50 mA. CN307 is relay dry contacts. They are good for 500 mA. Also, a kickback diode should be installed, if the coil doesn't have one already, and should be biased correctly.

    The problem is that after registration I have tried to rotate the tool center around the registration point and the tool tip don't keeps constant distance around registration point.


    If the tcp doesn't rotate around the point, I would either question how accurate the points were taught or the calibration of the robot. Being a MRC I would question the mechanical home position not being correct enough. The kinematic model vs. the real robot don't match each other accurately enough.



    I read also that the tool orientation shall be inserted manually.
    How to do it?
    What shall be the reference? Center of t axis?
    Thank you.


    The tool angles are done manually from the mechanical home position with the Z-axis coming out of the T-axis in a positive direction.


    Hey, sorry to be so annoying, but for example if i activate the external input 21990 from the PLC and in the ladder if i do the MOV instruction (Source: Wrelay 21990 Destination: Register 0) i will have in the Register M000 the value 0000 0000 0000 0001 and in GETREG instruction i will put 1 on the Integer (I000)?


    Yes, if the first bit is the only bit on in that word. If the plc turns on only 21990, M000 content's box will contain a value of 1. When the robot job executes the GETREG instruction I000 content's box will contain a value of 1.



    In the ladder when i insert a new rung it appears a default rung (STR 20010 OUT 30010) when i try to edit the rung i do the MOV instruction, but before the MOV instruction i must have a STR relay that i don't know what it should is. Thanks for all your help.


    Not sure what this I variable is being used for. Assuming a part number selection. If you want the value to be moved every scan, use 70017, that is a first pass bit. It is on as soon as the ladder has completed 1 scan.


    If you don't want it to update every scan I would have as a minimum a separate plc output bit with logic on the plc side such as is the robot executing and a valid part number has been selected and ready to send to the robot.


    In the robot ladder you could have the robot input address that is the plc output that the data is ready at the start of your rung.


    I'm going to dig more into your ladder. The above would not be my preferred method. Going to see if there is a way, which may be easier.




    One more question (Off topic) Where i create the master job? in the job menu i don't see anything saying "master job" and all jobs are with "job content: master"



    More to follow.


    Sounds like you have concurrent job turned on. In the Main Menu, go to CTRL MASTER, In the screen that says SUPERVISORY:MASTER, select on the asterisks to the right of the words MASTER JOB. Then SETTING MASTER JOB, select, and choose the job you want to be the master.


    So i need 16 relays avaiable to receive signals from the PLC? Each relay will be a bit from the PLC ? In the ladder in the MOV instruction what i put in Source (Wrelay) in the register i put M000 for example? sorry if i am a bit confusing... :icon_frown: thanks for your help


    Yes, 16 relays. Each would be a bit consecutively from the plc. The source would be the starting address. In the spreadsheet you could start at an address I listed as open. You could start at 21990 through 22007. Those two groups would be assigned/ named as your part number selection.


    So for example, if i want to do a external start, i need to activate the external input 20010 in the PLC? if i activate the external input 20010 i wil turn on the 75000 m-register (is the same as auxiliary relay?) and in the ladder i need to add a rung with STR 75000 and 40044 output? Where did you see that the external input 20010 is the external start? thanks


    My apologies, an Auxiliary relays and an M-registers are not the same. When I was working on the spreadsheet I was thinking about the conversation with M-registers. Aux relays are an address to store true or false of a rung in the ladder. The results can be used as contacts in the ladder. A M-register is a place to store a number between 0 - 65535 in the address in the ladder. It can be used for arithmetic, timer, or counter.



    I have revised and added to the spreadsheet.


    Address 20010 is dedicated to external start. Know it by memory. It is hardwired on a terminal strip. Someone has mapped 20010 through 20017 to 75000 through 75007. Address 21920 through 21927 has been mapped to 75610 through 75617. When 20010/75000 or 21920/75610 comes on 70010 will turn on. This then turns on 40044 which is external start.


    Long story short: The plc outputs a signal to the robot controller address 21920 and the job will start running.

    Ok, what I see in the ladder is someone has mapped the first and second groups of 8 of the external inputs to Auxiliary Relays. So where I originally said you should see on the User Side a rung with a set of contacts 20010 and an output of 70010 someone has used 75000 instead. 75000 is same as 20010.


    Now the 75610 auxiliary relay is really external input address 21920. This is group 192, first bit. That is way up there, that would not be hardwired I/O and would be in the realm of a communication board I/O. Not too low, not too high. Looking at what someone did with this, I would either look for support documentation that came with the controller or get a hold of the Yaskawa office that sold it. I could go through with some time to figure it out. But someone should have a document to explain what signal turns on what. I'm guessing that they had the Profi board on the order and loaded a custom ladder into the controller. This custom ladder could have items that you want such as starting the robot externally, calling the Master Job, etc...


    I'm seeing things like this also done for the outputs.


    Attached is a quick spreadsheet I used to decipher this.

    You would use the MOV instruction in the ladder. You would move 2 consecutive groups (relay word) of external inputs into an available M-Register. The job then would use the GETREG instruction to store the value in an Integer address from the M-Register.


    All your signals passed from the plc should be externals.

    Go to EX Memory, SAVE. I/O DATA. Inside I/O DATA is C.IO PRGM. This is the ladder. Save that file. The name will be CIOPRG.LST. Open the file with a text editor like Notepad. Save as a .txt file.


    The website will only allow certain extensions to be uploaded.


    One more question: the l000 it's the integer that is in the variable list right? Whats the mean of "Contents" ? It's possibile to the PLC send
    /modify a value of that integer? thanks


    I000 is an integer address. You would see this when you go to the VARIABLE icon in the Main Menu, then INTEGER. The contents is the value that the address/register holds. An integer can hold a value between -32768 to 32767.


    The plc can send a value over. It can be easier if the value is positive. You could use the DIN instruction to read into a Byte/ multiple Bytes/ or a D variable. You then could use the SET instruction to copy the contents into a I variable contents box. If you read in multiple Byte variables you would have to multiply one by 256 and add the other to it.


    Different way: If the value is only positive you could write in the concurrent i/o ladder to read the external input groups, move them to a M-Register and then use the GETREG instruction in a job to transfer to an I variable.


    If the value is also able be negative you would set up a User Group. Read the value into a D Variable and use the SET to transfer the contents to a I variable.

    I don't see 75000 or 75610 in the manuals. I do not see them either in my ladders for Material Handling application. Can you save out the ladder and post it as a txt file?


    GRP is a group of 8. It is passing the status (on or off) from something to something else for a total of 8 consectutive addresses.


    Instead of having 8 rungs that look like this:


    STR #20030
    OUT #00010


    STR #20031
    OUT #00011


    STR #20032
    OUT #00012


    STR #20033
    OUT #00013


    STR #20034
    OUT #00014


    STR #20035
    OUT #00015


    STR #20036
    OUT #00016


    STR #20037
    OUT #00017



    Yaskawa can replace this this with:


    #20020
    GRP
    #00010


    This would be pass through mapping and allows faster processing. If we want a more complex circuit or want to re-assign, then we break out the groups.

Advertising from our partners