Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cómo utiliza el s7200smart el direccionamiento indirecto para acceder a un solo bit?

¿Cómo utiliza el s7200smart el direccionamiento indirecto para acceder a un solo bit?

En el PLC inteligente Siemens S7-200, implementar una función similar al direccionamiento indirecto en el PLC de la serie FX de Mitsubishi para acceder a un solo bit generalmente implica el uso de punteros y métodos de direccionamiento indirecto. Sin embargo, cabe señalar que el método de direccionamiento del S7-200 Smart es diferente al de la serie Mitsubishi FX, especialmente el direccionamiento indirecto que maneja directamente un solo bit. Sin embargo, podemos utilizar operaciones lógicas y de datos similares para lograr nuestros objetivos.

En el S7-200 Smart, no existe una instrucción directa de "indexación de bits", pero se puede acceder y operar bits en la memoria a través de algunos métodos indirectos. La siguiente es una posible implementación:

1. Utilice un bloque de datos (DB) o variables temporales (VW, VD, etc.)

Supongamos que desea leer de un determinado registro ( como D0 en El equivalente en Mitsubishi, que en S7-200 Smart podría ser una palabra en VW, VD o DB) lee un offset y accede y opera un bit basándose en este offset.

2. Calcule el desplazamiento

Supongamos que el valor de D0 (en S7-200 Smart, puede ser VW100) representa comenzar desde la posición inicial de un determinado bloque de datos (como como DB1) El desplazamiento (en bytes) de . Dado que el S7-200 Smart normalmente funciona en base a bytes, si necesitamos acceder a un bit específico, también debemos determinar la posición de este bit en el byte.

3. Leer y configurar bits

Leer bits: utilice las instrucciones S_BIT (establecer bit) y R_BIT (leer bit) del S7-200 Smart, pero estas dos instrucciones son direccionamiento indirecto. no apoyado directamente. Primero debe calcular la dirección completa del bit (es decir, en el formato DBx.y, donde x es el número del bloque de datos e y es el desplazamiento del bit. Tenga en cuenta que y debe ser un número entero entre 0 y 7, porque cada byte tiene 8 dígitos de unidades).

Direccionamiento indirecto: En S7-200 Smart, esto es posible almacenando el offset (en bytes) en algún registro y luego combinándolo con el número del bloque de datos, usando la instrucción MOV u otra lógica para "simular "direccionamiento indirecto. Sin embargo, dado que las operaciones de bits requieren bytes y números de bits específicos, es posible que necesite escribir alguna lógica adicional para convertir los desplazamientos de bytes en bytes y números de bits específicos.

4. Lógica de ejemplo

Supongamos que VW100 contiene el desplazamiento de bytes a partir de DB1 y desea acceder al bit M del byte N en DB1 (M es 0 -7):

Obtén el offset de VW100 y guárdalo en una variable intermedia.

Divida este desplazamiento por 8 (ya que cada byte tiene 8 bits) para obtener el desplazamiento del byte.

Realice una operación de módulo 8 en el desplazamiento de bytes (aunque este paso puede no ser necesario cuando se obtienen los bits directamente, puede ayudarle a comprender cómo localizar un byte específico).

Utilice la instrucción MOV o L (carga) en combinación con el desplazamiento de bytes calculado y el número de bloque de datos para acceder a bytes específicos.

Utilice operaciones de bits (como AND, OR, etc.) combinadas con un número de bit específico (M) para leer o configurar el bit.

Nota

Dado que el conjunto de instrucciones y el modo de direccionamiento del S7-200 Smart son diferentes de los de la serie Mitsubishi FX, el método anterior puede requerir cierta lógica creativa para implementar. En una aplicación real, es posible que necesite ajustar estos pasos según sus requisitos específicos de hardware y programa. Además, el uso de bloques de datos (DB) es una forma común de manejar grandes cantidades de datos de bits porque le permiten organizar y acceder a estos datos de manera eficiente en la memoria.