详解RS485通讯程序代码及技术介绍
- 格式:pdf
- 大小:177.16 KB
- 文档页数:17
HTX48501操作手册该产品的功能是负责把控制器的信号转换为标准的modbus协议信号。
一、硬件接口该产品使用RS485接口与modbus协议的主站进行通信。
RS485接口采用3线进行通信,分别为A,B,PGND。
二、软件接口使用modbus标准协议对可燃气体报警系统的信号进行解析。
使用到modbus协议的功能代码为1,2,3,4,5。
三、Modbus协议说明1.传输协议modbus传输模式:RTU波特率:9,600bps传输字节特性:起始位:1位数据位(最小位优先):8位奇偶校验:奇校验停止位:1位错误校验:CRC校验2.协议解析该协议支持两种数据访问模式,分别为位地址和寄存器地址(16位)。
a.地址表示该从modbus设备的通信地址(该地址的范围为1~247),该地址由控制器进行设置。
b.c.数据访问地址数据访问地址:就是访问的寄存器起始地址。
各种类型数据的具体起始访问地址(十进制表示)如下:x000:探测器的浓度x064:探测器的状态x128:模块的开关状态x168:控制器状态控制器中最多允许接入128个探测器,64个外部模块,4个内部模块。
地址以十进制数进行表示,千位为X,表示x的值可以为1~9。
其它位数的值固定。
数据访问地址的增量为2,比如:x000表示1号探测器,x001也表示1号探测器,x002和x003表示2号探测器。
(即访问地址除以2然后加1就是具体设备的编号)。
d.数据数据:通信发送要处理的实际数据。
注意:应答数据不能够超过255个字节。
e.CRC校验Modbus协议采用16位的CRC校验。
3.设备状态说明探测器状态如下:0:探头短路1:探头断线2:探头老化3:其它故障4:未标定5:零点变化7:无响应9:探头自检a:正常d:预报警e:低限报警f:高限报警4.modbus消息例子a.读取模块的开关状态实例1:发送:表示1,2,3,4号模块都断开。
实例2:应答:表示模块2闭合,内部模块3断开,模块4~6闭合。
rs485通信协议介绍附录:RS485串⾏通讯协议1 主要性能本变频器通过内置的RS485标准接⼝,能与个⼈计算机、PLC 或同系列的变频器等连接,进⾏主从式、异步半双⼯串⾏通信。
其主要性能参见下表:项⽬规范适⽤机型 ALPHA3000系列变频器物理级EIA RS485 传输线屏蔽双绞线配线最长长度 500⽶连接台数主机⼀台,从机31台传输速度19200bps,9600bps,4800bps,2400bps,1200bps,600bps,300bps 数据交换⽅式异步串⾏、半双⼯传送协议点对点或⼴播字长 11位停⽌位长度 1位帧长 14字节固定奇偶校验奇校验出错检查⽅式异或校验2硬件连接 2.1硬件联接如下图:图 1 多台变频器⽤主机控制连接⽰意图图中的MASTER (主机)是ALPHA3000变频器、PC 机或可编程控制器(PLC ),图中的SLAVE (从机,在虚线框内)是变频器。
变频器做为主机,只要将从机的RS485端⼦和主机的RS485同名端⼦相联接即可;如果⽤PC 机或PLC 做为主机,则要在主机和总线之间增加⼀个RS485的转接器。
RS458串⾏总线接⼝最多可连接31台变频器做从机,每⼀个从机变频器都有⼀个唯⼀的号码(ID ),主机依靠ID 来识别每⼀台从机。
2.2 RS485转换器RS485转换器采⽤DB9/DB9外形,带孔的⼀端为RS232,带针的⼀端为RS485。
转换器外带接线转换头把RS485端的DB9接线转换为螺丝接线柱,便于通讯线缆的安装和拆卸。
接线转换头上“A+”为485收/发正端,“ B-”为485收/发负端,“GND”为485地线。
RS485接⼝组成半双⼯⽹络,⼀般只需⼆根连线,为获得良好的抗噪声⼲扰性和较长的传输距离,建议采⽤屏蔽双绞线传输。
3通讯协议3.1概述3.1.1通讯⽅式采⽤USS协议。
主机和从机之间⽤轮询的⽅式来进⾏通讯。
由主机启动每⼀次通信,主机向从机变频器发送任务报⽂,从机接到主机的任务命令后返回响应报⽂并执⾏相应动作。
RS485通信协议协议名称:RS485通信协议一、引言RS485通信协议是一种用于在多个设备之间进行数据传输和通信的标准协议。
本协议旨在规范RS485通信的数据格式、传输方式和通信协议,以确保设备之间的可靠通信和数据交换。
二、范围本协议适用于使用RS485通信接口的各种设备,包括但不限于工业自动化设备、仪器仪表、数据采集设备等。
三、术语定义1. RS485通信:使用差分信号进行数据传输的半双工通信方式。
2. 主设备:发起通信请求的设备。
3. 从设备:响应通信请求的设备。
4. 数据帧:包含数据信息的通信单元。
5. 起始位:数据帧的起始标识位。
6. 终止位:数据帧的结束标识位。
7. 奇偶校验:用于检测数据传输中的错误的校验机制。
8. 波特率:数据传输速率,以每秒传输的比特数表示。
四、通信协议1. 物理层RS485通信使用差分信号进行数据传输,其中A线和B线分别代表正向和反向信号线。
通信设备应符合RS485标准的物理层要求,包括信号电平、线路阻抗等。
2. 数据帧格式RS485通信使用数据帧进行数据传输。
数据帧格式如下:起始位 | 数据位 | 奇偶校验位 | 停止位起始位:一个字节的起始标识位,用于标识数据帧的开始。
数据位:包含要传输的数据信息,可以是一个或多个字节。
奇偶校验位:用于检测数据传输中的错误,可以选择奇校验、偶校验或无校验。
停止位:一个字节的停止标识位,用于标识数据帧的结束。
3. 通信流程RS485通信的通信流程如下:主设备发送请求帧 -> 从设备接收请求帧并解析 -> 从设备执行请求操作 -> 从设备发送响应帧 -> 主设备接收响应帧并解析4. 数据传输RS485通信使用半双工通信方式,即同一时间只能有一方发送数据。
通信设备应在发送数据前先检测总线是否空闲,以避免冲突。
5. 错误处理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 串⼝连接起来,并且使⽤完全相同的异步串⾏通信协议。
RS485通讯1. 引言RS485是一种串行通信协议,用于在多个设备之间进行双向数据传输。
它是一种高性能的通讯协议,常用于工业自动化、仪器仪表、门禁系统等领域。
本文将介绍RS485通讯的基本原理、使用方法以及常见的应用场景。
2. 基本原理RS485通讯使用差分信号传输,可以抵抗电磁干扰和噪声。
它采用两条相对独立的传输线(A线和B线),通过不同的电平表示逻辑1或逻辑0。
其中,逻辑1对应线A为高电平,线B为低电平;逻辑0对应线A为低电平,线B为高电平。
通过这种方式,数据可以在多个设备之间进行可靠的传输。
3. 硬件连接在使用RS485通讯时,需要将所有设备连接到一个共享的总线上。
每个设备都需要两条连接线(A线和B线)以及一个共享的地线。
通常,可以使用终端电阻来匹配总线阻抗并提高信号质量。
4. 传输方式RS485通讯可以采用两种传输方式:全双工和半双工。
4.1 全双工通讯在全双工通讯中,设备可以同时发送和接收数据。
发送数据的设备需要将数据发送到总线上,并通过差分信号传输给其他设备。
同时,接收数据的设备可以监听总线上的数据并将其解析。
4.2 半双工通讯在半双工通讯中,设备的发送和接收操作是交替进行的。
设备在发送数据时,需要先将总线设置为发送模式,并将数据发送到总线上。
其他设备在接收数据时,将总线设置为接收模式,并监听数据。
5. 通讯协议RS485通讯可以使用多种协议进行数据交换,常见的有MODBUS、DMX512等。
这些协议定义了数据的传输格式、通讯方式和功能码等。
5.1 MODBUS协议MODBUS是一种常用的通讯协议,适用于工业自动化领域。
它定义了数据的传输格式,并提供了读写寄存器等功能。
MODBUS协议支持点对点和多点通讯。
5.2 DMX512协议DMX512是一种用于舞台灯光控制的通讯协议。
它定义了数据的传输格式和通讯方式。
DMX512通讯一般采用全双工方式进行。
6. 应用场景RS485通讯在许多领域都有广泛的应用。
用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.通讯从机号:1;ii.通讯速率:9600 BPS;iii.效验:无;iv.停止位:2;v.数据位:8;c)键盘具体操作: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.MODBUS规定:寄存器都以4开始(内置);ii.1102=7;外部1有效(也可用键盘设置);iii.1103=8;由串行通讯给定(也可用键盘设置);iv.0002=初始频率;如果不设置,为菜单1104的值;v.0001=0x06;命令寄存器:0001;vi.0001=0x0f;vii.0001=0x2f;启动;viii.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。
通信
一、联机方式
自动化生产线各工作站中PLC之间通过RS-485串行通信的方式实现互连,构成分布式的控制系统。
二、N:N网络功能
N:N网络功能,就是在最多8台FX可编程控制器之间,通过RS-485通信连接,进行软元件相互连接。
1)根据要链接的点数,有3种模式可以选择。
2)数据的链接是在最多8台FX可编程控制器之间自动更新。
3)总延长距离最大可达500m。
三、链接模式及链接点数
四、N:N网络接线图
五、N:N网络中使用的软元件如下:
1.N:N网络设定用的软元件
是用于设定N:N网络的软元件。
使用N:N网络时,必须设定下列的软元件。
2.判断N:N网络错误用的元件
用于判断N:N网络错误。
请将链接错误输出到外部,并在顺控程序的互锁等中使用。
3. 链接软元件
是用于发送接收各可编程控制器之间的信息的软元件。
根据在相应站号设定中设定的站号,以及在刷新范围设
定中设定的模式不同,使用的软元件编号及点数也有所不同。
1)模式0时
2) 模式1时
3) 模式2时
三菱PLC 485通讯示例(2个PLC)
题目:
按下SB1(0#PLC 的X0),灯L1(1#PLC 的Y0)亮。
按下SB2(1#PLC 的X1),灯L2(0#PLC 的Y1)亮。
通讯线连接方式:
主站程序:
从站程序:。
RS485通信示例程序看程序时请配合芯片资料一起看,公布源码不是为了抄袭,而是为了相互学习,如果有不对的地方还请指出来,谢谢!/*===================================================== ===程序说明:PC端通过RS232-RS485芯片转换后再经过一个RS485收发芯片MAX485连接单片机的RX和TX(RO-RX,DI-TX)的通信示例程序控制发送和接收的引脚为P2.7,使用时注意正确连接!作者:绘天地点:成都信息工程学院====================================================== ==*/#include <reg52.h>#include "com_communication.h"sbit SHRL=P2^7;/*高电平发送,低电平接收*/void main(){int c;UartInit();SHRL=0;/*保持为发送状态*/while(1){if ( RI ) //如果收到数据{RI = 0; //清除接收标志c = SBUF; //读取收到的数据SHRL=1;UartSendChar(c); //回送收到的数据SHRL=0;}}}所调用的头文件:#ifndef _com_H_#define _com_H_//定义波特率(取值1200、2400、4800、9600、19200等)#define BaudRate 19200L/*********************************************************************** ********函数:UartInit()功能:串行口初始化************************************************************************ *******/void UartInit(){SCON = 0x50; //串口方式1(8位UART),允许接收PCON |= 0x80; //波特率加倍TMOD &= 0x0F; //设置T1为8位自动重装定时器,用于产生波特率TMOD |= 0x20;TH1 = TL1 = 256 - (11059200L / 12) / (16 * BaudRate); //设置T1初值TR1 = 1; //启动T1}/*********************************************************************** ********函数:UartSendChar()功能:通过串行口发送单个字节参数:c是被发送的字节数据,取值0x00~0xFF************************************************************************ *******/void UartSendChar(char c){SBUF = c; //数据写入SBUF,同时启动硬件发送过程while ( !TI ); //等待发送完毕TI = 0; //清除发送标志}#endif。
精通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是信号“-”。