Welding robot communication problem

  • Good day!


    I have a system, which consists of BA006N robot, E01 controller and Kemppi A7 MIG welder. The controller and welder are connected by software Ethernet/IP using port 2 on main CPU board. I have set the IP configuration for it, so the EIPSTATUS returns "Instance: 1 Status: ONLINE". The question is how to define correctly the Ethernet/IP scanner settings (aux. function 0608-9-4 and probably 0608-9-3) in according with A7 MIG welder default table (see attached image), and also how to define correctly input and output signals in aux. 0608-1. Thank you.

  • Have a read through the following post: ESAB interfacing
    This went through various steps in order to setup the Ethernet/ip configurations, that may assist you.


    Do you know of the relevant instances from the eds file of the welder?......those instances require entering in the controller in order to establish communication....have you set these?
    Also the information you posted is welder->robot.......what about robot->welder?


    You have Scanner/Adapter.......MASTER/SLAVE.....so signal allocation would be either master/slave in 0608-1 depending on whether you are using the Kawasaki as a scanner or adapter....

  • The following is what I used to configure a Kawasaki to communicate with a Siemens IM 151-3 EIP Ethernet/IP Adapter Module (extended IO Module).
    In theory it would be the same process for the welder.....


    1. Set the required no of IO in Aux 0611- ie 128 in Master.
    2. Clear the current IO allocation in Aux 060801. (Master/Slave).
    3. Allocate the Master (software Ethernet/ip) 12 in Aux 060802.
    4. Allocate the required no of IO for Master in Aux 060801.
    5. Set the correct port setting for Port 2 in Aux 06080901.
    6. Obtain the correct instance values from the peripheral EDS file for communication - usually the exclusive owner instance values.
    7. Enter these values into Aux 06080904 for the adapter no. you are using....ie setting 1 - I think you only need to enter values on page(s) 1 and 3 here.
    8. Page 3 enter the values for the no. of IO for the Input Scanner/Output Scanner size - ie 16.

  • Thank you for your answer, kwawkisaki!


    I've read your post about ESAB connection and it looks like the same to my problem, but i have no robot under the hand to try it right now.


    As for the welder, i have an EDS file for it, please see the attachment.


    The table, attached in the my first message, contains both welder->robot and robot->welder columns. As i understand it, the controller must write to the welder IP a set of 16 bytes in suggested order of robot->welder "Control" column to define the welder statement, and, the same time, read a 16-bytes set of welder->robot "Status" column.


    P.S. I'm so newbie in this field, sorry for maybe stupid questions.

  • Yes, Welcome to the Forum


    Sadly, Software or Hardware Ethernet/IP is not the easiest to configure in Kawasaki (due to the many fields of settings available).
    Unlike other PLC's, there's no ability to load the EDS file directly into the Controller, therefore a little understanding of the EDS parameters and fieldbus communication is required (along with some basic fieldbus configuration understanding within the Kawasaki).
    - Being able to extract the relevant instance values, input them into the Kawasaki and then confirm connections.
    - Use the error codes that Kawasaki reference (in the Monitor screen for Ethernet/IP - See attached) to assist with diagnosing connectivity issues.


    Thanks for the attached EDS, I shall have a look over it and see what recommendations I can give for you to try.....

  • Ok, looking at your EDS information below highlighted in RED, I believe are the instance values you need:
    [Assembly]
    Revision = 2;


    Assem100 =
    "Input Data",
    ,
    256,
    0x0001,
    ,,
    2048,;


    Assem150 =
    "Output Data",
    ,
    256,
    0x0001,
    ,,
    2048,;



    [Connection Manager]
    Connection1 =
    0x04030002, $ trigger & transport
    $ 0-15 = supported transport classes (class 1)
    $ 16 = cyclic (1 = supported)
    $ 17 = change of state (0 = not supported)
    $ 18 = on demand (0 = not supported)
    $ 19-23 = reserved (must be zero)
    $ 24-27 = exclusive owner
    $ 28-30 = reserved (must be zero)
    $ 31 = client 0 / server = 1
    0x44640405, $ point/multicast & priority & realtime format
    $ 0 = O=>T fixed (1 = supported)
    $ 1 = O=>T variable (0 = not supported)
    $ 2 = T=>O fixed (1 = supported)
    $ 3 = T=>O variable (0 = not supported)
    $ 4-7 = reserved (must be zero)
    $ 8-10 = O=>T header (4 byte run/idle)
    $ 11 = reserved (must be zero)
    $ 12-14 = T=>O header
    $ 15 = reserved (must be zero)
    $ 16-19 = O=>T point-to-point
    $ 20-23 = T=>O connection type (multicast or point-to-point)
    $ 24-27 = O=>T scheduled
    $ 28-31 = T=>O scheduled
    Param3,Param1,Assem150, $ O=>T RPI,Size,Format
    Param3,Param2,Assem100, $ T=>O RPI,Size,Format
    ,, $ config part 1 (dynamic assemblies)
    ,, $ config part 2 (module configuration)
    "Exclusive Owner", $ connection name
    "", $ Help string
    "20 04 24 05 2C 96 2C 64"; $ exclusive output path


    From this information I think:
    Configuration value is 5
    Input(producing) value is 100
    Output(consuming) value is 150


    Assuming you have the fieldbus option already set and assuming you are not using ANY local IO interface such as 1TW or ArmID Board extended IO, then I would try the attached screenshots settings:
    The monitoring screen at the end is where you can monitor the connection status.
    Here you will see ONLINE(Green) and #0000 or OFFLINE (Red) with #xxxx error code.
    Let us know how you get on.

  • I have a small list of error codes I have compiled by setting incorrect values, all produce OFFLINE and an error code that may also help.....


    #0109 - Output Run or Input Run Program Header value incorrectly set or Input Scanner or Output Scanner Size incorrectly set.
    #0110 - TargetProducingConnPoint incorrectly set - EDS Assembly input or TargetConsumingConnPoint incorrectly set - EDS Assembly output
    #0111 - ProducingDataRate and/or Consuming DataRate (RPI value in ms) incorrectly set.
    #0203 - Cable Disconnection.
    #0315 - TargetConfigConnInstance value incorrectly set.

  • Good news: the scanner is online, the welder's web interface shows messages like "gas on", "welding on" and some others.
    Bad news: no gas, no wire feed, no arc, "arc failure" error message.
    I will attach previous backup later. There are some suspicions about wrong signal mapping.

    Edited once, last by Zerych ().

  • That's good news, the fact that you are online, suggests the settings are valid, Ethernet/ip is very good at letting you know when there are mismatches in the configurations.
    - However, they're still could be some fine tuning required........but....


    If you have used the exact settings I have suggested, then yes indeed I would say the mapping would be the main cause here but the immediate issues that your welding interface is reporting back will probably be down to the current dedicated input and dedicated output signals already set in Aux 0601/Aux 0602.
    - So the Welder will more than likely be seeing these signals.......


    So you will need to either:
    - Cancel the dedication signals in Aux 0601/Aux 0602.
    - Remap Aux 060801 Allocations (this is the usual method if you are also using/have the standard 1TW board fitted).


    On most standard systems I have come across, customers have elected to retain the 1TW board (local 32 IO board) and therefore in Aux 060801, kept the first 32 Outputs/Inputs mapped as 'Local' and started there fieldbus allocation from Outputs 33 and Inputs 1033.


    However, from the sounds of it, you're 95% there....... :beerchug:


    Did those instance settings work in Aux 06080904.....for the Config/Producing/Consuming values then?

  • I used almost all the settings from screenshots, except the first "number of signals". And it works as i said before. Additional issue is the warning message in welder's web interface "warning 103: empty memory channel", and it may be another problem with welding start, because the welder has no curves inside. But, i think, it may not be a problem in case of simple MIG welding.


    Here are two backups from the specialist, which, he says, must be working, one of them contains right mapping, or both are additional to each other. Sorry, i still cannot define it by myself ( need an advice about principles of implementation of the welder's bit list from the first message into the controller's Signal Allocation tab.

  • The backups you have provided are somewhat different with various sections missing....... ???
    Is any of these backups directly from the robot, or backups 'the specialist' has provided you to load in?.....do you know?


    I ask as one contains setup information as a slave (which looks incomplete/incorrect = backup1) and the other as a master which looks more like I would expect (backup2)?


    Backup2 does appear to me to be in line with what I mentioned in my last post.......
    - See attached screenshot for correction to No of sigs Aux 0611 and signal allocation Aux 060801.
    - Also, I have cross referenced the IO referencing in the backup and edited your welder io list........and it all appears to tie in.
    - So if for instance you enable Output 83 on the Robot, you would inch the wire, and enable Output 84, you would retract the wire.
    - Dedicated Signals (Aux 0601/Aux 0602) would still be valid but some of these would be required to be setup also in line with the welder functions....but from backup2 it appears these values also are correct.

  • That's great, kwakisaki!


    I also compared these files as a text and found the same differences with "slave" and "master", and the same in DEFSIG commands section. Thank you for detailed screenshots! As for me, you did a priceless job! )) i will try it as soon as i can.


    And some specifying questions about principals. The "Address" column in Signal Allocation sheet means the number of bit in the set of bytes, isn't it? Then i didn't find where exactly the "wire feed speed" and other "byte" and "word" type signals were mapped? And what about the first column with end-to-end numbering, as i understood, they are mapped directly to the controller's hardware, and, for example, as you said, first 32 are 1TW board' signals? I can switch them off by marking as a "Local Port" signals?

  • We should be able to get you going......its nearly there.... :top:


    In the signal allocation, the Kawasaki groups its signals in 16bits (word) addresses.....(1 byte is 8bits).
    - So the 'addressing' column you refer to is the start signal no for the consecutive 16 signals.


    So when you look at the signal allocation for the 'local'.
    - You have already set 32 inputs and 32 outputs as the local IO no. in Aux 0611.
    - So in the signal allocation you start at 1 for the first word (signals 1-16)......then the next starts at 17 for the second word (signals 17-32).....that takes care of your 'local' addressing.
    - So local signals for the 1TW would Signal 1-32 (Outputs) and 1001 - 1032 (Inputs)


    Then for your fieldbus, you will be starting at Robot Output 33/Robot Input 1033.........BUT Robot Output 33 would be the 1st Output (Output No. 1 to your fieldbus) and Robot Input 1033 would be the 1st Input (Input No.1 from your fieldbus)....thats' why the address starts back at 1 again for the Master for the Outputs/Inputs.
    - This will then be read by your welder as Input no.1 which will reside in byte 0......Input 9 would reside in byte 1.
    - Likewise, when your welder sends an output.....it will be sent via the byte/bit from the welder onto the fieldbus and the Kawasaki would read it and apply it to the signal allocation map input no.(s)


    So referencing your welder IO table.......
    - OX 33,16 is outputs 33 - 48 from the robot onto the fieldbus address 1 - 16......so your welder reads as byte 0 and byte 1.
    - byte 0 and byte 1 FROM the welder on the fieldbus would be read by the Kawasaki as WX 1033,16.
    - Does that make more sense?


    So looking at backup 2 and certain areas of coding - namely the Interface Panel Configuration below:
    - I've highlighted in RED some indicators that appear to be already set up on the Teach Pendant Interface Panel referencing the allocated signals Robot->Welder (OX) and Welder->Robot (WX)
    .INTER_PANEL_D
    28,7," Welding"," Number",10,9,2,1,0,65,8,1
    31,7,"[WX]Kemppi"," Current",10,5,3,1,0,1033,16,1
    32,7,"[WX]Kemppi"," Voltage",10,5,3,1,0,1049,16,1
    34,4,1," Air Blow","OFF ON","","",1,4,2,0,86,0
    35,1,"[OX]","Fieldbus"," Check","",10,9,1,0,89,0
    36,1,"[WX] Power"," Source"," Ready","",10,9,1,0,1081,-1
    38,1,"[WX]"," Torch"," Interfere","",10,6,0,2,1091,0
    39,1,"[WX]"," Gas Flow","","",10,6,2,0,1085,0
    42,1,"[OX]"," WeldOn","","",10,6,2,0,94,0
    43,1,"[OX]"," Weld"," Start","",10,6,2,0,81,0
    45,1,"[OX]"," GasOn","","",10,4,1,0,85,0
    46,1,"[OX]"," Wire"," Inching","",10,4,1,0,83,0
    47,1,"[OX]"," Wire"," Retract","",10,4,1,0,84,0
    54,7,"[WX]Kemppi"," ErrorCode",10,9,4,1,0,1065,8,1
    55,3,""," Kemppi","ErrorReset","",10,6,8,0,0,90,1090,0


    So for instance, you have torch interference set up as an input to the robot from the welder........on input 1091.......so if you locate the switch on the torch and activate it, you should see input 1091 turn on.....aswell as the indicator on the interface panel.


    I hope this explains things a little better.......

  • Well, here is subtotal:


    I got the signal mapping from backup2, then made interface settings with one change - TargetConfigConnInstance set to zero. And voila! The welder makes wire inch/retract and gas on from the teach pendant, at last! The next is to bypass the "empty memory channel" on the welder with W1SET command, but that is the secondary task.


    Thank you for your support, kwakisaki ) appreciate it and respect :beerchug:

  • Excellent.....surprise to hear about the 'TargetConfigConnInstance set to zero'......I would of expected a link problem......but thanks for the feedback about that.....
    - When set to 5, what exactly happens?.....any errors or anything?


    Now you have some IO exchange, at least you have functionality and it's a case of fine tuning and customizing it for the application.......... :party20:

  • As i see, this number means a set of first unsugnificant bytes in the packet, which are about interface configuration or a kind, because with 5 i got working gas flow from teach pendant (byte 6 in I/O table) and no wire inch/retract (byte 0 and 1 in I/O table).


    The problem with the welder is that i must always choose the non-empty memory channel, and here i suspect probable wrong signal order in aux. 0608. LSB or MSB, little or big endian. So byte and word values may be sent wrong.

    Edited once, last by Zerych ().

  • Hmmmm not too sure I can relate to that, I didn't realise the TargetConfigConnInstance had any impact on byte swap/bit order, but merely to select the relevant connection configuration interfaces the device can be used for such as:
    - Exclusive Owner
    - Input Only
    - Listen Only
    ...............but if it's working, that's the main thing....I'll have to do some more reading up on it if I've misunderstood it...... :censored:


    Usually OEM's stipulate byte order and lsb/msb......but I have no idea about Kemppi standard, but it's just a case of adjusting those settings to discover the correct order if you have no supporting documentation.
    - So Kawasaki has those 2 options to allow for the variations that OEM's can offer.
    - I have had to set LSB and Big Endian before when interfacing with Siemens peripherals on other fieldbuses like Profibus/Profinet.

  • Thank you for your appreciation for the assistance, it goes along way.... :respect:
    The supporting information you have provided was 'key', without it, it could have been more long winded and it's a nice to see such a well presented post too......I hope others that come across this post will benefit not only for Kemmpi/Kawasaki configuration, but also as one of the examples that keep Robot Forum top of the list for sources of information and assistance from it's members.


    Sounds like you have some small teething issues, but looks like the fundamental configuration is working and if we can be of any further assistance......keep us posted.....


    - Once again, Welcome to the forum........:beerchug:

  • And here is the total for this topic: the welding is GOING! :toothy9:


    But now some details and questions. The teach pendant's program contains user-declared (i suppose) variable "bits 65,8 = job_no" (see backup2), which is definitely the number of welder's memory channel. So, when the channel #2, which is set in teach pendant with .REALS section of backup2, was defined in welder, then welding started. The question is about backup's section named .INTER_PANEL_D (was mentioned in one of previous messages), which also linked (i suppose) to memory channel number in the first string. Where to find it in the teach pendant and how to automate or simplify choosing the channel number during the robot programming process with the AS language or otherwise?

    Edited once, last by Zerych ().

Advertising from our partners