大神来看看为什么程序不运行

已锁定

herpiny

  • 帖子

    62
  • 精华

    0
  • 被关注

    19

论坛等级:游侠

注册时间:2014-08-20

普通 普通 如何晋级?

大神来看看为什么程序不运行

784

3

2015-03-15 16:24:24

使用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

点击此处查看附件
大神来看看为什么程序不运行 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMOTION

共有2228条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。