91美女视频-亚洲免费观看视频-欧美a∨-久热在线视频-日韩黄网站-成av人片在线观看www-久操综合-超碰av在线播放-性欧美欧美巨大69-婷婷二区-av男人的天堂网-中文字幕一区在线播放-玖草在线观看-国产网址在线观看-免费在线不卡av

luoyingdong
級別: 略有小成
精華主題: 0
發帖數量: 157 個
工控威望: 306 點
下載積分: 1203 分
在線時間: 103(小時)
注冊時間: 2011-06-27
最后登錄: 2025-05-07
查看luoyingdong的 主題 / 回貼
樓主  發表于: 2011-06-29 14:24
這個程序可以用Visual Studio或EVC(Win CE)編譯,實際在Wince系統RUN過OK,有問題的可以回覆告知。
下方范例程序可以直接讀取D0000的值。
我是這個論壇的新人,不知道如何將文件上傳,我可以將完整專案文件上傳給大家參考,包刮PLC端Ethernet設定方法。


       WSADATA            wsaData;
    SOCKET            udpcmdSock;
    SOCKADDR_IN        saRecv, saSend;
    int                iLen,err,nSize;
    unsigned char    szToUdpCommand[80],szUdpResponse[100];
    struct    timeval        tv;
    fd_set    ReadFds;        //資料可讀取
    fd_set    WriteFds;        //資料可寫入
    fd_set    Exceptfds;        //錯誤檢出
    int        iRetCode;
    CString str1,str2;

    if(WSAStartup(0x0202,&wsaData) == SOCKET_ERROR)
    {
         MessageBox(_T("Startup Failure;"),_T("AMI"),MB_ICONERROR|MB_OK);
         WSACleanup();
         return;
    }

    udpcmdSock = socket ( AF_INET, SOCK_DGRAM, 0 );
    if ( INVALID_SOCKET == udpcmdSock)
    {
        MessageBox(_T("socket error;"),_T("AMI"),MB_ICONERROR|MB_OK);
        WSACleanup();
        return;
    }
    // bind to a local socket and an interface.
    saRecv.sin_family = AF_INET;
    saRecv.sin_addr.s_addr = htonl ( INADDR_ANY );
    //saSend.sin_addr.s_addr = inet_addr("172.16.50.220");
    saRecv.sin_port = htons ( 3939 );
    err = bind ( udpcmdSock, (SOCKADDR *) &saRecv, sizeof (SOCKADDR_IN) );
    if ( err==SOCKET_ERROR  )
    {
        MessageBox(_T("bind error;"),_T("AMI"),MB_ICONERROR|MB_OK);
        closesocket( udpcmdSock );
        WSACleanup();
        return;;
    }

    saSend.sin_family = AF_INET;
    saSend.sin_addr.s_addr = inet_addr("172.16.50.222");   // htonl ( INADDR_BROADCAST );
    saSend.sin_port = htons ( 3941 );
    iLen=21;
    szToUdpCommand[0]=0x50;        //SubHeader.bL
    szToUdpCommand[1]=0x00;        //SubHeader.bH
    szToUdpCommand[2]=0x00;        //NetworkNo
    szToUdpCommand[3]=0xFF;        //PCNo
    szToUdpCommand[4]=0xFF;        //IONo.bL
    szToUdpCommand[5]=0x03;        //IONo.bH
    szToUdpCommand[6]=0x00;        //StationNo
    szToUdpCommand[7]=0x0C;        //Length.bL 12 byte
    szToUdpCommand[8]=0x00;        //Length.bH
    szToUdpCommand[9]=0x10;        //Timer.bL
    szToUdpCommand[10]=0x00;    //Timer.bH
    szToUdpCommand[11]=0x01;    //Command.bL
    szToUdpCommand[12]=0x04;    //Command.bH
    szToUdpCommand[13]=0x00;    //SubCommand.bL bit0=0 -> word unit
    szToUdpCommand[14]=0x00;    //SubCommand.bH
    szToUdpCommand[15]=0x00;    //AddressL
    szToUdpCommand[16]=0x00;    //AddressNULL
    szToUdpCommand[17]=0x00;    //AddressH
    szToUdpCommand[18]=0xA8;    //DeviceCode D
    szToUdpCommand[19]=0x01;    //Points.bL    1 points
    szToUdpCommand[20]=0x00;    //Points.bH

    str1.Format(_T("L=%d,SBuf="),iLen);
    for(int i=0;i<iLen;i++) str1.AppendFormat(_T("%02hX "),(BYTE)szToUdpCommand);
    GetDlgItem(IDC_STATIC1)->SetWindowTextW(str1);

    //--- send command to PLC ---
    err = sendto ( udpcmdSock,(char*)szToUdpCommand,iLen,0,
        (SOCKADDR *) &saSend,sizeof ( SOCKADDR_IN ));
    if (  err==SOCKET_ERROR  )
    {
        MessageBox(_T("sendto error"),_T(""),MB_ICONERROR|MB_OK);
        closesocket( udpcmdSock );
        WSACleanup();
        return;
    }

/*********** receive response from Mit PLC ***********/
    tv.tv_sec = 2;//sec.
    tv.tv_usec = 0; //u-sec
    // The fd sets should be zeroed out before using them to prevent errors.
    FD_ZERO(&ReadFds);
    FD_ZERO(&WriteFds);
    FD_ZERO(&Exceptfds);
    //FD_CLR(udpcmdSock, &ReadFds );
    FD_SET(udpcmdSock, &ReadFds );

    iRetCode = select(0,&ReadFds,NULL,NULL,&tv);
    if (iRetCode == SOCKET_ERROR) {
        MessageBox(_T("select error"),_T(""),MB_ICONERROR|MB_OK);
        closesocket( udpcmdSock );
        WSACleanup();
        return;
    }

    if (FD_ISSET(udpcmdSock, &ReadFds)==0)//OnReceive
    {
        MessageBox(_T("Time Out !"),_T(""),MB_ICONERROR|MB_OK);
        closesocket( udpcmdSock );
        WSACleanup();
        return;
    }//OnReceive
    
    nSize = sizeof ( SOCKADDR_IN );
    err = recvfrom ( udpcmdSock, (char*)szUdpResponse,100, 0,
        (SOCKADDR FAR *) &saRecv, &nSize );
    if (err  ==  SOCKET_ERROR)
    {
        MessageBox(_T("recvfrom error"),_T(""),MB_ICONERROR|MB_OK);              
        closesocket( udpcmdSock );
        WSACleanup();
        return;
    }
    MessageBox(_T("recvfrom OK"),_T(""),MB_OK);

    str2.Format(_T("L=%d,RBuf="),err);
    for(int i=0;i<err;i++)    str2.AppendFormat(_T("%02hX "),(BYTE)szUdpResponse);
    GetDlgItem(IDC_STATIC2)->SetWindowTextW(str2);

    if ( udpcmdSock!=INVALID_SOCKET ){
        closesocket(udpcmdSock);
    }
    WSACleanup();

Fred Lo
zbc58186
級別: 略有小成
精華主題: 0
發帖數量: 96 個
工控威望: 266 點
下載積分: 406 分
在線時間: 66(小時)
注冊時間: 2009-09-16
最后登錄: 2024-11-24
查看zbc58186的 主題 / 回貼
1樓  發表于: 2011-12-17 12:17
能否發一否到我郵箱:zhdlrdzyx.zy@163.com

主站蜘蛛池模板: 日韩在线中文 | 一区二区三区网站 | 老妇高潮潮喷到猛进猛出 | 91天天干 | 国产色视频一区二区三区qq号 | 国产在线观看免费网站 | 成人黄色在线播放 | 久久久久女人精品毛片九一 | 亚洲九九九 | 激情五月婷婷小说 | 视频一区欧美 | 狠狠做深爱婷婷综合一区 | 五月婷婷导航 | 最新日韩视频 | av操操操 | 在线成人欧美 | 欧美大胆a视频 | 日韩在线看片 | 青青操原 | 欧美精品四区 | 欧美日韩少妇 | 中国美女囗交视频 | 欧美视频综合 | 日韩欧美国产成人精品免费 | 久久国产亚洲 | 亚洲成人精品一区二区三区 | 亚洲一区二区视频在线观看 | 伊人自拍 | 青草伊人久久 | 日本h在线| 婷婷日 | 色久天堂 | 日韩av网页 | www日本高清视频 | 青草青视频 | 97超碰人人| 成人自拍网站 | 国产免费啪啪 | 久色精品| 亚洲电影中文字幕 | 成人乱人乱一区二区三区 | 欧美黑人性xxx猛交 伊人成长网 | 深夜成人在线 | 国产第一区第二区 | 亚洲最大中文字幕 | 在线播放国产精品 | 性猛交xxxx乱大交孕妇印度 | 国产精品一区二区三区四区五区 | 午夜时刻免费入口 | 色久在线| 别揉我奶头啊嗯一区二区 | 精品久久免费视频 | 亚洲一二三区在线 | av2018 | 日韩精品免费 | 欧美一区二区三区不卡视频 | 色乱码一区二区三在线看 | 伊人草| 久久久久久少妇 | 亚洲人成小说 | 毛片网站免费在线观看 | 精品日韩一区二区三区 | 国产欧美日韩一区 | 中文字幕日韩精品在线观看 | 久草视频国产 | 国产老熟女伦老熟妇露脸 | 亚洲同性gay激情无套 | 大奶子在线观看 | 毛片3| 久久国产精品-国产精品 | 黄色av网站免费在线观看 | 9i在线看片成人免费 | 九九热免费在线视频 | 最好看的中文字幕国语电影mv | 亚洲精品网站在线播放gif | 免费国产精品视频 | 操操操操网 | 麻豆出品| 老女人一区 | 操大爷影院 | 国产日韩视频在线观看 | 19韩国主播青草vip | 短裙公车被强好爽h吃奶视频 | 中文二区 | 好吊操免费视频 | a级一级片 | 欧美一区二区三区婷婷月色 | 欧美挤奶吃奶水xxxxx | 成人手机在线播放 | 免费黄视频在线观看 | 性色一区二区三区 | av一二三四区 | 色呦呦视频 | 午夜黄色av | 人人爽夜夜爽 | 日韩亚洲欧美综合 | 一本大道视频 | 一区二区在线免费观看 | 精品国产欧美一区二区三区成人 |