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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

1 通讯口参数设定
E011=TF.ID(T:通讯界面、F:通讯格式,ID:通讯地址):
1.通讯地址设定范围:ID=01~99,工作在同一网络中的多台机器均应单独设定其地址。

2.通讯界面设定说明如下:
3.通讯格式设定说明如下:
选配相应的通讯接口板,可以实现RS485或RS232通讯所需的功能。

3 Ascii通讯模式
本通讯模式采用标准ASCII(American Standard Code for Information interchange)字符实现变频器与上位机之间的通讯。

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:代表前三次的故障状况之代码。

4 Modbus RTU通讯模式
本通讯模式采用标准Modbus RTU(Remote Terminal Unit)通讯格式。

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

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

通讯对应的地址规定如下:
CMD(指令指令)及 DATA(数据字符)
数据字符之格式依指令码而定。

可用之指令码叙述如下:
3.3.1 数据读取指令(0x03):
读取N个字(word,16-bit双字节),N最大为12。

例如:从地址0x01之交流电机驱动器的地址0x0010开始读取2个字:
3.3.2 数据写入指令(0x05)
写1个字 (word,16-bit双字节) ,例如,将5000(0x1388)写到地址为0x01变频器内部的
0x0010地址:
CRC CHK(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:变频器控制指令码
附2:故障代码表:
modbus RTU常见问题汇总
点击次数〆7359 发布时间〆2013-5-14
1、ModBus RTU通讯协议与ModBus通讯协议有什么区别?
ModBus协议是应用层报文传输协议(OSI模型第7层),它定义了一个与通信层无关的
协议数据单元(PDU),即PDU=功能码+数据域。

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

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

目前,Modbus有下列三种通信方式〆
1.以太网,对应的通信模式是MODBUS TCP。

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

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

2、关于MODBUS RTU通讯协议的提问〇
modbus 主要由站地址(一个字节)+功能码(一个字节)+首地址(两个字节)+访问字数(两个字节)+校验码(CRC16或LRC两个字节)总共8个字节组成。

其实VB中编程很简单从组建添加MSComm组建就行了,难的是校验,
3、modbus、rtu、modbus rtu分别是什么〇
modbus协议是工控行业的标准协议,前身为莫迪康所写,现已被施奈德收购
而modbus分为两种协议〆即串口协议(modbus rtu)和网口协议(modbus tcp)协议,一般的工控机只支持rs232或者RS485的串口模式,这个时候工控机的协议栈里就只有modbusRTU协议,当他从串口接收到数据时,会直接根据报文中的数据进行控制,如果需要用modbusTCP协议进行传输,则需要使用带有网口的PLC
具体的帧格式如下
modbus RTU 地址域功能码数据差错校验
modbus TCP 目的地址协议id 长度单元号功能码数据
简单的说tcp是由RTU加工而来的
而RTU则是另外一种概念,不包含在modbus协议内
是工控行业对监控设备的简称。

4、关于modbus_RTU协议主机发送的命令的一些问题
〄01 读保持线圈状态(Read coil status)
〄02 读输入线圈状态(Read input status)
〄03 读保持寄存器(Read holding register)
〄04 读输入寄存器(Read input register)
〄05 写单个线圈(Force single coil)
〄06 写单个寄存器(Preset single register)
〄15 写多个线圈(Force multiple coils)
〄16 写多个寄存器(Preset multiple registers)
这些都是什么意思
答〆01 读取逻辑线圈组状态
02 读取离散量线圈组状态
03 读取一个或多个保持寄存器的二进制值
04 读取一个或多个输入寄存器的二进制值
05 改变逻辑线圈状态
06 改变单个寄存器的二进制值
15 改变多个寄存器的二进制值
16 指定多个操持寄存器的二进制值
5、OPC 转modbus RTU 方式我现在有一个OPC服务器,里面很多tag,tag是AB里出来的,怎么将tag连到modbus〇
Profibus、Fielbus、Modbus、CC-link等等是各中PLC硬件支持的通讯协议,这个是各厂商的硬件属性一样〃只是现在计算机组态软件都支持很多种协议的PLC〃你理解反了〃 Profibus、Fielbus、Modbus、CC-link这些协议,是一种通讯协议,一般不需要你去编程,就好象你使用计算机,你不需要编写IP协议一样,只是要遵循它〃
遵循的意思就是,你必须按照该厂家所支持的协议在PLC或者DCS硬件组态的时候按照该通讯协议设置硬件〃其实这个很简单〃这里简单指的是,你学编程,重点是编写执行控制的动作的程序,硬件通讯协议不需要你自己动手写。

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

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

8、modbus tcp 到rtu的转换〇
请仔细查看帧格式,
modbus RTU 地址域功能码数据差错校验
modbus TCP 目的地址协议id 长度单元号功能码数据
写一个TCP转RTU的程序放到设备里做modbus网桥即可
9、MODBUS RTU通讯线被烧〇
用万用表量一下出来的通讯线,电压不超过5V应该没问题,一般不会烧东西,接的时候区分正和负。

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

10、触摸屏modbus rtu怎么设置〇
一般是通过宏指令自己编程实现,当然也有支持RTU的,在通讯类型菜单
11、MODBUS RTU协议中浮点数是如何存储,读到浮点数寄存器的数值如何转换成所需的浮点数〇
浮点数保存的字节格式如下〆
地址 +0 +1 +2 +3
内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
这里
S 代表符号位,1是负,0是正
E 偏移127的幂,二进制阶码=(EEEEEEEE)-127。

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

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

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

浮点数-12.5作为一个十六进制数0xC1480000保存在存储区中,这个值如下〆
地址+0 +1 +2 +3
内容0xC1 0x48 0x00 0x00
浮点数和十六进制等效保存值之间的转换相当简单。

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

浮点保存值不是一个直接的格式,要转换为一个浮点数,位必须按上面的浮点数保存格式表
所列的那样分开,例如〆
地址+0 +1 +2 +3
格式SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
二进制 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报文通过串口软件发送啊,报文格式〆01 03 00 00 00 01 84 0A 读寄存器命令。

13、vb modbus给modScan32 rtu发送数据应该怎么写〇
确定两个软件哪个是主,哪个是从。

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

如果是TCP,就用socket控件。

RTU\ASCII就用COM控件。

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

14、ModBus RTU通讯协议与ModBus通讯协议有什么区别〇
modbus 协议包括了MODBUS RTU
15、modbus rtu通讯协议如何判断超时〇
设置一个标志量用来表示是否超时;再用一个定时器,定时时长为发送3.5个字符的时间(当然为了保险时间可以长一些);在定时器中置超时标志;在串口中断中每收到一个字节时定时器清零;主程序中根据超时标志做相应处理。

16、如何理解MODBUS协议RTU模式中的1.5和3.5字符间隔〇
发送两帧数据之间要有一定的时间间隔,以保证接收方UART能够区分。

这个时间间隔在MODBUS RTU模式中要求是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、MODBUS RTU 测试软件〇
推荐〆modscan32
18、MODBUS RTU协议,上位机与仪表通信,读写数据都正确,为什么仪表掉电,写入的参数又丢失了〇怎么保存〇
两种可能〆
如果在仪表上设置参数掉电后都保存不了的话,基本可以确定是仪表问题々
有些仪表写入参数后还需要向固定的寄存器写入确认参数,为了保证写入参数真确,需要检查仪表通信部分说明书。

相关文档
最新文档