使用D435,D445 的X130连接网线后进行TCP通信
ST程序,st_start 放入到 StartupTask 里了,St_snd 放到 task 1 里
但是监控不到程序运行,这是什么原因 ?
程序可在附件看
UNIT st_snd;
INTERFACE
VAR_GLOBAL CONSTANT
TelSend : INT := 500;
END_VAR
VAR_GLOBAL
vPort : UINT;
vIPArray : ARRAY[0..3] OF USINT;
vDataArrayMax : ARRAY[1..4095] OF BYTE;
vDataLen : UDINT;
vZielPort : UINT;
vErrorReturnSnd : DINT := 0;
vErrorOpenClient : BOOL := FALSE;
nReturn : DINT;
vReturnStructOpn : StructRetTcpOpenClient;
vReturnStructSnd : DINT;
zlrDSnd : DINT := -1;
z : INT := 0;
bstart : BOOL := FALSE;
END_VAR
PROGRAM st_snd;
PROGRAM st_start;
END_INTERFACE
IMPLEMENTATION
PROGRAM st_snd
VAR
i : INT;
j : BYTE;
END_VAR
zlrDSnd := -1;
REPEAT
IF (bstart = TRUE) THEN
IF (zlrDSnd = -1) THEN
//Testdaten zum Versenden an den Empf鋘ger zusammenstellen
j := 1;
FOR i := 1 TO 4095 BY 1 DO
vDataArrayMax[i] := j;
j := j + 1;
END_FOR;
END_IF;
// wird nur einmal durchlaufen
IF (zlrDSnd = -1) THEN
// Sende/Empfangs-Portnummer + IP-Adresse des Empf鋘gers festlegen
vPort := 4000;
vIPArray[0] := 192;
vIPArray[1] := 168;
vIPArray[2] := 2;
vIPArray[3] := 1;
vZielPort := 9000;
// Verbindung zum Empf鋘ger aufbauen
vReturnStructOpn := _tcpOpenClient (vPort, vIPArray, vZielPort, WHEN_COMMAND_DONE);
zlrDSnd := 0;
END_IF;
// Anzahl Daten im Telegramm
vDataLen := INT_TO_UDINT (TelSend);
// Wenn Verbindungsaufbau zum Empf鋘ger erfolgreich
IF (vReturnStructOpn.functionResult = 0) THEN
// Telegramm senden
vReturnStructSnd := _tcpSend (vReturnStructOpn.connectionId,WHEN_COMMAND_DONE, vDataLen, vDataArrayMax);
//vReturnStructSnd := _tcpSend (vReturnStructOpn.connectionId,IMMEDIATELY, vDataLen, vDataArrayMax);
IF (vReturnStructSnd = 16#0) THEN
// zu Testzwecken: Anzahl gesendeter Daten
zlrDSnd := zlrDSnd + TelSend;
ELSE
// Fehler beim Senden
vErrorReturnSnd := vErrorReturnSnd + 1;
// Fehlerbehandlung: Alarm ausgeben ...
END_IF;
ELSE
vErrorOpenClient := TRUE;
// Fehlerbehandlung: Alarm ausgeben ...
END_IF;
// kurz warten ...
//nReturn := _waitTime (timeValue:=T#0d_0h_0m_0s_010ms);
END_IF;
UNTIL 1 = 0 // wird endlos durchlaufen
END_REPEAT;
END_PROGRAM
PROGRAM st_start
VAR
l : INT;
END_VAR
// Dummyvariable
l := 0;
END_PROGRAM
END_IMPLEMENTATION
点击此处查看附件