S7_snap7_Stremer_n_Recorder/.tests
Miguel 551ec8b4a5 Refactor dataset variable areas to uppercase, update plot definitions and variables, and enhance UI schema for better clarity and consistency
- Changed memory area identifiers in dataset_variables.json and related schemas from lowercase to uppercase (e.g., "db" to "DB").
- Added new plot definition for "CTS306 Conductivimeter" in plot_definitions.json.
- Updated plot_variables.json to include new variables for "HMI_Instrument.QTM306.PVFiltered" and "HMI_Instrument.QTM307.PVFiltered".
- Enhanced dataset-variables.schema.json to enforce required fields based on area and type.
- Improved ui schema for dataset variables to provide clearer guidance on field usage.
- Updated PLC client to utilize new snap7.type module and improved error handling.
- Added support for new data types (DWORD) in PlcDataTypeWidget.
- Updated Dashboard.jsx to reflect changes in memory area identifiers and improve default configurations.
- Upgraded python-snap7 dependency to version 2.0.2 for enhanced functionality.
- Modified system_state.json to reflect changes in connection status and last update timestamp.
- Implemented optimized batch reading logic in optimized_batch_reader.py to support new area mappings.
- Added VSCode configuration files for improved development experience.
- Introduced ConditionalObjectFieldTemplate.jsx for dynamic field visibility based on PLC-specific logic.
2025-08-25 18:02:24 +02:00
..
PERFORMANCE_MONITORING.md Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
README.md Verificacion de Lecturas con Test de sistema Legacy y Optimizado 2025-08-22 11:15:50 +02:00
data_integrity_simple_20250821_201829.json Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
data_integrity_simple_20250821_201919.json Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
db1001_verification_report_20250822_110058.json Verificacion de Lecturas con Test de sistema Legacy y Optimizado 2025-08-22 11:15:50 +02:00
run_tests.py Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
setup_performance_test.py Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
setup_report_20250821_164320.json Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
setup_report_20250821_164652.json Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
snap7v2_test_report_20250821_171732.json Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
snap7v2_test_report_20250821_172424.json Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
snap7v2_test_report_20250821_173608.json Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
snap7v2_test_report_20250821_174150.json Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
test_db1001_specific_values.py Refactor dataset variable areas to uppercase, update plot definitions and variables, and enhance UI schema for better clarity and consistency 2025-08-25 18:02:24 +02:00
test_plotjuggler_search.py Refactor: Remove legacy code and tests, update system state configuration 2025-08-22 12:42:42 +02:00
test_simple_data_integrity.py Refactor dataset variable areas to uppercase, update plot definitions and variables, and enhance UI schema for better clarity and consistency 2025-08-25 18:02:24 +02:00
test_snap7v2_comprehensive.py Add comprehensive tests for snap7 v2 functionality 2025-08-21 20:30:41 +02:00
test_system_state_paths.py Refactor: Remove legacy code and tests, update system state configuration 2025-08-22 12:42:42 +02:00

README.md

🧪 TESTS - Scripts de Verificación Snap7 V2

Este directorio contiene los scripts de test esenciales para validar el sistema de optimización snap7 v2.

📋 Scripts Principales

🚀 test_snap7v2_comprehensive.py

Función: Control de diferencias de velocidad y performance entre métodos legacy y optimizado

  • Comparación de rendimiento con diferentes tamaños de datasets (5, 10, 100 variables)
  • Stress testing con múltiples iteraciones
  • Medición de mejoras de performance (hasta 96% de optimización)
  • Generación de reportes detallados de rendimiento
  • Validación de todas las áreas de memoria (DB, M, E)

🔍 test_simple_data_integrity.py

Función: Control de integridad de datos usando sistema de 2 fases

  • Verificación de que ambos métodos lean exactamente los mismos valores
  • Sistema de doble pasada para descartar variables cambiantes
  • Detección automática de variables que cambien durante las pruebas
  • Validación de consistencia entre lecturas
  • Reporte de integridad con 100% de precisión

🎯 test_db1001_specific_values.py

Función: Verificación de valores hexadecimales específicos en DB1001

  • Validación de 17 valores hexadecimales específicos predefinidos
  • Comparación exacta entre métodos legacy y optimizado
  • Verificación de tipos WORD (16-bit unsigned)
  • Control de precisión hexadecimal exacta
  • Validación de chunking automático

📊 Archivos de Reporte

Reportes JSON

  • snap7v2_test_report_*.json - Reportes de performance comprehensivos
  • data_integrity_simple_*.json - Reportes de integridad de datos
  • setup_report_*.json - Reportes de configuración de tests

Documentación

  • PERFORMANCE_MONITORING.md - Guía de monitoreo de performance

🎯 Casos de Uso

Para Validar Performance

python test_snap7v2_comprehensive.py
  • Mide diferencias de velocidad
  • Genera reportes de mejora de rendimiento
  • Valida escalabilidad del sistema

Para Validar Integridad de Datos

python test_simple_data_integrity.py
  • Verifica que ambos métodos lean valores idénticos
  • Usa doble pasada para mayor confiabilidad
  • Detecta variables cambiantes automáticamente

Para Validar Valores Específicos

python test_db1001_specific_values.py
  • Verifica valores hexadecimales exactos
  • Valida lectura correcta de tipos WORD
  • Control de precisión bit-level

Estado de Validación

Todos los tests han sido ejecutados exitosamente con los siguientes resultados:

  • 🚀 Performance: Mejora de hasta 96% en datasets grandes
  • 🔍 Integridad: 100% de precisión en lectura de datos
  • 🎯 Valores Específicos: 100% de exactitud en valores hexadecimales

🔧 Configuración

Los tests utilizan la configuración PLC definida en config/data/plc_config.json:

  • PLC: Siemens S7-315
  • IP: 10.1.33.11
  • Rack: 0, Slot: 2

📝 Notas Técnicas

  • Chunking Automático: Los tests validan el límite de 20 variables por llamada read_multi_vars
  • Buffer Management: Verificación correcta de allocación de buffers ctypes
  • Error Handling: Manejo robusto de errores con fallback automático
  • Threading Safety: Validación de operaciones thread-safe