博文

台达DVP15MC与AS228T进行Socket通信测试程序

约 1 分钟

DVP15MC部分

通过LAN2端口与AS228T进行Socket通信

变量声明

范围名称地址数据类型
VARSocket_ManageETH_Socket_Manage
VARSocket_ConfigETH_Socket_Config
VARSocket_OpenETH_Socket_Open
VARSocket_SendETH_Socket_Send
VARSocket_ReceiveETH_Socket_Receive
VARSocket_CloseETH_Socket_Close
VARSocket_StatusETH_Socket_Status
VARUsiSocketSendBufferData%MB12000USINT
VARUsiSocketReceiveBufferData%MB12200USINT
VARbSocketSendExecuteBOOL
VARbSocketSendAbortBOOL
VARbSocketReceiveExecuteBOOL
VARbSocketReceiveAbortBOOL
VARbSocketManageEnableBOOL
VARbInitBOOL
VARArSocketSFData%MB12000ARRAY[1..200] OF USINT
VARArSocketRFData%MB12200ARRAY[1..200] OF USINT

程序编写

//初始化 将MODBUS TCP数据初始化写入发送缓冲区
IF EDGEPOS(bInit) THEN
	ArSocketSFData[1]  := 16#00 ;
	ArSocketSFData[2]  := 16#00 ;
	ArSocketSFData[3]  := 16#00 ;
	ArSocketSFData[4]  := 16#00 ;
	ArSocketSFData[5]  := 16#00 ;
	ArSocketSFData[6]  := 16#0b ;
	ArSocketSFData[7]  := 16#00 ;
	ArSocketSFData[8]  := 16#10 ;
	ArSocketSFData[9]  := 16#10 ;
	ArSocketSFData[10] := 16#00 ;
	ArSocketSFData[11] := 16#00 ;
	ArSocketSFData[12] := 16#02 ;
	ArSocketSFData[13] := 16#04 ;
	ArSocketSFData[14] := 16#aa ;
	ArSocketSFData[15] := 16#bb ;
	ArSocketSFData[16] := 16#cc ;
	ArSocketSFData[17] := 16#dd ;
	bInit              := FALSE ;
END_IF;

//管理
Socket_Manage(Enable:= TRUE,EnableSocket:= bSocketManageEnable);
//配置
Socket_Config(Execute:= Socket_Manage.SocketReady,
	SocketNum:= 1,
	Protocol_Type:= 0, //0:Socket UDP ;1:Socket TCP
	RemoteIP_segment1:= 192,
	RemoteIP_segment2:= 168,
	RemoteIP_segment3:= 5,
	RemoteIP_segment4:= 10,
	Remote_port:= 502,
	Local_port:= 502,
	LinkKeeptime:= 30,
	//Done=> ,
	//Busy=> ,
	//Error=> ,
	//ErrorID=>
	);
//打开
Socket_Open(Execute:= Socket_Config.Done,
	SocketNum:= 1,
	OpenMode:= TRUE, //TRUE:客户端模式; FALSE:服务器模式
	//Done=> ,
	//Busy=> ,
	//Error=> ,
	//ErrorID=>
	);
//发送
Socket_Send(Execute:= bSocketSendExecute,
	Abort:= bSocketSendAbort,
	SocketNum:= 1,
	CyclicRun:= FALSE,//TRUE:周期发送数据;FALSE:仅发送一笔数据
	CycleTime:= 100,
	Send_Buffer_Address:= UsiSocketSendBufferData,
	Send_Length:= 200,
	//Done=> ,
	//Sent=> ,
	//Sending=> ,
	//Busy=> ,
	//Active=> ,
	//Aborted=> ,
	//Error=> ,
	//ErrorID=>
	);
//接收
Socket_Receive(Execute:= bSocketReceiveExecute,
	Abort:= bSocketReceiveAbort,
	SocketNum:= 1,
	ReceiveMode:= 1,//0:持续接收数据;1:只接受一笔数据
	DataSaveMode:= 1,//0:拼接模式;1:覆盖模式
	Receive_Buffer_Address:= UsiSocketReceiveBufferData,
	Receive_Length:= 200,
	//Done=> ,
	//Received=> ,
	//Receiving=> ,
	//Received_Length=> ,
	//Busy=> ,
	//Active=> ,
	//Aborted=> ,
	//Error=> ,
	//ErrorID=>
	);
//关闭
Socket_Close(Execute:= Socket_Receive.Done,
	SocketNum:= 1,
	//Done=> ,
	//Busy=> ,
	//Error=> ,
	//ErrorID=>
	);
//状态
Socket_Status(Enable:= TRUE,
	SocketNum:= 1,
	//Valid=> ,
	//Conected=> ,
	//Received=> ,
	//Closed=> ,
	//Send=> ,
	//Opening=> ,
	//Receiving=> ,
	//Closing=> ,
	//Sending=> ,
	//Error=> ,
	//ErrorID=>
	);

Log: 2019-12-10 发布本文

相关阅读

← 返回博文列表