1回答

0收藏

TCP/IP SERVER ,SP17, WRONG_CONFIGURATION

CODESYS 总线技术 CODESYS 总线技术 252 人阅读 | 1 人回复 | 2022-08-23

请问各位大神,

SP17, TCP/IP SERVER,

官网案例:
https://faq.codesys.com/display/ ... r+Server+and+Client

TCPServer.  
如下文,缺少 fbTcpServer的init.  
"
IF fbTcpRead.xReady THEN
    IF (fbTcpRead.udiCount = (gvlSetting.gc_wMaxTelegram + 1)) THEN
        IF ((abyRx[0] = 87) AND  (abyRx[1] = 68) AND (abyRx[2] = 58) AND (abyRx[3] = 32)) THEN // 'WD: ' = Watchdog-Telegram
            FOR iIndex := 0 TO c_wMaxTelegram DO
                abyTx[iIndex] := 0;
            END_FOR
            // 'ACK: ' = Acknowledge-Telegram
            abyTx[0] := 65;
            abyTx[1] := 67;
            abyTx[2] := 75;
            abyTx[3] := 58;
            abyTx[4] := 32;
            // Receive-Counter
            abyTx[5] := abyRx[4];
            abyTx[6] := abyRx[5];
            abyTx[7] := abyRx[6];
            abyTx[8] := abyRx[7];
            xWrite := TRUE;
        END_IF
        xWrite := TRUE;
    END_IF
ELSIF fbTcpRead.xError THEN
    xRead := FALSE;
END_IF


fbTcpWrite(xExecute := xWrite AND NOT xBlockAck, itfConnection := fbTcpConnection, udiSize := SIZEOF(abyTx), pData := ADR(abyTx),  udiTimeOut := 0);
IF fbTcpWrite.xDone OR fbTcpWrite.xError THEN
    xWrite := FALSE;
END_IF

"

我代码如下:

VAR CONSTANT

        gc_wMaxTelegram : INT := 15;
    gc_uiPort       : UINT := 50001;
        gc_stIpAddr     : STRING(15) := '192.168.6.6';
       
END_VAR


VAR
         ipAddress       : NBS.IPv4Address;
    fbTcpConnection : NBS.TCP_Connection;
    fbTcpServer     : NBS.TCP_Server;
    fbTcpRead       : NBS.TCP_Read;
    fbTcpWrite      : NBS.TCP_Write;


    abyRx           : ARRAY [0..gc_wMaxTelegram] OF BYTE;
    abyTx           : ARRAY [0..gc_wMaxTelegram] OF BYTE;

    iIndex          : INT;
    xRead           : BOOL := TRUE;
    xWrite          : BOOL := TRUE;
    xAckTelegram    : BOOL;
    xBlockAck       : BOOL;
    udiRead         : DINT;
END_VAR



ipAddress.SetInitialValue(ipAddress := gc_stIpAddr);
fbTcpServer(xEnable := TRUE, itfIPAddress := ipAddress, uiPort := gc_uiPort);



然后 运行codesys ,提示 WRONG_CONFIGURATION 。Server建立不起来。

是IP地址 不对吗?

PLC的本身IP,是192.168.6.6 。

请问该如何做?




分享到:
回复

使用道具 举报

回答|共 1 个

chuanjun_li

发表于 2022-9-19 11:07:00 | 显示全部楼层

应该是没有使用NBS.TCP_Connection打开端口给NBS.TCP_Server连接吧。
而NBS.TCP_Server里面的IP与端口号是用来限制客户端连接的,一般默认不填,允许所有客户端连接。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

330 积分
1 主题