El programa step7 ha sido descifrado, ¡muchas gracias!
L #DB_ADR //cargar dirección base de dirección
SLD 8 //desplazarse a la izquierda en 8 bits, ¿por qué se fue porque la dirección del módulo de simulación es la predeterminada? de 256 salidas.
LAR1 //Carga la primera dirección del módulo analógico en el registro de direcciones
L #AI_COUNT //Carga el contador
lp1: T #anzahl_loop / /El contador se utiliza como variable de bucle
L DBW [AR1,P#2.0] Desplazamiento de 2 en 2, es decir, 256 esta vez, 258 la próxima vez, 260 la próxima vez.258, 260
T #zs_pew
Aún no deberías haber publicado la instrucción LOOP.
La razón para mover 3 bits cada vez es para formar un puntero de dirección de 32 bits. En STL, el puntero de dirección se divide en 16 bits y 32 bits, de los cuales 16 bits se utilizan para direccionar contadores. Temporizadores y bloques de datos. Número, etc., se utiliza un puntero de 32 bits para direccionar una dirección específica.
Por ejemplo, en el caso de DBWMD0, los datos en MD0 deben desplazarse 3 bits hacia la izquierda para formar un puntero de 32 bits para el direccionamiento.
Y su programa DBW [AR1,P#2.0], porque usa el registro de direcciones, y el registro de direcciones está lleno de punteros. Esta oración es equivalente a DBWAR1=AR1+2.0