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

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侧也需要编程的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • qq_29366533 2020-01-17 11:46
    关注

    10061 —WSAECONNREFUSED
    连接被拒。由于被目标机器拒绝,连接无法建立。这通常是由于在远程机器上,没有任何应用程序可在那个地址之上,为连接提供服务

    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 怎么下载MySQL,怎么卸干净原来的MySQL
  • ¥15 网络打印机Ip地址自动获取出现问题
  • ¥15 求局部放电案例库,用于预测局部放电类型
  • ¥100 QT Open62541
  • ¥15 stata合并季度数据和日度数据
  • ¥15 谁能提供rabbitmq,erlang,socat压缩包,记住版本要对应
  • ¥15 Vue3 中使用 `vue-router` 只能跳转到主页面?
  • ¥15 用QT,进行QGIS二次开发,如何在添加栅格图层时,将黑白的矢量图渲染成彩色
  • ¥50 监控摄像头 乐橙和家亲版 保存sd卡的文件怎么打开?视频怎么播放?
  • ¥15 Python的Py-QT扩展库开发GUI