F152_RMRD

Leer datos desde la estación esclava

Esta instrucción lee datos de la unidad inteligente especificada de la estación esclava MEWNET-F.

Parámetros

Entrada

s1_Control (DWORD)

Almacena los datos de control de la configuración Maestro/Esclavo

s2_Start (WORD, INT, UINT)

Dirección de inicio del área de memoria a leer

n_Number (INT)

Nùmero de palabras a leer (máx. 32 palabras)

d_Start (WORD, INT, UINT)

Área 16 bits para almacenar las palabras leídas, (consultar F153)

Las variables s2_Start y d_Start tienen que ser del mismo tipo de datos.

Observaciones

  • No es posible ejecutar varias instrucciones F152_RMRD e instrucciones F153_RMWT al mismo tiempo. El programa se debe crear de forma que estas instrucciones se ejecuten cuando la bandera de ejecución habilitada sys_bIsMewnetFNotActive de F152_RMRD/F153_RMWT esté a TRUE.

    sys_bIsMewnetFNotActive

    0: Ejecución inhabilitada. (se está ejecutando la instrucción F152_RMRD/F153_RMWT.)

    1: Ejecución habilitada

  • La instrucción F152_RMRD solo habilita un petición. El proceso real se lleva a cabo al final del ciclo de scan. La bandera de ejecución completa (R9036) de la instrucción F152_RMRD/F153_RMWT se puede utilizar para confirmar si la instrucción se ha ejecutado o no.

    sys_bIsMewnetFError

    0: Finalización normal

    1: Ejecución completa con errores (el código de error se almacena en sys_wMewnetFErrorCode)

    sys_wMewnetFErrorCode

    Si la transmisión ha finalizado con un error (sys_bIsMewnetFError (pasa a TRUE y permanece TRUE) ), se almacena el código de error .

    Código de error (HEX)

    Descripción

    16#5B

    Error de tiempo de espera (no se ha encontrado ningún módulo inteligente en la posición especificada)

    16#68

    Error de memoria (no existe memoria en la dirección especificada)

    16#71

    Error de tiempo de espera para envío de respuesta

    16#72

    Error de tiempo de espera del buffer de envío

    16#73

    Error de tiempo de espera de respuesta

  • Si el código de error es 16#71–16#73, se ha producido un error de tiempo de espera (timeout) en la comunicación El tiempo de espera se puede modificar dentro del rango de 10,0 mseg a 81,9 seg. (en unidades de 10 mseg), utilizando la configuración del registro del sistema 32. El valor por defecto es de 2 segundos.

  • s1 almacena los datos de control de la configuración de los módulos Maestro y Esclavo en la red. Se leen n palabras comenzando en la dirección de la memoria compartida del módulo inteligente, especificada en s2_Start. El resultado se almacena en d.

    Especificación de s1_Control:

    1.  (1) s1 palabra alta
    2.  (2) Bit
    3.  (3) s1 palabra alta
    4.  (4) Nº de banco de memoria (16#0016#FF si hay un banco de memoria que especificar, en caso contrario 16#00)
    5.  (5) Nº de slot (16#0016#1F, FP3: 16#0016#17)
    6.  (6) s1 palabra baja
    7.  (7) s1 palabra baja
    8.  (8) Nº de estación maestra (16#0116#04)
    9.  (9) Nº de estación esclava (16#0116#20)
Consejo

Unidad inteligente con banco de memoria: Memoria de expansión del FP3

Referencia: AFP32091 AFP32092

Banderas de error

sys_bIsOperationErrorHold
  • si el dato de control s1_Control excede el límite del rango especificado

  • si no se ha encontrado el módulo maestro MEWNET-F

  • si los datos leídos superan el área s2_Start

sys_bIsOperationErrorNonHold (pasa a TRUE para un ciclo de scan)
  • si el dato de control s1_Control excede el límite del rango especificado

  • si no se ha encontrado el módulo maestro MEWNET-F

  • si los datos leídos superan el área s2_Start

Ejemplo

Cabecera de la POU

Todas las variables de entrada y de salida utilizadas para la programación de esta función han sido declaradas en la Cabecera de la POU. Se utiliza la misma cabecera de la POU para todos los lenguajes de programación.

  1.  (1) Estación maestra 1
  2.  (2) Datos de control = 16#A0105
  3.  (3) Módulo inteligente (memoria compartida)
	VAR
		Start: BOOL:=FALSE;
		ControlData: DWORD:=16#000A0105;
			(*No bank, 
slot no. 10, 
Master station 1, 
Slave station 5*)
		StartingAddress: WORD:=0;
		NoWordsWrite: INT:=5;
		WordsWritten: ARRAY [0..4] OF WORD:=[5(0)];
	END_VAR

Cuerpo LD

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 8 ;
        NETWORK_BODY
B(B_F,F152_RMRD,,11,1,20,8,,?DEN?D@'s1'?Ds2?Dn?Dd?AENO);
B(B_CONTACT,,Start,5,1,7,3,);
B(B_VARIN,,ControlData,9,3,11,5,);
B(B_VARIN,,StartingAddSlave,9,4,11,6,);
B(B_VARIN,,NumberWordsRead,9,5,11,7,);
B(B_VARIN,,WordsRead[0],9,6,11,8,);
L(1,0,1,8);
L(1,2,5,2);
L(7,2,11,2);
L(11,2,11,3);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

Cuerpo en ST

If (Start) Then
    F152_RMRD(s1_Control := ControlData,
              s2_Start := StartingAddress,
              n_Number := NoWordsWrite,
              d_Start := WordsRead[0]);
End_if;

Modificado el: 2024-03-07Comentarios sobre esta páginaLínea directa de Panasonic