Has anyone managed to make an IO list from an IODD file with all signals and correct mapping?

Has anyone managed to make an IO list from an IODD file with all signals and correct mapping?

I am currently using a Schmalz SCTSi IOL 4 as an IO Link device and connected to an IFM AL1420 IO Link Master with EtherNet/IP interface. I am connected via ethernet to an IRC5 controller. I have the IODD files from the Schmalz unit and the EDS file from the IO Link Master

Answers

  • Tompanhuhu
    Tompanhuhu ✭✭✭
    I have made my own script to convert IODD to ABB io-list.
    This is the output i got from the iodd file, you can test if it works.
    I entered starting bit 0 so if your signals start at 8 or 16 you have to add that value to the bit values.

    Enter the path to the IODD file:
    ****\Schmalz-SCTSi-IOL_4-20211028-IODD1.1.xml
    Enter the ABB start bit offset INPUT:
    0
    Enter the ABB start bit offset OUTPUT:
    0
    Robot inputs: Description : Address
    Number of device which generated a condition monitoring or error event: 3-7
    EPC Select Acknowledged: 5
    Device Status: 6
    EPC Value 1: 8-15
    EPC Value 2 High: 16-23
    EPC Value 2 Low: 24-31
    Air Saving Function (H1) Ejector 1: 32
    Part Present (H2) Ejector 1: 33
    Air Saving Function (H1) Ejector 2: 34
    Part Present (H2) Ejector 2: 35
    Air Saving Function (H1) Ejector 3: 36
    Part Present (H2) Ejector 3: 37
    Air Saving Function (H1) Ejector 4: 38
    Part Present (H2) Ejector 4: 39
    ********************
    ABB CONFIG STRING
    ********************
    -Name "Number of device which generated a condition monitoring or error event" -SignalType "GI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "3-7"
    -Name "EPC Select Acknowledged" -SignalType "DI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "5"
    -Name "Device Status" -SignalType "DI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "6"
    -Name "EPC Value 1" -SignalType "GI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "8-15"
    -Name "EPC Value 2 High" -SignalType "GI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "16-23"
    -Name "EPC Value 2 Low" -SignalType "GI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "24-31"
    -Name "Air Saving Function (H1) Ejector 1" -SignalType "DI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "32"
    -Name "Part Present (H2) Ejector 1" -SignalType "DI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "33"
    -Name "Air Saving Function (H1) Ejector 2" -SignalType "DI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "34"
    -Name "Part Present (H2) Ejector 2" -SignalType "DI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "35"
    -Name "Air Saving Function (H1) Ejector 3" -SignalType "DI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "36"
    -Name "Part Present (H2) Ejector 3" -SignalType "DI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "37"
    -Name "Air Saving Function (H1) Ejector 4" -SignalType "DI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "38"
    -Name "Part Present (H2) Ejector 4" -SignalType "DI" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "39"
    
    Robot outputs: Description : Address
    Number of device which will send EPC Data: 0
    EPC Select 0: 6
    EPC Select 1: 7
    Input Pressure: 8-15
    Vacuum Ejector 1: 16
    Blow Off Ejector 1: 17
    Vacuum Ejector 2: 18
    Blow Off Ejector 2: 19
    Vacuum Ejector 3: 20
    Blow Off Ejector 3: 21
    Vacuum Ejector 4: 22
    Blow Off Ejector 4: 23
    ********************
    ABB CONFIG STRING
    ********************
    -Name "Number of device which will send EPC Data" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "0
    -Name "EPC Select 0" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "6
    -Name "EPC Select 1" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "7
    -Name "Input Pressure" -SignalType "GO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "8-15
    -Name "Vacuum Ejector 1" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "16
    -Name "Blow Off Ejector 1" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "17
    -Name "Vacuum Ejector 2" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "18
    -Name "Blow Off Ejector 2" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "19
    -Name "Vacuum Ejector 3" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "20
    -Name "Blow Off Ejector 3" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "21
    -Name "Vacuum Ejector 4" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "22
    -Name "Blow Off Ejector 4" -SignalType "DO" -Device "REPLACE_IO_DEVICE"\
    -Access "All" -DeviceMap "23
    Press any key to continue...

    Systemintegrator - Web / C# / Rapid / Robotstudio

    If I helped, please press Vote Up  :smile:

    ☑️2024 - RobotStudio® User Group