TwinCAT3 Modbus-TCP Client/Server使用

这篇具有很好参考价值的文章主要介绍了TwinCAT3 Modbus-TCP Client/Server使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、环境配置和准备

1、PLC中安装TF6250-Modbus-TCP库

2、勾选TF6250的license

3、PLC工程中添加Tc2_ModbusSrv库文件

4、分别创建测试ModbusTCP测试的Server和Client程序

二、PLC作为Client端

1、设置测试电脑IP地址

2、运行MobusTCP测试工具

3、PLC端程序编写

(1)读取离散量输入

(2)读取线圈

(3)单个线圈写操作

(4)多个线圈写操作

(5)读取输入寄存器值

(6)读取保持寄存器值

(7)单个保持寄存器写操作

(8)多个保持寄存器写操作

三、PLC作为Server端

1、PLC程序

(1)寄存器变量定义

2、Client客户端工具

3、通讯测试

(1)客户端写操作

四、PLC中使用服务端和客户端程序进行寄存器操作

1、PLC程序

(1)服务端程序

(2)客户端程序

2、通讯测试

(1)寄存器说明

(2)PLC的Client程序读操作

(3)PLC的Client程序写操作

五、测试工程下载


一、环境配置和准备

1、PLC中安装TF6250-Modbus-TCP库

PLC地址

twincat3 mb_client mb_server,tcp/ip,网络,服务器

安装库文件

twincat3 mb_client mb_server,tcp/ip,网络,服务器

PLC硬件环境设置、库文件安装、防火墙设置等,参见博客文章:TwinCAT3中ModbusTCP Server和C# Client连接-CSDN博客

2、勾选TF6250的license

twincat3 mb_client mb_server,tcp/ip,网络,服务器

3、PLC工程中添加Tc2_ModbusSrv库文件

twincat3 mb_client mb_server,tcp/ip,网络,服务器

4、分别创建测试ModbusTCP测试的Server和Client程序

将创建的程序添加到Task中。

twincat3 mb_client mb_server,tcp/ip,网络,服务器

二、PLC作为Client端

1、设置测试电脑IP地址

测试电脑IP地址和PLC的IP地址在一个网段内。

twincat3 mb_client mb_server,tcp/ip,网络,服务器

2、运行MobusTCP测试工具

使用测试工具ModSim32,创建ModbusTCP Server服务端。端口号默认502,测试软件默认IP地址是计算机本地地址。

twincat3 mb_client mb_server,tcp/ip,网络,服务器

twincat3 mb_client mb_server,tcp/ip,网络,服务器

3、PLC端程序编写

定义变量:ModbusTCP Server服务端ip地址

Server_IpAddress	:STRING:='192.168.1.33';        //ModbusTCP Server服务端ip地址

(1)读取离散量输入

定义变量

	02: Input Status 读取//
	fbReadInputs      : FB_MBReadInputs;						(*读取离散量输入功能块*)
	bReadInputs       : BOOL;									(*读取离散量输入执行条件*)
 	nQuantityinput    : WORD:=1 ;								(*读取离散量输入个数*)
 	nMBAddrinput      : WORD:=1 ;								(*读取离散量输入起始地址*)
 	arrDatainput      : BYTE;									(*存放离散量输入的值*)

程序

nUnitID:Modbus-Tcp从站号。如果实际中不知道从站号多少,默认写1就行。

twincat3 mb_client mb_server,tcp/ip,网络,服务器

fbReadInputs(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:=502, 							//Modbus-Tcp端口号
	nUnitID:=1 , 							//Modbus-Tcp从站号
	nQuantity:=nQuantityinput , 			//读取离散量输入个数
	nMBAddr:= nMBAddrinput, 				//读取离散量输入 Modbus起始地址
	cbLength:= SIZEOF(arrDatainput), 		//存放离散量输入变量的个数
	pDestAddr:=ADR(arrDatainput), 			//存放离散量输入变量指针起始地址
	bExecute:=bReadInputs , 				//读取离散量输入执行条件
	tTimeout:=T#1S ,    
	bBusy=> , 
	bError=> , 
	nErrId=> , 
	cbRead=> );

运行测试1,单个离散量读操作:

对10002写1

twincat3 mb_client mb_server,tcp/ip,网络,服务器

PLC读取

读取个数是1,nQuantityinput值为1

起始地址nMBAddrinput写1对应的寄存器是10002。离散变量实际地址=10001+nMBAddrinput

twincat3 mb_client mb_server,tcp/ip,网络,服务器

读取

twincat3 mb_client mb_server,tcp/ip,网络,服务器

运行测试2,多个离散量读操作:

对10002写1、10003写1、10004写1

twincat3 mb_client mb_server,tcp/ip,网络,服务器

PLC读取

设置读取个数是3。读取出来的值是7。(三个位都为1,就是7)

twincat3 mb_client mb_server,tcp/ip,网络,服务器

(2)读取线圈

定义变量

    fbReadCoils       			: FB_MBReadCoils;				(*读取线圈功能块*) 
 	bReadCoils        			: BOOL; 						(*读取线圈执行条件*)      
 	nQuantitycoils    			: WORD :=3;  					(*读取线圈个数*) 
 	nMBAddrcoils      			: WORD :=1;  					(*读取线圈起始地址*) 
 	arrDatacoils      			: BYTE;							(*存放线圈的值*)

PLC程序

fbReadCoils(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:=502 ,							//Modbus-Tcp端口号 
	nUnitID:=1 , 							//Modbus-Tcp从站号
	nQuantity:=nQuantitycoils , 			//读取线圈个数
	nMBAddr:=nMBAddrcoils , 				//读取线圈 Modbus起始地址
	cbLength:=SIZEOF(arrDatacoils) , 		//存放线圈变量的个数
	pDestAddr:=ADR(arrDatacoils) , 			//存放线圈变量指针起始地址
	bExecute:=bReadCoils , 					//读取线圈执行条件
	tTimeout:= T#1S, 
	bBusy=> , 
	bError=>, 
	nErrId=> , 
	cbRead=> );

运行测试,多个线圈读操作:

对线圈00005/00006/0007/0008/00009写1操作

twincat3 mb_client mb_server,tcp/ip,网络,服务器

PLC

nMBAddrcoils:读取线圈的地址

nQuantitycoils:读取的线圈个数

线圈的实际地址=00001+nMBAddrcoils。

00005对应的nMBAddrcoils地址设置就是4。

twincat3 mb_client mb_server,tcp/ip,网络,服务器

5个线圈的值都是ON,即31

twincat3 mb_client mb_server,tcp/ip,网络,服务器

PLC中数据显示,2进制、10进制、16进制显示设置

twincat3 mb_client mb_server,tcp/ip,网络,服务器

(3)单个线圈写操作

定义变量

    fbWriteSingleCoil       	: FB_MBWriteSingleCoil;			(*写入单个线圈功能块*)
 	bWriteSingleCoil            : BOOL;							(*写入单个线圈执行条件*)
 	nMBAddrWriteSingleCoil      : WORD := 3;					(*写入单个线圈Modbus 地址*)
 	nValueWriteSingleCoil       : WORD := 16#FF00;				(*16#FF00:True;16#0000:False*)

PLC程序

fbWriteSingleCoil(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:= 502, 						//Modbus-Tcp端口号
	nUnitID:= 1, 							//Modbus-Tcp从站号
	nMBAddr:=nMBAddrWriteSingleCoil , 		//写入单个线圈Modbus起始地址
	nValue:=nValueWriteSingleCoil , 		//写入单个线圈的值:16#FF00:True;16#0000:False
	bExecute:=bWriteSingleCoil , 			//写入单个线圈执行条件
	tTimeout:=T#1S , 
	bBusy=> , 
	bError=> , 
	nErrId=> );

运行测试,单个线圈写操作:

对线圈00004写操作

twincat3 mb_client mb_server,tcp/ip,网络,服务器

线圈地址nMBAddrWriteSingleCoil值设置:3。(线圈地址=00001+nMBAddrWriteSingleCoil)

nValueWriteSingleCoil值设置:

TRUE:16#FF00,即10进制65280。

FALSE:16#0000,即10进制0。

twincat3 mb_client mb_server,tcp/ip,网络,服务器

(4)多个线圈写操作

变量定义

  	fbWriteCoils       			: FB_MBWriteCoils;				(*写入线圈功能块*)
  	bWriteCoils      			: BOOL;							(*写入线圈执行条件*)
  	nQuantityWriteCoils 		: WORD := 10;					(*写入离散量输入个数*)
  	nMBAddrWriteCoils   		: WORD := 14;					(*写入离散量输入起始地址*)
  	arrDataWriteCoils   		: ARRAY[1..2] OF  BYTE  := [16#11, 16#33];(*写入离散量输入的值*)

PLC程序

fbWriteCoils(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:=502, 							//Modbus-Tcp端口号
	nUnitID:=1 , 							//Modbus-Tcp从站号
	nQuantity:= nQuantityWriteCoils , 		//写入线圈个数
	nMBAddr:=nMBAddrWriteCoils , 			//写入线圈Modbus起始地址
	cbLength:=SIZEOF(arrDataWriteCoils), 	//写入线圈的变量个数
	pSrcAddr:=ADR(arrDataWriteCoils), 		//写入线圈的变量指针起始地址
	bExecute:=bWriteCoils , 				//写入线圈的执行条件
	tTimeout:=T#1S , 
	bBusy=> , 
	bError=> , 
	nErrId=> );

运行测试,多个线圈写操作:

写16个线圈,线圈地址从00006开始。(00001+nMBAddrWriteCoils,nMBAddrWriteCoils设置值为5)。

1个BYTE是8位,8位都是1即BYTE值是255。

BYTE数组arrDataWriteCoils长度为2、即16位。最多可以写16个线圈操作。

注意:的线圈BYTE个数要和数组长度相同,16个线圈2个BYTE。对应否则会报错。)

twincat3 mb_client mb_server,tcp/ip,网络,服务器

twincat3 mb_client mb_server,tcp/ip,网络,服务器

(5)读取输入寄存器值

变量定义

    fbReadInputRegs    : FB_MBReadInputRegs;		(*读取输入寄存器功能块*)
 	bReadInputRegs     : BOOL;						(*读取输入寄存器执行条件*)
 	nQuantityInputRegs : WORD := 3;					(*读取输入寄存器个数*)
 	nMBAddrInputRegs   : WORD:= 2;					(*读取输入寄存器起始地址*)
 	arrDataInputRegs   : ARRAY [1..3] OF WORD;		(*存放输入寄存器的值*)

PLC程序

fbReadInputRegs(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:=502, 							//Modbus-Tcp端口号
	nUnitID:=1, 							//Modbus-Tcp从站号
	nQuantity:=nQuantityInputRegs, 			//读取输入寄存器个数
	nMBAddr:=nMBAddrInputRegs  , 			//读取输入寄存器Modbus起始地址
	cbLength:= SIZEOF(arrDataInputRegs),	//存放输入寄存器变量的个数和指针起始地址
	pDestAddr:=ADR(arrDataInputRegs), 		//存放输入寄存器变量指针起始地址
	bExecute:= bReadInputRegs  , 			//读取输入寄存器执行条件
	tTimeout:=T#1S , 
	bBusy=> , 
	bError=> , 
	nErrId=> , 
	cbRead=> );

运行测试,多个输入寄存器读操作:

给30003、30004、30005赋值

twincat3 mb_client mb_server,tcp/ip,网络,服务器

PLC读

寄存器地址30003=30001+nMBAddrInputRegs,nMBAddrInputRegs设置值2

多三个寄存器

注意:读的寄存器个数要和数组长度相同,否则会报错。)

twincat3 mb_client mb_server,tcp/ip,网络,服务器

(6)读取保持寄存器值

变量定义:

    fbReadRegs        			: FB_MBReadRegs;				(*读取保持寄存器功能块*)
 	bReadRegs         			: BOOL;     					(*读取保持寄存器执行条件*) 
 	nQuantityregs     			: WORD:=2;   					(*读取保持寄存器个数*)
 	nMBAddrregs       			: WORD:=24;   					(*读取保持寄存器起始地址*)
 	arrDataregs       			: ARRAY [1..2] OF WORD;			(*存放保持寄存器的值*)

PLC程序:

fbReadRegs(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:=502,							//Modbus-Tcp端口号
	nUnitID:= 1, 							//Modbus-Tcp从站号
	nQuantity:=nQuantityregs, 				//读取保持寄存器个数
	nMBAddr:=nMBAddrregs , 					//读取保持寄存器Modbus起始地址
	cbLength:=SIZEOF(arrDataregs) , 		//存放保持寄存器变量的个数
	pDestAddr:=ADR(arrDataregs) , 			//存放保持寄存器变量指针起始地址
	bExecute:=bReadRegs, 					//读取保持寄存器执行条件
	tTimeout:= T#1S , 
	bBusy=> , 
	bError=> , 
	nErrId=> , 
	cbRead=> );

运行测试,多个保持寄存器读操作:

读保持寄存器40005、40006

twincat3 mb_client mb_server,tcp/ip,网络,服务器

寄存器首地址40005=40001+nMBAddrregs,设置nMBAddrregs值为4。读两个寄存器。

注意:读的寄存器个数要和数组长度相同,否则会报错。)

twincat3 mb_client mb_server,tcp/ip,网络,服务器

(7)单个保持寄存器写操作

变量定义:

 	fbWriteSingleReg            : FB_MBWriteSingleReg;			(*写入单个寄存器功能块*)
 	bWriteSingleReg             : BOOL;							(*写入单个寄存器执行条件*)
 	nMBAddrSingleReg            : WORD := 4;					(*写入单个寄存器Modbus 地址*)
 	nValueSingleReg             : WORD := 16#1234;				(*写入单个寄存器数值*)

PLC程序:

fbWriteSingleReg(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:=502, 							//Modbus-Tcp端口号
	nUnitID:=1 , 							//Modbus-Tcp从站号
	nMBAddr:=nMBAddrSingleReg, 				//写入单个保持寄存器起始地址
	nValue:=nValueSingleReg, 				//写入单个寄存器数值
	bExecute:=bWriteSingleReg , 			//写入单个寄存器的执行条件
	tTimeout:=T#1S , 
	bBusy=> , 
	bError=> , 
	nErrId=> );	

运行测试,单个保持寄存器写操作:

写保持寄存器40005。40005=40001+nMBAddrSingleReg,设置nMBAddrSingleReg值为4

twincat3 mb_client mb_server,tcp/ip,网络,服务器

twincat3 mb_client mb_server,tcp/ip,网络,服务器

(8)多个保持寄存器写操作

变量定义:

  	fbWriteRegs         		: FB_MBWriteRegs;				(*写入保持寄存器功能块*)
  	bWriteRegs          		: BOOL;							(*写入保持寄存器个数*)
  	nQuantityWriteRegs  		: WORD := 4;					(*写入保持寄存器个数*)
  	nMBAddrWriteRegs    		: WORD := 4;					(*写入保持寄存器起始地址*)
  	arrDataWriteRegs			: ARRAY[1..4] OF WORD := [1122, 3344, 5566, 7788];(*写入保持寄存器的值*)

PLC程序:

fbWriteRegs(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:=502, 							//Modbus-Tcp端口号
	nUnitID:=1 ,							//Modbus-Tcp从站号
	nQuantity:=nQuantityWriteRegs , 		//写入保持寄存器个数
	nMBAddr:= nMBAddrWriteRegs , 			//写入保持寄存器起始地址
	cbLength:= SIZEOF(arrDataWriteRegs), 	//写入变量的个数和指针起始地址
	pSrcAddr:=ADR(arrDataWriteRegs) , 		//写入变量指针起始地址
	bExecute:= bWriteRegs , 				//写入保持寄存器的执行条件
	tTimeout:=T#1S  , 
	bBusy=> , 
	bError=> , 
	nErrId=> );

运行测试,多个保持寄存器写操作:

写保持寄存器40003、40004、40005,寄存器首地址40003=40001+nMBAddrWriteRegs,设置nMBAddrWriteRegs值2

注意:寄存器个数要和数组长度相同,否则会报错。)

twincat3 mb_client mb_server,tcp/ip,网络,服务器

twincat3 mb_client mb_server,tcp/ip,网络,服务器

三、PLC作为Server端

1、PLC程序

(1)寄存器变量定义

    arr1							AT%MB0			:ARRAY[1..5]		OF		WORD;		//起始地址是12289
	arr2							AT%MB10			:ARRAY[1..10]		OF		WORD;		//起始地址是12294

2、Client客户端工具

使用测试工具ModScan32模拟ModbusTCP Client客户端。

打开ModScan32

twincat3 mb_client mb_server,tcp/ip,网络,服务器

根据Server服务端PLC 中定义的寄存器,做如下设置

MB0对应的起始地址是12289。

寄存器说明:一个MW寄存器对应两个MB寄存器,比如MW0是MB0、MB1组成。一个12289对应一个MW0寄存器,即对应MB0、MB1。

twincat3 mb_client mb_server,tcp/ip,网络,服务器

3、通讯测试

(1)客户端写操作

客户端ModScan32对服务端PLC的寄存器写操作

twincat3 mb_client mb_server,tcp/ip,网络,服务器

PLC服务端接收的

twincat3 mb_client mb_server,tcp/ip,网络,服务器

(2)PLC服务端写操作

PLC寄存器写

twincat3 mb_client mb_server,tcp/ip,网络,服务器

客户端ModScan32接收的

twincat3 mb_client mb_server,tcp/ip,网络,服务器

四、PLC中使用服务端和客户端程序进行寄存器操作

1、PLC程序

(1)服务端程序

PLC服务端程序不变,就定义读写的寄存器变量

变量定义

    arr1							AT%MB0			:ARRAY[1..5]		OF		WORD;		//起始地址是12289
	arr2							AT%MB10			:ARRAY[1..10]		OF		WORD;		//起始地址是12294

(2)客户端程序

变量定义

Server_IpAddress	:STRING:='192.168.1.21';
	03: Holding Register 读取&写入
 	fbReadRegs        			: FB_MBReadRegs;				(*读取保持寄存器功能块*)
 	bReadRegs         			: BOOL;     					(*读取保持寄存器执行条件*) 
 	nQuantityregs     			: WORD:=5;   					(*读取保持寄存器个数*)
 	nMBAddrregs       			: WORD:=12288;   				(*读取保持寄存器起始地址*)			//	寄存器地址=40001+nMBAddrregs
 	arrDataregs       			: ARRAY [1..5] OF WORD;			(*存放保持寄存器的值*)
  
  	fbWriteRegs         		: FB_MBWriteRegs;				(*写入保持寄存器功能块*)
  	bWriteRegs          		: BOOL;							(*写入保持寄存器个数*)
  	nQuantityWriteRegs  		: WORD := 10;					(*写入保持寄存器个数*)
  	nMBAddrWriteRegs    		: WORD := 12294;				(*写入保持寄存器起始地址*)			//	寄存器地址=40001+nMBAddrWriteRegs
  	arrDataWriteRegs			: ARRAY[1..10] OF WORD := [11, 22, 33, 44,55,66,77,88,99,100];		(*写入保持寄存器的值*)
  
 	fbWriteSingleReg            : FB_MBWriteSingleReg;			(*写入单个寄存器功能块*)
 	bWriteSingleReg             : BOOL;							(*写入单个寄存器执行条件*)
 	nMBAddrSingleReg            : WORD := 4;					(*写入单个寄存器Modbus 地址*)
 	nValueSingleReg             : WORD := 16#1234;				(*写入单个寄存器数值*)
//

PLC程序

fbReadRegs(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:=502,							//Modbus-Tcp端口号
	nUnitID:= 1, 							//Modbus-Tcp从站号
	nQuantity:=nQuantityregs, 				//读取保持寄存器个数
	nMBAddr:=nMBAddrregs , 					//读取保持寄存器Modbus起始地址
	cbLength:=SIZEOF(arrDataregs) , 		//存放保持寄存器变量的个数
	pDestAddr:=ADR(arrDataregs) , 			//存放保持寄存器变量指针起始地址
	bExecute:=bReadRegs, 					//读取保持寄存器执行条件
	tTimeout:= T#1S , 
	bBusy=> , 
	bError=> , 
	nErrId=> , 
	cbRead=> );
	
fbWriteRegs(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:=502, 							//Modbus-Tcp端口号
	nUnitID:=1 ,							//Modbus-Tcp从站号
	nQuantity:=nQuantityWriteRegs , 		//写入保持寄存器个数
	nMBAddr:= nMBAddrWriteRegs , 			//写入保持寄存器起始地址
	cbLength:= SIZEOF(arrDataWriteRegs), 	//写入变量的个数和指针起始地址
	pSrcAddr:=ADR(arrDataWriteRegs) , 		//写入变量指针起始地址
	bExecute:= bWriteRegs , 				//写入保持寄存器的执行条件
	tTimeout:=T#1S  , 
	bBusy=> , 
	bError=> , 
	nErrId=> );
		
fbWriteSingleReg(
	//sIPAddr:='169.254.0.1' , 				//modsim32的IP地址
	sIPAddr:=Server_IpAddress , 				//modsim32的IP地址
	nTCPPort:=502, 							//Modbus-Tcp端口号
	nUnitID:=1 , 							//Modbus-Tcp从站号
	nMBAddr:=nMBAddrSingleReg, 				//写入单个保持寄存器起始地址
	nValue:=nValueSingleReg, 				//写入单个寄存器数值
	bExecute:=bWriteSingleReg , 			//写入单个寄存器的执行条件
	tTimeout:=T#1S , 
	bBusy=> , 
	bError=> , 
	nErrId=> );	

2、通讯测试

(1)寄存器说明

一个MW寄存器对应两个MB寄存器,比如MW0对应12289、12289对应MB0、MB1

PLC 客户端程序中变量

读寄存器地址=40001+nMBAddrregs        则MB0对应设置nMBAddrregs12288

写寄存器地址=40001+nMBAddrWriteRegs        

(2)PLC的Client程序读操作

先给服务端的寄存器赋值

twincat3 mb_client mb_server,tcp/ip,网络,服务器

PLCServer程序读

twincat3 mb_client mb_server,tcp/ip,网络,服务器

(3)PLC的Client程序写操作

PLC客户端写寄存器

twincat3 mb_client mb_server,tcp/ip,网络,服务器

PLC服务端接收到客户端写的寄存器

twincat3 mb_client mb_server,tcp/ip,网络,服务器

五、测试工程下载

https://download.csdn.net/download/panjinliang066333/88609166

工程包括:

twincat3 mb_client mb_server,tcp/ip,网络,服务器

(1)客户端、服务端PLC程序

(2)TF6250-Modbus-TCP库文件安装软件

(3)ModbusTCP测试工具

模拟客户端:modscan32

模拟服务端:modsim32

(4)倍福官方简单测试参考文章来源地址https://www.toymoban.com/news/detail-792973.html

到了这里,关于TwinCAT3 Modbus-TCP Client/Server使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MODBUS-TCP协议简介与编程流程图

      本文主要目的是为了写一个简单的MODBUS-TCP服务器-客户端程序而记录的知识点,里面包含了编程所需要的必要背景知识和协议解析流程图。   MODBUS有四种基本数据类型:    离散量输入 :客户端只能读取它,由服务器提供,占1个比特位,可以传输现实中的开关量输入

    2023年04月08日
    浏览(39)
  • Java与Modbus-TCP/IP网络通讯

    通过Java与Modbus-TCP/IP网络通讯实现举例5中的功能

    2024年02月10日
    浏览(45)
  • Python 解析HJ212-2017并输出Modbus-TCP

    功能:   利用python开启服务端口,接受来着环保数采仪上传的HJ212-2017报文数据,解析后并输出Modbus-TCP给上位机或PLC读取,可同时连10个主站。 应用场景: 污水厂进出水在线监测环保数采仪的数据协议转换成通用标准协议。 本次实验由于没有数采仪只能通过TCP客户端模拟报

    2024年02月02日
    浏览(47)
  • CCLINK转MODBUS-TCP网关cclink通讯接线图 终端电阻

    大家好,今天我们要聊的是生产管理系统中的CCLINK和MODBUS-TCP协议,它们的不同使得数据互通比较困难,但捷米JM-CCLK-TCP网关的出现改变了这一切。 1捷米JM-CCLK-TCP是一款自主研发的CCLINK从站功能的通讯网关,它的主要功能是将各种MODBUS-TCP设备接入到CCLINK总线中。网关连接到C

    2024年02月13日
    浏览(41)
  • 用Python采用Modbus-Tcp的方式读取485电子水尺数据

    使用Python开发服务器程序,实现以下功能: 采用问询的方式读取各类传感器数据 正确高速解析各类传感器的数据 存储解析后的各类传感器数据 存储程序运行过程中的log 管理log,超过一定量、一定时间自动删除log 打包发布 或者 在后台运行py服务器程序 该传感器支持485通信

    2024年02月16日
    浏览(55)
  • 用Python采用Modbus-Tcp的方式读取PLC模块数据

    使用计算器得到需要的寄存器地址 这里PLC地址是83,对应的程序16进制读取地址是53 实际上由于PLC地址从1开始,所以这里实际地址应该是52,因为计算机从0开始 使用网络调试助手生成报文 使用Python中的内置函数int()。以下是将人员卡号’b’3b44’\\\'转换为十进制的示例代码: 使

    2024年02月16日
    浏览(53)
  • MFC+Modbus-Tcp协议实现温湿度传感器采集 二、libmodbus驱动库

    本文简单介绍 MFC 使用 Modbus -Tcp通信实现 RS-WS-ETH-6 系列 MODBUSTCP 型温湿度传感器采集数据。  一文看懂Modbus协议:一文看懂Modbus协议  libmodbus驱动库的使用:Modbus驱动库—libmodbus驱动库的使用_whik1194的博客-CSDN博客_libmodbus  modbus 中文手册: libmodbus官方手册中文翻译_跃动的风

    2024年02月02日
    浏览(46)
  • ADS Return-Codes | 倍福TwinCAT3 Ads错误码列表

    Hex Dec Description 0x000 0 no error 0x001 1 Internal error 0x002 2 No Rtime 0x003 3 Allocation locked memory error 0x004 4 Insert mailbox error 0x005 5 Wrong receive HMSG 0x006 6 target port not found 0x007 7 target machine not found 0x008 8 Unknown command ID 0x009 9 Bad task ID 0x00A 10 No IO 0x00B 11 Unknown AMS command 0x00C 12 Win 32 error 0x00D 13 Por

    2024年02月10日
    浏览(35)
  • python tcp server client示例代码

    功能: 实现基本的tcp server端、client端,并引入threading, 保证两端任意链接、断链接,保证两端的稳定运行 IP说明: server不输入IP,默认为本机的IP,client需要输入要链接的server端的IP 端口说明:server, client端保持一致 ADB调试说明:在连接数据线的情况下,PC安装ADB调试工具,

    2024年02月09日
    浏览(71)
  • unreal engine c++ 创建tcp server, tcp client

    TCP客户端 TcpConnect.h TcpConnect.cpp tcp server cpp FTcpServerReceive h cpp 在 GameInstance 使用

    2024年02月14日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包