¿Excel VBA y SQL se usan comúnmente en ingeniería mecánica?

Comencé a usar Excel VBA en 1995 cuando un licenciatario quería un programa de dimensionamiento, y me encantó la experiencia que dominó el resto de mi carrera. Excel hace un gran trabajo como front-end para entradas, salidas e interfaz de usuario. VBA mantiene los detalles de los cálculos en un lugar más resistente a la manipulación, al tiempo que permite a los ingenieros leer el código y asegurarse de que los cálculos se están realizando correctamente.

Mi experiencia previa en codificación fue décadas antes usando FORTRAN IV en mainframes, pero el cliente quería algo que funcionara en microcomputadoras. Recogí una copia de Visual Basic 3 en la tienda de computadoras local, después de comparar la “legibilidad humana” de su código con C, C # y Java.

Después de construir una interfaz de usuario en Visual Basic, aprendí que Excel 5 tenía un nuevo lenguaje macro basado en Visual Basic. Usar VBA para los calcs y la cuadrícula de Excel para las entradas y salidas fue una solución perfecta para mi problema. Significaba que los usuarios podían acercarse al programa terminado ya sabiendo cómo funcionaba la interfaz de usuario, el código (con comentarios) se auto documentaba y el cliente tenía tranquilidad con respecto a la capacidad de modificar el código en el futuro.

Escribí funciones definidas por el usuario para manejar todos los cálculos, comenzando con las propiedades termodinámicas y físicas de refrigerantes, agua y vapor. Luego agregué código para el equilibrio de calor y masa, el rendimiento modelado del compresor de refrigerante (flujo volumétrico y consumo de energía), el rendimiento del evaporador y condensador (coeficiente de transferencia de calor, enfoque de temperatura y servicio de calor) y las variaciones de temperatura día / noche. Después de completar cada bloque de construcción, lo probé con datos de libros de texto y ejemplos trabajados.

Finalmente, agregué una rutina maestra para llamar a los diversos bloques de construcción necesarios para dimensionar el equipo. Terminó siendo tres bucles de prueba y error anidados. Cincuenta páginas de código VBA no optimizado más tarde, tenía algo que produciría respuestas.

Desafortunadamente, fue demasiado lento para ser práctico. Los temporizadores en el código ayudaron a encontrar los cuellos de botella y determinar si mis ajustes algorítmicos fueron útiles. Los bucles de prueba y error anidados fueron el mayor problema, y ​​las suposiciones semiempíricas para el siguiente valor ayudaron enormemente. Las siguientes mejoras ocurrieron transfiriendo todas las entradas a VBA como una matriz y devolviendo los resultados de manera similar. En general, estos ajustes redujeron el tiempo de solución de 600 segundos a menos de 10.

Me gustaron tanto las soluciones con tecnología VBA que comencé a aplicarlas en los siguientes 20 años a cada tarea de ingeniería de rutina. Agrupe las tareas relacionadas con el mismo libro de trabajo, con cada tarea en una hoja de trabajo separada. Al hacerlo, podría compartir código, especialmente las funciones utilizadas para predecir propiedades termodinámicas y de transporte, coeficientes de transferencia de calor y caídas de presión. Tenía tres libros de este tipo, uno para equipos refrigerados (fabricadores de hielo), uno para purificadores de agua (evaporadores y generadores de vapor) y otro para calcos de intercambiadores de calor.

Otro libro de trabajo se dedicó a dimensionar válvulas de control y dispositivos de alivio. Almacené las características de flujo de cada modelo en una tabla de búsqueda en una hoja de trabajo oculta, luego usé un menú desplegable para seleccionar el mejor ajuste para cada aplicación. El código VBA me indicaría la posición de estrangulamiento de las válvulas de control, dependiendo de las características del flujo y las condiciones del proceso.

Luego, desarrollé libros de trabajo para generar listas de instrumentos para una línea de equipos que utilizaban un enfoque de “modelos y opciones” para la personalización de ingeniería. Tuve que presentar estas listas de instrumentos para la aprobación del cliente. Este libro de trabajo estaba vinculado al sistema de planificación de recursos materiales (MRP), por lo que podía ingresar un número de pieza y recuperar su descripción de ingeniería de la base de datos MRP. Al usar el código VBA, reduzco el tiempo de ingeniería al tiempo que mejora la precisión (porque podría concentrarme en las pocas excepciones en lugar de la gran cantidad de componentes estándar). Luego agregué características como el uso de números de etiqueta generados por el cliente, hojas de datos ISA con datos vinculados al proceso y el uso de preferencias del cliente para unidades de ingeniería.

Para ayudar con la gestión de proyectos, construí un libro de trabajo basado en VBA que documentaba problemas comerciales y técnicos durante el curso de un proyecto largo. Cada tema abierto se discutió durante una teleconferencia semanal, y documenté esas discusiones en una columna separada para cada teleconferencia. El código VBA me permitió agregar problemas, ocultarlos cuando se cerraron, ordenar la lista y mostrar solo las tres teleconferencias más recientes.

Al preparar las ofertas para los proyectos del Departamento de Defensa, tuvimos que desglosar los costos por mes y la Estructura de desglose del trabajo (WBS), con hojas de trabajo separadas para cada Número de línea de pedido del contrato (CLIN). Los costos tuvieron que sumarse verticalmente, horizontalmente y desde la primera hoja de trabajo hasta la última. Los cambios dirigidos por la gerencia de última hora mantuvieron al equipo de licitación trabajando largas horas. Pero con el código VBA, podría automatizar la construcción de la Estructura de desglose del trabajo y podría encontrar errores y omisiones al clasificar los gastos.

Mi último empleador usó ingenieros para escribir órdenes de compra porque nuestro tiempo era facturable para el cliente. El departamento de contabilidad tenía gastos generales, por lo que se nos exigió codificar las compras por proyecto y número de cuenta para mejorar la eficiencia de los contables no facturables. Históricamente, esto se hizo encontrando un PO antiguo y modificándolo según sea necesario. Al hacerlo, se institucionalizaron los errores y se desperdició el tiempo de ingeniería persiguiendo esos códigos de contabilidad. Así que construí un libro de trabajo impulsado por VBA que construyó el PO desde cero utilizando listas desplegables para el proveedor, la división y el tipo de producto que se compra. De esas selecciones, el código buscó los datos requeridos de la base de datos de proveedores de la compañía y las tablas de búsqueda en una hoja de trabajo oculta. Incluso podría calcular el costo de envío de UPS en función del peso y el tipo de servicio.

Excel VBA todo el tiempo porque es gratuito en un entorno de oficina y lo suficientemente potente para la mayoría de los análisis o cálculos de datos que un ingeniero mecánico podría hacer. Además, la función de macro de grabación le permite ver el código de acciones que quizás no conozca, por lo que es fácil de aprender.

SQL, muy raramente pero puede ser, dependiendo de las necesidades.

Soy un ME y he usado ambas aplicaciones. Sin embargo, ninguno de los otros ingenieros ha usado ninguno de los dos. Entonces, aunque creo que VBA y SQL pueden ser útiles para un ME, no es común.