485通信讲解(附案例)
485通讯规约
485通讯规约485通讯规约,又称RS-485通讯规约,是一种常用的串行通信接口标准。
它是一种差分传输技术,可实现多台设备之间的可靠通信。
本文将介绍485通讯规约的基本原理、特点以及应用领域。
一、基本原理485通讯规约采用差分信号传输方式,即使用两根线(A线和B线)来传送信号。
在数据传输过程中,A线和B线的电压之差表示逻辑状态,从而实现数据的传输和接收。
相比于单线传输方式,差分传输可以有效地抵抗电磁干扰和电气噪声,提高通信的可靠性和稳定性。
二、特点1. 高抗干扰性:485通讯规约采用差分传输方式,可以有效地抵抗电磁干扰和电气噪声的影响,保证数据的可靠传输。
2. 多设备通信:485通讯规约支持多台设备之间的通信,通过设置不同的设备地址,实现设备之间的数据交换和控制。
3. 长距离传输:485通讯规约支持长距离传输,最远传输距离可达1200米。
这使得485通讯规约在工业控制和自动化领域得到广泛应用。
4. 高速传输:485通讯规约支持高速传输,最高可达10Mbps,适用于对数据传输速度要求较高的应用场景。
5. 双向通信:485通讯规约支持双向通信,设备可以同时进行数据的发送和接收,实现实时的双向数据交互。
三、应用领域485通讯规约广泛应用于工业控制和自动化领域。
它可以用于工业仪器仪表、工业自动化设备、楼宇自动化系统、安防监控系统等领域。
以下是几个具体的应用案例:1. 工业控制系统:485通讯规约可以用于连接PLC、传感器、执行器等设备,实现工业控制系统的数据采集和控制。
2. 楼宇自动化系统:485通讯规约可以用于连接楼宇自动化设备,如温度传感器、照明控制器等,实现对楼宇的智能化管理和控制。
3. 安防监控系统:485通讯规约可以用于连接监控摄像头、报警器等设备,实现对安防系统的数据传输和控制。
4. 电力系统:485通讯规约可以用于电力监测和控制系统,实现对电力设备的数据采集和远程控制。
总结:485通讯规约是一种可靠、稳定且高效的串行通信接口标准。
485通信讲解解析
485通信讲解解析一、485通信基本原理1.电气特性:485通信使用差分信号传输,即使用两条信号线(A线和B线),其中A线发送正信号,B线发送负信号。
由于差分信号传输,可以抵抗电磁干扰,提高抗干扰能力。
2.总线结构:485通信采用多机共享方式,多个设备可通过一个总线实现通信,适用于复杂环境和多设备通信。
3.数据帧结构:485通信使用异步串行方式传输数据,数据帧结构包括起始位、数据位、校验位和停止位,其中校验位用于校验数据的正确性。
4.总线特性:485通信采用半双工通信方式,即发送和接收不能同时进行,但可以通过控制发送和接收的时间来实现全双工通信。
二、485通信案例解析考虑一个工业自动化系统,包括控制主机、传感器和执行器,需要通过485通信实现主机和外部设备的数据交换。
以下是一个简单的案例解析:1.系统拓扑结构该系统采用485总线结构,控制主机(主站)通过一个串口连接到总线上,传感器和执行器(从站)通过各自的接口连接到总线上,形成一个多机共享的通信网络。
2.数据帧结构主机和从站的数据交换使用标准的485数据帧结构,包含起始位、数据位、校验位和停止位。
主机发送数据时,先发送起始位,然后发送数据位,再发送校验位,最后发送停止位。
从站接收数据时,根据起始位进行同步,然后根据数据位解析数据。
3.通信规约该系统使用Modbus协议作为通信规约,Modbus协议是一种通用的工业通信协议,广泛应用于自动化领域。
主机和从站之间通过Modbus命令进行数据交换。
4.数据交换过程主机发送数据时,首先通过Modbus命令指定从站地址和操作类型,然后发送数据内容。
从站接收到数据后,根据Modbus命令解析数据,并执行相应的操作。
从站接收到数据后,可以通过发送响应数据给主机,告知操作结果。
5.系统特点该系统采用了485通信,具有较强的抗干扰能力,适用于工业环境中的噪声和干扰场景。
通过485总线结构,可以方便地扩展和管理多个设备,实现多机共享通信。
485通信讲解(附案例)解析
2
3
4
状 态 字
5
实际 运行 数据
6
实际 运行 数据
7
异 或 校 验
校验
起 始 字 节
从 状 机 态 地 字 址
字节定义 头 地址 状态区
数据区
RS485通讯协议
长帧(起始字节=02H)
发送顺序 1 (字节) 控制器至变频器:
2 3 4 5 6 7 8 9 10 11
起 始 字 节
从 功 命 功能 机 能 令 码设 地 码 字 定值 址 号
1 0
RS485通讯协议
响应字定义 控制字 (位)
bit5
值
1 0
含义
停机2状态 非停机2状态
功能描述
变频器执行停机2命令,处于停机状态
bit6
1 0
控制禁止状态 控制允许状态 上位机控制 本地控制方式
到达设定频率/ 速度 未到达设定频率 /速度
因停机1或停机2或变频器故障或异常命令使变 频器停机的状态,需控制字恢复到准备运行状态 使其复位
bit9
1 0
bit10
1 0
变频器只允许本地控制(面板和端子)
RS485通讯协议
响应字位定义 控制字 (位)
bit11
值
1 0
含义 变频器运行状态 变频器停止状态 变频器接受出错
功能描述
bit15
1
0
bit0 bit7~8 bit12~1 4,
变频器接收正确
预留 预留 预留
本位表示来自控制器的通讯帧经 校验出错,控制器应再次发送该 帧。
RS485通讯协议
控制字定义 控制字 (位) bit0 值 1 0 bit1 含义 运行命令 方式0停车 功能描述 起动变频器 减速停车
485通信讲(附案例)
RS485通讯协议
校验和
数据含义:数据帧校验和计算结果。 数据类型:16进制,单字节。 计算方法:连续异或。
数据帧格式示意图
起始字节 (字节)
从机地址 (字节)
功能码操作
命令/响应 (字节)
功能码号 (字节)
功能码设 定/实际值
(字)
控制/状 态字
(字)
主设定/ 实际值
异或校验
(字) (字节)
进行异或计算
RS485通讯协议
响应字定义
控制字 (位)
值
含义
bit1 1 准备工作状态
功能描述 变频器就绪
bit2
0 非准备工作状态 1 变频器输出允许
bit3
0 变频器禁止输出 1 变频器有故障
0 变频器无故障
以所能达到的最快方式停车
bit4 1
停机1状态
变频器执行停机1命令,处于停机状态
0 非停机1状态
RS485通讯协议
起始字节 (字节)
从机地址 (字节)
功能码操作
命令/响应 (字节)
功能码号 (字节)
功能码设 定/实际值
(字)
控制/状 态字
(字)
主设定/ 实际值
异或校验
(字) (字节)
帧头
参数数据
用户数据
过程数据
帧尾
RS485通讯协议
特殊报文(起始字节=68H),用于获取从站的软件版本和机器型号
发送顺序
(字节) 1 2 3 4 5 6
RS485 通讯
目录
RS485基础 通讯协议 通讯案例 超级终端
RS485基础
通信接口方式 RS485接口:异步,半双工,串行
485通信讲解(附案例)
7
6
5
4
3
2
1
0
=68H:特殊报文 =7EH:短帧 =02H:长帧
RS485通讯协议
从机地址 数据含义:从机的本机地址
从机地址范围2 ~126,127为广播地址,0、1号地址保留。从站数目超出29个,
要求使用中继器,同时中继器将占用从机数目。从机的群组地址与本机地址不 同时使用。地址字节最高位为0表示是本机的单机地址,为1表示是群组地址。
机 器 型 号
6
异 或 校 验
变频器至控制器:
RS485通讯协议
短帧(起始字节=7EH)
发送顺序 1 (字节) 控制器至变频器:
2
3
4
控 制 字
5
运行 数据 设定
6
运行 数据 设定
7
异 或 校 验
校验
起 始 字 节
从 控 机 制 地 字 址
字节定义 头 地址 控制区
数据区
发送顺序 1 (字节) 变频器至控制器:
2
3
4
状 态 字
5
实际 运行 数据
6
实际 运行 数据
7
异 或 校 验
校验
起 始 字 节
从 状 机 态 地 字 址
字节定义 头 地址 状态区
数据区
RS485通讯协议
长帧(起始字节=02H)
发送顺序 1 (字节) 控制器至变频器:
2 3 4 5 6 7 8 9 10 11
起 始 字 节
从 功 命 功能 机 能 令 码设 地 码 字 定值 址 号
RS485 通讯
目录
RS485基础 通讯协议 通讯案例 超级终端
485通信讲解(附案例)
8 ~15 预留
RS485通讯协议
响应字(码)
参数操作错误(响应字=7时)内容定义列表
错误号
内容描述
0 非法参数号
1 参数不允许设置(参数只读)
2 参数数值超限
12 密码错误
101 参数数据无法更改(运行中不可更改)
其它 预留
RS485通讯协议
功能码设定/实际值(2个字节,16BIT) 对应功能码号的参数值或错误参数代码。当功能码操作正确时,功能码的实际 返回值用一个字(2个字节)表示;如果功能码操作不正确则用低字节返回操 作错误代码,此时高字节为0;遵循先发高字节,再发低字节的原则
7 6 5432 1 0
RS485案例
应用案例
说明:使用通信控制变频器时,请先检查硬件是否连接好。同时,将变频器 的通信数据格式,波特率,以及通信地址设置好。如果是用在PROFIBUS上, 还需选定PPO参数(F9参数组)。本文例子中默认变频器使用长桢进行通信 。
1、以50Hz运行2#变频器。(此例需要将变频器频率设定成F0.03=6)
数据帧格式示意图
起始字节 (字节)
从机地址 (字节)
功能码操作 命令/响应 (字节)
功能码号 (字节)
功能码设 定/实际值
(字)
控制/状 态字
(字)
主设定/ 实际值
(字)
异或校验 (字节)
1514 13 12 1110 9 8 7 6 5 4 3 2 1 0
RS485通讯协议
故障代号
故障代号 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
=68H:特殊报文 =7EH:短帧 =02H:长帧
RS485通讯协议
从机地址 数据含义:从机的本机地址 从机地址范围2 ~126,127为广播地址,0、1号地址保留。从站数目超出29个, 要求使用中继器,同时中继器将占用从机数目。从机的群组地址与本机地址不 同时使用。地址字节最高位为0表示是本机的单机地址,为1表示是群组地址。
MODBUS实例485通讯解析
用RS485端口控制TVF2000使用说明:一、硬件连接:1.RS485/RS485:(1)终端设备:将J2用终端方式短接;(2)非终端设备:将J2用非终端方式短接;(3)A、B、AGND对接;(4)如果使用屏蔽线,SCR对接。
2.RS485/RS232(PC机):(1)用RS485/RS232转换器;(2)PC机串口与转换器RS232口连接;(3)TVF2000的CN1与转换器的RS485口的A、B、AGND连接。
二、用MODBUS与TVF2000通讯(RTU方式):1.TVF2000键盘设置:a)键盘菜单设置说明:i.1001=10:外端子1用通讯控制;ii.5005=2:标准MODBUS通讯方式;iii.5201=1-247:从机号(缺省=1);iv.5202=5:通讯速度为9600bps(缺省=5);v.5203=0:无效验(缺省=0);vi.其它=缺省值;b)键盘具体操作:i.9952 = 1:参数初始化;ii.1001 = 10;iii.5005 = 2;这样设置后,就可以与TVF2000通讯了。
2.TVF2000使用的MODBUS命令:a)读存储寄存器:03命令;b)写单个寄存器:06命令;c)写多个寄存器:16命令;3.MODBUS单寄存器写入命令说明(其它说明见附录):a)主机发送:i.[地址]:从机地址1-247;ii.[命令]:06,单寄存器写入命令;iii.[寄存器地址_H]:寄存器地址高8位;iv.[寄存器地址_L]:寄存器地址低8位;v.[数据_H]:写入数据高8位;vi.[数据_L]:写入数据低8位;vii.[CRC_H]:CRC效验高8位;viii.[CRC_L]:CRC效验低8位;b)从机返回(正常):i.[地址]:从机地址1-247(相同地址);ii.[命令]:06,单寄存器写入命令;iii.[寄存器地址H]:寄存器地址高8位;iv.[寄存器地址L]:寄存器地址低8位;v.[数据_H]:写入数据高8位;vi.[数据_L]:写入数据低8位;vii.[CRC_H]:CRC效验高8位;viii.[CRC_L]:CRC效验低8位;c)通讯具体操作(菜单1102=7为例):i.主机发送:[01][06][04][4E][00][07][CRC_H][CRC_L];ii.从机返回(正常):[01][06][04][4E][00][07][CRC_H][CRC_L];4.用通讯命令设置菜单值(调速前必须设置):i.1102=7;外部1有效;ii.1103=8;由串行通讯给定;iii.0002=初始频率;如果不设置,为菜单1104的值;iv.0001=0x06;命令寄存器:0001;v.0001=0x0f;vi.0001=0x2f;启动;vii.0001=0x6f;到达设定频率;5.用通讯命令调速(给定寄存器1:0002):i.0002=0-20000;调速:0对应1104的值,20000对应1105的值;ii.通过03命令读取状态寄存器(0004)的值;iii.通过03命令读取保持寄存器(0005、0006)的值;iv.用通讯命令停车:0001 = 0x06;6.7.给定寄存器1:0002(MODBUS为40002)说明如下:i. 输出频率与给定值成正比例;ii. 输出频率=(0002的值)*(1105的值)/20000;8.状态寄存器:0004(MODBUS为40004)说明如下:9.保持寄存器:0005(MODBUS为40005):实际输出频率(单位:Hz);10.保持寄存器:0006(MODBUS为40006):实际输出电流(单位:0.1A);11.状态寄存器、保持寄存器均为只读;12.如果想保存通讯设置,必须用键盘设置菜单1607=1。
RS485通信原理图及程序实例详解
RS485通信原理图及程序实例详解RS232 标准是诞⽣于 RS485 之前的,但是 RS232 有⼏处不⾜的地⽅:接⼝的信号电平值较⾼,达到⼗⼏ V,使⽤不当容易损坏接⼝芯⽚,电平标准也与TTL 电平不兼容。
传输速率有局限,不可以过⾼,⼀般到⼀两百千⽐特每秒(Kb/s)就到极限了。
接⼝使⽤信号线和 GND 与其它设备形成共地模式的通信,这种共地模式传输容易产⽣⼲扰,并且抗⼲扰性能也⽐较弱。
传输距离有限,最多只能通信⼏⼗⽶。
通信的时候只能两点之间进⾏通信,不能够实现多机联⽹通信。
针对 RS232 接⼝的不⾜,就不断出现了⼀些新的接⼝标准,RS485 就是其中之⼀,它具备以下的特点:采⽤差分信号。
我们在讲 A/D 的时候,讲过差分信号输⼊的概念,同时也介绍了差分输⼊的好处,最⼤的优势是可以抑制共模⼲扰。
尤其当⼯业现场环境⽐较复杂,⼲扰⽐较多时,采⽤差分⽅式可以有效的提⾼通信可靠性。
RS485 采⽤两根通信线,通常⽤ A 和 B 或者 D+和D-来表⽰。
逻辑“1”以两线之间的电压差为+(0.2~6)V 表⽰,逻辑“0”以两线间的电压差为-(0.2~6)V 来表⽰,是⼀种典型的差分通信。
RS485 通信速率快,最⼤传输速度可以达到 10Mb/s 以上。
RS485 内部的物理结构,采⽤的是平衡驱动器和差分接收器的组合,抗⼲扰能⼒也⼤⼤增加。
传输距离最远可以达到 1200 ⽶左右,但是它的传输速率和传输距离是成反⽐的,只有在 100Kb/s 以下的传输速度,才能达到最⼤的通信距离,如果需要传输更远距离可以使⽤中继。
可以在总线上进⾏联⽹实现多机通信,总线上允许挂多个收发器,从现有的 RS485芯⽚来看,有可以挂 32、64、128、256 等不同个设备的驱动器。
RS485 的接⼝⾮常简单,与 RS232 所使⽤的 MAX232 是类似的,只需要⼀个 RS485转换器,就可以直接与单⽚机的 UART 串⼝连接起来,并且使⽤完全相同的异步串⾏通信协议。
实例三菱FX3U485无协议通讯程序详解(含程序)
实例三菱FX3U485⽆协议通讯程序详解(含程序)三菱FX2N PLC串⾏通讯指令(FNC 80 RS)串⾏通讯指令(FNC 80 RS)1、指令格式:[RS D0 K8 D10 K8]发送数据帧起始地址和数⽬↓接收数据帧起始地址和数⽬2、功能和动作:※ RS指令是为使⽤RS232C、RS-485功能扩展板及特殊适配器,进⾏发送和接收串⾏数据的指令。
※传送的数据格式在后⾯讲述的特殊寄存器D8120设定。
RS指令驱动时即使改变D8120的设定,实际上也不接收。
※在只发送的系统中,可将接收数设定为K0。
(K表⽰常数)※在只接收的系统中,可将发送数设定为K0。
※在程序中可以多次使⽤RS指令,但在同⼀时间必须保证只有⼀个RS指令被驱动。
※在⼀次完整的通讯过程中,RS指令必须保持⼀直有效,直⾄接收数据完成。
D8120说明:※根据MD320的通讯协议,⽆帧头和帧尾,则(bit9,bit8)=(0,0)。
※ bit13~15是计算机链接通讯时的设定项⽬,使⽤RS指令时必须设定为0。
※ RS485未考虑设置控制线的⽅法,使⽤FX2N-485-BD、FX0N-485ADP时,(bit11,bit10 )=(1,1)。
※若PLC和变频器之间的通讯参数如下:8位数据位,⽆校验,2位停⽌位,波特率9600,⽆帧头⽆帧尾,⽆协议模式,则D8120=H0C89(H表⽰16进制)(0000 1100 1000 1001B)M8002│──||────────── [ MOV H0C89 D8120 ]5、相关标志位:⼀.基本指令介绍※ M8122:数据发送请求标志当PLC处于接收完成状态或接收等待状态时,⽤脉冲触发M8122,将使得从D0开始的连续8个数据被发送。
当发送完成后,M8122⾃动被复位。
当RS指令的驱动输⼊X0变为ON状态时,PLC就进⼊接收等待状态。
※ M8123:数据接收完成标志当M8123置位时,表明接收已经完成,此时需要将接收到的数据从接受缓冲区转移到⽤户指定的数据区,然后⼿⼯复位M8123。
详解RS485通讯技术
RS485通讯技术介绍一、 RS485简介智能仪表是随着80年代初单片机技术的成熟而发展起来的,现在世界仪表市场基本被智能仪表所垄断。
究其原因就是企业信息化的需要,企业在仪表选型时其中的一个必要条件就是要具有联网通信接口。
最初是数据模拟信号输出简单过程量,后来仪表接口是RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能。
随后出现的RS485解决了这个问题。
下面我们就简单介绍一下RS485。
1.1 RS485接口RS485采用差分信号负逻辑,+2V~+6V表示“0”,- 6V~- 2V表示“1”。
RS485有两线制和四线制两种接线,四线制只能实现点对点的通信方式,现很少采用,现在多采用的是两线制接线方式,这种接线方式为总线式拓朴结构在同一总线上最多可以挂接32个结点。
在RS485通信网络中一般采用的是主从通信方式,即一个主机带多个从机。
很多情况下,连接RS-485通信链路时只是简单地用一对双绞线将各个接口的“A”、“B”端连接起来。
而忽略了信号地的连接,这种连接方法在许多场合是能正常工作的,但却埋下了很大的隐患,这有二个原因:(1)共模干扰问题: RS-485接口采用差分方式传输信号方式,并不需要相对于某个参照点来检测信号,系统只需检测两线之间的电位差就可以了。
但人们往往忽视了收发器有一定的共模电压范围,RS-485收发器共模电压范围为-7~+12V,只有满足上述条件,整个网络才能正常工作。
当网络线路中共模电压超出此范围时就会影响通信的稳定可靠,甚至损坏接口。
(2)EMI问题:发送驱动器输出信号中的共模部分需要一个返回通路,如没有一个低阻的返回通道(信号地),就会以辐射的形式返回源端,整个总线就会像一个巨大的天线向外辐射电磁波。
由于PC机默认的只带有RS232接口,有两种方法可以得到PC上位机的RS485电路:(1)通过RS232/RS485转换电路将PC机串口RS232信号转换成RS485信号,对于情况比较复杂的工业环境最好是选用防浪涌带隔离珊的产品。
RS485通讯
精通RS485通讯系列教程一、通讯基础知识1.1什么是通讯要搞清楚RS485通讯我们要先搞明白什么是通讯,通讯就是两个设备之间0、1代码的传递,0-低电平1-高电平。
举例:A设备向B设备传递数据,首先A设备和B设备之间必须通过电缆连接(硬件连接)。
如果A设备要向B设备发送101010这样一串代码,那么A设备就要在他的通讯端口产生如下图所示的高低电平的组合,通过电缆这个介质B设备的通讯端口就会接收到A设备发出高低电平的组合,同时就会将接收到的高低电平组合翻译成101010,这就完成了A设备向B设备数据的传递,B 设备向A设备数据传递也是同样的道理。
与通讯有个的概念。
【全双工与半双工】全双工是通讯端口在发送数据的同时可以接收数据。
而半双工指的是同一时刻通讯端口要么只能发送数据,要么只能接收数据。
举例:全双工-打电话时双方都可以说。
半双工:对讲机-同一时刻只能一个人说另一个人听。
【通讯速率】通讯速率也叫通讯波特率是1S内通讯端口发送01代码(或者说是高低电平)的数量。
举例:我们说通讯速率是9.6kbps,就表示通讯端口每秒发送9600个bit的数据,也就是每秒可以产生9600个高低电平(注意:是高低电平总共加起来9600个)。
【主从通讯】是在一个通讯网络中一个站点是主站,其他站点作为从站。
主站和从站之间可以直接进行数据的传递,但是从站与从站之间不能直接进行数据的传递。
如果需要从站之间交换数据也必须要通过主站进行转发。
如下图所示1.2、485通讯定义明白了通讯的基本概念后再理解485通讯就相对容易了,下面我们从通讯介质、通讯方式、通讯类型、物理层四个方面来介绍485通讯。
通讯介质:屏蔽双绞线,也就是我们通常用的带有屏蔽层的两心电缆如下图所示。
通讯方式:半双工通讯类型:主从通讯物理层:9针接口,需要注意的是通常情况下485通讯的9针接口,只需要将两芯电缆接到3号脚和8号脚上,3是信号“﹢”,8是信号“-”。
485通信讲解(附案例)解析
数据帧格式示意图
起始字节 从机地址 (字节) (字节)
用户数据
异或校验 (字节)
76543210
单机地址或群组地址 =0:单机地址 =1:群组地址
RS485通讯协议
命令字(响应字)+功能码号(2个字节,16BIT)
数据含义:主机发送的命令或从机对命令的应答。
功能码组号范围0~16(BIT8~BIT11),功能码的范围0~99(BIT0~BIT7),参见 TD3000
响应字定义
控制字 (位) 值
bit5
1
含义
停机2状态
功能描述
变频器执行停机2命令,处于停机状态
0
非停机2状态
bit6
1
控制禁止状态
因停机1或停机2或变频器故障或异常命令使变
频器停机的状态,需控制字恢复到准备运行状态
0
控制允许状态
使其复位
bit9
1 上位机控制
0 本地控制方式
bit10
1
到达设定频率/
数据帧格式示意图
起始字节 (字节)
从机地址 (字节)
功能码操作 命令/响应 (字节)
功能码号 (字节)
功能码设 定/实际值
(字)
控制/状 态字
(字)
主设定/ 实际值
异或校验
(字) (字节)
1514 13 12 1110 9 8 7 6 5 4 3 2 1 0
功能码操作错误代码 功能码设定/实际值
RS485通讯协议
帧头 帧头:一个字节 帧头是主机发布命令或从机回应主机响应的第一个字节,不论是主机还是从 机,都在收到该字节后开始记录有效数据。 为确保能准确识别报文头,要求两个通信帧之间保持2个字节传输时间以上的 总线空闲时间。
485通讯协议怎么使用(传统光电隔离的典型电路实例)
485通讯协议怎么使用(传统光电隔离的典型电路实例)RS485总线标准是工业中(考勤,监控,数据采集系统)使用非常广泛的双向、平衡传输标准接口,支持多点连接,允许创建多达3两个节点的网络;最大传输距离1200m,支持1200 m时为100kb/s的高速度传输,抗干扰能力很强,布线仅有两根线很简单。
RS485通信网络接口是1种总线式的结构,上位机(以个人电脑为例)和下位机都挂在通信总线上,RS485物理层的通信协议由RS485标准和PLC的多机通讯方式。
传统光电隔离的典型电路VDD与+5V1(VCC485)是两组不共地的电源,一般用隔离型的DC-DC来实现。
通过光耦隔离来实现信号的隔离传输,ISL3152EIBZ与MCU系统不共地,完全隔离则有效的抑制了高共模电压的产生,大大降低485的损坏率,提高了系统稳定性。
但也存在电路体积过大、电路繁琐、分立器件过多,传输速率受光电器件限制等缺点,对整个系统的稳定性也有一定影响。
第一步,配置好串口发送、接收端引脚和485控制引脚;因为RXD1引脚相对于STM32芯片来说是接收外来数据,所以设置为输入;TXD1引脚相对于STM32芯片来说是对外发送数据,所以设置为输出;TRE1 引脚是对外发送1或0高低电平命令,所以设置为输出;/******************************************************************函数名称:UART2Init*功能描述:对串口2参数进行设置、485控制端口初始化**输入参数:无*返回值:无*其他说明:无*当前版本:v1.0*-----------------------------------------------------------------*******************************************************************/void UART2Init(void){GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//使能外设时钟//GPIO结构的成员设置如下:/*--------------485控制端初始化------PA1----------*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //50M时钟速度GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出GPIO_Init(GPIOA,GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //485_TXGPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出GPIO_Init(GPIOA,GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3; //485_RXGPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //浮空输入GPIO_Init(GPIOA,GPIO_InitStructure);//串口的结构成员设置如下:USART_ART_BaudRate = 9600;USART_ART_WordLength = USART_WordLength_8b;USART_ART_StopBits = USART_StopBits_1;USART_ART_Parity = USART_Parity_No;USART_ART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_ART_Mode = USART_Mode_Tx | USART_Mode_Rx;USART_Init(USART2,USART_InitStructure);USART_Cmd(USART2,ENABLE);/*方法一:清发送完成标志*/// USART_ClearFlag(USART3,USART_FLAG_TC);/*方法二:获取串口1状态标志位*/USART_GeTITStatus(USART1,USART_FLAG_TC);}第二步:发送数据这里需要注意的是:/* CPU的小缺陷:串口配置好,如果直接Send,则第1个字节发送不出去如下两个方法语句解决第1个字节无法正确发送出去的问题*/方法一:USART_ClearFlag(USART3,USART_FLAG_TC); /*清发送完成标志,Transmission Complete flag */方法二:/*获取串口1状态标志位*/USART_GeTITStatus(USART1,USART_FLAG_TC);刚上电时出现乱码的原因:while(USART_GetFlagStatus(USART2,USART_FLAG_TXE)== RESET); // USART_FLAG_TXE---检测发送数据寄存器空标志位如果USART_FLAG_TC---发送完成标志位(1)当设为USART_FLAG_TXE---检测发送数据寄存器空标志位为空,但是发送移位寄存器不为空,数据还没有完全的发送出去,又有数据就被写进来了,所以就会容易出现乱码;(2)当设为USART_FLAG_TC检测发送完成标志位为空,即发送移位寄存器为空,数据才真正的发送出去,因此此时又有数据被写进来也不会发生乱码1STM32的数据发送有两个中断标志,一个是发送数据寄存器空标志,一个是发送完毕标志。
一文秒懂 自动化485通讯
一文秒懂自动化485通讯相信不少化工人,一听见通讯就闻风丧胆,一看到通讯的代码进制就一个头俩个大。
一听见别人聊通讯就会觉得很厉害,感觉他是大神。
但是小编要告诉你,其实通讯并没有什么难的。
那么怎么去理解这些呢,突然看到下面这些代码是不是感觉一脸懵逼下面先简单的讲个小故事:某一天,你决定去上门拜访丈母娘清楚了丈母娘家的地址是在XX省XXX镇上(主地址),然后有多种交通方式可以达到,最后选择了自己开车走高速(功能码,功能方式),到达镇上之后打了个电话问清楚了丈母娘家在哪个位置门牌号为XXX(寄存器地址),了解了她们家里有几口人,有几个亲戚(数据个数),然后到了之后再跟女朋友确认下免得认错人(CRC校验)。
当然丈母娘看到你的的一瞬间肯定会想:下面我们以pH控制器485通讯举例:发送TX:01 03 00 00 00 01 84 0A01:仪器的485通讯地址(地址)单独唯一的一个03:通讯过程中读数据的功能(功能码)唯一的一种读的方式00 00:存储PH值的一个地方(寄存器地址),不同的参数对应的地址也不一样哦00 01:需要读取PH的个数为一个(数据长度或者数据个数)不同数据对应的长度也不相同哦84 0A:确认数据的校验方式可利用工具计算(校验码)返回RX:01 03 02 02 DD 79 7D01,03不多说了,和上面发送TX是一样的02:返回来的读取到的pH数据字节为2个(分析的就是这个之后的字节哦)02 DD:所返回的pH值数据十六进制转换成十进制显示(自带两位小数点)79 7D:CRC校验码(自动返回)是不是跟仪器显示的一样呢?答案是一样的!PH=7.33当然基本参数都会提供只要你想到第一次拜访丈母娘的情景,就能明白通讯的基本格式。
485通信讲解(附案例)解析
数据帧格式示意图
起始字节 (字节)
从机地址 (字节)
功能码操作
命令/响应 (字节)
功能码号 (字节)
功能码设 定/实际值
(字)
控制/状 态字
(字)
主设定/ 实际值
异或校验
(字) (字节)
1514 13 12 1110 9 8 7 6 5 4 3 2 1 0
RS485通讯协议
67
起 始 字 节
从 机 地 址
控 制 字
控 制 字
运行 数据 设定
运行 数据 设定
异 或 校 验
字节定义 头 地址 控制区 数据区 校验
变频器至控制器:
发送顺序 1 2 3 4 5 (字节)
67
起 始 字 节
从 机 地 址
状 态 字
状 态 字
实际 运行 数据
实际 运行 数据
异 或 校 验
字节定义 头 地址 状态区 数据区 校验
故障含义 无故障 变频器加速运行过电流(E001) 变频器减速运行过电流(E002) 变频器恒速运行过电流(E003) 变频器加速运行过电压(E004) 变频器减速运行过电压(E005) 变频器恒速运行过电压(E006) 变频器控制过电压(E007) 输入侧缺相(E008) 输出侧缺相(E009) 功率模块故障(E010) 功率模块散热器过热(E011) 整流桥散热器过热(E012) 变频器过载(E013) 电机过载(E014) 外部设备故障(E015)
帧头 帧头:一个字节 帧头是主机发布命令或从机回应主机响应的第一个字节,不论是主机还是从 机,都在收到该字节后开始记录有效数据。 为确保能准确识别报文头,要求两个通信帧之间保持2个字节传输时间以上的 总线空闲时间。
485通信讲解(附案例)解析
1
2
3
4
5
6
控制器至变频器:
起 始 字
从 机 地
A A
5 5
A 5
异 或 校
节址H H H 验
变频器至控制器:
发送顺序 (字节)
12345
6
起 从软软 机 异 始 机件件 器 或 字 地版版 型 校 节 址本本 号 验
RS485通讯协议
短帧(起始字节=7EH)
控制器至变频器:
发送顺序 1 2 3 4 5 (字节)
RS485 通讯
目录
RS485基础 通讯协议 通讯案例 超级终端
RS485基础
通信接口方式 RS485接口:异步,半双工,串行
数据格式 1位起始位、8位数据位、1位停止位、无校验 1位起始位、8位数据位、1位停止位、奇校验 1位起始位、8位数据位、1位停止位、偶校验 波特率 1200bps、2400bps、4800bps、9600bps、19200bps、38400bps、125K
起始字节 (字节)
从机地址 (字节)
功能码操作 命令/响应 (字节)
功能码号 (字节)
功能码设 定/实际值
(字)
控制/状 态字
(字)
主设定/ 实际值
(字)
异或校验 (字节)
帧头
参数数据
用户数据
过程数据
帧尾
RS485通讯协议
特殊报文(起始字节=68H),用于获取从站的软件版本和机器型号
发送顺序 (字节)
通信方式 采用主机“轮询”,从机“应答”的点对点通信方式,变频器为从机。 主机使用广播地址发送命令时,从机不允许应答。 从机在最近一次对主机轮询的应答帧中上报当前故障信息。 通信准备 用从机键盘设置变频器串行接口通信参数:本机地址、波特率、数据格式。 具备RS232的主机可以使用通信接口转换器( OCI-6A)完成到RS485的转换。
485通讯
一、RS485总线介绍RS485总线是一种常见的串行总线标准,采用平衡发送与差分接收的方式,因此具有抑制共模干扰的能力。
在一些要求通信距离为几十米到上千米的时候,RS485总线是一种应用最为广泛的总线。
而且在多节点的工作系统中也有着广泛的应用。
二、RS485总线典型电路介绍RS485电路总体上可以分为隔离型与非隔离型。
隔离型比非隔离型在抗干扰、系统稳定性等方面都有更出色的表现,但有一些场合也可以用非隔离型。
我们就先讲一下非隔离型的典型电路,非隔离型的电路非常简单,只需一个RS485芯片直接与MCU的串行通讯口和一个I/O控制口连接就可以。
如图1所示:图1、典型485通信电路图(非隔离型)当然,上图并不是完整的485通信电路图,我们还需要在A线上加一个4.7K的上拉偏置电阻;在B线上加一个4.7K的下拉偏置电阻。
中间的R16是匹配电阻,一般是120Ω,当然这个具体要看你传输用的线缆。
(匹配电阻:485整个通讯系统中,为了系统的传输稳定性,我们一般会在第一个节点和最后一个节点加匹配电阻。
所以我们一般在设计的时候,会在每个节点都设置一个可跳线的120Ω电阻,至于用还是不用,由现场人员来设定。
当然,具体怎么区分第一个节点还是最后一个节点,还得有待现场的专家们来解答呵。
)TVS我们一般选用6.8V的,这个我们会在后面进一步的讲解。
RS-485标准定义信号阈值的上下限为±200mV。
即当A-B>200mV时,总线状态应表示为“1”;当A-B<-200mV时,总线状态应表示为“0”。
但当A-B在±200mV之间时,则总线状态为不确定,所以我们会在A、B线上面设上、下拉电阻,以尽量避免这种不确定状态。
三、隔离型RS485总线典型电路介绍在某些工业控制领域,由于现场情况十分复杂,各个节点之间存在很高的共模电压。
虽然RS-485接口采用的是差分传输方式,具有一定的抗共模干扰的能力,但当共模电压超过RS-485接收器的极限接收电压,即大于+12V或小于-7V时,接收器就再也无法正常工作了,严重时甚至会烧毁芯片和仪器设备。
485双机通信案例原理与测试说明
“485双机通信”功能实现说明1程序设计目标及程序运行效果说明程序设计目标:通过本例程理解RS485通信方式,实现双机通信。
程序运行效果:将两块带有485模块的51单片机通过485外接引脚A、B连接起来,单片机上电烧写程序后485模块的D/R引脚所对应的二极管均点亮,然后通过按键KEY3、KEY2控制数码管上的数值进行加减处理,两块单片机起始都默认为接收状态,最后按下KEY1发送键,将数据传送给另一块单片机,而此时接收方数码管上的数值发生相应的改变,与发送方数码管上的数值一致。
2程序相关电路及工作原理说明2.1 RS485通信原理RS232接口是1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。
针对RS232的不足,于是不断出现了新的接口标准,RS485就是其中的一种。
RS485接口的最大传输距离标准值为4000英尺,实际上可达 3000米,另外RS232接口在总线上只允许连接1个收发器,即单站能力。
而RS485接口在总线上是允许连接多达128个收发器。
即具有多站能力,这样用户可以利用单一的RS485接口方便地建立起设备网络。
RS485属于半双工通信,数据可以在一个信号载体的两个方向上传输,但是不能同时进行传输。
电平转换采用差分电路方式,A、B两线的电压差大于0.2认为是逻辑“1”,小于-0.2认为是逻辑“0”,方便与TTL电路连接。
使用RS485进行通信与RS232通信的逻辑是一致的,但RS485抗干扰性更强,传输距离更远。
RS485广泛运用在工业自动化控制、视频监控、门禁对讲以及楼宇报警等各个领域。
图1 485模块电路原理图MAX485芯片的功能是将TTL电平转换为RS485电平,引脚功能如下:(1)485 D/R输出、接收信号控制引脚:当该引脚为低电平时,485为接收态,MAX485通过485_RXD把来自总线的信号输出给单片机;当该引脚为高电平时,485为发送态,来自485_TXD的输出信号通过A、B引脚加载到总线上。
华尔思最新485通用串行控制通信协议及举例
485串行控制通信协议版本变更说明一、物理层协议本协议是使用标准的串行协议,可以是RS232型式,也可以是RS485型式配置:二、逻辑层协议:每次通讯要发送一串数据,包据帧头,数据,帧尾。
如下:数据帧描述三、数据包命令详解:数据包中包含了本次通讯的指令状态信息,这些批令分为两大类:全局指令和专属指令全局指令:1、设备信息查询:上位机->下位机设备响应查询指令(下位机->上位机)发送:FA 00 00 01 01 02 FE返回:FC 00 01 22 02 42 4D 32 30 36 00 00 00 41 6E 64 72 6F 69 64 34 2E 34 5F 6D 75 73 69 63 70 6C 61 79 65 72 31 2E 32 41 FE42 4D 32 30 36 00 00 00BM206 NUL NUL NUL41 6E 64 72 6F 69 64 34 2E 34 5F 6D 75 73 69 63 70 6C 61 79 65 72 31 2E 32And4.4 musicplayer1.22、查寻设备的菜单位置上位机->下位机下位机返回菜单位置参照表:发送:FA 00 01 01 0a 0c FE返回:FC 00 01 02 0B 01 0F FE3、跟按键对应的指令(不需要回传)按键功能表待机命令发送:FA 00 01 02 10 00 13 FE返回:无4、直接设置参数指令音量设置音量5发送:FA 00 01 02 11 05 19 FE返回:无5、音乐界面指令:查寻音乐播放器的状态:上位机->下位机下位机返回注:播放模式:全部循环0 ,单曲循环1 ,顺序播放2 随机播放3。
音效模式功能暂时没有做出来后续会更新默认0选择U/SD卡全部0,本地1,SD卡2 ,U盘3。
播放状态播放1,暂停2 停止3 。
发送:FA 00 01 01 80 82 FE接收:FC 00 01 05 81 09 03 00 01 94 FE查寻音乐界面指定序号音乐详细信息:上位机->下位机下位机返回发送:FA 00 01 02 82 00 01 86 FE返回:FC 00 01 1C 83 00 01 E7 BB 8F E5 85 B8 E8 80 81 E6 AD 8C 2D E5 8A A0E5 B7 9E E6 97 85 E9 A6 86 89 FE查寻音乐播放器正播放的音乐详细信息:上位机->下位机下位机返回发送:FA 00 01 01 84 86 FE返回:FC 00 01 2C 85 00 01 00 35 07 0C E7 BB 8F E5 85 B8 E8 80 81 E6 AD 8C 2D E5 8A A0 E5 B7 9E E6 97 85 E9 A6 86 00 00 00 3C 75 6E 6B 6E 6F 77 6E 3E 6D FE播放模式设置:模式参数表随机模式发送:FA 00 01 02 86 03 8c FE 返回:无音效设置:模式参数表重低音模式发送:FA 00 01 02 87 01 8b FE返回:无选择U盘或SD卡播放:SD卡播放发送:FA 00 01 02 88 01 8c FE返回:无播放指定序号的歌曲:发送:FA 00 01 03 89 00 02 8f FE返回:无当前播放的歌曲跳转:从80秒处播放发送:FA 00 01 03 8a 00 50 de FE返回:无备注:1.本文中提到的设备ID号是由音乐APK生成一个随机数传给单片机,由单片机查询并确认。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
起始字节 从机地址 (字节) (字节)
用户数据
异或校验 (字节)
76543210
=68H:特殊报文 =7EH:短帧 =02H:长帧
RS485通讯协议
从机地址 数据含义:从机的本机地址 从机地址范围2 ~126,127为广播地址,0、1号地址保留。从站数目超出29个, 要求使用中继器,同时中继器将占用从机数目。从机的群组地址与本机地址不 同时使用。地址字节最高位为0表示是本机的单机地址,为1表示是群组地址。
起始字节 (字节)
从机地址 (字节)
功能码操作
命令/响应 (字节)
功能码号 (字节)
功能码设 定/实际值
(字)
控制/状 态字
(字)
主设定/ 实际值
异或校验
(字) (字节)
帧头
参数数据
用户数据
过程数据
帧尾
RS485通讯协议
特殊报文(起始字节=68H),用于获取从站的软件版本和机器型号
发送顺序
(字节) 1 2 3 4 5 6
参数区
56
控制区
78
数据区 校验
9 10 11
变频器至控制器:
起 始 字 节
从 机 地 址
响 应 字
功 能 码 号
功能 码实 际值
功能 码实 际值
状 态 字
状 态 字
实际 运行 数据
实际 运行 数据
异 或 校 验
字节定义 头 地址 命令区 参数区 控制区 数据区 校验
RS485通讯协议
帧头 帧头:一个字节 帧头是主机发布命令或从机回应主机响应的第一个字节,不论是主机还是从 机,都在收到该字节后开始记录有效数据。 为确保能准确识别报文头,要求两个通信帧之间保持2个字节传输时间以上的 总线空闲时间。
RS485通讯协议
命令字(码)
命令字(码)
功能描述
0 无任务
1 请求读取功能码参数数据
2 请求更改功能码参数数据
14 请求更改功能码参数并存储至EEPROM
3~13,15 预留
响应字(码)
响应字(码)
内容描述
0 无响应
1 功能码参数操作正确(读取或更改)
2~6 预留
7 无法执行,错误信息用功能码实际值的低字节表示(此时并不返回功能码值)
控制器至变频器:
起 始 字
从 机 地
A A
5 5
A 5
异 或 校
节址H H H 验
变频器至控制器:
发送顺序 (字节)
1
2ቤተ መጻሕፍቲ ባይዱ
345
6
起 从软软 机 异 始 机件件 器 或 字 地版版 型 校 节 址本本 号 验
RS485通讯协议
短帧(起始字节=7EH)
控制器至变频器:
发送顺序 1 2 3 4 5 (字节)
RS485通讯协议
长帧(起始字节=02H)
发送顺序 1 2 3 4 5
(字节)
6 7 8 9 10 11
控制器至变频器:
起 始 字 节
从 机 地 址
命 令 字
功 能 码 号
功能 码设 定值
功能 码设 定值
控 制 字
控 制 字
运行 数据 设定
运行 数据 设定
异 或 校 验
字节定义 头 地址 命令区 发送顺序 1 2 3 4 (字节)
RS485 通讯
目录
RS485基础 通讯协议 通讯案例 超级终端
RS485基础
通信接口方式 RS485接口:异步,半双工,串行
数据格式 1位起始位、8位数据位、1位停止位、无校验 1位起始位、8位数据位、1位停止位、奇校验 1位起始位、8位数据位、1位停止位、偶校验
波特率 1200bps、2400bps、4800bps、9600bps、19200bps、38400bps、125K
RS485通讯协议
数据帧结构 帧头:起始字节、从机地址。 帧尾:校验数据(异或校验)。 用户数据:参数数据和过程数据两部分。 参数数据:功能码操作命令/响应、功能码号、功能码设定/实际值。
在短帧中没有参数数据。 过程数据:主机控制命令/从机状态响应、主机运行主设定/从机运行实际值。
数据帧格式示意图
当与现场总线适配器PROFIBUS连接时采用默认数据格式:见上黑粗体
RS485基础
主机为PC RS232
OCI-6A
或 主机为PLC RS485
TD3000
TD3000 TD3000 单主机多从机
TD3000
主机为PC RS232
OCI-6A RS485
TD3000 单主机单从机
RS485基础
通信方式 采用主机“轮询”,从机“应答”的点对点通信方式,变频器为从机。 主机使用广播地址发送命令时,从机不允许应答。 从机在最近一次对主机轮询的应答帧中上报当前故障信息。 通信准备 用从机键盘设置变频器串行接口通信参数:本机地址、波特率、数据格式。 具备RS232的主机可以使用通信接口转换器( OCI-6A)完成到RS485的转换。
8 ~15 预留
RS485通讯协议
响应字(码)
参数操作错误(响应字=7时)内容定义列表
错误号
内容描述
0 非法参数号
1 参数不允许设置(参数只读)
2 参数数值超限
12 密码错误
101 参数数据无法更改(运行中不可更改)
其它 预留
RS485通讯协议
功能码设定/实际值(2个字节,16BIT) 对应功能码号的参数值或错误参数代码。当功能码操作正确时,功能码的实际 返回值用一个字(2个字节)表示;如果功能码操作不正确则用低字节返回操 作错误代码,此时高字节为0;遵循先发高字节,再发低字节的原则
先发高字节,再发低字节数据的帧原格则式示意图
起始字节 (字节)
从机地址 (字节)
功能码操作
命令/响应 (字节)
功能码号 (字节)
功能码设 定/实际值
(字)
控制/状 态字
(字)
主设定/ 实际值
异或校验
(字) (字节)
1514 13 12 1110 9 8 7 6 5 4 3 2 1 0
功能码号 功能码组号 命令/响应字(码)
67
起 始 字 节
从 机 地 址
控 制 字
控 制 字
运行 数据 设定
运行 数据 设定
异 或 校 验
字节定义 头 地址 控制区 数据区 校验
变频器至控制器:
发送顺序 1 2 3 4 5 (字节)
67
起 始 字 节
从 机 地 址
状 态 字
状 态 字
实际 运行 数据
实际 运行 数据
异 或 校 验
字节定义 头 地址 状态区 数据区 校验
数据帧格式示意图
起始字节 从机地址 (字节) (字节)
用户数据
异或校验 (字节)
76543210
单机地址或群组地址 =0:单机地址 =1:群组地址
RS485通讯协议
命令字(响应字)+功能码号(2个字节,16BIT)
数据含义:主机发送的命令或从机对命令的应答。
功能码组号范围0~16(BIT8~BIT11),功能码的范围0~99(BIT0~BIT7),参见 TD3000