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

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条)

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵