Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

SAS IO-Link Toolkit

Southern Automation Solutions

A professional Windows desktop application for configuring, monitoring, and diagnosing IO-Link devices through various IO-Link masters. Developed by Southern Automation Solutions for industrial automation professionals.

Features

Multi-Vendor IO-Link Master Support

  • IFM Electronic - AL1423 and similar masters (REST API)
  • Banner Engineering - DXMR90-4K, DXMR110-8K (Modbus TCP)
  • Allen-Bradley - 1734-4IOL (EtherNet/IP - planned)
  • IFM AL1060 - USB IO-Link adapter (direct USB connection)

Device Management

  • Automatic device detection and enumeration
  • Real-time device status monitoring
  • Support for 4-port and 8-port masters
  • Device identification (Vendor ID, Device ID, Serial Number)

Parameter Configuration

  • Read/write IO-Link device parameters
  • IODD file support for parameter descriptions
  • Standard parameter display (Vendor Name, Product Name, etc.)
  • ISDU (Index/Subindex Data Unit) read/write operations

Process Data Monitoring

  • Real-time process data visualization
  • Configurable update rates
  • Trend charts for data analysis
  • Raw hex data display

Diagnostic Tools

  • Port status monitoring
  • Event log viewing
  • Communication diagnostics
  • Connection health monitoring

Screenshots

Coming soon

Requirements

  • Operating System: Windows 10/11
  • Python: 3.8 or higher
  • Network: Ethernet connection to IO-Link master (or USB for AL1060)

Python Dependencies

customtkinter>=5.2.0
Pillow>=10.0.0
pyusb>=1.2.1
requests>=2.31.0

Installation

Option 1: Run from Source

  1. Clone the repository:

    git clone https://github.com/yourusername/sas-iolink-toolkit.git
    cd sas-iolink-toolkit
  2. Install dependencies:

    pip install -r requirements.txt
  3. Run the application:

    python run.py

Option 2: Windows Executable

Download the latest release from the Releases page and run SAS_IOLink_Toolkit.exe.

Quick Start

  1. Connect to an IO-Link Master

    • Select the master type (IFM, Banner, Allen-Bradley, or USB)
    • Enter the IP address (or select USB device)
    • Click "Connect"
  2. Discover Devices

    • Click "Refresh" to scan all ports
    • Connected devices appear in the device tree
  3. View Device Information

    • Click on a device to view its identification
    • Parameters tab shows readable/writable parameters
    • Process Data tab shows real-time I/O data
  4. Configure Parameters

    • Select a parameter in the tree
    • Enter a new value
    • Click "Write" to save to device

Supported IO-Link Masters

IFM Electronic (REST API)

Model Ports Protocol Status
AL1423 8 REST API (TCP/IP) ✅ Tested
AL1340 4 REST API (TCP/IP) ✅ Supported

Banner Engineering (Modbus TCP)

Model Ports Protocol Status
DXMR110-8K 8 Modbus TCP (502) ✅ Tested
DXMR90-4K 4 Modbus TCP (502) ✅ Supported

IFM USB Adapter

Model Ports Protocol Status
AL1060 1 USB Direct ✅ Tested

Allen-Bradley (Planned)

Model Ports Protocol Status
1734-4IOL 4 EtherNet/IP 🔄 In Development

Project Structure

IOLinkTool/
├── assets/
│   └── logo.png              # Application logo
├── config/
│   └── app_config.json       # Application settings
├── docs/                     # Documentation
├── iodd_library/             # IODD files for device descriptions
├── src/
│   ├── main.py               # Main application entry point
│   ├── iolink_comm.py        # Communication protocols (Modbus, REST, USB)
│   ├── iodd_parser.py        # IODD XML file parser
│   ├── parameter_editor.py   # Parameter configuration UI
│   ├── device_manager.py     # Device tree and management
│   └── diagnostic_tools.py   # Diagnostic utilities
├── build.py                  # PyInstaller build script
├── requirements.txt          # Python dependencies
├── run.py                    # Application launcher
└── README.md                 # This file

Building an Executable

To create a standalone Windows executable:

python build.py

The executable will be created in the dist/ folder.

IODD Files

IODD (IO Device Description) files provide detailed parameter information for IO-Link devices. Place IODD files in the iodd_library/ folder organized by vendor:

iodd_library/
├── IFM/
│   └── IFM-O5D150-20180101-IODD1.1.xml
├── Keyence/
│   └── Keyence-LR-TB2000C-20200601-IODD1.1.xml
└── Banner/
    └── Banner-QS18VP6LV-20190301-IODD1.1.xml

Communication Protocols

IFM REST API

  • Default port: 80 (HTTP)
  • Endpoints: /iolink/v1/devices, /iolink/v1/devices/{port}/parameters
  • JSON responses with device data

Banner Modbus TCP

  • Default port: 502
  • Register map: 41001-48999 (per port)
  • Function codes: 03 (read), 06/16 (write)

USB (AL1060)

  • Vendor ID: 0x1B1F (IFM)
  • Product ID: 0x1060
  • Direct USB HID communication

Troubleshooting

Cannot connect to IO-Link master

  • Verify network connectivity (ping the IP address)
  • Check firewall settings
  • Ensure no other software is using the connection

Devices not appearing

  • Confirm devices are physically connected
  • Check port mode is set to IO-Link (not DI/DO)
  • Verify devices are in OPERATE state

Parameter read errors

  • Some parameters may be write-only
  • Check device documentation for supported parameters
  • Verify ISDU communication is enabled

USB adapter not detected

  • Install USB drivers if required
  • Check Device Manager for the adapter
  • Try a different USB port

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -am 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Create a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

This means you are free to:

  • ✅ Use commercially
  • ✅ Modify
  • ✅ Distribute
  • ✅ Use privately

Contact

Southern Automation Solutions

Acknowledgments

  • IO-Link Community for protocol specifications
  • IFM Electronic for REST API documentation
  • Banner Engineering for Modbus register documentation

Version 1.0.12 - December 2024

About

Custom IO-Link configuration and diagnotic tool.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages