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.
- 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)
- 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)
- 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
- Real-time process data visualization
- Configurable update rates
- Trend charts for data analysis
- Raw hex data display
- Port status monitoring
- Event log viewing
- Communication diagnostics
- Connection health monitoring
Coming soon
- Operating System: Windows 10/11
- Python: 3.8 or higher
- Network: Ethernet connection to IO-Link master (or USB for AL1060)
customtkinter>=5.2.0
Pillow>=10.0.0
pyusb>=1.2.1
requests>=2.31.0
-
Clone the repository:
git clone https://github.com/yourusername/sas-iolink-toolkit.git cd sas-iolink-toolkit -
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python run.py
Download the latest release from the Releases page and run SAS_IOLink_Toolkit.exe.
-
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"
-
Discover Devices
- Click "Refresh" to scan all ports
- Connected devices appear in the device tree
-
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
-
Configure Parameters
- Select a parameter in the tree
- Enter a new value
- Click "Write" to save to device
| Model | Ports | Protocol | Status |
|---|---|---|---|
| AL1423 | 8 | REST API (TCP/IP) | ✅ Tested |
| AL1340 | 4 | REST API (TCP/IP) | ✅ Supported |
| Model | Ports | Protocol | Status |
|---|---|---|---|
| DXMR110-8K | 8 | Modbus TCP (502) | ✅ Tested |
| DXMR90-4K | 4 | Modbus TCP (502) | ✅ Supported |
| Model | Ports | Protocol | Status |
|---|---|---|---|
| AL1060 | 1 | USB Direct | ✅ Tested |
| Model | Ports | Protocol | Status |
|---|---|---|---|
| 1734-4IOL | 4 | EtherNet/IP | 🔄 In Development |
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
To create a standalone Windows executable:
python build.pyThe executable will be created in the dist/ folder.
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
- Default port: 80 (HTTP)
- Endpoints:
/iolink/v1/devices,/iolink/v1/devices/{port}/parameters - JSON responses with device data
- Default port: 502
- Register map: 41001-48999 (per port)
- Function codes: 03 (read), 06/16 (write)
- Vendor ID: 0x1B1F (IFM)
- Product ID: 0x1060
- Direct USB HID communication
- Verify network connectivity (ping the IP address)
- Check firewall settings
- Ensure no other software is using the connection
- Confirm devices are physically connected
- Check port mode is set to IO-Link (not DI/DO)
- Verify devices are in OPERATE state
- Some parameters may be write-only
- Check device documentation for supported parameters
- Verify ISDU communication is enabled
- Install USB drivers if required
- Check Device Manager for the adapter
- Try a different USB port
Contributions are welcome! Please feel free to submit issues and pull requests.
- Fork the repository
- Create a feature branch (
git checkout -b feature/new-feature) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature/new-feature) - Create a Pull Request
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
Southern Automation Solutions
- Website: www.southernautomationsolutions.com
- Email: Contact@SASControls.com
- IO-Link Community for protocol specifications
- IFM Electronic for REST API documentation
- Banner Engineering for Modbus register documentation
Version 1.0.12 - December 2024
