资源简介
网上太多资料,可是很多都没有整理好!这个实例,我已经做成一个类,只需要实例化该类并调用相关函数,就可以了!很好用
代码片段和文件信息
// 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通讯读写\li
文件 613 2017-04-28 14:45 欧姆龙TCPIP通讯读写\li
文件 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\li
文件 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个文件信息
- 上一篇:layui ztree 下拉树代码
- 下一篇:TransMAC破解版
相关资源
- 三菱PLC编程
- Eplan制作的设备电气原理图 里面包括
- PLC通讯与接口.pdf
- 三菱FX系列PLC的三层电梯自动控制
-
ob
jectARX自定义实体简单 - 西门子s7-200PID手册
- 可编程序控制器PLC原理及应用
- PC与三菱PLC串口通信的C++程序
- 西门子S7-PLCSIM Advanced V1.0 SP1使用手册
- PLC模块手册接线图全
- Studio 5000 29 30授权文件
- FXPLC_NET-Install.rar
- 西门子1200PLC CAD图纸
- 通过网口远程监控S7-200SMART PLC方案
- 一种APP和微信远程监控西门子S7-1200
- 由三点三维坐标计算圆半径和圆心位
- PLC基础及应用第2版廖常初主编+参考答
- 三菱编程软件--fxgp-win-C(中文)
- www.qupan.com_136351_ABPLC编程软件Rslogix5
- s7400CAD图
- 工业控制网络技术网络
- 抄板的欧姆龙光电开关
- PLC控制步进电机控制程序
- S7-200PLCCAD--.zip
- PLC课程设计(五层电梯).pdf
- FX3U-USB-BD驱动.rar
- PLCopen part1&part2;
- PLC-ANALYZER pro5简单教程
- SerialPortConnection
- 基于PLC的四层电梯控制系统毕业论文
评论
共有 条评论