RS232、RS422、RS485硬件及RS指令、RS2指令应用知识学习

news2024/12/23 15:07:45

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报文回来

在这里插入图片描述
在这里插入图片描述

  • 实现程序
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/905086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Delegates.observable追踪观察可变数据更新,Kotlin

Delegates.observable追踪观察可变数据更新&#xff0c;Kotlin import kotlin.properties.Delegates import kotlin.reflect.KPropertyclass Person {var name: String by Delegates.observable("fly") { prop: KProperty<*>, old: String, new: String ->p…

SpringBoot 学习(04):Idea 中控制启动命令的详细过程 环境区分案例

Idea 启动SpringBoot的命令 C:\Users\Administrator\.jdks\corretto-17.0.8\bin\java.exe -XX:TieredStopAtLevel1 -Dspring.output.ansi.enabledalways -Dcom.sun.management.jmxremote -Dspring.jmx.enabledtrue -Dspring.liveBeansView.mbeanDomain -Dspring.applica…

EasyRecovery14数据恢复软件支持各类存储设备的数据恢复

EasyRecovery14数据恢复软件专业数据恢复软件支持电脑、相机、移动硬盘、U盘、SD卡、内存卡、光盘、本地电子邮件和 RAID 磁盘阵列等各类存储设备的数据恢复。 目前市面上有许多数据恢复软件&#xff0c;但褒贬不一&#xff0c;而且数据恢复软件又不是一款会被经常使用的软件&a…

【多模态】26、视觉-文本多模态任务超详细介绍 「CLIP/LSeg/ViLD/GLIP/ALBEF/BLIP/CoCa/BEIT」

文章目录 准备知识一、CLIP&#xff1a;不同模态简单对比的方法更适合于图文检索1.1 CLIP 在分割上的改进工作1.1.1 LSeg1.1.2 Group ViT 1.2 CLIP 在目标检测上的改进工作1.2.1 ViLD1.2.2 GLIPv11.2.3 GLIPv2 二、ViLT/ALBEF &#xff1a;多模态融合在 VQA/VR 任务中更重要三、…

基于protobuf和httplib的在线通讯录项目框架|Protobuf应用小项目

前言 那么这里博主先安利一些干货满满的专栏了&#xff01; 首先是博主的高质量博客的汇总&#xff0c;这个专栏里面的博客&#xff0c;都是博主最最用心写的一部分&#xff0c;干货满满&#xff0c;希望对大家有帮助。 高质量博客汇总https://blog.csdn.net/yu_cblog/categ…

学习设计模式之适配器模式,但是宝可梦

前言 作者在准备秋招中&#xff0c;学习设计模式&#xff0c;做点小笔记&#xff0c;用宝可梦为场景举例&#xff0c;有错误欢迎指出。 适配器模式 意图&#xff1a;将一个类的接口转换成客户希望的另一个接口 主要解决&#xff1a;把现有对象放到新环境里&#xff0c;而新…

leetcode几个数组题

数组理论基础 数组是存放在连续内存空间上的相同类型数据的集合 因为数组的在内存空间的地址是连续的&#xff0c;所以我们在删除或者增添元素的时候&#xff0c;就难免要移动其他元素的地址 二分查找 移除元素 有序数组的平方 209.长度最小的子数组

设计模式——开闭原则

文章目录 基本介绍看下面一段代码方式 1 的优缺点改进的思路分析 基本介绍 开闭原则&#xff08;Open Closed Principle&#xff09;是编程中最基础、最重要的设计原则 一个软件实体如类&#xff0c;模块和函数应该对扩展开放(对提供方)&#xff0c;对修改关闭(对使用方)。用抽…

wustoj2008折扣

#include <stdio.h> int main() {int n,m;double c;scanf("%d%d",&n,&m);cn*(m/10.00);printf("%.2lf",c);return 0;}

茂名 湛江阳江某学校 ibm x3850服务器维修经历

简介&#xff1a;中国广东省阳江市某中学联想 IBM System x3850 x6服务器维修 io板故障处理经历分享&#xff1a; 这一天一位阳江的老师经其他学校老师介绍推荐对接我&#xff0c;说他们学校有一台ibm服务器出问题了&#xff0c;老师大致跟我描述了一下这台服务器发生故障的前…

3、Spring之底层架构核心概念解析

BeanDefinition BeanDefinition表示Bean定义,BeanDefinition中存在很多属性用来描述一个Bean的特点。比如: class,表示Bean类型scope,表示Bean作用域,单例或原型等lazyInit:表示Bean是否是懒加载initMethodName:表示Bean初始化时要执行的方法destroyMethodName:表示Be…

【算法刷题之数组篇(1)】

目录 1.leetcode-59. 螺旋矩阵 II&#xff08;题2.题3相当于二分变形&#xff09;2.leetcode-33. 搜索旋转排序数组3.leetcode-81. 搜索旋转排序数组 II(与题目2对比理解)&#xff08;题4和题5都是排序双指针&#xff09;4.leetcode-15. 三数之和5.leetcode-18. 四数之和6.leet…

Python制作爱心并打包成手机端可执行文件

前言 本文是想要将python代码打包成在手机上能执行的文件 尝试了几个库&#xff0c; 有这也那样的限制&#xff0c;最终还是选了BeeWare 环境&#xff1a;python3.7.x 开始 找到打包有相关工具os-android-apk-builder&#xff0c;buildozer&#xff0c;cx_Freeze&#xff…

AMBA总线协议(1)——概述

目录 一、AMBA总线简介 二、基于AMBA 的典型微控制器 三、AHB介绍 1、概述 2、典型结构 &#xff08;1&#xff09; AHB 主机&#xff08;AHB Master&#xff09; &#xff08;2&#xff09;AHB 从机&#xff08;AHB Slave&#xff09; &#xff08;3&#xff09;AHB 仲裁…

基础论文学习(1)——ViT

https://zhuanlan.zhihu.com/p/308301901 1 图片分块和降维 因为transformer encoder的输入需要序列&#xff0c;所以最简单做法就是把图片切分为patch&#xff0c;然后拉成序列即可。 假设输入图片大小是256x256&#xff0c;打算分成64个patch&#xff0c;每个patch是32x32…

[MySQL]02关于事务的解析

目录 原子性 一致性 持久性 隔离性 事务隔离级别 并发执行可能存在问题 脏读问题 不可重复读 幻读 难点解析 原子性 事务最核心的就是原子性 以前人们认为原子不可再分&#xff0c;用原子性来表示一个事务不可分割 update account set balancebalance-500 where nam…

Go语言入门指南:基础语法和常用特性(下)

上一节&#xff0c;我们了解Go语言特性以及第一个Go语言程序——Hello World&#xff0c;这一节就让我们更深入的了解一下Go语言的**基础语法**吧&#xff01; 一、行分隔符 在 Go 程序中&#xff0c;一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ;…

MySQL基础篇(二)

DML 定义&#xff1a;Data Manipulation Language、数据操作语言&#xff08;增删改&#xff09; 添加数据&#xff08;INSERT&#xff09;修改数据&#xff08;UPDATE&#xff09;删除数据&#xff08;DELETE&#xff09; 添加数据&#xff08;INSERT&#xff09; 给指定的…

day0818

1. #include <myhead.h> int file_len(const char*strfile, const char*dstfile); void file_copy(const char* strfile, const char* dstfile, int start, int size); int main(int argc, const char *argv[]) {//判断是否传入两个文件if(argc!3){printf("input fi…

最新消息:谷歌将在Chromebook上运用UWB技术,无线通信更上一层

超宽带&#xff08;UWB&#xff09;技术是一种创新的短距离无线通信技术&#xff0c;具有高速数据传输和精确定位物体位置的优势。尽管该技术已经存在一段时间&#xff0c;但最近开始广泛应用于各种设备中。据最新报道&#xff0c;Pixel Watch 2可能会搭载UWB模块&#xff0c;这…