MB3480学习心得.docx

上传人:b****3 文档编号:6053753 上传时间:2023-05-09 格式:DOCX 页数:14 大小:104.60KB
下载 相关 举报
MB3480学习心得.docx_第1页
第1页 / 共14页
MB3480学习心得.docx_第2页
第2页 / 共14页
MB3480学习心得.docx_第3页
第3页 / 共14页
MB3480学习心得.docx_第4页
第4页 / 共14页
MB3480学习心得.docx_第5页
第5页 / 共14页
MB3480学习心得.docx_第6页
第6页 / 共14页
MB3480学习心得.docx_第7页
第7页 / 共14页
MB3480学习心得.docx_第8页
第8页 / 共14页
MB3480学习心得.docx_第9页
第9页 / 共14页
MB3480学习心得.docx_第10页
第10页 / 共14页
MB3480学习心得.docx_第11页
第11页 / 共14页
MB3480学习心得.docx_第12页
第12页 / 共14页
MB3480学习心得.docx_第13页
第13页 / 共14页
MB3480学习心得.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

MB3480学习心得.docx

《MB3480学习心得.docx》由会员分享,可在线阅读,更多相关《MB3480学习心得.docx(14页珍藏版)》请在冰点文库上搜索。

MB3480学习心得.docx

MB3480学习心得

MB3480学习心得

D

自注:

这里的客户端、服务器端是指TCP的Client、Server端。

二、MGate说明:

1、通信模式

1)MGate配置文件中:

 

Modbus采用主从结构,只有两种模式:

Master和Slave

RTU/ASCIISlave:

PC作为Master主,装置作为Slave从;

RTU/ASCIIMaster:

PC作为Slave从,装置作为Master主;

RTU与ASCII的区别:

a)校验:

RTU:

CRC(循环冗长校验);

ASCII:

LRC(纵向冗长校验);

校验码用于检查信息的完整性;

b)消息格式不同:

RTU:

消息中每个字节(8Bit)包含2个4Bit的十六进制字符,优点:

同样波特率下,比ASCII传送更多的数据;

ASCII:

消息中每个字节(8Bit)都作为一个ASCII码(2个十六进制字符)发生,优点:

字符发送的时间间隔可达到1秒而不产生错误;

2)说明手册中:

两种通信模式:

A)以太网Master串口Slave:

ModbusTCP可支持同时16个连接,串口支持RS-232和RS-422/485,其中RS-232和RS-422仅能连一个设备,RS-485可连接31个设备;

 

B)串口Master以太网Slave:

可支持32个ModbusTCPslave设备;

 

三、实测:

1、结构:

笔记本电脑网口→MB3480→笔记本+UPort1150;

2、UPort1150设置:

默认为RS-232方式,注意设置为RS-485(也可为RS-232),方法:

“控制面板”→“设备管理器”→

 

3、MB3480的设置:

1)主从模式的设定:

以PC端作为Master、装置作为Slave为例;

 

2)设置串口状态:

 

3)ID映射:

 

说明:

a)ModbusTCP通信标准端口号为502,所有的端口号都是502,串口通过ID好识别;

b)ID表中设置情况:

1~5:

Port1;

6~10:

Port2;

c)从站偏移量:

可不设,以下为例子,假定偏移量为3;

 

4、使用的软件:

前提说明:

两套软件:

软件一:

自己在网上找的ModbusPoll和ModbusSlave,注意:

ModbusPoll:

只作为Master(主端)(TCPMaster和RTUMaster都用它);

ModbusSlave:

只作为Slave(从端)(TCPSlave和RTUSlave都用它);

软件二:

刘丹提供的ModScan32和ModSim32,注意:

ModScan32:

只作为Master(主端)(TCPMaster和RTUMaster都用它);

ModSim32:

只作为Slave(从端)(TCPSlave和RTUSlave都用它);

软件一:

ModbusPoll(用于TCPMaster)

ModbusSlave(用于串口的Slave)

1)打开ModbusSlave:

 

选择“Connectiong”

 

注意:

UPort1150映射为主机的COM2口,使用这里选择Port2;

 

ID号:

1;功能码:

3;

2)打开ModbusPoll:

 

选择“Connection”,端口号为502;

 

ID号:

1;功能码:

3;

3)注意事项:

a)ModbusPoll和ModbusSlave设置的ID号、功能码必须一致;

b)通信成功的判断:

可从ModbusPoll软件本身、MGateManager的“监控”来观察;

注意:

MdobusSlave软件无法判断连接是否成功;

通信成功的界面:

ModbusPoll:

Tx值不断增加,Err值为0(Err指响应的返回值);

 

MGateManager→“监控”:

 

通信不成功的界面:

比如:

将ModbusSlave的连接断开,则ModbusPoll会报错:

 

正确的连接,则Err=0;

MGateManager→“监控”:

 

图中:

TCPReq、RTUReq(通过MB3480转发到RTU串口的),没有Resp。

 

c)其他功能键的使用:

ModbusPoll:

 

Read/WriteDefinition:

可设置ID号、功能码、地址;

ResetCounters:

充值计数器;

其中:

地址可自定义,但是ModbusPoll和ModbusSlave的地址设置都要一致;

ModbusSlave:

 

SlaveDefinition:

可设置ID号、功能码、地址;

 

软件二:

ModScan32:

用于TCPMaster;

ModSim32:

用于RTUSlave;

1)打开ModSim32软件:

直接打开目录,点击“ModSim32.exe”即可;

 

点击“OK”;

 

等几秒钟,“OK”由灰色变为黑色即可点击;

 

等几秒钟,“OK”由灰色变为黑色即可点击;

“File”→“New”:

 

“Connection”→“Port2”---UPort1150在笔记本上映射的端口号为COM;

2)打开ModScan32软件:

直接打开目录,点击“ModScan32.exe”即可;

 

“Connection”→“RemoteTCP/IPServer”:

 

3)注意事项:

a)ModScan32和ModSim32的Address(地址)、DeviceId(ID号)、MODBUSPointType(功能码,为3)设置必须一致,其中:

ID号:

Port1为1~5;

功能码:

为3;

Address:

可自己设定,只要ModScan32和ModSim32的一致就可以了;

b)连接不成功的界面:

比如:

将Address一个设置为“0001”,另一个设置为“0100”,则会连接不成功,如下界面:

 

而ModSim32则不会有报错信息;

错误一:

出现“**MODBUSMessageTIME-OUT**”,如果正确的连接,则没有这行报错;

错误二:

NumberofPolls的值一直在增加,而ValidSlaveResponses的值不变,这说明TCPMaster一直发送请求,却一直没有得到回应;

当正确连接后,点击“ResetCtrs”后,这个计数值就会清零,重新累计,出现的数据应该是NumberofPolls与ValidSlaveResponses一致;

c)当修改设置后,参数会自动执行,不要重启软件或按键;

d)如果所有设置都正确,但是连接却还是报错,这种情况下,只要将ModScan32和ModSim32软件重新开启就可以了,因为这个软件是没有经过注册的;

5、监控和数据报文:

1)一个完整的轮询过程:

 

TCPReq(TCP请求)→转为RTUReq(RTU请求)→RTUResp(RTU回应)→TCPResp(TCP回应);

2)报文内容:

 

分析如下:

TCPReq:

010000000006010300630005

TCP请求MBAP报头从设备ID起始地址读寄存器个数

7个Byte(字节)功能码

MBAP报头格式:

 

MBAP包含7个字节:

0100:

处理标识ID,取决于设备的类型,取值一般为0000到FFFF;

0000:

协议ID,0=Modbus协议;

0006:

后面跟随的字节个数(包含从设备ID号),此例:

后面跟随了6个字节;

01:

从设备的ID号;

 

RTUReq:

01030063000575D7

RTU请求从设备ID起始地址读寄存器个数

功能码CRC校验码(高→低)---RTU方式;

RTUResp:

01030A00010002000300040005CF24

RTU回应从设备ID回复的数据校验码

长度CRC(高→低)

功能码

TCPResq:

TCP回应

01000000000D01030A00010002000300040005

MBAP报头从设备ID长度回复的数据

功能码

MBAP:

000D:

13---后面跟随13个字节;

6、较深入的报文内容:

1)ModbusPoll向多个寄存器发送数据的报文分析:

a)ModbusPoll中的设置:

双击红框部分,界面:

 

Value中填入要发送的数据,注意:

这是十进制,对于“监控”中是十六进制;

SlaveID:

Port所接从设备的ID;

Address:

这是寄存器地址,第1个是0,第2个是1……;

 

b)多寄存器报文分析:

监控中看到的数据:

 

分析:

第一组:

i)TCPReq:

TCP发送请求;

时间数据

0.00003360000000601030000000A

MBAP报头从设备ID起始地址读寄存器个数

功能码

MBAP:

0336:

处理标识ID;

0000:

协议ID,0=Mdobus;

0006:

后面跟随的字节个数;

01:

从设备ID;

 

ii)RTUReq:

通过MB3480转换到串口的请求;

时间数据

0.00001030000000AC5CD

从设备ID起始地址寄存器个数CRC校验码

功能码

注意:

i)与ii)的起始地址、寄存器个数是一样的;ii)在i)的基础上,去掉了MBAP报头,并且增加了CRC校验码;

 

iii)RTUResp:

从串口RTU回应的数据;

时间数据

0.090010314000F00100011001200000000000000000000

从设备ID长度1516171800001169

功能码校验码

一共10个寄存器:

000F:

表示15;

0010:

表示16;

0011:

表示17;

0012:

表示18;

其余寄存器为00,没有发送数据;

注意:

第i)、ii)是请求,没有具体数据,只有寄存器起始地址和寄存器个数;

第iii)、iv)开始回应数据;

iv)TCPResp:

通过MB3480转到TCP的回应数据;

时间数据

0.090033600000017010314000F001000110012000000

MBAP报头从设备ID长度000000000000000000

功能码数据

注意:

第iv)的MBAP报头与i)的报头是一样的;

第二组:

 

与第一组一样,需要注意的:

MBAP报头不同;起始地址、寄存器个数,甚至校验码都是一样的;

2)ModScan32向多个寄存器发送数据的报文:

 

4001:

<00000>第一个寄存器,发送的数据是0;

4001:

<00000>第二个寄存器,发送的数据是0;

……

点击<00000>,出现界面:

 

4001寄存器的地址是:

1;

4002寄存器的地址是:

2;

Value:

要发送的数据;

 

3)使用ModbosPoll和ModbusSlave模拟RTUMaster:

a)通信结构:

RUT串口→MB3480(192.168.127.254)→PC(192.168.127.108)

主动发起主动与PC连接

∴要设置PC的IP

b)MGateManager:

操作模式:

设置为“RTU主站模式”(RTUMaster);

串口状态设置:

 

从站ID映射的设置:

注意:

当Port1的操作模式设置为“RTU主站模式”时,从站ID映射列表中就没有了Port1的从站设备ID号,为什么?

因为这时的Port1是作为Master(发起端),TCP端是作为响应端,这就是Modbus的主从结构。

界面如下:

 

设置远程TCP从站IP:

“新增”即可。

 

b)ModbusPoll:

注意:

此时连接的是串口端,作为Master(主);

 

c)ModbusSlave:

注意:

此时连接的是TCP端,作为Slave(从);

 

d)通信成功:

 

报文分析:

 

第一组:

0.000RTUReq---RTU主动发起请求;

0.000TCPReq---通过MB3480,转发Req请求;

0.010TCPResp---TCP返回响应;

0.010RTUResp---通过MB3480,转发RTU响应;

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2