Package that let easily interact with the Xcom-CAN device
Project description
Python library to access Studer-Innotec Xcom-CAN with the Studer Public Protocol using CAN 2.0B frames
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 xcomcan
2. Hardware installation
Connect your Xcom-CAN (Studer side) to your installation using the cable provided with the device
Connect your Xcom-CAN (External side) to your controller (personal computer, Raspberry Pi, etc.) using a USB to CAN adapter (Kvaser, etc.)
Please refer to the Xcom-CAN manual for more information about commissioning the device
3. Xcom-CAN Protocol selection
Interaction with the Xtender/Vario systems through third party devices such as PLC or SCADA requires to select Studer Public Protocol with dip switches as shown below. There’s two operation modes available :
Exclusive : This configuration is recommended when there is only one device communicating with the Studer Public Protocol on the external CAN interface. The Xcom-CAN will send a response to every frame that appears on the external CAN interface. For frames which do not fit the Studer Public Protocol specifications, the Xcom-CAN will send an error frame message. This mode is practical for debugging as every frame sent by the PLC/SCADA will get a response. It will also detect any frame that could be corrupted when transmission occurs.
Tolerant : This configuration is recommended when there are several devices communicating with different protocols on the external CAN interface. The Xcom-CAN will only send a response to the frames that completely fit the Studer Public Protocol specifications. This mode enable the installer to extend the CAN bus on the external interface and to add others devices that can communicate with the PLC/SCADA on the same physical support as the Xcom-CAN.
Xcom-CAN Dip switches protocol selection
N° 1 |
N° 2 |
N° 3 |
N° 4 |
Studer Public |
---|---|---|---|---|
OFF |
ON |
OFF |
OFF |
Exclusive Protocol |
OFF |
ON |
OFF |
ON |
Tolerant Protocol |
4. Software configuration
Set the Studer CAN public client as follow :
StuCanPublicClient(0x00, CAN_BUS_SPEED, bustype='kvaser', debug=True)
where ‘0x00’ is the source address
where CAN_BUS_SPEED is your CAN bus bitrate as selected inside the XcomCAN device with the dip-switches, it must be set to 10000, 20000, 50000, 100000, 125000, 250000, 500000 or 1000000
where bustype is the CAN interface name has specified here : python-can
where debug enables you to get some useful console information for debugging purpose
Xcom-CAN Dip switches CAN bus speed selection
N° 6 |
N° 7 |
N° 8 |
CAN bus speed |
---|---|---|---|
OFF |
OFF |
OFF |
10 kbps |
OFF |
OFF |
ON |
20 kbps |
OFF |
ON |
OFF |
50 kbps |
OFF |
ON |
ON |
100 kbps |
ON |
OFF |
OFF |
125 kbps |
ON |
OFF |
ON |
250 kbps |
ON |
ON |
OFF |
500 kbps |
ON |
ON |
ON |
1 Mbps |
5. Run an example from /examples folder
Go to /examples folder with a terminal and execute this script
$ python try_stu_can_public_client.py
Check client file to understand it.
6. Open documentation
Open documentation from Read The Docs
Warnings
Please check carefully the Xcom-CAN dip switches configuration as well as the jumper for CAN-H, CAN-L and GND signals
Use devices addresses generated into addresses file
It is strongly recommended NOT to spam the Xcom-CAN with multiple requests. Even if the Xcom-CAN has a frame buffer, the response will not be faster because of internal Studer bus load. The correct way to communicate with the Xcom-CAN is to send a request and to wait for the response before sending the next request. If no response comes from Xcom-CAN after a delay of 1 second, we can consider that the timeout is over and another request can be send.
License
This project is licensed under the MIT License - see the LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.