FP_COM_PMSET

Kommunikationsparameter im SCU-Modul einstellen

Dieser FP-Befehl sendet Änderungen der Kommunikationsparameter an das Modul. Änderen werden durch s2_dutParameter für die Kommunikationsschnittstelle angegeben, die durch s1_Port angegeben ist.

Parameter

Eingang

s1_Port (WORD, INT, UINT)

Legt die Kommunikationsschnittstellen fest (je nach SPS-Typ):

  • COM-Schnittstelle z.B. SYS_COM0_PORT

  • Ethernet-Schnittstelle z.B. SYS_ETHERNET_USER_CONNECTION_1

  • MCU/SCU z.B. 16#xx01 (xx = Steckplatznummer) in COM01

s2_dutParameter (FP_COM_PARAMETER_DUT)

Einzustellende Parameter für die SCU-Schnittstelle

Ausgang

d_Result (WORD, INT, UINT)

Anfangsadresse des Speicherbereichs im Mastermodul, in dem das Verarbeitungsergebnis gespeichert wird (1 Wort)

Inhalt des Bearbeitungsergebnisses d_Result

  1.  (1) Höherwertiges Byte
  2.  (2) Ausführungsergebnis-Vergleichs-Merker

    FALSE: Normaler Abschluss

    TRUE: Abschluss mit Fehler

  3.  (3) Vergleichs-Merker Verfahren läuft

    FALSE: Verfahren ist abgeschlossen

    TRUE: Verfahren läuft

  4.  (4) Niederwertiges Byte
    • 0: Normaler Abschluss
    • 1: Die angegebene Schnittstelle ist ungültig
    • 2: Einstellungsfehler
    • 3: Modusänderungsfehler
    • 4: Die angegebene Kommunikationsschnittstelle ist belegt
    • 5: Inkonsistenz der zu ändernden Parameter (zu Beginn/Ende des Einstellvorgangs sind die von den Operanden angegebenen Parameter inkonsistent)

Anmerkungen

  • Bevor Sie den Befehl ausführen, vergewissern Sie sich, dass das Bit 15 (Vergleichs-Merker Verfahren läuft) des Bearbeitungsergebnisspeicherbereichs, der durch dResult angegeben ist, FALSE ist.

  • Wenn eine Parameteränderung für eine COM-Schnittstelle durchgeführt wird, an der gerade gesendet/empfangen wird, wird der Sende-/Empfangsvorgang abgebrochen und die Parameter geändert werden. Zu diesem Zeitpunkt gehen empfangene Daten verloren. Das Sendeverfahren wird unterbrochen.

  • Dieser Befehl kann nicht durch benutzerdefinierte Funktionen aufgerufen werden. Nur in Programmen und Funktionsblöcken verwenden.

  • Ändern Sie die Kommunikationsparameter für die COM-Schnittstelle des CPU-Moduls, indem Sie ein Anwenderprogramm verwenden.

  • Während die beauftragte Änderung verarbeitet wird, wird Bit 15 des Verarbeitungsergebnis-Speicherbereichs d_Result auf TRUE gesetzt. Wenn das Verfahren abgeschlossen ist, wird es auf FALSE gesetzt.

  • Das Verarbeitungsergebnis wird in dem durch d_Result angegebenen Bereich gespeichert. Wenn ein Fehler auftritt, wird der Ausführungsergebnis-Vergleichs-Merker (Bit 14) auf TRUE gesetzt Der Fehlercode wird in niedrigeren Bytes von d_Result gespeichert.

  • Durch das Lesen von Einstellparametern unter Verwendung des Befehls FP_COM_GET_PARAMETER und das Einstellen von zu ändernden Parametern unter Verwendung des Befehls FP_COM_PMSET können die Einstellungen vereinfacht werden.

Fehleralarmmerker

sys_bIsOperationErrorHold (wird auf TRUE gesetzt und bleibt TRUE)
  • wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich

sys_bIsOperationErrorNonHold (wird für einen Zyklus auf TRUE gesetzt)
  • wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich

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
		dutComParameter: FP_COM_PARAMETER_DUT;
		bChangeStationNumber: BOOL:=FALSE;
		wResult: WORD:=0;
		bIsChangeInProgress: BOOL:=FALSE;
		bIsChangeError: BOOL:=FALSE;
	END_VAR

KOP-Rumpf

BODY
    WORKSPACE
        NETWORK_LIST_TYPE := NWTYPELD ;
        ACTIVE_NETWORK := 0 ;
    END_WORKSPACE
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_CONTACT,,bChangeStationNumber,5,2,7,4,);
B(B_F,E_MOVE!,,21,1,27,5,,?DEN?D?AENO?C);
B(B_VARIN,,2,19,3,21,5,);
B(B_VAROUT,,dutComParameter.wStationNumber,27,3,29,5,);
L(1,3,5,3);
L(7,3,21,3);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 6 ;
        NETWORK_BODY
B(B_CONTACT,,bChangeStationNumber,5,1,7,3,R);
B(B_CONTACT,,bIsChangeInProgress,5,4,7,6,);
B(B_F,FP_COM_PMSET!,,21,0,31,5,,?DEN?Ds1_Port?Ds2_dutParameter?AENO?Cd_Result);
B(B_VARIN,,SYS_COM0_PORT,19,2,21,4,);
B(B_VARIN,,dutComParameter,19,3,21,5,);
B(B_VAROUT,,wResult,31,2,33,4,);
L(1,2,5,2);
L(1,5,5,5);
L(7,2,21,2);
L(7,5,11,5);
L(11,2,11,5);
L(1,0,1,6);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,FP_TEST_BIT!,,21,0,29,5,,?DEN?D@'s'?Dn_Pos?AENO?Cd);
B(B_VARIN,,wResult,19,2,21,4,);
B(B_VARIN,,15,19,3,21,5,);
B(B_COIL,,bIsChangeInProgress,35,2,37,4,);
L(1,2,21,2);
L(29,3,35,3);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
    NET_WORK
        NETWORK_TYPE := NWTYPELD ;
        NETWORK_LABEL :=  ;
        NETWORK_TITLE :=  ;
        NETWORK_HEIGHT := 5 ;
        NETWORK_BODY
B(B_F,FP_TEST_BIT!,,21,0,29,5,,?DEN?D@'s'?Dn_Pos?AENO?Cd);
B(B_VARIN,,wResult,19,2,21,4,);
B(B_VARIN,,14,19,3,21,5,);
B(B_COIL,,bIsChangeError,35,2,37,4,);
L(1,2,21,2);
L(29,3,35,3);
L(1,0,1,5);
        END_NETWORK_BODY
    END_NET_WORK
END_BODY

ST-Rumpf

IF (bChangeStationNumber) then
    dutComParameter.wStationNumber := 2;
END_IF;
IF DF(bChangeStationNumber) OR bIsChangeInProgress then
    FP_COM_PMSET(s1_Port := SYS_COM0_PORT,
                 s2_dutParameter := dutComParameter,
                 d_Result => wResult);
End_IF;
FP_TEST_BIT(s := wResult, n_Pos := 15, d => bIsChangeInProgress);
FP_TEST_BIT(s := wResult, n_Pos := 14, d => bIsChangeError);

Letzte Änderung: 2024-03-07Feedback zu dieser SeitePanasonic Hotline