Inicio > Foro > Discusiones sobre problemas generales > Análisis de cadenas desde el puerto serie
- Este tema tiene 2 respuestas, 2 participantes y se actualizó por última vez 1 año, hace 10 meses da Stefano.
-
autorPublicación
-
Mayo 20, 2022 en 3: 54 pm #65318Stefanopartícipe
Tengo que conectar una prensa antigua a un SCADA para monitorear su funcionamiento.
La prensa me da 4 contactos limpios con las señales:- Ciclo en curso
- Operación automática
- Manual de operación
- Parada por alarmatambién tiene un puerto serie, al que se debe conectar una impresora de solo texto, que al final de cada ciclo genera una cadena que contiene alrededor de diez valores operativos y un carácter de nueva línea. Entonces algo como:
"1.33 84.9 7893 22.5 6.74 etc. etc."
"1.93 87.4 7894 23.5 6.94 etc. etc."Las cadenas siempre tienen 80 caracteres, los valores parecerían ser campos de ancho fijo alineados a la derecha.
Debería adquirir los valores digitales y ponerlos a disposición en una palabra a través de modbus TCP, lo cual es bastante trivial. Al mismo tiempo, lea la cadena desde la línea serial hasta el carácter de final de línea, descarte las líneas inválidas (cuando la máquina calcula que está en una hoja nueva, emite los encabezados de columna y guiones), divida los campos, convertirlos de texto a número y ponerlos a disposición a través de modbus. Tal vez guarde las cadenas recibidas en un archivo de texto para la depuración.
Estaba pensando en usar un MPS056A320.
La idea era hacer un bucle que lea un carácter a la vez de la serie y lo agregue a un búfer. Una vez que alcance los 80 caracteres, o el carácter de nueva línea, divida la cadena en X cadenas de dimensión Yx y conviértalas con SysVarsscanf. Si SysVarsscanf no da errores, copie los datos en las ubicaciones accesibles por modbus.
El enfoque es un poco de bajo nivel, pero me parece bastante robusto.
¿Hay bibliotecas más avanzadas que se me escapan?Mayo 23, 2022 en 10: 29 am #65321Sergio BertanaAdministrador del foroDiría que es la mejor solución, si echas un vistazo al capítulo Semplice protocollo seriale en la documentación de FB SysSerialPort, ya encuentra un punto de partida para su aplicación.
Junio 8, 2022 en 11: 28 am #65484StefanopartícipePara depurar la aplicación sería útil contar con una página web que muestre el log de las cadenas llegadas vía serial. Exactamente lo que hace la página web del sistema que muestra los registros. ¿Existe una forma estándar de replicarlo apoyándose en un archivo de texto diferente?
-
autorPublicación
- Debe iniciar sesión para responder a este tema.