RS232、RS422、RS485硬件及RS指令、RS2指令应用知识学习
一、串行(异步/同步)通讯、并行通讯、以太网通讯
二、单工通讯/半双工通讯/双工通讯
三、常用硬件接口(工业上基本是RS485两线制的接线)
常用硬件接口RS232/RS422/RS485,以下为DB9公母头PIN脚对应信号,图三是RS485两线制接法
1. RS232(即电子领域上的UART通讯)
异步串行通信口UART与这个RS232基本是一个协议,只是电平标准不同而已。
(UART 通常使用 TTL 电平,TTL电平信号规定,+5V等价于逻辑“1”,0V等价于逻辑“0”(采用二进制来表示数据时)。这样的数据通信及电平规定方式,被称做TTL(晶体管-晶体管逻辑电平)信号系统。)
特性:
1、接口电平高(5-15V),容易烧坏接口芯片
2、传输速率低,仅20Kbit/s。
3、传输距离短,仅有15米。
4、只能点对点传输,所以只能用在两个设备之间通讯
5、由于使用3根线,所以RS232即支持全双工,又支持半双工
6、采用单端通讯,所以容易产生共模干扰,抗干扰能力差。
单端通讯是指2、3号两根信号线的电压是相对与5号地线之间的电压。
A的RX 接B的TX,A的TX 接B的RX
以下实物接线:
2. RS422
将RS232的TX/RX分成两组差分信号
特性:
1、总共4根通讯线+1根地线。
2、比232驱动能力更强。可以在通讯线上挂10个点,1个主站,其余9个为从站。
3、由于采用4根通讯线,所以可以实现全双工通讯,如FX系列PLC的下载线。
4、最大传输距离1200米左右。
5、最大传输速度10Mbit/s。
6、RS422作为485的过度,目前已不怎么使用。
接线:
3. RS485
分两线制、四线制接法、
两线制是将四线制的RX+/TX+接成一条线,RX-/TX-接成一条线,使4线变成2线。
a. 四线制
和422的用法基本相同,可以使用点对多通讯,与422不同的是它最多可以挂32个设备。
b. 两线制
采用AB两根信号线做差分信号传输,接线简单,抗干扰能力强,传输距离长,理论1200米,实际可以达到3000米,如果距离更长还可以加中继器放大信号延长通讯距离。
由于只有两根通讯线,又做成差分线,所以只能做半双工通讯。
该通讯方式是目前工业现场最常用的通讯方式。 两线制理论上总线可以挂254个设备,但是会由于芯片功率限制,可能挂不了254个,如FX3U PLC最多可以挂32个从站。
实物接线:
RS232、RS485和USB之间都可以通过转换器相互转换
四、串口通讯底层与参数设置
1. 底层
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。
串口在电子领域上多用于ASCII码字符的传输,而在工业领域更多使用的是字节数据传送(直接收ASCII码原数据),比如发送字节75,则一个字节帧的信号为:
起始位0 + 数据帧假如75为0111 0101 + 奇偶校验位 (1个Bit位)+ 停止位(1或2个Bit位)。
通信使用3根线完成:(1)地线,(2)发送,(3)接收。
由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配:
a、波特率
这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。
b、数据位
这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准 ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。
c、停止位
用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。
d、奇偶校验位
在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对于偶校验,校验位为0,保证逻辑高的位数是偶数个。如果是奇校验,校验位位1,这样就有3个逻辑高位。高位和低位不真正的检查数据,简单置位逻辑高或者逻辑低校验。这样使得接收设备能够知道一个位的状态,有机会判断是否有噪声干扰了通信或者是否传输和接收数据是否不同步。
2. 串口发送数据的格式参数设置:
五、串口调试助手
可以通过调试助手练习
六、PLC串口通讯参数设置
- 参数含义
- 参数含义
- 参数设定图
七、RS指令(FX3U举例)
- 程序
RS只操作8个Bits位,高8位的字节是用不上的。
- 调试助手收到信息
八、RS2指令(FX3U举例)
注意S*/n必须是16位全用上的,不能只用8Bits,且m=2S*,n=2D*的,因为是字节数,不是D,n只能是K1/K2,不能K0,一般不会用得上K0,只有FX3G才会用
- 程序
- 调试助手收到信息
- 数据存入成功,先存低8Bits,再高8Bits
九、相关知识
1. 字节合并BTOW指令
BTOW:byte to word
D=n/2个
练习:
练习1:
K3000=H7530,D0要存30,D1要存75,因先发低8Bits,故要发的数据为30 75。直接从调试助手发送即可。
- 练习1实现程序
- 练习2实现程序
任意不连续字节合并:
2. 字节拆分WTOB指令
WTOB:word to byte
S=n/2
任意拆分成两个字节
十、用RS485通讯获取绝对值编码器的角度.
主要是看看单圈数值。因为传感器只能感应到单圈,其最多感应到0-360度。
相当于是发ModBus报文回来
- 实现程序