F385_Positioning_WriteData_Backup

Schreiben von Positionierparametern mit Sicherung

Dieser Befehl schreibt die folgenden Positionierparameter und Verfahrsatzdaten mit Anwenderprogrammen:

  • Allgemeine Informationen wie verwendete Kanäle/Achsen, Anzahl der Wiederholungen und Fehlercodes

  • Achseninformationen wie aktueller Ausführungsstatus und aktuelle Wiederholungszahl

  • Informationen zu den Achseneinstellungen wie Pulsausgabe-Steuercodes, Referenzpunktfahrt-Einstellungen und Geschwindigkeit, Beschleunigungs- und Abbremseinstellungen

  • Verfahrsatzdaten wie Steuercodes und Muster, Geschwindigkeit, Beschleunigungs- und Abbremseinstellungen

Dieser Befehl schreibt die Anzahl von Worten (n_Number) der im Speicherbereich mit der Anfangsadresse s2_Start gespeicherten Daten und speichert sie im Positionierspeicherbereich beginnend bei d_Offset. Um die geschriebenen Daten auch nach dem Ausschalten der Stromversorgung zu erhalten, können die Daten zusätzlich in einem persistenten Speicherbereich gesichert werden.

Parameter

Eingang

s1_Channel (WORD, INT, UINT)

Kanalnummer

Configurator PMX: SYS_PMX_CHANNEL_0SYS_PMX_CHANNEL_3

Configurator PM7: SYS_PM7_AXIS_1SYS_PM7_AXIS_8

s2_Start (WORD, INT, UINT)

Anfangsadresse der Arbeitsspeicherbereiche in der CPU, in denen die zu schreibenden Daten gespeichert werden (Quelladresse)

n_Number (WORD, INT, UINT)

Anzahl der zu schreibenden Wörter

s1_Area (WORD, INT, UINT)

Positionierspeicherbereich:

d_Offset (WORD, INT, UINT)

Adressenoffset des Positionierspeichers in der CPU für das Schreiben der Daten (Zieladresse)

s1_WriteToPersistentMemory (WORD, INT, UINT)
  • TRUE: Daten werden im Selbsthaltebereich gesichert

    Möglicher Schaden an FROM-Speicher

    Wenn 16#80 bis 16#83 (Speichern in FROM) für die höheren 8 Bits des Eingangsparameters s1_Channel angegeben wird (das höchstwertige Bit ist 1), werden die angegebenen Daten in den FROM-Speicher der CPU geschrieben. Es sind bis zu 10000 Schreibvorgänge in den FROM-Speicher möglich. Es wird empfohlen, eine steigende Flanke zu verwenden, um zu verhindern, dass das Schreiben in den FROM-Speicher kontinuierlich ausgeführt wird.

  • FALSE: Daten werden nicht gesichert

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn die in s1_Channel angegebene Kanalnummer ungültig ist

  • wenn der bei d_Offset angegebene Positionierungsspeicheroffset den Grenzwert des Positionierungsbereichs überschreitet

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn die in s1_Channel angegebene Kanalnummer ungültig ist

  • wenn der bei d_Offset angegebene Positionierungsspeicheroffset den Grenzwert des Positionierungsbereichs überschreitet

Beispiel

POE-Kopf

Im POE-Kopf werden alle Ein- und Ausgangsvariablen deklariert, die für die Programmierung dieser Funktion verwendet werden.Für alle Programmiersprachen wird der gleiche POE-Kopf verwendet.

	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

KOP-Rumpf

Wenn die Variable bWriteData von FALSE auf TRUE gesetzt wird, wird die Funktion ausgeführt.

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

ST-Rumpf

(*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;

Letzte Änderung: 2024-06-19Feedback zu dieser SeitePanasonic Hotline