资源简介

网上太多资料,可是很多都没有整理好!这个实例,我已经做成一个类,只需要实例化该类并调用相关函数,就可以了!很好用

资源截图

代码片段和文件信息

// linkPLC.cpp: implementation of the ClinkPLC class.
//
//////////////////////////////////////////////////////////////////////

#include “stdafx.h“
#include “linkPLC.h“

#pragma comment(lib“WS2_32.lib“)
#pragma comment(lib“WINMM.lib“)
 
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

ClinkPLC::ClinkPLC()
{
WORD wVersionRequested;
WSADATA wsaData;
    wVersionRequested=MAKEWORD(11);
::WSAStartup(wVersionRequested&wsaData);
hostent *p;
char sip[128];
char *p2;
gethostname(sip128);
p=gethostbyname(sip);
p2=inet_ntoa(*((in_addr*)p->h_addr));
    m_LocalIP=CString(p2);

}

ClinkPLC::~ClinkPLC()
{
::closesocket(m_linkSocket);
WSACleanup();

}

bool ClinkPLC::linkDevice()
{
int err;
if(INVALID_SOCKET==(m_linkSocket=socket(PF_INETSOCK_STREAM0)))
{   
err=::WSAGetLastError();
return false;
}

    SOCKADDR_IN sare;
    sa.sin_family=AF_INET;
sa.sin_addr.S_un.S_addr=INADDR_ANY;//inet_addr(“10.9.38.59“);
sa.sin_port=htons(0);//must use port 0
//sa.sin_port=htons(9600);//not be use 9600 port
if(SOCKET_ERROR==::bind(m_linkSocket(sockaddr*)&sasizeof(sa)))
{   
err=::WSAGetLastError();
 
  return false;
}

    char Fins_tcp[1320];
    re.sin_family=AF_INET; 
re.sin_addr.S_un.S_addr=inet_addr(m_PlcIP);
re.sin_port=htons(9600);
    if(SOCKET_ERROR==::connect(m_linkSocket(sockaddr*)&resizeof(re)))
{
err=::WSAGetLastError();
 
  return false;
    }
//**************************************************************************
//------------------发送 握手协议------------------------------
Fins_tcp[0]=‘F‘;    Fins_tcp[1]=‘I‘; Fins_tcp[2]=‘N‘;Fins_tcp[3]=‘S‘;
Fins_tcp[4]=0x00;//长度
    Fins_tcp[5]=0x00; Fins_tcp[6]=0x00; Fins_tcp[7]=0x0C;
Fins_tcp[8]=0x00;//命令
    Fins_tcp[9]=0x00; Fins_tcp[10]=0x00; Fins_tcp[11]=0x00;
Fins_tcp[12]=0x00;//故障码
Fins_tcp[13]=0x00; Fins_tcp[14]=0x00; Fins_tcp[15]=0x00;
Fins_tcp[16]=0x00;//客户端地址
Fins_tcp[17]=0x00; Fins_tcp[18]=0x00; Fins_tcp[19]=m_LocalEndIP;




int sendlengthrecvlength;
    sendlength=::send(m_linkSocketFins_tcp200);
//------------------显示发送的 握手协议------------------------------
char FinsText[]=““;

//------------------接收PLC返回值 ------------------------------
CString m_Command;
char CNodeSNode;
recvlength=::recv(m_linkSocketFins_tcp240);
m_Command=m_Command+“Reci:“;
for(int i=0;i
int temp=0;
temp=Fins_tcp[i] & 0xff;  
_itoa(tempFinsText16);
if(strlen(FinsText)==1)
{
strcat(FinsText“0“);
strrev(FinsText);
}
if(( i % 4) == 0)
{m_Command=m_Command+“\r\n“;}
m_Command=m_Command+FinsText;
}
if(Fins_tcp[12]|Fins_tcp[13]|Fins_tcp[14]|Fins_tcp[15]==0)
return true;
else
return false;
return true;

}

bool ClinkPLC::ReadDM(long DMArealong & Value)
{
//------------------读取DM区 DM9000--

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       6454  2017-04-28 14:49  欧姆龙TCPIP通讯读写\linkPLC.cpp

     文件        613  2017-04-28 14:45  欧姆龙TCPIP通讯读写\linkPLC.h

     文件       3543  2017-04-28 11:38  欧姆龙TCPIP通讯读写\ReadMe.txt

     文件        774  2017-04-28 13:41  欧姆龙TCPIP通讯读写\resource.h

     文件        206  2017-04-28 11:38  欧姆龙TCPIP通讯读写\StdAfx.cpp

     文件       1054  2017-04-28 11:38  欧姆龙TCPIP通讯读写\StdAfx.h

     文件      35520  2017-04-28 13:41  欧姆龙TCPIP通讯读写\test.aps

     文件       1175  2017-04-28 14:49  欧姆龙TCPIP通讯读写\test.clw

     文件       2035  2017-04-28 11:38  欧姆龙TCPIP通讯读写\test.cpp

     文件       4274  2017-04-28 14:44  欧姆龙TCPIP通讯读写\test.dsp

     文件        514  2017-04-28 11:38  欧姆龙TCPIP通讯读写\test.dsw

     文件       1302  2017-04-28 11:38  欧姆龙TCPIP通讯读写\test.h

     文件      58368  2017-04-28 14:49  欧姆龙TCPIP通讯读写\test.ncb

     文件      50688  2017-04-28 14:49  欧姆龙TCPIP通讯读写\test.opt

     文件       2220  2017-04-28 14:49  欧姆龙TCPIP通讯读写\test.plg

     文件       5387  2017-04-28 13:41  欧姆龙TCPIP通讯读写\test.rc

     文件       5048  2017-04-28 14:49  欧姆龙TCPIP通讯读写\testDlg.cpp

     文件       1462  2017-04-28 14:26  欧姆龙TCPIP通讯读写\testDlg.h

     文件      19627  2017-04-28 14:49  欧姆龙TCPIP通讯读写\Debug\linkPLC.obj

     文件     105396  2017-04-28 11:39  欧姆龙TCPIP通讯读写\Debug\StdAfx.obj

     文件     110636  2017-04-28 14:49  欧姆龙TCPIP通讯读写\Debug\test.exe

     文件     240164  2017-04-28 14:49  欧姆龙TCPIP通讯读写\Debug\test.ilk

     文件      13709  2017-04-28 14:46  欧姆龙TCPIP通讯读写\Debug\test.obj

     文件    5503668  2017-04-28 11:39  欧姆龙TCPIP通讯读写\Debug\test.pch

     文件     402432  2017-04-28 14:49  欧姆龙TCPIP通讯读写\Debug\test.pdb

     文件       2628  2017-04-28 13:41  欧姆龙TCPIP通讯读写\Debug\test.res

     文件      28404  2017-04-28 14:49  欧姆龙TCPIP通讯读写\Debug\testDlg.obj

     文件     222208  2017-04-28 14:49  欧姆龙TCPIP通讯读写\Debug\vc60.idb

     文件     364544  2017-04-28 14:49  欧姆龙TCPIP通讯读写\Debug\vc60.pdb

     文件       1078  2017-04-28 11:38  欧姆龙TCPIP通讯读写\res\test.ico

............此处省略7个文件信息

评论

共有 条评论