CAN 协议即控制器局域网络 (Controller Area Network)简称,由研发和生产汽车电子产品著称的德国 BOSCH 公司开发,成为国际标准ISO11519以及ISO11898。
1、激光雷达的工作原理是什么? 激光雷达是一种以发射激光束来探测目标位置、速度等特征量的雷达系统。这个系统也可以通过扫描发射和接收装置来获取目标物体的三维形状,在不同角度发射和接收激光脉冲,可以构建出物体的完整三维轮廓。激光雷达的工作原理基于光的发射、传播和接收,最终通过测量光脉冲从发射到接收的时间来确定距离,下图是激光雷达测量距离的基本步骤。 发射激光脉冲:激光雷达设备发射一束激光脉冲,这些脉冲通常是红外或近红外光。 光的传播:激光脉冲以光速传播,向目标物体移动。 光的反射:当激光脉冲遇到目标物体时,部分光会被反射回来。 接收反射光:激光雷达设备中的接收器捕捉反射回来的激光。接收器通常与发射器紧密对齐,以确保接收到的光是直接从目标物体反射回来的。 时间测量:设备内部的计时器记录激光脉冲发射和接收的时间间隔。由于光速是已知的,这个时间间隔可以用来计算光脉冲往返目标物体的距离。 计算距离:距离的计算公式是,距离=光速×时间/2,其中时间是光脉冲往返的时间。 数据处理:测量到的距离数据可以用于生成点云,这激光雷达在短时间内可以获取大量的位置点信息(或者称为激光点云),这些点云可以进一步处理,生成三维模型或地形图。 2、激光雷达如何分类?激光雷达有很多种不同的分类方法:(1)按照波长分类,可分为905nm、1550nm、940nm等,目前主流的激光雷达主要有905nm和1550nm两种波长。 905nm:激光雷达接收器可以直接选用价格较低的硅材质,905nm激光雷达成为了当下最主流的激光雷达所选用的波长。不过人眼可识别的可见光波长处在390~780nm,而400~1400nm波段内激光都可以穿过玻璃体,聚焦在视网膜上,而不会被晶状体和角膜吸收,人眼视网膜温度上升10℃就会造成感光细胞损伤。因此905nm激光雷达为了避免对人眼造成伤害,发射功率需先在在对人无害的范围内。因此,905nm激光的探测距离也会受到限制。 1550nm:相比905nm激光,1550nm激光会被人眼晶状体和角膜吸收,不会对视网膜产生伤害,因此1550nm激光雷达可以发射更大功率,探测距离也可以做到更远。但是1550nm激光雷达无法采用常需要用到更加昂贵的铟镓砷(InGaAs)材质,因此在价格上较905nm激光雷达会较高。 (2)按照测量方式分类,可以分为ToF激光雷达和FMCW激光雷达 ToF(Time of Flight,飞行时间):ToF激光雷达通过直接测量发射激光与回波的信号的时间差,基于光在空气中的传播速度得到目标物体的距离信息,具有响应速度快,探测精度高的优势。ToF方案技术成熟度高,成本相对低,为目前主要激光雷达使用的方案。 FMCW(Frequency Modulated Continuous Wave,调频连续波):FMCW激光雷达将发射激光的光频进行线性调制,通过回波信号与参考光进行相干拍频得到频率差,从而间接获得飞行时间推出目标距离。FMCW具有可直接测量速度信息和抗干扰强的优势。 (3)按照扫描方式分类,可以分为机械式、半固态和全固态雷达,雷达正在经历机械式到半固态,再由半固态到全固态的发展过程。 机械式激光雷达:以一定的速度旋转,在水平方向采用机械结构进行 360°的旋转扫描,在垂直方向采用定向分布式扫描,机械式激光雷达的发射器、接收器都跟随扫描部件一同旋转。机械式激光雷达作为最早装车的产品,技术已经比较成熟,因为其是由电机控制旋转,所以可以长时间内保持转速稳定,每次扫描的速度都是线性的。 半固态激光雷达:发射器和接收器固定不动,只通过少量运动部件实现激光束的扫描。半固态激光雷达由于既有固定部件又有运动部件,因此也被称为混合固态激光雷达。根据运动部件类型不同,半固态激光雷达又可以细分为转镜类半固态激光雷达、MEMS半固态激光雷达和棱镜类半固态激光雷达。 全固态激光雷达:内部完全没有运动部件,使用半导体技术实现光束的发射、扫描和接收。固态激光雷达又可分为Flash固态激光雷达和OPA固态激光雷达。其中OPA(Optical Phase Array的简称,即光学相控阵)固态雷达应用的是相控阵技术,相控阵雷达发射的是电磁波,而OPA激光雷达发射的是光,而光和电磁波一样也表现出波的特性,所以原理上是一样的。波与波之间会产生干涉现象,通过控制相控阵雷达平面阵列各个阵元的电流相位,利用相位差可以让不同的位置的波源会产生干涉(类似的是两圈水波相互叠加后,有的方向会相互抵消,有的会相互增强),从而指向特定的方向,往复控制便得以实现扫描效果。光和电磁波一样也表现出波的特性,因此同样可以利用相位差控制干涉让激光“转向”特定的角度,往复控制实现扫描效果。 3、激光雷达的应用场景有哪些? 激光雷达在众多领域都发挥着重要作用,并且随着技术的不断发展,其应用范围还在不断扩大。 自动驾驶:在自动驾驶汽车中,激光雷达能够精确地感知车辆周围的环境,包括车辆、行人、障碍物的位置、速度和形状等,为车辆的路径规划和决策提供关键信息。 智能交通:用于交通流量监测、道路状况评估和智能交通信号控制。它可以实时检测道路上的车辆数量、速度和间距,优化交通流量。 测绘与地理信息:能够快速、高精度地获取地形、地貌和建筑物的三维信息,用于地图绘制、城市规划和土地测量。比如在大规模的地形测绘项目中,激光雷达可以生成详细的数字高程模型。 工业自动化:在工厂自动化中,用于物料搬运、机器人导航和质量检测。例如,在仓储物流中,激光雷达可以帮助自动导引车(AGV)准确地在仓库中行驶和装卸货物。 航空航天:用于飞机的防撞系统、地形跟随和地形规避。同时,在卫星遥感中,激光雷达可以测量大气参数和地表特征。 军事领域:用于目标侦察、武器制导和战场态势感知等。例如,在导弹制导系统中,激光雷达可以提高导弹的命中精度。 4、激光雷达选型时有哪些关键参数? 选择激光雷达时需要注意一些关键规格参数 测距精度:表示为距离的误差 角分辨率:可以探测到最小角度,与激光束发射和接收统计相关。 扫描频率:每秒扫描次数,也称帧率,影响激光雷达的实时性能。 视场角:雷达可以覆盖的水平和垂直角度范围,决定了激光雷达可以检测到多少个目标。 工作距离:可以探测到的最远距离,实际应用和激光功率、接收机灵敏度等相关。 数据输出方式:输出数据的格式和接口类型 扫地机器人是应用非常广泛的机器人形态,扫地机器人的的关键指标主要包括,清洁能力指标,含清洁吸力、清扫部件设计、续航时间和清扫面积指标、尘盒容量、噪音指标等;智能化指标,含建图能力、导航能力、传感器配置、避障能力、自动回充能力等;控制APP易用性指标,含清扫模式设定、定时清扫设定、虚拟墙设置、地图存储等。 1、扫地机器人关键的技术指标有哪些?(1)清洁能力 吸力指标:吸力的强弱直接影响清扫效果,是衡量扫地机器人清洁能力的重要指标,单位为帕斯卡(Pa)。日常家用清洁1500~2500Pa的吸力可以应对灰尘、毛发等常见垃圾;如果需要清理较大颗粒杂物或较顽固的污渍,则需要更高的吸力。当然,吸力越大通常意味着噪音和能耗也会相应增加。 清扫部件设计:包含滚刷、边刷等清洁部件的设计。滚刷位于扫地机器人底部吸尘口前方,主要作用是将底部灰尘扫起。滚刷材质有胶条滚刷和刷毛滚刷,胶条滚刷能刮掉地面顽固颗粒,刷毛滚刷可拔出地砖和地板缝隙的灰尘,一些产品采用两者结合的方式,滚刷的形状、长度、转速等设计也会影响清扫效果。边刷位于扫地机器人的边缘,可将墙边和角落的灰尘清扫出来,边刷的长度、材质以及转动灵活度等也会影响其清扫性能。对于扫拖一体的扫地机器人还需要考虑拖布的设计,拖布的材质、形状、湿润度控制等都很关键。 清扫面积和续航时间指标:续航时间决定了机器人在一次充电后能清扫的面积,单位为分钟;清扫面积以平方米(m²)计算。电池容量在3000mAh的家用扫地机器人可满足大多数日常清洁需求。 尘盒容量设计:尘盒用于收集垃圾,尘盒容量越大,可容纳的垃圾就越多,减少清理尘盒的频率。 噪音指标:清扫工作时产生的噪音,通常以分贝(dB)为单位,影响用户体验。噪音在60分贝以下的扫地机器人较为适合家用场景使用,一些扫地机器人会采用涡流降噪技术等方式来降低噪音。 (2)智能化程度 建图能力:通过机器人的激光传感器扫描周围环境,构建地图,定位精度高、建图速度快。 定位和导航:可通过激光雷达传感器、惯性传感器、视觉传感器等协同导航。定位和导航中应用的不同传感器都会遇到一些限制,如应用视觉导航对光线条件有要求,光线较暗影响导航精度;应用陀螺仪和加速度计等惯性传感器获取机器人的运动信息,容易产生累积误差。 路径规划:合理的路径规划可提高扫地机器人的清洁效率和覆盖率,避免漏扫和重复清扫。比如根据房间的布局和障碍物分布,自动规划高效的清扫路线,先沿边清扫、再分区清扫等。 避障能力:扫地机器人在清扫过程中避免碰撞家具、墙壁等障碍物,减少机身磨损和损坏。通过红外避障、超声波避障、激光避障、视觉避障、碰撞传感器等协同实现避障。不同成本的扫地机器人,会配置不同的传感器组合。 自动充电:自动回充功能可以让扫地机器人在电量不足时自动返回充电座充电,充电完成后继续工作, (3)控制APP易用性指标 机器人需支持手机等终端的APP控制、并有清洁模式选择、定时清扫、虚拟墙设置、地图存储等功能。 2、"聪明"和"不聪明"的扫地机器人的区别是什么? 智能化的扫地机器人需要具备自主导航、路径优化、动态避障、自动充电等能力。扫地机器人的智能化差别主要体现在以下几个方面。 (1)扫地机器人导航能力差别 不聪明的:通常采用随机导航,仅仅依靠超声波探测实现基础避障;容易重复清扫或遗漏区域。 聪明的:使用激光雷达、摄像头等进行地图构建和路径规划,能够高效避障。 (2)扫地机器人环境感知能力差别 不聪明的:传感器较少,缺乏学习能力,仅能进行基本的碰撞检测。 聪明的:配备多种传感器,通过不同的传感器协同能识别不同地面类型、障碍物和污垢区域。 (3)扫地机器人清扫模式能力差别 不聪明的:功能简单,可能有一种或几种基本清扫模式。 聪明的:支持多种清扫模式,如自动清扫,局部清扫,边缘清扫,定点清扫,区域清扫,深度清扫,静音清扫等。聪明的扫地机器人会跟人一样,区分清楚哪些是干净的地方哪些是比较脏的地方,通过先沿边清扫、再分区清扫、最后定点深度清扫等组合操作实现智能清扫。 早期的扫地机器人就属于“不聪明”的模式,模式是“随机”清扫,没有规划能力,走到哪里扫到哪里,碰到哪里就改变路线。现在智能化的扫地机器人是“聪明”的模式,清扫告别了“横冲直撞”的随机式,利用定位导航技术让清扫变得有规划,提高清扫效率,降低机器损耗。1、机器人进入了未知的环境会怎样? 当我们去了一个陌生的环境,为了迅速熟悉环境并到达自己想去的地方,如图书馆、旅店、咖啡厅等,我们会做下面这些事情。 眼睛观察周围地标,如建筑、大树、花坛等,并记住他们的特征。 根据双眼获得的信息,在自己的脑海中把特征地标在三维地图中重建出来,形成完整的对环境认知的三维信息。 在行走时不断获取新的特征地标,并且校正自己头脑中的地图模型。 根据自己前一段时间行走获得的特征地标,确定自己的位置。 走了很长一段路的时候,我们可能会回头看看,和脑海中之前的地标进行匹配。 如以上五步在整个行进的过程中,我们同时进行定位和建图。如果将一个机器人放入未知的环境中的未知位置,是否有办法让机器人一边逐步描绘出此环境完全的地图,一边决定应该往哪个方向行进?例如扫地机器人,如何能不受障碍物影响行进到房间,并进入每个角落完成清扫工作。这就涉及到两个主要的任务,建图任务与定位任务,并且这两个任务是并发的。2、SLAM是什么?SLAM(Simultaneous Localization and Mapping,即同步定位与地图构建),是一种在机器人学、自动驾驶和移动机器人和增强现实等领域中非常重要的技术。SLAM最早由Smith、Self和Cheeseman于1988年提出,是实现真正全自主移动机器人的关键。SLAM技术解决的问题是,机器人被放置在一个它从未见过的环境中,SLAM技术让机器人在没有任何先验地图信息的情况下,通过自身的传感器来探索环境,同时构建出环境的地图,并在这个过程中确定自己在地图中的位置。定位(Localization)任务和地图构建任务(Mapping)是同时进行的。下图是一个3D SLAM的示例。 SLAM可以分为激光SLAM和视觉SLAM,激光SLAM可以分为2D SLAM和3D SLAM,视觉SLAM可以分为Sparse SLAM和Dense SLAM Sparse(稀疏) SLAM如下示例 Dense(密集)SLAM如下示例 SLAM技术的发展涉及到多个学科,包括计算机视觉、机器人学、人工智能和控制理论等。随着技术的进步,SLAM在精度、效率和应用范围上都有了显著的提升。 3、SLAM中有哪些关键技术点? (1)传感器技术:外部信息的采集依赖惯性测量单元(IMU)、霍尔编码器(Encoder)、激光雷达(Lidar)、深度摄像机等。 惯性测量单元:IMU提供姿态和位置信息, 霍尔编码器:通过编码器获取车轮的运动数据,原理参考霍尔传感器 - 从左手定则到嵌入式编码 (qq.com) 激光雷达:Lidar通过发射激光束来探测目标位置、速度等特征量,感知外部信息, 摄像机:包括单目摄像头、双目摄像头、深度摄像机,核心都是获取RGB和depth map(深度信息)。 (2)算法技术 应用SLAM算法的时候主要考虑下面几个方面 如何表示地图?比如根据实际场景需求去选择dense或sparse算法。 如何感知信息?比如选择激光雷达或者深度摄像机去感知外部环境。 如何关联传感器数据?对于不同sensor的数据类型、时间戳、坐标系表达方式各有不同,需要统一处理。 如何进行定位与构图?这是指实现位姿估计和建模,这里面涉及到很多数学问题,物理模型建立,状态估计和优化。 以视觉SLAM(VSLAM)为例,SLAM处理信息处理流程可以归纳为如下流程图,其中“前端”是视觉里程计,提取每帧图像特征点,利用相邻帧图像,进行特征点匹配,然后去除大噪声进行匹配,得到一个位姿信息,同时利用IMU提供的姿态信息进行滤波融合。“后端”则是通过非线性算法对前端输出的结果进行优化,涉及的数学知识较多,需利用滤波理论(EKF、UKF、PF)、或者优化理论等算法进行优化,最终得到最优的位姿估计。 常见的SLAM算法包括一下算法。PTAM算法,这是早期的视觉 SLAM 算法;Mono-SLAM算法,是单目视觉SLAM算法;ORB-SLAM算法,是基于 ORB 特征的视觉SLAM算法,具有较好的实时性和鲁棒性;还有RGBD-SLAM算法、LSD-SLAM算法等。实际应用中,SLAM建图具体实现方式会因使用的算法、传感器类型以及应用场景的不同而有所差异。 使用ROS实现机器人的SLAM是非常方便的,因为有较多现成的功能包可供开发者使用,如gmapping、hector_slam、cartographer、rgbdslam、ORB_SLAM、move_base、amcl等,并且开发者还能应用仿真环境进行验证。 4、SLAM技术在自动驾驶中的应用 (1)SLAM技术在自动驾驶中的应用体现在以下几个方面 环境感知:自动驾驶汽车通过搭载的传感器(如激光雷达、相机、雷达等)实时获取周围环境的信息。利用SLAM技术,车辆能够从这些传感器数据中提取特征,构建出周围环境的地图。 实时定位:在行驶过程中,车辆需要实时确定自身在地图中的位置。SLAM技术通过传感器数据和地图信息,计算出车辆的精确位置和姿态。这种定位不仅依赖于GPS,还依赖于车辆自身的传感器,确保在GPS信号弱或无信号的环境中也能准确定位。 路径规划:有了环境地图和自身定位信息,自动驾驶汽车可以进行路径规划。SLAM技术帮助车辆识别可行路径,避开障碍物,规划出最优行驶路线。 自动避障:在行驶过程中,车辆需要实时检测和避开障碍物。SLAM技术通过传感器数据,识别出前方的障碍物,并计算出避障路径。 回环检测:回环检测是SLAM中的一个重要环节,指的是车辆在行驶过程中识别出曾经经过的地点。这有助于校正地图和定位信息,避免重复探索和定位误差。 动态地图更新:环境是动态变化的,自动驾驶汽车需要不断更新其地图信息。SLAM技术能够实时处理新的传感器数据,更新地图,确保地图的准确性和时效性。 传感器融合:自动驾驶汽车通常搭载多种传感器,每种传感器都有其优缺点。SLAM技术通过融合不同传感器的数据,提高整体的感知能力和鲁棒性。 数据关联:不同传感器的数据类型和时间戳可能不同,SLAM技术需要将这些数据关联起来,确保数据的一致性和准确性。 (2)SLAM技术具体实现步骤 传感器数据采集:车辆通过激光雷达、相机、IMU、超声波等传感器获取周围环境的图像和距离信息。 特征提取与匹配:从传感器数据中提取特征点,并在不同时间点的图像中进行匹配。 位姿估计:利用特征点匹配结果,计算车辆在地图中的位置和姿态。 地图构建:将车辆的移动轨迹和环境特征结合起来,逐步构建出环境地图。 路径规划与优化:根据地图和车辆定位信息,规划出最优行驶路径,并在行驶过程中不断优化。 动态更新:实时处理新的传感器数据,更新地图和定位信息,应对环境变化。 通过这些步骤,SLAM技术为自动驾驶汽车提供了强大的环境感知和导航能力,确保其在复杂环境中的安全和高效行驶。 参考文档《一文看懂激光雷达LIDAR基本工作原理》 https://zhuanlan.zhihu.com/p/602055107
PLC与变频器两者是一种包含与被包含的关系,PLC与变频器都可以完成一些特定的指令,用来控制电机马达,PLC是一种程序输入执行硬件,变频器则是其中之一。 但是PLC的涵盖范围又比变频器大,还可以用来控制更多的东西,应用领域更广,性能更强大,当然PLC的控制精度也更大。变频器无法进行编程,改变电源的频率、电压等参数,它的输出频率可以设为固定值,也可以由PLC动态控制。 PLC是可以编程序的,用来控制电气元件或完成功能、通信等任务。 PLC与变频器之间通信需要遵循通用的串行接口协议(USS),按照串行总线的主从通信原理来确定访问的方法。总线上可以连接一个主站和最多31个从站,主站根据通信报文中的地址字符来选择要传输数据的从站,在主站没有要求它进行通信时,从站本身不能首先发送数据,各个从站之间也不能直接进行信息的传输。 PLC基本结构图 PLC可编程控制器的存储器可以分为系统程序存储器、用户程序存储器及工作数据存储器等三种。 1、系统程序存储器 系统程序存储器用来存放由可编程控制器生产厂家编写的系统程序,并固化在ROM内,用户不能直接更改。系统程序质量的好坏,很大程度上决定了PLC的性能。 其内容主要包括三部分:第一部分为系统管理程序,它主要控制可编程控制器的运行,使整个可编程控制器按部就班地工作,第二部分为用户指令解释程序,通过用户指令解释程序,将可编程控制器的编程语言变为机器语言指令,再由CPU执行这些指令;第三部分为标准程序模块与系统调用程序。 2、用户程序存储器 根据控制要求而编制的应用程序称为用户程序。用户程序存储器用来存放用户针对具体控制任务,用规定的可编程控制器编程语言编写的各种用户程序。 目前较先进的可编程控制器采用可随时读写的快闪存储器作为用户程序存储器,快闪存储器不需后备电池,断电时数据也不会丢失。 3、工作数据存储器 工作数据存储器用来存储工作数据,即用户程序中使用的ON/OFF状态、数值数据等。在工作数据区中开辟有元件映像寄存器和数据表。其中元件映像寄存器用来存储开关量、输出状态以及定时器、计数器、辅助继电器等内部器件的ON/OFF状态。数据表用来存放各种数据,它存储用户程序执行时的某些可变参数值及A/D转换得到的数字量和数字运算的结果等。 变频器基本结构图 变频器是把工频电源(50Hz或60Hz)变换成各种频率的交流电源,以实现电机的变速运行的设备,其中控制电路完成对主电路的控制,整流电路将交流电变换成直流电,直流中间电路对整流电路的输出进行平滑滤波,逆变电路将直流电再逆变成交流电。对于如矢量控制变频器这种需要大量运算的变频器来说,有时还需要一个进行转矩计算的CPU以及一些相应的电路。 PLC与变频器一般有三种连接方法 ①利用PLC的模拟量输出模块控制变频器PLC的模拟量输出模块输出0~5V电压信号或4~20mA电流信号,作为变频器的模拟量输入信号,控制变频器的输出频率。这种控制方式接线简单,但需要选择与变频器输入阻抗匹配的PLC输出模块,且PLC的模拟量输出模块价格较为昂贵,此外还需采取分压措施使变频器适应PLC的电压信号范围,在连接时注意将布线分开,保证主电路一侧的噪声不传至控制电路。 ②利用PLC的开关量输出控制变频器。PLC的开关输出量一般可以与变频器的开关量输入端直接相连。这种控制方式的接线简单,抗干扰能力强。利用PLC的开关量输出可以控制变频器的启动/停止、正/反转、点动、转速和加减时间等,能实现较为复杂的控制要求,但只能有级调速。 使用继电器触点进行连接时,有时存在因接触不良而误操作现象。使用晶体管进行连接时,则需要考虑晶体管自身的电压、电流容量等因素,保证系统的可靠性。另外,在设计变频器的输入信号电路时,还应该注意到输入信号电路连接不当,有时也会造成变频器的误动作。例如,当输入信号电路采用继电器等感性负载,继电器开闭时,产生的浪涌电流带来的噪声有可能引起变频器的误动作,应尽量避免。 ③PLC与RS-485通信接口的连接。所有的标准西门子变频器都有一个RS-485串行接口(有的也提供RS-232接口),采用双线连接,其设计标准适用于工业环境的应用对象。单一的RS-485链路最多可以连接30台变频器,而且根据各变频器的地址或采用广播信息,都可以找到需要通信的变频器。链路中需要有一个主控制器(主站),而各个变频器则是从属的控制对象(从站)。 PLC的变频器控制电机正反转接线图 1.按接线图将线连好后,启动电源,准备设置变频器各参数。 2.按“MODE”键进入参数设置模式,将Pr.79设置为“2”:外部操作模式,启动信号由外部端子(STF、STR)输入,转速调节由外部端子(2、5之间、4、5之间、多端速)输入。 3.连续按“MODE”按钮,退出参数设置模式。 4.按下正转按钮,电动机正转启动运行。 5.按下停止按钮,电动机停止。 6.按下反转按钮,电动机反转启动运行。 7.按下停止按钮,电动机停止。 8. 若在电动正转时按下反转按钮,电动机先停止后反转;反之,若在电动机反转时按下正转按钮,电动机先停止后正转。 PLC与变频器的接线图 PLC和变频器通讯方式 1、PLC的开关量信号控制变频器 PLC(MR型或MT型)的输出点、COM点直接与变频器的STF(正转启动)、RH(高速)、RM(中速)、RL(低速)、输入端SG等端口分别相连。PLC可以通过程序控制变频器的启动、停止、复位;也可以控制变频器高速、中速、低速端子的不同组合实现多段速度运行。但是,因为它是采用开关量来实施控制的,其调速曲线不是一条连续平滑的曲线,也无法实现精细的速度调节。 2、PLC的模拟量信号控制变频器 硬件:FX1N型、FX2N型PLC主机,配置1路简易型的FX1N-1DA-BD扩展模拟量输出板;或模拟量输入输出混合模块FX0N-3A;或两路输出的FX2N-2DA;或四路输出的FX2N-4DA模块等。优点:PLC程序编制简单方便,调速曲线平滑连续、工作稳定。 缺点:在大规模生产线中,控制电缆较长,尤其是DA模块采用电压信号输出时,线路有较大的电压降,影响了系统的稳定性和可靠性。 3、 PLC采用RS-485通讯方法控制变频器 这是使用得最为普遍的一种方法,PLC采用RS串行通讯指令编程。优点:硬件简单、造价最低,可控制32台变频器。缺点:编程工作量较大。 4、 PLC采用RS-485的Modbus-RTU通讯方法控制变频器 三菱新型F700系列变频器使用RS-485端子利用Modbus-RTU协议与PLC进行通讯。优点:Modbus通讯方式的PLC编程比RS-485无协议方式要简单便捷。缺点:PLC编程工作量仍然较大。 5、 PLC采用现场总线方式控制变频器 三菱变频器可内置各种类型的通讯选件,如用于CC-Link现场总线的FR-A5NC选件;用于Profibus DP现场总线的FR-A5AP(A)选件;用于DeviceNet现场总线的FR-A5ND选件等等。三菱FX系列PLC有对应的通讯接口模块与之对接。 优点:速度快、距离远、效率高、工作稳定、编程简单、可连接变频器数量多。缺点:造价较高。 6、采用扩展存储器 优点:造价低廉、易学易用、性能可靠 缺点:只能用于不多于8台变频器的系统。 PLC和变频器通讯接线图 三菱PLC控制台达变频器案例分析 在不外接控制器(如PLC)的情况下,直接操作变频器有三种方式: ①操作面板上的按键; ②操作接线端子连接的部件(如按钮和电位器); ③复合操作(如操作面板设置频率,操作接线端子连接的按钮进行启/停控制)。为了操作方便和充分利用变频器,也可以采用PLC来控制变频器。 PLC控制变频器有三种基本方式: ①以开关量方式控制; ②以模拟量方式控制; ③以RS485通信方式控制。 PLC以开关量方式控制变频器的硬件连接 变频器有很多开关量端子,如正转、反转和多档转速控制端子等,不使用PLC时,只要给这些端子接上开关就能对变频器进行正转、反转和多档转速控制。当使用PLC控制变频器时,若PLC是以开关量方式对变频进行控制,需要将PLC的开关量输出端子与变频器的开关量输入端子连接起来,为了检测变频器某些状态,同时可以将变频器的开关量输出端子与PLC的开关量输入端子连接起来。 PLC以开关量方式控制变频器的硬件连接如下图所示。当PLC内部程序运行使Y001端子内部硬触点闭合时,相当于变频器的STF端子外部开关闭合,STF端子输入为ON,变频器启动电动机正转,调节10、2、5端子所接电位器可以改变端子2的输入电压,从而改变变频器输出电源的频率,进而改变电动机的转速。如果变频器内部出现异常时,A、C端子之间的内部触点闭合,相当于PLC的X001端子外部开关闭合,X001端子输入为ON。 PLC以模拟量方式控制变频器的硬件连接 变频器有一些电压和电流模拟量输入端子,改变这些端子的电压或电流输入值可以改变电动机的转速,如果将这些端子与PLC的模拟量输出端子连接,就可以利用PLC控制变频器来调节电动机的转速。模拟量是一种连续变化的量,利用模拟量控制功能可以使电动机的转速连续变化(无级变速)。 PLC以模拟量方式控制变频器的硬件连接如下图所示,由于三菱FX2N-32MR型PLC无模拟量输出功能,需要给它连接模拟量输出模块(如FX2N-4DA),再将模拟量输出模块的输出端子与变频器的模拟量输入端子连接。当变频器的STF端子外部开关闭合时,该端子输入为ON,变频器启动电动机正转,PLC内部程序运行时产生的数字量数据通过连接电缆送到模拟量输出模块(DA模块),由其转换成0~5V或0~10V范围内的电压(模拟量)送到变频器2、5端子,控制变频器输出电源的频率,进而控制电动机的转速,如果DA模块输出到变频器2、5端子的电压发生变化,变频器输出电源频率也会变化,电动机转速就会变化。 PLC在以模拟量方式控制变频器的模拟量输入端子时,也可同时用开关量方式控制变频器的开关量输入端子。 PLC以RS485通信方式控制变频器的硬件连接 PLC以开关量方式控制变频器时,需要占用较多的输出端子去连接变频器相应功能的输入端子,才能对变频器进行正转、反转和停止等控制;PLC以模拟量方式控制变频器时,需要使用DA模块才能对变频器进行频率调速控制。如果PLC以RS485通信方式控制变频器,只需一根RS485通信电缆(内含5根芯线),直接将各种控制和调频命令送给变频器,变频器根据PLC通过RS485通信电缆送来的指令就能执行相应的功能控制。 RS485通信是目前工业控制广泛采用的一种通信方式,具有较强的抗干扰能力,其通信距离可达几十米至上千米。采用RS485通信不但可以将两台设备连接起来进行通信,还可以将多台设备(最多可并联32台设备)连接起来构成分布式系统,进行相互通信。 1.变频器的RS485通信口 三菱FR500系列变频器有一个用于连接操作面板的PU口,该接口可用作RS485通信口,在使用RS485方式与其他设备通信时,需要将操作面板插头(RJ45插头)从PU口拔出,再将RS485通信电缆的一端插入PU口,通信电缆另一端连接PLC或其他设备。三菱FR500系列变频器PU口外形及各引脚功能说明如下图所示。 三菱FR500系列变频器只有一个RS485通信口(PU口),面板操作和RS485通信不能同时进行,而三菱FR700系列变频器除了有一个PU接口外,还单独配备了一个RS485通信口(接线排),专用于进行RS485通信。三菱FR700系列变频器RS485通信口外形及各功能说明如下图所示,通信口的每个功能端子都有2个,一个接上一台RS485通信设备,另一个端子接下一台RS485通信设备,若无下一台设备,应将终端电阻开关拨至“100Ω”侧。 2.PLC的RS485通信口 三菱FX PLC一般不带RS485通信口,如果要与变频器进行RS485通信,须给PLC安装FX2N-485BD通信板。485BD通信板的外形和端子如下图(a)所示,通信板的安装方法如下图(b)所示。 (a)外形 (b)安装方法 3.变频器与PLC的RS485通信连接 (1)单台变频器与PLC的RS485通信连接 单台变频器与PLC的RS485通信连接如下图所示,两者在连接时,一台设备的发送端子(+\-)应分别与另一台设备的接收端子(+\-)连接,接收端子(+\-)应分别与另一台设备的发送端子(+\-)连接。 (2)多台变频器与PLC的RS485通信连接 多台变频器与PLC的RS485通信连接如下图所示,它可以实现一台PLC控制多台变频器的运行。 PLC控制变频器驱动电动机正反转的电路、程序及参数设置 1.PLC与变频器的硬件连接线路图 PLC以开关量方式控制变频器驱动电动机正反转的线路图如下图所示。 2.变频器的参数设置 在使用PLC控制变频器时,需要对变频器进行有关参数设置,具体见下表。 3.编写PLC控制程序 变频器有关参数设置好后,还要用编程软件编写相应的PLC控制程序并下载给PLC。PLC控制变频器驱动电动机正反转的PLC程序如下图所示。 PLC控制变频器驱动电动机多档转速运行的电路、程序及参数设置 变频器可以连续调速,也可以分档调速,FR-500系列变频器有RH(高速)、RM(中速)和RL(低速)三个控制端子,通过这三个端子的组合输入,可以实现7档转速控制。如果将PLC的输出端子与变频器这些端子连接,就可以用PLC控制变频器来驱动电动机多档转速运行。 1.PLC与变频器的硬件连接线路图 PLC以开关量方式控制变频器驱动电动机多档转速运行的线路图如下图所示。 2.编写PLC控制程序 PLC以开关量方式控制变频器驱动电动机多档转速运行的PLC程序如下图。
一、什么是串口通讯? 串行通讯是指仅用一根接收线和一根发送线就能将数据以位进行传输的一种通讯方式。尽管串行通讯的比按字节传输的并行通信慢,但是串口可以在仅仅使用两根线的情况下就能实现数据的传输。 典型的串口通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,所以端口能够在一根线上发送数据同时在另一根线上接收数据。串口通信最重要的参数是波特率、数据位、停止位和奇偶的校验。对于两个需要进行串口通信的端口,这些参数必须匹配,这也是能够实现串口通讯的前提。 图1:串行通讯示数据传输意图 二、串口通讯的通讯协议? 最初数据是模拟信号输出简单过程量,后来仪表接口出现了RS232接口,这种接口可以实现点对点的通信方式,但这种方式不能实现联网功能,这就促生了RS485。 我们知道串口通信的数据传输都是0和1,在单总线、I2C、UART中都是通过一根线的高低电平来判断逻辑1或者逻辑0,但这种信号线的GND再与其他设备形成共地模式的通信,这种共地模式传输容易产生干扰,并且抗干扰性能也比较弱。所以差分通信、支持多机通信、抗干扰强的RS485就被广泛的使用了。 RS485通信最大特点就是传输速度可以达到10Mb/s以上,传输距离可以达到3000米左右。大家需要注意的是虽然485最大速度和最大传输距离都很大,但是传输的速度是会随距离的增加而变慢的,所以两者是不可以兼得的。 三、串口通讯的物理层 串口通讯的物理层有很多标准,例如上面提到的,我们主要讲解RS-232标准,RS-232标准主要规定了信号的用途、通讯接口以及信号的电平标准。 在上面的通讯方式中,两个通讯设备的"DB9接口"之间通过串口信号线建立起连接,串口信号线中使用"RS-232标准"传输数据信号。由于RS-232电平标准的信号不能直接被控制器直接识别,所以这些信号会经过一个"电平转换芯片"转换成控制器能识别的"TTL校准"的电平信号,才能实现通讯。 下图为DB9标准串口通讯接口: DB9引脚说明: 上表中的是计算机端的DB9公头标准接法,由于两个通讯设备之间的收发信号(RXD与TXD)应交叉相连,所以调制调解器端的DB9母头的收发信号接法一般与公头的相反,两个设备之间连接时,只要使用"直通型"的串口线连接起来即可。 串口线中的RTS、CTS、DSR、DTR及DCD信号,使用逻辑 1表示信号有效,逻辑0表示信号无效。例如,当计算机端控制DTR信号线表示为逻辑1时,它是为了告知远端的调制调解器,本机已准备好接收数据,0则表示还没准备就绪。 四、波特率 波特率是指数据信号对载波的调制速率,它用单位时间内载波调制状态改变的次数来表示; 比如波特率为9600bps;代表的就是每秒中传输9600bit,也就是相当于每一秒中划分成了9600等份。 因此,那么每1bit的时间就是1/9600秒=104.1666...us。约0.1ms。既然是9600等份,即每1bit紧接着下一个比特,不存在额外的间隔。两台设备要想实现串口通讯,这收发端设置的波特率必须相同,否则是没办法实现通讯的。 收发波特率一致可以实现通讯: 收发波特率不一致,导致RX端不能正常接收: 五、串口通讯的数据结构 起始位: 起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步。 数据位: 数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定。传输数据时先传送字符的低位,后传送字符的高位。 奇偶校验位: 奇偶校验位仅占一位,用于进行奇校验或偶校验,奇偶检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位。 停止位: 停止位可以是是1位、1.5位或2位,可以由软件设定。它一定是逻辑1电平,标志着传输一个字符的结束。 空闲位: 空闲位是指从一个字符的停止位结束到下一个字符的起始位开始,表示线路处于空闲状态,必须由高电平来填充。 六、单双工通讯 单工: 数据传输只支持数据在一个方向上传输; 半双工: 允许数据在两个方向上传输,但某一时刻只允许数据在一个方向上传输,实际上是一种切换方向的单工通信,不需要独立的接收端和发送端,两者可合并为一个端口; 全双工: 允许数据同时在两个方向上传输,因此全双工通信是两个单工方式的结合,需要独立的接收端和发送端。 七、STM32中的串口通讯 STM32串口通信接口有两种,分别是:UART(通用异步收发器)、USART(通用同步异步收发器),对于大容量STM32F10x系列芯片,分别由3个USART和两个UART。 TXD:数据发送引脚;RXD:数据输入引脚 对于两芯片的间的连接,两个芯片GND共地,同时TXD和RXD交叉连接,这样两个芯片间可进行TTL电平通信。 但如果对于芯片和PC机相连,除了共地条件外,不能使用如上的直接交叉连接,虽然两者都有TXD和RXD引脚,但通常PC机使用的是RS232接口(9针),通常是TXC和RXD经过电平转换得到,故如果要使芯片与PC机的RS232接口直接通信,需要将芯片的输入输出端口也电平转换为RS232类型,再交叉连接,二者的电平标准不同: 单片机的点评标准(TTL电平):+5V表示1,0V表示0; RS232电平标准:+15/+13V表示0,-15/-13表示1。 因此单片机与PC机进行串口通信应该遵循:在单片机串口与上位机给出的RS232口之间,通过电平转换电路实现TTL电平与RS232电平间的转换. 如果使用USB转串口也可以实现串口通讯,USB转串口电路图如下所示 STM32串口通讯代码 STM32中串口通讯已经给大家建好了相应的库函数,大家在使用和配置串口的时候直接进行调用库函数和配置就行了,请大家参照一下代码: 1、初始化结构体代码 typedef struct { uint32_t USART_BaudRate; // 波特率 uint16_t USART_WordLength; // 字长 uint16_t USART_StopBits; // 停止位 uint16_t USART_Parity; // 校验位 uint16_t USART_Mode; // USART 模式 uint16_t USART_HardwareFlowControl; // 硬件流控制 } USART_InitTypeDef; 2、NVIC配置中断优先级 NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* 嵌套向量中断控制器组选择 */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); /* 配置USART为中断源 */ NVIC_InitStructure.NVIC_IRQChannel = DEBUG_USART_IRQ; /* 抢断优先级*/ NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; /* 子优先级 */ NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1; /* 使能中断 */ NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; /* 初始化配置NVIC */ NVIC_Init(&NVIC_InitStructure); } 3、USART配置函数 void DEBUG_USART_Config(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; /* 第一步:初始化GPIO */ // 打开串口GPIO的时钟 DEBUG_USART_GPIO_APBxClkCmd(DEBUG_USART_GPIO_CLK, ENABLE); // 将USART Tx的GPIO配置为推挽复用模式 GPIO_InitStructure.GPIO_Pin = DEBUG_USART_TX_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(DEBUG_USART_TX_GPIO_PORT, &GPIO_InitStructure); // 将USART Rx的GPIO配置为浮空输入模式 GPIO_InitStructure.GPIO_Pin = DEBUG_USART_RX_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(DEBUG_USART_RX_GPIO_PORT, &GPIO_InitStructure); /* 第二步:配置串口的初始化结构体 */ // 打开串口外设的时钟 DEBUG_USART_APBxClkCmd(DEBUG_USART_CLK, ENABLE); // 配置串口的工作参数 // 配置波特率 USART_InitStructure.USART_BaudRate = DEBUG_USART_BAUDRATE; // 配置 针数据字长 USART_InitStructure.USART_WordLength = USART_WordLength_8b; // 配置停止位 USART_InitStructure.USART_StopBits = USART_StopBits_1; // 配置校验位 USART_InitStructure.USART_Parity = USART_Parity_No ; // 配置硬件流控制 USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; // 配置工作模式,收发一起 USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; // 完成串口的初始化配置 USART_Init(DEBUG_USARTx, &USART_InitStructure); /*--------------------------------------------------------*/ // 串口中断优先级配置 NVIC_Configuration(); // 使能串口接收中断 USART_ITConfig(DEBUG_USARTx, USART_IT_RXNE, ENABLE); /*--------------------------------------------------------*/ /* 第三步:使能串口 */ // 使能串口 USART_Cmd(DEBUG_USARTx, ENABLE); } 声明: 本号对所有原创、转载文章的陈述与观点均保持中立,推送文章仅供读者学习和交流。文章、图片等版权归原作者享有,如有侵权,联系删除。