serial_rs485_modbus_master-7.ino
Reads Modbus RTU data from industrial sensors connected to the card's isolated RS485 ports.
The isolated RS485 ports require half-duplex management. Under Linux, check access permissions for /dev/ttySx. The LoongArch architecture uses the standard kernel serial stack. Ensure the IO board or onboard port hardware is configured for RS485 mode if a control GPIO is required.
serial_rs485_modbus_master-7.ino
#!/usr/bin/env python3
"""
BPI-5202 RS485 Modbus Master
Prérequis : pip install pymodbus
Le port RS485 nécessite souvent un contrôle RTS pour le demi-duplex (vérifier GPIO ou auto-direction)."""
from pymodbus.client import ModbusSerialClient
import time
def main():
# Configuration typique RS485 BPI-5202 (port série UART dédié)
# /dev/ttySx dépend de la carte d'extension ou des ports onboard
client = ModbusSerialClient(
port='/dev/ttyS1', # À adapter selon le port physique
baudrate=9600,
bytesize=8,
stopbits=1,
parity='N',
timeout=1
)
try:
client.connect()
print("Connecté au bus RS485...")
while True:
# Lecture de 10 registres de maintien à partir de l'adresse 0
# Device ID à adapter (ex: 1)
result = client.read_holding_registers(address=0, count=10, slave=1)
if not result.isError():
print(f"Registres lus: {result.registers}")
else:
print("Erreur de lecture Modbus")
time.sleep(1)
except Exception as e:
print(f"Erreur: {e}")
finally:
client.close()
if __name__ == '__main__':
main()