serial_rs485_modbus_master-7.ino

Computador industrial de placa única BPI-5202 Loongson 2K1000LAi · Archivo : serial_rs485_modbus_master-7.ino · Lenguaje : python · Uso : Communiquer avec un périphérique Modbus RTU via le port série RS485 isolé.

Lee datos Modbus RTU desde sensores industriales conectados a los puertos RS485 aislados de la placa.

Los puertos RS485 aislados requieren gestión de medio dúplex. Bajo Linux, verifique los permisos de acceso a /dev/ttySx. La arquitectura LoongArch usa la pila serial estándar del kernel. Asegúrese de que el hardware de la placa IO o puerto integrado esté configurado para modo RS485 si se requiere un GPIO de control.

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()

← Volver a la ficha