serial-industrial-modbus-3.ino
Exemple Python montrant la configuration d'un port série RS485 pour la communication Modbus RTU.
Los puertos serie de BIOSOTAR se mapean a /dev/ttySx. RS485 es común para automatización industrial. Asegúrese de que el modo del puerto esté configurado en BIOS o mediante jumpers. Use la librería 'pyserial'.
serial-industrial-modbus-3.ino
import serial
import time
# Configuration du port série pour RS485 sur BIWCL-PAT
# Les ports série sont généralement ttyS0 à ttyS3. Vérifier avec 'dmesg' ou 'ls /dev/ttyS*'
PORT = '/dev/ttyS0'
BAUDRATE = 9600
TIMEOUT = 1
try:
# Ouverture du port
ser = serial.Serial(PORT, BAUDRATE, timeout=TIMEOUT)
print(f"Port {PORT} ouvert.")
# Exemple de trame Modbus RTU Master (Lecture de registres)
# Adresse: 01, Fonction: 03 (Read Holding Registers), Start: 0000, Qty: 0001, CRC: X X
# Note : Le calcul CRC doit être fait dynamiquement dans un vrai projet (bibliothèque pymodbus recommandée)
request_cmd = b'\x01\x03\x00\x00\x00\x01\x84\x0A'
while True:
# Envoi de la commande
ser.write(request_cmd)
time.sleep(0.1) # Délai de réponse de l'esclave Modbus
# Lecture de la réponse
response = ser.read(ser.in_waiting if ser.in_waiting else 7)
if response:
print(f"Reçu (Hex): {response.hex()}")
# Ici, vous décoderiez les données selon la trame Modbus
else:
print("Aucune réponse de l'esclave RS485.")
time.sleep(1)
except Exception as e:
print(f"Erreur série : {e}")
finally:
if 'ser' in locals() and ser.is_open:
ser.close()