Skip to main content

Package that let easily interact with the Xcom-485i device over Modbus RTU

Project description

Python library to access Studer-Innotec Xcom-485i device through Modbus RTU over a serial port

Prerequisites

Please read the complete documentation available on : Studer Innotec SA -> Support -> Download Center -> Software and Updates -> Communication protocols Xcom-CAN

Getting Started

1. Package installation

$ pip install xcom485i

2. Hardware installation

  • Connect your Xcom-485i (Studer side) to your installation using the cable provided with the device

  • Connect your Xcom-485i (External side) to your controller (personal computer, Raspberry Pi, etc.) using a USB to RS-485 adapter

  • Please refer to the Xcom-485i manual for more information about commissioning the device

3. Serial configuration

This package rely on pyserial standard package, in order to use the xcom485i package make sure to instantiate it like :

import serial

serial_port = serial.Serial(SERIAL_PORT_NAME, SERIAL_PORT_BAUDRATE, parity=serial.PARITY_EVEN, timeout=1)
  • where SERIAL_PORT_NAME is your serial port interface, for example set it to ‘COM4’ (string argument) when using Windows otherwise you may set it to ‘/dev/ttyUSB0/’ on Linux

  • where SERIAL_PORT_BAUDRATE is the baudrate used by your serial port interface (must be set to 9600, 19200, 38400 or 115200 according to Xcom-485i dip-switches)

Xcom-485i Dip switches baud rate selection

N° 7

N° 8

Baudrate

OFF

OFF

9600 bps

OFF

ON

19200 bps

ON

OFF

38400 bps

ON

ON

115200 bps

4. Address offset

Set the modbus offset corresponding to the internal dip-switches of your Xcom-485i device, it must be set to 0, 32, 64 or 128.

It is done when instantiate the Xcom485i class like :

xcom485i = Xcom485i(serial_port, OFFSET, debug=True)
  • where serial_port is the previously created object with Serial

  • where OFFSET is your actual modbus address offset set by the dip-switches inside your Xcom-485i

  • where debug enables you to get some useful console information for debugging purpose

Xcom-485i Dip switches address offset selection

N° 1

N° 2

Address offset

Address range

OFF

OFF

0

1 to 63

OFF

ON

32

33 to 95

ON

OFF

64

65 to 127

ON

ON

128

129 to 192

5. Run an example from /examples folder

Go to /examples folder with a terminal and execute this script

$ python ex_read_info.py

Check client file to understand it.

6. Open documentation

Open documentation from Read The Docs

Warnings

  • Please check carefully the serial configuration, the Xcom-485i dip-switches configuration as well as the jumper for D+, D- and GND signals

  • Use devices addresses generated into addresses file

  • It is strongly recommended NOT to spam the Xcom-485i with multiple requests. The correct way to communicate with the Xcom-485i is to send a request and to wait for the response before sending the next request. If no response comes from the Xcom-485i after a delay of 1 second, we can consider that the timeout is over and another request can be send. It is also how Modbus RTU is intended to work.

Authors

Studer Innotec SA - Initial work - Studer Innotec SA

License

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xcom485i-0.9.3.tar.gz (11.0 kB view hashes)

Uploaded Source

Built Distribution

xcom485i-0.9.3-py3-none-any.whl (9.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page