Comunicación serial rs232 y rs485 Python-Lector RFID "Resuelto"

Buenos días estimados,

Estoy tratando de realizar una comunicación serial rs232 entre la PC y un lector RFID. El lector RFID tiene dos modos de funcionamiento:

1: Modo atomático. El lector siempre esta funcionando, es decir detecta etiquetas RFID y envía el código mediante el puerto serial a la PC

2. Modo comando: El lector lee etiquetas RFID siempre y cuando se le autorice.
(En las fotos adjuntas están los comandos necesarios para realizar una lectura de las etiquetas RFID)

Realicé la comunicación de forma en modo automático con éxito empleando:

from socket import timeout import serial, time, json lector = serial.Serial(port='COM5', baudrate=57600) data = lector.read(23) print(data) time.sleep(1) data = lector.read(23) print(data)

Como salida obtuve los códigos de las etiquetas

:/Users/as_91/Escritorio/TESIS/COMUNICACION_LECTOR-PYTHON/com_lector_ptyhon.py
b'\xcc\xff\xff \x05\x10\x000\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc5\x07'
b'\xcc\xff\xff \x05\x10\x000\x00\x00\t\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc9\xff'

PERO en modo comando el lector no responde. Para enviar los comandos al Lector emplee el siguiente código:

from socket import timeout import serial, time, json lector = serial.Serial(port='COM5', baudrate=57600) lector.write(str.encode('7c 01 00 21 00 07 00 00 00 00 01 02 02 56')) lector.write(str.encode('7c 01 00 2d 00 02 00 00 54')) data = lector.read(23) print(data)

Y no tengo ninguna respuesta del Lector. Nose si estoy enviando correctamente los datos, no he usado mucho Python para estos fines. Agradeceria mucho su ayuda.

COMANDO PARA LECTURA DE ETIQUETAS

1647272178007.png
Debe ser precedido del siguiente

1647272242108.png
 
SOLUCIÓN:

from socket import timeout
from tracemalloc import stop
import serial
lector = serial.Serial(port='COM5', baudrate=57600, parity=serial.PARITY_NONE,stopbits=serial.STOPBITS_ONE,bytesize=serial.EIGHTBITS, timeout=1)
lector.write(bytes.fromhex('7c 01 00 21 00 07 00 00 00 00 01 02 02 56'))
data1=lector.readline()
print("RESPUESTA RFID: ",data1.hex())
lector.write(bytes.fromhex('7c 01 00 2d 00 02 00 00 54'))

Buens días estimados,

Cómo puedo hacer una comunicación serial rs485 entre cámaras USB y la PC. Tengo una arquitectura que consta de lo siguiente:
  • Dos lectores RFID
  • La PC
  • 6 cámaras USB
  • Un microcontrolador (para enviar el estado de un conjunto de pulsadores a través del bus)
La comunicación entre los dos lectores y la PC ya lo realicé (Empleando Python).

Para introducir las cámaras al bus estaba pensando en lo siguiente:

Primero cambiar la interfaz usb a rs485 para las 6 cámaras (no se si sea posible esto). Luego realizar las conexiones en el bus ya existente (conectada a la PC y los dos lectores RFID).
El problema es que desconozco el identificador de las cámaras para enviar los comandos desde python. Cómo puedo obtener estos identificadores?

Gracias por su atención estimados.
 

Dr. Zoidberg

Well-known-Papá Pitufo
Para introducir las cámaras al bus estaba pensando en lo siguiente:

Primero cambiar la interfaz usb a rs485 para las 6 cámaras (no se si sea posible esto). Luego realizar las conexiones en el bus ya existente (conectada a la PC y los dos lectores RFID).
Creo que vas a necesitar un dispositivo inteligente entre el conjunto de cámaras USB y el enlace RS485. De todas formas, el ancho de banda de un enlace USB y uno RS485 son MUY diferentes, así que probablemente el dispositivo intermedio debe pre-procesar la información de la cámara para enviar mucha menos información al canal serie.
 
Arriba