F385_Positioning_WriteData_Backup

Escribir parámetros de posicionamiento con copia de seguridad

Esta instrucción se utiliza para escribir los siguientes parámetros de posicionamiento y datos de la tabla de posicionamiento con programas de usuario:

  • Información general como canales/ejes utilizados, números de repetición y códigos de error

  • Información del eje, como el estado de ejecución y el número de repetición actuales

  • Información de ajuste del eje, como los códigos de control de la salida de pulsos, los ajustes de retorno al origen y los ajustes de velocidad, aceleración y deceleración

  • Datos de la tabla de posicionamiento, como códigos y patrones de control, ajustes de velocidad, aceleración y deceleración

Esta instrucción escribe el número de palabras (n_Number) de los datos guardados en el área que empieza por s2_Start, y lo guarda en el área de memoria de posicionamiento que empieza por d_Offset. Para mantener los datos escritos incluso después de desconectar la alimentación, los datos pueden ser copiados adicionalmente en una zona de memoria permanente.

Parámetros

Entrada

s1_Channel (WORD, INT, UINT)

Número de canal

Configurator PMX: SYS_PMX_CHANNEL_0SYS_PMX_CHANNEL_3

Configurator PM7: SYS_PM7_AXIS_1SYS_PM7_AXIS_8

s2_Start (WORD, INT, UINT)

Dirección de inicio de las áreas de la memoria de operación de la CPU en las que se almacenan los datos que se van a escribir (dirección origen)

n_Number (WORD, INT, UINT)

Número de palabras a escribir

s1_Area (WORD, INT, UINT)

Área de memoria de posicionamiento:

d_Offset (WORD, INT, UINT)

Desplazamiento de la dirección de inicio de la memoria de posicionamiento de la CPU para guardar los datos escritos (dirección destino)

s1_WriteToPersistentMemory (WORD, INT, UINT)
  • TRUE: Los datos se guardan automáticamente en el área de retención

    Posibles daños en la flash ROM

    Cuando se especifica 16#80 a 16#83 (Guardar en la flash ROM) para los 8 bits más altos del parámetro de entrada s1_Channel (el bit más significativo es 1), los datos especificados se escriben en la flash ROM de la CPU. La escritura en la flash ROM puede realizarse hasta 10000 veces. Se recomienda utilizar un flanco ascendente para evitar que la escritura en la flash ROM se ejecute de forma continua.

  • FALSE: Los datos no han sido copiados

  • Banderas de error

    sys_bIsOperationErrorHold (pasa a TRUE y permanece TRUE)
    • si el número de canal especificado en s1_Channel no es válido

    • Si el offset de la memoria de posicionamiento especificado en d_Offset excede el límite del área de posicionamiento

    sys_bIsOperationErrorNonHold (pasa a TRUE para un ciclo de scan)
    • si el número de canal especificado en s1_Channel no es válido

    • Si el offset de la memoria de posicionamiento especificado en d_Offset excede el límite del área de posicionamiento

    Temas relacionados

    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.

    	VAR
    		bWriteData: BOOL:=FALSE;
    		awData: ARRAY [0..9] OF WORD:=[10(0)];
    	END_VAR
    	VAR CONSTANT
    		bBACKUP_DATA: BOOL:=TRUE;
    	END_VAR
    	VAR
    	END_VAR

    Cuerpo LD

    Cuando la variable bWriteData pasa de FALSE a TRUE, se ejecuta la función.

    BODY
        WORKSPACE
            NETWORK_LIST_TYPE := NWTYPELD ;
        END_WORKSPACE
        NET_WORK
            NETWORK_TYPE := NWTYPELD ;
            NETWORK_LABEL :=  ;
            NETWORK_TITLE :=  ;
            NETWORK_HEIGHT := 7 ;
            NETWORK_BODY
    B(B_COMMENT,,ø^Settings for s1_Channel:ø^	PMX-Configurator:  SYS_PMX_CHANNEL_0 ... SYS_PMX_CHANNEL_3ø^	PM7-Configurator: 	SYS_PM7_AXIS_1 ... SYS_PM7_AXIS_8ø^,2,1,49,6,);
    L(1,0,1,7);
            END_NETWORK_BODY
        END_NET_WORK
        NET_WORK
            NETWORK_TYPE := NWTYPELD ;
            NETWORK_LABEL :=  ;
            NETWORK_TITLE :=  ;
            NETWORK_HEIGHT := 9 ;
            NETWORK_BODY
    B(B_CONTACT,,bWriteData,9,1,11,3,R);
    B(B_F,F385_Positioning_WriteData_Backup!,,20,0,37,9,,?DEN?Ds1_Channel?Ds2_Start?Dn_Number?Ds1_Area?Dd_Offset?Ds1_WriteToPersistentMemory?AENO);
    B(B_VARIN,,SYS_PMX_CHANNEL_0,18,2,20,4,);
    B(B_VARIN,,awData,11,3,13,5,);
    B(B_F,Adr_Of_Var_I!,,13,3,20,5,,?D?C);
    B(B_F,Size_Of_Var!,,13,4,20,6,,?D?C);
    B(B_VARIN,,SYS_POSITIONING_AREA_AXIS_SETTING,18,5,20,7,);
    B(B_VARIN,,155,18,6,20,8,);
    B(B_VARIN,,bBACKUP_DATA,18,7,20,9,);
    L(1,0,1,9);
    L(1,2,9,2);
    L(11,2,20,2);
    L(13,4,13,5);
            END_NETWORK_BODY
        END_NET_WORK
    END_BODY

    Cuerpo en ST

    (*Settings for s1_Channel:
    	PMX-Configurator:  SYS_PMX_CHANNEL_0 ... SYS_PMX_CHANNEL_3
    	PM7-Configurator: 	SYS_PM7_AXIS_1 ... SYS_PM7_AXIS_8*)
    if DF(bWriteData) then
        F385_Positioning_WriteData_Backup(s1_Channel := SYS_PMX_CHANNEL_0,
                                          s2_Start := Adr_Of_Var(awData),
                                          n_Number := Size_Of_Var(awData),
                                          s1_Area := SYS_POSITIONING_AREA_AXIS_SETTING, 
                                          d_Offset := 155,
                                          s1_WriteToPersistentMemory := bBACKUP_DATA);
    end_if;

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