Para modificar un bit individual dentro de un Double Word (DWORD) de 32 bits en SIMIT Simulation Platform sin sobrescribir o restablecer los otros 31 bits restantes, utilice una combinación de componentes de división y recombinación de bits o aplique lógica de máscara de bits binarios. Conectar un bit aislado directamente a bloques de conversión como Bit2Byte o Byte2DWord hace que los pines no asignados tomen por defecto el valor FALSE (cero), eliminando inadvertidamente las señales de proceso circundantes. Para preservar los datos no afectados, divida el DWORD entrante en los bytes o bits constituyentes utilizando DWord2Byte y Byte2Bit, sobrescriba únicamente el índice booleano de destino y recombinar las señales modificadas nuevamente en un DWORD usando Bit2Byte y Byte2DWord.
Índice de contenidos
- Arquitectura de señales de los componentes de SIMIT y evaluación de pines por defecto
- Por qué los bloques de conversión directa sobrescriben los bits adyacentes
- Método 1: División y recombinación de bits utilizando componentes estándar
- Método 2: Aplicación de lógica matemática a nivel de bits (enmascaramiento AND/OR)
- Verificación
- Limitaciones y precauciones operativas
- Preguntas frecuentes del ingeniero
- Referencias técnicas
- Artículos relacionados
- Etiquetas relacionadas
Arquitectura de señales de los componentes de SIMIT y evaluación de pines por defecto
En SIMIT (V10.x, V11.x), los diagramas de simulación modelan dispositivos de campo físicos y señales de acoplamiento del controlador (como acoplamientos S7-PLCSIM o Virtual Controller):
- Señales de acoplamiento tipadas: Los datos intercambiados con el sistema de automatización se mapean como señales fuertemente tipadas (BOOL, BYTE, WORD, DWORD, REAL).
- Comportamiento por defecto de pines abiertos: Cuando se colocan componentes de conversión de la biblioteca básica de SIMIT (como Bit2Byte, Byte2Word o Byte2DWord) en un diagrama, cada pin de entrada abierto y no conectado asume automáticamente un valor predeterminado estático, típicamente FALSE para pines booleanos y 0 para pines numéricos.
- El riesgo de sobrescritura: Si un ingeniero conecta solo el bit 3 a un bloque Bit2Byte, los bits 0, 1, 2, 4, 5, 6 y 7 se evalúan como FALSE. Recombinar este byte en un DWORD sobrescribe todos los demás 31 bits de estado de proceso enviados al PLC.
Por qué los bloques de conversión directa sobrescriben los bits adyacentes
Las palabras de estado de equipos de proceso (como palabras de control de motores, palabras de estado de variadores de velocidad o registros de enclavamiento de válvulas) empaquetan con frecuencia múltiples estados operativos en un solo DWORD:
* Bit 0: Listo para arrancar
* Bit 1: Confirmación de marcha
* Bit 2: Disparo por fallo eléctrico
* Bit 3: Estado del interruptor de aislamiento local
Si un escenario de prueba requiere simular únicamente el disparo por fallo eléctrico (Bit 2), escribir directamente en un DWORD recién generado pone a cero los bits 0, 1 y 3. En el controlador simulado, el bloque del motor se dispara inmediatamente por falta de confirmación de marcha en lugar de responder al fallo simulado. Preservar la integridad de la señal requiere un bucle cerrado donde se lea el valor actual del DWORD, se modifique en la posición exacta del bit y se retransmita.
Método 1: División y recombinación de bits utilizando componentes estándar
El método visual basado en componentes en el editor de diagramas de SIMIT utiliza la biblioteca de conversión estándar:
Paso 1: Deconstruir el DWORD entrante
- Arrastre la variable de acoplamiento entrante (la señal DWORD actual de PLCSIM o del modelo) al diagrama de SIMIT.
- Desde el catálogo Components -> Basic -> Conversions, inserte:
- Un bloqueDWord2Byte.
- Cuatro bloquesByte2Bit(o un bloqueByte2Bitcorrespondiente al byte de destino). - Conecte el DWORD a la entrada de
DWord2Byte. - Conecte el byte de salida de destino (por ejemplo, Byte 0: bits 0–7) a la entrada de
Byte2Bit.
Paso 2: Modificar el bit de destino
- Localice el pin de salida de bit específico en
Byte2Bit(por ejemplo,Bit2). - Inserte un componente Multiplexor (
Mux) o Switch. - Conecte la señal original
Bit2a la Entrada 0 del switch, y conecte su señal de anulación de simulación (por ejemplo, pulsador o indicador de simulación de fallo) a la Entrada 1.
Paso 3: Reconstruir el DWORD modificado
- Inserte un componente
Bit2Byte. - Cablee todas las salidas de bits sin tocar (
Bit0,Bit1,Bit3hastaBit7) y la salida modificada del switch en los pines de entrada correspondientes deBit2Byte. - Inserte un componente
Byte2DWord. - Conecte el byte modificado y los tres bytes restantes sin tocar de
DWord2ByteaByte2DWord. - Conecte la salida de
Byte2DWorda la etiqueta de salida de acoplamiento del PLC de destino.
Método 2: Aplicación de lógica matemática a nivel de bits (enmascaramiento AND/OR)
Para ingenieros de simulación avanzados que utilizan el Editor de Tipos de Componentes (CTE) de SIMIT o componentes de lógica aritmética, el enmascaramiento de bits proporciona una solución matemática compacta:
Borrado de un bit (AND bit a bit con máscara inversa):
Para forzar el bit n a 0 sin alterar otros bits, realice una operación AND bit a bit con una máscara donde el bit n es 0 y todos los demás bits son 1:
$$\text{Output} = \text{Input} \ \& \ \sim(1 \ll n)$$
Establecer un bit (OR bit a bit con máscara positiva):
Para forzar el bit n a 1 sin alterar otros bits, realice una operación OR bit a bit con una máscara donde el bit n es 1 y todos los demás bits son 0:
$$\text{Output} = \text{Input} \ | \ (1 \ll n)$$
Conmutar / Sobrescribir un bit dinámico:
Para escribir un valor booleano arbitrario B (0 o 1) en el bit n:
1. Borrar el bit: $\text{Cleared} = \text{Input} \ \& \ \sim(1 \ll n)$
2. Desplazar el nuevo bit: $\text{MaskedBit} = (B \ \& \ 1) \ll n$
3. Combinar: $\text{Output} = \text{Cleared} \ | \ \text{MaskedBit}$
En SIMIT, esto se puede implementar en un solo bloque de script CTE personalizado o utilizando componentes de fórmulas aritméticas (bloque Formula).
Verificación
Para verificar que solo se modifique el bit de destino:
- Abra SIMIT en Simulation Online Mode.
- Agregue el DWORD de entrada y el DWORD de salida a la ventana Signal Monitor.
- Muestre los valores de las señales en formatos Hexadecimal y Binario.
- Conmute el bit simulado de 0 a 1: confirme que solo cambia el dígito binario específico (por ejemplo, 16#00000001 se convierte en 16#00000005 al configurar el Bit 2).
- Monitoree el diagrama CFC de PCS 7 conectado en línea: verifique que el bloque de destino registre el estado simulado mientras los indicadores de enclavamiento adyacentes permanecen estables.
Limitaciones y precauciones operativas
- Latencia de ejecución de ciclo: Al dividir y recombinar señales a través de múltiples componentes estándar en un solo diagrama de SIMIT, asegúrese de que todos los bloques residan en la misma división de cálculo (Slice 1) para evitar retrasos de canalización de 1 ciclo.
- Peligros de bucles de acoplamiento: No cree referencias circulares directas donde una señal de acoplamiento de salida se retroalimente a su propia entrada de acoplamiento sin un componente de memoria de estado o pestillo; los bucles algebraicos circulares causan errores en el motor de cálculo de SIMIT.
- Licenciamiento del Component Type Editor (CTE): Los scripts personalizados mediante CTE requieren una licencia de SIMIT Engineering que incluya la autorización para CTE.
Preguntas frecuentes del ingeniero
¿Puedo escribir directamente en un solo bit de un DWORD de acoplamiento de PLC en SIMIT?
Si la etiqueta de acoplamiento del PLC está configurada como un DWORD compuesto en la tabla de símbolos, SIMIT direcciona toda la variable de 32 bits. El direccionamiento de bits individuales solo se admite directamente si la señal está configurada como una matriz de booleanos o separada en bits de E/S discretos.
¿Qué biblioteca de SIMIT contiene los bloques DWord2Byte y Byte2Bit?
Estos componentes se encuentran en la Standard Library bajo la carpeta Basic -> Conversions en la tarjeta de tareas de componentes de SIMIT.
¿Soporta SIMIT constantes hexadecimales en los componentes de fórmulas?
Sí. Los valores hexadecimales se pueden introducir con notación estándar (por ejemplo, 16#0004 o 0x0004) dependiendo de la sintaxis de expresión configurada en el bloque de fórmulas.
¿Qué sucede si desconecto una entrada en un bloque Byte2DWord?
La entrada de byte desconectada toma automáticamente por defecto el valor 0x00, lo que resulta en ceros en toda esa sección de 8 bits del DWORD de salida.
Referencias técnicas
- Siemens Industry Online Support: SIMIT Simulation Platform Operating Manual (V11.x).
- Entrada SIOS 109742323: PCS 7 Compendium Part A - Simulation and Virtual Commissioning.
- Entrada SIOS 109809264: SIMATIC Process Control System PCS 7 Virtual Controller and SIMIT Coupling.
- Ejemplo de aplicación de Siemens: Virtual Commissioning of PCS 7 Projects with SIMIT.
Artículos relacionados
- How to Pack and Unpack Double Words (DWORD) in SIMATIC PCS 7 CFC
- How to Configure and Simulate AS-to-AS Communication in S7-PLCSIM
- How to Move and Copy Block Interconnections in the PCS 7 CFC Editor
Etiquetas relacionadas
- SIMIT
- Simulation
- DWORD
- Bit Manipulation
- PLCSIM
- Virtual Commissioning
- Industrial Automation