施耐德PLC通过TcpUdpCommunication传输数据

需求:PC需要将几万个点传递到PLC上。测试过传递文件发到PLC的FLASH中,然后解析文件内容。在进行行数据的类型转换时,出现PLC内存不足的情况。于是采用TCP通信方式。步骤1:添加TCPUDPC步骤2:定义变量创建GVL{attribute 'qualified_only'}VAR_GLOBAL Path :ARRAY [0..c_uiNumOfPoints] OF DUT_PT; //存访路径点的数组END_VARVAR_GLOBAL CONSTANT c_uiNumOf
摘要由CSDN通过智能技术生成

需求:
PC需要将几万个点传递到PLC上。测试过传递文件发到PLC的FLASH中,然后解析文件内容。在进行行数据的类型转换时,出现PLC内存不足的情况。于是采用TCP通信方式。

步骤1:添加TCPUDPC

步骤2:定义变量

创建GVL

{
   attribute 'qualified_only'}
VAR_GLOBAL
   Path :ARRAY [0..c_uiNumOfPoints] OF DUT_PT;   //存访路径点的数组
END_VAR
VAR_GLOBAL CONSTANT
	c_uiNumOfPoints :UDINT:= 100000;   //点的个数
END_VAR

定义结构体

TYPE DUT_PT :
STRUCT
	IDX:UINT; //点的编号
	X:UINT;   //点的X坐标
	Y:UINT;   //点的Y坐标
	Z:UINT;   //点的Z坐标
	A:UINT;   //点的A坐标
	B:UINT;  //点的B坐标
	C:UINT; //点的C坐标
END_STRUCT
END_TYPE

步骤3: 定时任务程序

创建一个程序单元(POU)

PROGRAM POU_TCP_SERVER
VAR
    fbTcpServer : TCPUDP.FB_TCPServer2;     //定义TCP服务器对象
	sServerIp: STRING(15) := '0.0.0.0';     //服务器IP
	uiServerPort : UINT := 12345;				 //服务器端口
	xOpen: BOOL;  						//打开TCP连接成功标志
	 
	xClose: BOOL;   						//是否要关闭(TRUE-关闭)
	etServerResult: TCPUDP.ET_Result;				//执行行结果
	etCurrentConnetionState: TCPUDP.ET_State;		//连接状态
 
    dwCurrentClientIP:DWORD;
	sCurrentClientIP : STRING(15) ;  				//客户端IP
	uiCurrentClientPort:UINT;					//客户端端口
	
	pbyReceiveBuffer: ARRAY[1..10] OF DUT_PT;  			//接收缓存区
	udiReceiveFillLevel: UDINT;				// 接收缓存区偏移
	udiReceiveBufferSize: UDINT;    //接收缓存区字节
	
	currentPoint : DUT_PT;
	uiCurrentNumberOfConnectedClients:UINT;   // 连接数
	uiMaxClientNumber:UINT:=1;       	//最多连接数
	 pbySendBuffer: DUT_PT;  // 发送缓存区
	 udiSendFillLevel: UDINT;				// 接收缓存区偏移
	 xAccepted:bool;
	udiSend:UDINT;     //发送的字节
	uiState:UINT;    
	uiReceivedByteSize:UDINT;   //收到的字节
	 uiReceived:ULINT;
	indexPoint: UINT;
	astConnectedClients	:ARRAY [1..TCPUDP.GPL
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值