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

代码片段和文件信息
// 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破解版
相关资源
- 欧姆龙CP1系列单轴定位PLC程序.cxp
- 用Beckhoff(倍福)PLC读写巴鲁夫RFID
- 恒压力供水(DBW-DQ-1.s7p)
- 松下FP-XH手册位置功能篇
- 松下plc FP-XH的驱动
- DELPHI与西门子200PLC的串口通信实例
- VC 获得文件属性 获取文件的创建时
- PLC上位机编程软件
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- PLC简易程序大合集
- 欧姆龙控制2个伺服
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- vc 6.0开发的流程图编辑器
- VC 天空盒(skyBox)实现(附源代码)
- c MFC 画多边形
- Siemens PLC编程精品例程11.机械手GRAPH
- VC 围棋源代码
- 用VC 编写的基于SNMP的路由器拓扑程序
- 清华大学郑莉C 语言程序设计课件
- ping 程序 C语言
- 张力控制变频收卷程序
- 操作系统实验综合设计【附代码】
- VC 编程实现活动主机扫描源代码
- vc 编写的基于TCP协议的客户/服务器
- 树状导航菜单的制作
- codesys编程手册中文版
- VC工程转Qt工程文件的工具
- 基于三菱PLC-松下A6伺服485通讯-读编码
评论
共有 条评论