greenapl1985 2020-01-17 10:33 采纳率: 50%
浏览 493
已采纳

PLC TCP通信报错10061

电脑通过网口连接三菱PLC,可以ping的通,但用以下代码就一直报10061的错误:

int main()
{

    // initialize winsock
    WORD wVer = MAKEWORD(1, 1);   // version NO:1.1, #include <WINSOCK.H>
    WSADATA wData;
    int err = WSAStartup(wVer, &wData);

    if (err)
    {
        printf("cannot initialize WinSock\n");

        return 1;
    }

    // 建立SOCKET通信
    SOCKET s = 0;
    s = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);

    struct sockaddr_in server;
    server.sin_family = AF_INET;
    server.sin_port = htons(1); // ASA standard port
    server.sin_addr.s_addr = inet_addr("192.168.3.250");

    // 建立CONNECT连接
    int i = connect(s, (sockaddr *)&server, sizeof(sockaddr_in));
    if (i < 0) // #define SOCKET_ERROR            (-1)   
    {
        printf("connect - error %d\n", WSAGetLastError());
        closesocket(s);
        WSACleanup();

        return 1;
    }

    return 0;
}

运行到connect指令就会返回10061的错误码,在cmd里ping 192.168.3.250是没问题的,但是htons( )里的端口号我不能确定,也不知道三菱PLC有没有默认的端口号,试了很多,除了给0会报10049的错误外,其它都是报10061。
麻烦那位大神帮忙看一下,头大,试了一天了

  • 写回答

2条回答 默认 最新

  • ysuwood 2020-01-17 17:37
    关注

    1、建议你下载一个网络调试助手,在PC端运行;
    2、规划好PLC和PC, 谁做Server谁做Client;
    3、先把PLC侧程序做好;PC侧用网络调试助手;
    4、然后开发PC侧程序。
    即PLC侧也需要编程的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码