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.
Eingang
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
Einzustellende Parameter für die SCU-Schnittstelle
Ausgang
Anfangsadresse des Speicherbereichs im Mastermodul, in dem das Verarbeitungsergebnis gespeichert wird (1 Wort)
Inhalt des Bearbeitungsergebnisses d_Result
FALSE: Normaler Abschluss
TRUE: Abschluss mit Fehler
FALSE: Verfahren ist abgeschlossen
TRUE: Verfahren läuft
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.
wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich
wenn der mit dem Index-Modifizierer definierte Bereich größer ist als der zulässige Bereich
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
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
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);