- 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. |
||
---|---|---|
.. | ||
PERFORMANCE_MONITORING.md | ||
README.md | ||
data_integrity_simple_20250821_201829.json | ||
data_integrity_simple_20250821_201919.json | ||
db1001_verification_report_20250822_110058.json | ||
run_tests.py | ||
setup_performance_test.py | ||
setup_report_20250821_164320.json | ||
setup_report_20250821_164652.json | ||
snap7v2_test_report_20250821_171732.json | ||
snap7v2_test_report_20250821_172424.json | ||
snap7v2_test_report_20250821_173608.json | ||
snap7v2_test_report_20250821_174150.json | ||
test_db1001_specific_values.py | ||
test_plotjuggler_search.py | ||
test_simple_data_integrity.py | ||
test_snap7v2_comprehensive.py | ||
test_system_state_paths.py |
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 comprehensivosdata_integrity_simple_*.json
- Reportes de integridad de datossetup_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