瓦萨变频器通讯协议新串口通讯协议SUN.docx

上传人:b****7 文档编号:11275715 上传时间:2023-02-26 格式:DOCX 页数:16 大小:24.45KB
下载 相关 举报
瓦萨变频器通讯协议新串口通讯协议SUN.docx_第1页
第1页 / 共16页
瓦萨变频器通讯协议新串口通讯协议SUN.docx_第2页
第2页 / 共16页
瓦萨变频器通讯协议新串口通讯协议SUN.docx_第3页
第3页 / 共16页
瓦萨变频器通讯协议新串口通讯协议SUN.docx_第4页
第4页 / 共16页
瓦萨变频器通讯协议新串口通讯协议SUN.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

瓦萨变频器通讯协议新串口通讯协议SUN.docx

《瓦萨变频器通讯协议新串口通讯协议SUN.docx》由会员分享,可在线阅读,更多相关《瓦萨变频器通讯协议新串口通讯协议SUN.docx(16页珍藏版)》请在冰豆网上搜索。

瓦萨变频器通讯协议新串口通讯协议SUN.docx

瓦萨变频器通讯协议新串口通讯协议SUN

串行通讯功能V1.0

使用串口通讯功能时,使用参数E011来设定变频器的通讯界面、通讯格式和和通讯地址。

1通讯口参数设定

E011=TF.ID(T:

通讯界面、F:

通讯格式,ID:

通讯地址):

1.通讯地址设定范围:

ID=01~99,工作在同一网络中的多台机器均应单独设定其地址。

2.通讯界面设定说明如下:

通讯界面

说明

T=0

Ascii通讯模式,RS232

T=1

Ascii通讯模式,RS485

T=2

ModbusRTU通讯模式,RS232

T=3

ModbusRTU通讯模式,RS485

3.通讯格式设定说明如下:

通讯格式

说明

F=0

2400bps,7Databits,EvenParity,2Stopbits

F=1

4800bps,7Databits,EvenParity,2Stopbits

F=2

9600bps,7Databits,EvenParity,2Stopbits

F=3

19200bps,7Databits,EvenParity,2Stopbits

F=4

2400bps,8Databits,EvenParity,1Stopbits

F=5

4800bps,8Databits,EvenParity,1Stopbits

F=6

9600bps,8Databits,EvenParity,1Stopbits

F=7

19200bps,8Databits,EvenParity,1Stopbits

F=8~9

保留

2硬件接口

选配相应的通讯接口板,可以实现RS485或RS232通讯所需的功能。

3Ascii通讯模式

本通讯模式采用标准ASCII(AmericanStandardCodeforInformationinterchange)字符实现变频器与上位机之间的通讯。

3.1对变频器的命令

经由RS485界面与变频器之间的讯息沟通都是通过ASCII,结尾需加CR符号(0x0D)。

3.1.1运转控制命令:

命令格式[C,uu,cc,fffff]

C:

运转控制命令之起始字符。

uu:

通讯地址,指定第uu台接受本字符。

uu(ID)可指定为第00~99台。

若uu=00,则所有的变频器都必须接受命令,但变频器不会回复数据给上位机。

cc:

十进制运转控制命令代码(00~15)。

由四个二进制信号组成。

cc=8*Bit-3(寸动)+4*Bit-2(逆转)+2*Bit-1(正转)+Bit-0(复位)

fffff:

速度设定值。

3.1.2参数书写命令:

命令格式[W,uu,nnn,ddddd]

W:

参数书写命令之起始字符。

uu:

通讯地址,指定第指定第uu台接受本字符。

uu(ID)可指定为第00~99台。

若uu=00,则所有的变频器都必须接受命令,但变频器不会回复数据给上位机。

nnn:

参数号码为三位数“nnn”,参数号码由000~999。

ddddd:

欲写入之参数值,由00000~65535。

3.1.3参数读取命令(变频器在将会回复参数值及运转状况)

命令格式[R,uu,nnn]

R:

参数读取命令之起始字符。

uu:

通讯地址,指定第指定第uu台接受本字符。

uu(ID)可指定为第01~99台。

读取命令时,地址uu(ID)指定为0时无效。

nnn:

参数号码为三位数“nnn”,参数号码由000~999。

3.2变频器回复电脑的讯息

在变频器接到要求的参数读取命令时,立即开始回复该参数及当时之运转资料。

回复讯息之格式[P,uu,nnn,tt,ddddd,s,aaaa]

P:

参数回复讯息之起始字符。

uu:

指出本字符串为第uu台回复讯息。

由各变频器的参数Pr.93决定本身的通讯地址。

nnn:

参数号码为三位数“nnn”,参数号码由000~255。

tt:

回复参数之小数点类型。

tt=4,特殊类型整数

tt=3,两位小数

tt=2,一位小数

tt=0,整数

ddddd:

回复之参数值(00000~65535)。

s:

回复变频器输出状态。

s=1,变频器逆转输出中。

s=2,变频器正转输出中。

s=3,变频器停止。

s=其它值,未定义。

aaaa:

回复变频器最近四次故障记录。

(0000~9999)

四个数字分别代表最近四次故障之代码记录:

千位数之a:

代表现在的故障状况之代码。

百位数之a:

代表前一次的故障状况之代码。

十位数之a:

代表前二次的故障状况之代码。

个位数之a:

代表前三次的故障状况之代码。

4ModbusRTU通讯模式

本通讯模式采用标准ModbusRTU(RemoteTerminalUnit)通讯格式。

通讯格式

START(起始位)

大于10ms的间隔时间

ADR(通讯地址)

8-bit通讯地址

CMD(通讯指令)

8-bit指令码

DATA(数据)(n-1)

n×8-bit数据内容(n<=25)

…….

DATA(数据)0

CRCCHK(校验)Low

CRC校验值值

CRCCHK(校验)High

END

大于10ms的间隔时间

ADR(通讯地址)

合法的通讯地址范围在0到99之间。

通讯地址为0表示对所有变频器进行广播,在此情况下,变频器将不会发送回复信息。

通讯对应的地址规定如下:

项目

地址(Hex/Dec)

功能说明

驱动器内部设定参数

0~0xff

0~255

对应变频器的内部参数号码(F000~F255)

驱动器内部控制参数

0x2000

8192

控制指令

0x2001

8193

设置频率

驱动器内部状态参数

0x2100

8448

运行频率

0x2101

8449

输出电流

0x2102

8450

直流母线电压

0x2103

8451

输出电压

0x2104

8452

散热器温度

0x2105

8455

输入端子状态(DI1~DI6)

0x2106

8456

控制端子状态(DI7~DI12)

0x2107

8457

输出端子状态(DO1~DO6)

0x2108

8458

当前控制指令

0x2109

8459

当前运行状态

0x210a

8460

当前变频器故障类型

0x210b

8461

当前设置频率

驱动器内部位控制变量

0x3000

12288

停止控制

0x3001

12289

复位控制

0x3002

12290

正向运行控制

0x3003

12291

反向运行控制

0x3004

12292

正向点动运行控制

0x3005

12293

反向点动运行控制

0x3006

12294

DI1控制

0x3007

12295

DI2控制

0x3008

12296

DI3控制

0x3009

12297

DI4控制

0x300a

12298

DI5控制

0x300b

12299

DI6控制

0x300c

12300

DI7控制

0x300d

12301

DI8控制

0x300e

12302

DI9控制

0x300f

12303

DI10控制

0x3010

12304

DI11控制

0x3011

12305

DI12控制

驱动器内部位状态变量

0x3100

12544

停止状态

0x3101

12545

运行状态

0x3102

12546

正向运行状态

0x3103

12547

反向运行状态

0x3104

12548

直流刹车状态

0x3105

12549

故障状态

0x3106

12550

DI1状态

0x3107

12551

DI2状态

0x3108

12552

DI3状态

0x3109

12553

DI4状态

0x310a

12554

DI5状态

0x310b

12555

DI6状态

0x310c

12556

DI7状态

0x310d

12557

DI8状态

0x310e

12558

DI9状态

0x310f

12559

DI10状态

0x3110

12560

DI11状态

0x3111

12561

DI12状态

0x3112

12562

DO1状态

0x3113

12563

DO2状态

0x3114

12564

DO3状态

0x3115

12565

DO4状态

0x3116

12566

DO5状态

0x3117

12567

DO6状态

CMD(指令指令)及DATA(数据字符)

数据字符之格式依指令码而定。

可用之指令码叙述如下:

3.3.1数据读取指令(0x03):

读取N个字(word,16-bit双字节),N最大为12。

例如:

从地址0x01之交流电机驱动器的地址0x0010开始读取2个字:

上位机发送信息

变频器回复信息

ADR

0x01

ADR

0x01

CMD

0x03

CMD

0x03

数据地址(High)

0x00

资料数

0x04(byte)

数据地址(Low)

0x10

数据1(High)

0x00

资料数(High)

0x00(word)

数据1(Low)

0x55

资料数(Low)

0x02(word)

数据2(High)

0x00

CRCCHK(Low)

0xc5

数据2(Low)

0xaa

CRCCHK(High)

0xce

CRCCHK(Low)

0x6a

CRCCHK(High)

0x5c

3.3.2数据写入指令(0x05)

写1个字(word,16-bit双字节),例如,将5000(0x1388)写到地址为0x01变频器内部的0x0010地址:

上位机发送信息

变频器回复信息

ADR

0x01

ADR

0x01

CMD

0x06

CMD

0x05

数据地址High

0x00

数据地址High

0x00

数据地址Low

0x10

数据地址Low

0x10

数据内容High

0x13

数据内容High

0x13

数据内容Low

0x88

数据内容Low

0x88

CRCCHKLow

0x85

CRCCHKLow

0x85

CRCCHKHigh

0x59

CRCCHKHigh

0x59

CRCCHK(CRC校验)

RTU通讯模式采用CRC方式进行数据校验,包含一16位的二进制值。

它由传输设备根据要传输的数据计算后加入到消息中。

接收设备重新计算收到消息的CRC,并与接收到的CRC域中的值比较,如果两值不同,则有误。

CRC计算时先调入一值是全“1”的16位寄存器,然后调用一过程将消息中连续的8位字节各当前寄存器中的值进行处理。

CRC产生过程中,每个8位字符都单独和寄存器内容相或(OR),结果向最低有效位方向移动,最高有效位以0填充。

LSB被提取出来检测,如果LSB为1,寄存器单独和预置的值或一下,如果LSB为0,则不进行。

整个过程要重复8次。

在最后一位(第8位)完成后,下一个8位字节又单独和寄存器的当前值相或。

最终寄存器中的值,是消息中所有的字节都执行之后的CRC值。

仅每个字符中的8Bit数据对CRC有效,起始位和停止位以及奇偶校验位均无效。

CRC添加到消息中时,低字节先加入,然后高字节。

附1:

变频器控制指令码

控制码cc

功能

cc=00

控制变频器停止

cc=01

控制变频器复位

cc=02

控制变频器正向运转

cc=06

控制变频器逆向运转

cc=10

控制变频器寸动正转

cc=14

控制变频器寸动逆转

附2:

故障代码表:

故障讯息显示

故障代码

故障说明

--

0

正常无故障

CA

1

加速中过电流

Cd

2

减速中过电流

OC

3

运转中过电流

OH

4

过热

OP

5

电压过高

UP

6

电压过低

OL

7

过负荷

CB

8

刹车中过电流

CS

9

软件检知过电流

SE

10

系统自检故障

modbusRTU常见问题汇总

点击次数:

7359发布时间:

2013-5-14

 1、ModBusRTU通讯协议与ModBus通讯协议有什么区别?

  ModBus协议是应用层报文传输协议(OSI模型第7层),它定义了一个与通信层无关的协议数据单元(PDU),即PDU=功能码+数据域。

   ModBus协议能够应用在不同类型的总线或网络。

对应不同的总线或网络,Modbus协议引入一些附加域映射成应用数据单元(ADU),即ADU=附加域+PDU。

目前,Modbus有下列三种通信方式:

   1.以太网,对应的通信模式是MODBUSTCP。

   2.异步串行传输(各种介质如有线RS-232-/422/485/;光纤、无线等),对应的通信模式是MODBUSRTU或MODBUSASCII。

   3.高速令牌传递网络,对应的通信模式是ModbusPLUS。

 

2、关于MODBUSRTU通讯协议的提问?

   modbus主要由站地址(一个字节)+功能码(一个字节)+首地址(两个字节)+访问字数(两个字节)+校验码(CRC16或LRC两个字节)总共8个字节组成。

其实VB中编程很简单从组建添加MSComm组建就行了,难的是校验,

 

3、modbus、rtu、modbusrtu分别是什么?

   modbus协议是工控行业的标准协议,前身为莫迪康所写,现已被施奈德收购

   而modbus分为两种协议:

即串口协议(modbusrtu)和网口协议(modbustcp)协议,一般的工控机只支持rs232或者RS485的串口模式,这个时候工控机的协议栈里就只有modbusRTU协议,当他从串口接收到数据时,会直接根据报文中的数据进行控制,如果需要用modbusTCP协议进行传输,则需要使用带有网口的PLC

具体的帧格式如下

modbusRTU 地址域功能码数据差错校验

modbusTCP 目的地址协议id长度单元号功能码数据

 

简单的说tcp是由RTU加工而来的

而RTU则是另外一种概念,不包含在modbus协议内

是工控行业对监控设备的简称。

 

4、关于modbus_RTU协议主机发送的命令的一些问题

•01读保持线圈状态(Readcoilstatus)

•02读输入线圈状态(Readinputstatus)

•03读保持寄存器(Readholdingregister)

•04读输入寄存器(Readinputregister)

•05写单个线圈(Forcesinglecoil)

•06写单个寄存器(Presetsingleregister)

•15写多个线圈(Forcemultiplecoils)

•16写多个寄存器(Presetmultipleregisters)

这些都是什么意思

 

答:

01读取逻辑线圈组状态

02读取离散量线圈组状态

03读取一个或多个保持寄存器的二进制值

04读取一个或多个输入寄存器的二进制值

05改变逻辑线圈状态

06改变单个寄存器的二进制值

15改变多个寄存器的二进制值

16指定多个操持寄存器的二进制值

 

5、OPC转modbusRTU方式我现在有一个OPC服务器,里面很多tag,tag是AB里出来的,怎么将tag连到modbus?

   Profibus、Fielbus、Modbus、CC-link等等是各中PLC硬件支持的通讯协议,这个是各厂商的硬件属性一样.只是现在计算机组态软件都支持很多种协议的PLC.你理解反了.

   Profibus、Fielbus、Modbus、CC-link这些协议,是一种通讯协议,一般不需要你去编程,就好象你使用计算机,你不需要编写IP协议一样,只是要遵循它. 

   遵循的意思就是,你必须按照该厂家所支持的协议在PLC或者DCS硬件组态的时候按照该通讯协议设置硬件.其实这个很简单.这里简单指的是,你学编程,重点是编写执行控制的动作的程序,硬件通讯协议不需要你自己动手写。

 

6、什么是modbusrtumaster?

就是选RTU模式,因为MODBUS分为ASCII模式和RTU模式,MASER就是设置为主站,一般为PLC端,变频器设为从站,还要注意主站和从站地址的设置。

 

7、Modbusrtu为什么没有开始和结束标记?

 由于Modbusrtu帧的每个字节是16进制数,数值范围在00~FF,若像ModbusASCII那样用02、03表示开始和结束标记,则与数值2、3发生冲突,无法判断其是标记还是数值,无法数据解包。

 

8、modbustcp到rtu的转换?

请仔细查看帧格式,

modbusRTU 地址域功能码数据差错校验

modbusTCP 目的地址协议id长度单元号功能码数据

写一个TCP转RTU的程序放到设备里做modbus网桥即可

 

9、MODBUSRTU通讯线被烧?

  用万用表量一下出来的通讯线,电压不超过5V应该没问题,一般不会烧东西,接的时候区分正和负。

很多产品B是正,量一下看看。

 

10、触摸屏modbusrtu怎么设置?

  一般是通过宏指令自己编程实现,当然也有支持RTU的,在通讯类型菜单

 

11、MODBUSRTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数?

浮点数保存的字节格式如下:

地址    +0            +1          +2          +3

内容  SEEEEEEE EMMMMMMM  MMMMMMMM  MMMMMMMM

 

这里

S代表符号位,1是负,0是正

E偏移127的幂,二进制阶码=(EEEEEEEE)-127。

M24位的尾数保存在23位中,只存储23位,最高位固定为1。

此方法用最较少的位数实现了较高的有效位数,提高了精度。

零是一个特定值,幂是0尾数也是0。

浮点数-12.5作为一个十六进制数0xC1480000保存在存储区中,这个值如下:

地址+0  +1  +2  +3

内容0xC1 0x48 0x00 0x00

浮点数和十六进制等效保存值之间的转换相当简单。

下面的例子说明上面的值-12.5如何转换。

浮点保存值不是一个直接的格式,要转换为一个浮点数,位必须按上面的浮点数保存格式表

所列的那样分开,例如:

 

地址   +0     +1      +2      +3

格式 SEEEEEEE  EMMMMMMM  MMMMMMMM  MMMMMMMM

二进制 11000001  01001000   00000000   00000000

十六进制 C1     48      00      00

 

从这个例子可以得到下面的信息:

 符号位是1表示一个负数 幂是二进制10000010或十进制130,130减去127是3,就是实际的幂。

 尾数是后面的二进制数10010000000000000000000

在尾数的左边有一个省略的小数点和1,这个1在浮点数的保存中经常省略,加上一个1和小数点到尾数的开头,得到尾数值如下:

1.10010000000000000000000

 

接着,根据指数调整尾数.一个负的指数向左移动小数点.一个正的指数向右移动小数点.因为指数是3,尾数调整如下:

1100.10000000000000000000

 

结果是一个二进制浮点数,小数点左边的二进制数代表所处位置的2的幂,例如:

1100表示

(1*2^3)+(1*2^2)+(0*2^1)+(0*2^0)=12。

小数点的右边也代表所处位置的2的幂,只是幂是负的。

例如:

.100...表示(1*2^(-1))+(0*2^(-2))+(0*2^(-2))...=0.5。

这些值的和是12.5。

因为设置的符号位表示这数是负的,因此十六进制值0xC1480000表示-12.5。

 

12、RS-485的设备,遵守MODBUS-RTU协议。

怎样用的电脑读取信息?

  用电脑的串口,接个485转换器,接到设备的485接口,再找个串口软件,根据设备资料上的寄存器地址发送modbus报文,modbus报文通过串口软件发送啊,报文格式:

010300000001840A读寄存器命令。

 

13、vbmodbus给modScan32rtu发送数据应该怎么写?

  确定两个软件哪个是主,哪个是从。

然后再确定通讯协议是RTU、ASCII还是TCP。

如果是TCP,就用socket控件。

RTU\ASCII就用COM控件。

然后给对应的口按照协议收发数并解析就可以了。

 

14、ModBusRTU通讯协议与ModBus通讯协议有什么区别?

modbus协议包括了MODBUSRTU

 

 

15、modbusrtu通讯协议如何判断超时?

  设置一个标志量用来表示是否超时;再用一个定时器,定时时长为发送3.5个字符的时间(当然为了保险时间可以长一些);在定时器中置超时标志;在串口中断中每收到一个字节时定时器清零;主程序中根据超时标志做相应处理。

 

16、如何理解MODBUS协议RTU模式中的1.5和3.5字符间隔?

  发送两帧数据之间要有一定的时间间隔,以保证接收方UART能够区分。

这个时间间隔在MODBUSRTU模式中要求是1.5和3.5字符间隔,也即是传输1.5和3.5个字符的时间,它与设置的通信参数有关,计算为:

若串口通信参数设置为(注:

开始位固定为1):

数据位8,奇偶校验位1,停止位1,波特率9600bps,

则传输一个字符(即1个字节)的时间为:

(1+8+1+1)/9600=0.00114583s=1.1454583ms

1.5字符间隔=1.5x1.1454583ms=1.71818745ms

3.5字符间隔=3.5x1.1454583ms=4.00910405ms

 

17、MODBUSRTU测试软件?

推荐:

modscan32 

 

18、MODBUS RTU协议,上位机与仪表通信,读写数据都正确,为

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

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

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1