PLC原理及PLC+FPGA(SOC)架构方案简介

news2024/10/7 14:33:25

一、PLC原理简介

工业生产和科技的发展都离不开PLC的自动化控制,PLC可以广义的理解为:

集中的继电器延伸控制柜,实际的生产应用中,PLC大大的节省了工业控制的成本,加强了设备的集中管理和自动控制。

PLC(Programmable Controller,可编程程序控制器)它是一个以微处理器

为核心的数字运算操作的电子系统装置,专为在工业现场应用而设计,它采用可编程序的存储器,用以在其内部存储执行逻辑运算、顺序控制、定时/计数和算术运算等操作指令,并通过数字式或模拟式的输入、输出接口,控制各种类型的机械或生产过程。

PLC是微机技术与传统的继电接触控制技术相结合的产物,它克服了继电接

触控制系统中的机械触点的接线复杂、可靠性低、功耗高、通用性和灵活性差的缺点,充分利用了微处理器的优点,又照顾到现场电气操作维修人员的技能与习惯,特别是PLC的程序编制,不需要专门的计算机编程语言知识,而是采用了一套以继电器梯形图为基础的简单指令形式,使用户程序编制形象、直观、方便易学;调试与查错也都很方便。用户在购到所需的PLC后,只需按说明书的提示,做少量的接线和简易的用户程序编制工作,就可灵活方便地将PLC应用于生产实践。

1、PLC结构及各部分作用

PLC的类型繁多,功能和指令系统也不尽相同,但结构与工作原理则大同小

异,通常由主机、输入/输出接口、电源扩展器接口和外部设备接口等几个主要部分组成。PLC的硬件系统结构如下图所示:

 

主机:主机部分包括中央处理器(CPU)、系统程序存储器和用户程序及数据存

储器。CPU是PLC的核心,它用以运行用户程序、监控输入/输出接口状态、作出逻辑判断和进行数据处理,即读取输入变量、完成用户指令规定的各种操作,将结果送到输出端,并响应外部设备(如电脑、打印机等)的请求以及进行各种内部判断等,中央处理器通常具有存储器、定时器、计数器、通信端口等外设,可以处理多种输入输出信号的组合逻辑关系,并输出相应的控制信号。PLC的内部存储器有两类,一类是系统程序存储器,主要存放系统管理和监控程序及对用户程序作编译处理的程序,系统程序已由厂家固定,用户不能更改;另一类是用户程序及数据存储器,主要存放用户编制的应用程序及各种暂存数据和中间结果。

输入/输出(I/O)接口:I/O接口是PLC与输入/输出设备连接的部件。输入

接口接受输入设备(如按钮、传感器、触点、行程开关等)的控制信号,将信号转化为数字信号传输给中央处理器。输出接口是将主机经处理后的结果通过功放电路去驱动输出设备(如接触器、电磁阀、指示灯等)。I/O接口一般采用光电耦合电路,以减少电磁干扰,从而提高了可靠性。I/O点数即输入/输出端子数是PLC的一项主要技术指标,通常小型机有几十个点,中型机有几百个点,大型机将超过千点。输入输出模块通常由模块盒和插件构成,可以根据不同的应用需求进行扩展或更换。

电源:电源是指为CPU、存储器、I/O接口等内部电子电路工作所配置的直流

开关稳压电源,通常也为输入设备提供直流电源。

编程:编程是PLC利用外部设备,用户用来输入、检查、修改、调试程序或

监示PLC的工作情况。通过专用的PC/PPI电缆线将PLC与电脑联接,并利用专用的软件进行电脑编程和监控。

输入/输出扩展单元:I/O扩展接口用于将扩充外部输入/输出端子数的扩展

单元与基本单元(即主机)连接在一起。

外部设备接口:此接口可将打印机、条码扫描仪,变频器等外部设备与主机相

联,以完成相应的操作。

2、PLC工作原理

PLC工作原理:

PLC是采用“顺序扫描,不断循环”的方式进行工作的。即在PLC运行时,CPU根据用户按控制要求编制好并存于用户存储器中的程序,按指令步序号(或地址号)作周期性循环扫描,如无跳转指令,则从第一条指令开始逐条顺序执行用户程序,直至程序结束。然后重新返回第一条指令,开始下一轮新的扫描。在每次扫描过程中,还要完成对输入信号的采样和对输出状态的刷新等工作。

PLC的一个扫描周期必经输入采样、程序执行和输出刷新三个阶段。

PLC在输入采样阶段:首先以扫描方式按顺序将所有暂存在输入锁存器中的输入端子的通断状态或输入数据读入,并将其写入各对应的输入状态寄存器中,即刷新输入。随即关闭输入端口,进入程序执行阶段.

PLC在程序执行阶段:按用户程序指令存放的先后顺序扫描执行每条指令,经相应的运算和处理后,其结果再写入输出状态寄存器中,输出状态寄存器中所有的内容随着程序的执行而改变。

输出刷新阶段:当所有指令执行完毕,输出状态寄存器的通断状态在输出刷新阶段送至输出锁存器中,并通过一定的方式(继电器、晶体管或晶闸管)输出,驱动相应输出设备工作。

这种工作方式的特点:

(1)集中采样:在一个扫描周期内,对输入状态的采样只在输入采样阶段进行, 当进入程序执行阶段后输入端将被封锁。

(2)集中输出:在一个扫描周期内, 只有在输出刷新阶段才将输出映像寄存器中与输出有关的状态转存到输出锁存器中, 对输出接口进行新,在其他阶段输出 状态一直保存在输出映像寄存器中。

采用这种工作 方式可提高系统的抗干扰能力,增强系统的可靠性,但会引起PLC输入/输出响应的滞后。

PLC的程序编制:

编程元件:PLC是采用软件编制程序来实现控制要求的。编程时要使用到各种编程元件,它们可提供无数个动合和动断触点。编程元件是指输入寄存器、输出寄存器、位存储器、定时器、计数器、通用寄存器、数据寄存器及特殊功能存储器等(可以联想FPGA的IP)。

 PLC内部这些存储器的作用和继电接触控制系统中使用的继电器十分相似,也有“线圈”与“触点”,但它们不是“硬”继电器,而是PLC存储器的存储单元。当写入该单元的逻辑状态为“1”时,则表示相应继电器线圈得电,其动合触点闭合,动断触点断开。所以,内部的这些继电器称之为“软"继电器。

编程语言:所谓程序编制,就是用户根据控制对象的要求,利用PLC厂家提供的程序编制语言,将一个控制要求描述出来的过程。PLC最常用的编程语言是梯形图语言和指令语句表语言(封装好的功能,类似软件中开发的API和FPGA的IP),且两者常常联合使用。

  1. 梯形图(语言)

梯形图是一种从继电接触控制电路图演变而来的图形语言。它是借助类似于继电器的动合、动断触点、线圈以及串、并联等术语和符号,根据控制要求联接而成的表示PLC输入和输出之间逻辑关系的图形,直观易懂。

  1. 指令语句表

指令语句表是一种用指令助记符来编制PLC程序的语言,它类似于计算机的

汇编语言,但比汇编语言易懂易学,若干条指令组成的程序就是指令语句表。一条指令语句是由步序、指令语和作用器件编号三部分组成。

3、PLC基本指令及可编程控制器梯形图编程规则

基本指令简介:(略,参考制造商官网资料)

可编程控制器梯形图编程步骤:

(一)决定系统所需的动作及次序:

当使用可编程控制器时,最重要的一环是决定系统所需的输入及输出。输入及输出要求:

(1)第一步是设定系统输入及输出数目。

(2)第二步是决定控制先后、各器件相应关系以及作出何种反应。

(二)对输入及输出器件编号:

每一输入和输出,包括定时器、计数器、内置寄存器等都有一个唯一的对应编号,不能混用。

(三)画出梯形图:

根据控制系统的动作要求,画出梯形图。

梯形图设计规则:

  1. 触点应画在水平线上,并且根据自左至右、自上而下的原则和对输出

线圈的控制路径来画。

(2)不包含触点的分支应放在垂直方向,以便于识别触点的组合和对输出线

圈的控制路径。

(3)在有几个串联回路相并联时,应将触头多的那个串联回路放在梯形图的

最上面。在有几个并联回路相串联时,应将触点最多的并联回路放在梯形图的最左面。这种安排,所编制的程序简洁明了,语句较少。

(4)不能将触点画在线圈的右边。

(四)将梯形图转化为程序:

 把继电器梯形图转变为可编程控制器的编码,当完成梯形图以后,下一步是

把它的编码编译成可编程控制器能识别的程序。

 这种程序语言是由序号(即地址)、指令(控制语句)、器件号(即数据)组

成。地址是控制语句及数据所存储或摆放的位置,指令告诉可编程控制器怎样利用器件作出相应的动作。

(五)在编程方式下用键盘输入程序。

(六)编程及设计控制程序。

(七)测试控制程序的错误并修改。

(八)保存完整的控制程序。            

二、PLC+FPGA(SOC)架构方案

PLC是一种专为在工业现场应用而设计、广泛应用于自动化控制系统中的计

算机控制设备,通过编程实现对自动化生产设备的控制、监视、保护等功能,加强了设备的集中管理和自动控制。

PLC有其自身的优点和适用领域,但是随着科技的发展,工业现场对自动化

设备的科技含量和智能化要求越拉越高,此时PLC的就可能无法满足人们日益对提升科技含量和智能化迫切需求。例如在工业现场通过人工智能、图像识别、高速信号采集及分析、高速计算等技术以实现低延迟的实时解算及通信,保证控制系统的实时性。

而FPGA 最大优势是其并行处理机制,即利用并行架构实现数字信号处理的

功能。可编程逻辑器件 (FPGA) 是一种可以根据实际需要进行编程的集成电路,其广泛应用于数字信号处理、通信、计算机、控制系统等领域。随着数字信号处理、通信、计算机、控制系统等领域的不断发展,FPGA 也将发挥越来越重要的作用。

例如在人工智能领域,如果大家比较喜欢关注科技板块的新闻的话会发现人

工智能方面的新闻充斥眼球,确实 21 世纪已经不知不觉走到了 2023年,在这 20多年间,人工智能迅速发展,5G的顺利研发也使人工智能如虎添翼,可以预见,未来必将是人工智能的天下。

FPGA在人工智能系统的前端部分也是得到了广泛的应用,例如自动驾驶,

需要对行驶路线、红绿灯、路障和行驶速度等各种交通信号进行采集,需要用到多种传感器,对这些传感器进行综合驱动和融合处理就可以使用 FPGA。还有一些智能机器人,需要对图像进行采集和处理,或者对声音信号进行处理都可以使用 FPGA去完成,所以FPGA在人工智能系统的前端信息处理上使用起来得心应手。

    那么在某些复杂的工业现场,单独通过PLC采集传感器输入信号或其他设备的信号可能不能满足要求,此时如果针对特定场景,如需要人工智能、图像识别的领域可以使用FPGA平台作为专门的信息采集处理模块,实现高速并行运算,充分发挥FPGA的优势,将采集处理的结果通过特定的通信接口和PLC交互, PLC只需针对接收到的结果或命令作出相应的控制动作,这样FPGA板卡即可作为PLC的一个外设(从机),也可FPGA板卡做主机,PLC做从机。

基于上述问题,可以采用一种PLC+FPGA(SOC)架构进行扩展设计作为解决上述问题的一种技术方案。

1、初步构想

PLC作为一种专为在工业现场应用而设计、广泛应用于自动化控制系统中的

计算机控制设备,继续发挥其在自动控制系统中高可靠性的优点不做大的变动,只是在做功能扩展和其他功能开发时做为主机或从机针对不同的架构对通信接口和控制逻辑进行小幅度改动,以保证原产品的通用性。

    而对其他功能,如图像识别、高速信号采集分析、高速计算等则采用FPGA或FPGA+ARM(SOC)的方案实现,通过FPGA(SOC)作为主控芯片的板卡实现上述复杂的功能,然后通过预留的通信接口和PLC控制板卡通信。

    PLC和FPGA两者可根据需要互为主从,例如,根据不同开发方案,PLC作为控制主机,FPGA作为从机进行复杂功能的实时处理,然后将计算结果通过合适的通信接口和PLC通信,此时FPGA可以看做PLC主控板的一个外设。反之亦然,即FPGA板卡作为主控,PLC作为从机,框图如下图所示。

 

2、PLC和FPGA(SOC)通信

    由于FPGA在通信接口方面可以支持多种接口(可以灵活的选择),因此两者的通信方式主要以PLC支持的通信接口为主。PLC通讯一般通过不同的通讯方式和通讯协议来实现,通讯方式包括串口通讯、以太网通讯、CAN总线通讯、光纤通讯、硬件通讯等;通讯协议包括MODBUS、Profibus、DeviceNet、Ethernet/IP、CANopen等。不同的PLC设备和控制系统通常使用不同的通讯方式和协议,因此在进行PLC通讯时需要选择适当的通讯方式和协议,以确保通讯的稳定性和可靠性。

PLC通讯协议:是用于规范和描述PLC设备之间通讯协议和数据格式的标准。不同的PLC通讯协议支持不同的通讯方式和数据交换方式。下面将介绍一些常见的PLC通讯协议。

1、MODBUS

MODBUS是一种应用层协议,用于串行通信,可以在RS-232、RS-485等串行通讯方式上运行,也可以在以太网上运行。MODBUS协议结构简单,易于实现,支持点对点和多点通讯。MODBUS协议广泛应用于工业控制领域,可以实现PLC之间的通讯,也可以实现PLC与上位机之间的通讯。

2、Profibus

Profibus是一种基于现场总线技术的通讯协议,广泛应用于自动化控制系统。Profibus协议可以在RS-485和光纤等介质上运行,支持高速通讯,最高速度可达12Mbps。Profibus协议支持多种数据格式和通讯方式,可以实现PLC之间、PLC与I/O设备之间、PLC与上位机之间的通讯。

3、Ethernet/IP

Ethernet/IP是一种以太网通讯协议,用于工业控制和自动化领域。Ethernet/IP协议是一种基于TCP/IP协议的协议,支持高速通讯和实时通讯。Ethernet/IP协议可以实现PLC之间、PLC与上位机之间的通讯,也可以实现PLC与其他以太网设备之间的通讯。

4、CAN协议

CAN是一种常见的控制器局域网协议,用于在控制系统中进行数据交换。CAN协议规定了PLC设备之间通讯的数据格式和通讯协议,包括数据帧格式、数据类型、寄存器地址等。CAN协议支持多种通讯方式,如CAN总线、CANopen等。

PLC通讯方式:是指PLC设备之间进行通讯时所采用的物理连接方式。通讯方式的不同会影响通讯速度、通讯距离、通讯稳定性等。下面将介绍一些常见的PLC通讯方式。

1、串口通讯

串口通讯是一种基于串行通讯方式的PLC通讯方式,常用的串口包括RS232、RS485等。串口通讯速度较慢,但通讯距离较近,适用于需要进行点对点通讯的应用场景。

2、以太网通讯

以太网通讯是一种基于以太网通讯方式的PLC通讯方式,通讯速度快,通讯距离远,适用于需要进行多点通讯的应用场景。以太网通讯还支持TCP/IP协议,可以进行远程访问和控制。

3、CAN总线通讯

CAN总线通讯是一种基于CAN协议的PLC通讯方式,通讯速度较快,通讯距离较远,适用于需要进行多点通讯和实时控制的应用场景。CAN总线通讯还支持节点的热插拔,方便系统维护和升级。

4、光纤通讯

光纤通讯是一种基于光纤传输的PLC通讯方式,通讯速度快,通讯距离远,通讯稳定性高,适用于需要进行远距离通讯和抗干扰能力较强的应用场景。光纤通讯还可以通过光纤交换机进行网络扩展。  

5、硬件通讯

硬件通讯是一种基于PLC硬件接口的PLC通讯方式,通讯速度快,通讯距离短,适用于需要进行高速实时控制的应用场景。硬件通讯还可以支持节点的热插拔,方便系统维护和升级。

以上,在设计方案时可根据不同的使用场景或需求选择合适通信接口,也可以将所有接口在不同板卡上均引出预留,作为通用接口根据不同的方案灵活选择。

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

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

相关文章

【人脸检测——基于机器学习4】HOG特征

前言 HOG特征的全称是Histograms of Oriented Gradients,基于HOG特征的人脸识别算法主要包括HOG特征提取和目标检测,该算法的流程图如下图所示。本文主要讲HOG特征提取。 HOG特征的组成 Cell:将一幅图片划分为若干个cell(如上图绿色框所示),每个cell为8*8像素 Block:选…

NET Core 6.0 webapi 简单使用+连接数据库

文章目录 环境创建WebApi并防止Api冲突Swagger添加注释连接sqlite数据库Nuget包代码 环境 ASP.NET coreNET core 6.0 创建WebApi并防止Api冲突 using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc;namespace WebApi1.Controllers {//[Route("api/[control…

三、Docker基本使用及命令

学习参考:尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出) 目录 前言一、帮助启动类命令1.1 启动docker1.2 停止docker1.3 重启docker1.4 查看docker状态1.5 开机启动1.6 查看docker概要信息1.7 查看docker总体帮助文档1.8 查看docker命令…

Qt QPainter

QPainter需要在QPaintEvent中绘画 绘画需要笔 绘画需要的基础头文件 QPainter QPaintEvent QPen QPainter 建立painter之后就可以绘画,pen这些都有默认实现 可画设备 圆用椭圆画 重新绘画 重新绘画只需要重新加入画笔就可以 painter.setPen(pen); // 重新…

Shell脚本中的数值计算:使用数学运算实现数值操作

前言 沐风晓月带你学云原生开发,从零开始,我们出发,让知识学习不再难。 🏠个人主页:我是沐风晓月 🧑个人简介:大家好,我是沐风晓月,阿里云社区博客专家 😉&…

高数基础6

目录 导数与微分 导数的定义式: 导数的第二个定义式: 左右导数 区间内可导 例题: 例题2: 微分 微分的概念 例题: 导数的几何意义: 切线方程与法线方程 例题: 连续可导可微之间的关系…

短视频矩阵系统源码开发部署分享

短视频矩阵系统源码开发需要用到以下技术: 1.前端技术:HTML、CSS、JavaScript、Vue.js等前端框架。 2.后端技术:Java、Python、PHP等后端语言及相关框架,如Spring Boot、Django、Laravel等。 3.移动开发技术:Androi…

文本匹配模型实验报告-text2vec

文本匹配模型实验报告-text2vec 尽管基于BERT的模型在NLP诸多下游任务中取得了成功,直接从BERT导出的句向量表示往往被约束在一个很小的区域内,表现出很高的相似度,因而难以直接用于文本语义匹配。为解决BERT原生句子表示这种“坍缩”现象&a…

软件开发流程的演变:敏捷开发(XP、SCRUM)、DevOps(CI/CD)的概念

一、软件开发流程的演变 二、传统瀑布模型 1.瀑布模型特点 软件开发的各项活动严格按照线性方式进行 当前活动接受上一项活动的工作结果 当前活动的工作结果需要进行验证 2.瀑布模型优缺点 优点 开发的各个阶段比较清晰 强调早期计划及需求调查 适合需求稳定的产品开发 缺点…

权限获得第一步

根据题目提示flag就是某个密码,并且flag不是常规形式 打开文件后看起来是一个linux的用户密码段 反正最后两个最可疑了,linux中密码的存储形式是MD5加密 第一个数据解码失败 第二个密文解密成功 果然不是常规形式,常规的flag一本都是是英文加…

在Linux系统下使用Ventoy制作Windows安装U盘

文章目录 介绍Ventoy 简介PE 简介 制作 Ventoy U 盘安装 Ventoy将 Ventoy 安装到 U 盘 制作 PE 辅助系统下载优启通下载操作系统 ISO 镜像 安装操作系统准备工作安装系统 介绍 Ventoy 简介 Ventoy 是一个制作可启动 U 盘的开源工具。有了 Ventoy ,就无需反复地格式…

IDE/记录VS2015WinSDK安装过程中增删的系统组件和环境变量

文章目录 概述看看"干净OS环境"安装VS软件后系统目录变化环境变量变化新增的组件程序 Qt及其VS插件安装后安装WinSDK后安装Win10SDK前安装WinSDK后 卸载VS2015其他软件的影响 概述 本文旨在,通过记录干净OS环境下 VS2015、Qt、WinSDK 软件安装前后&#…

使用mount临时挂载出现mount error(13): Permission denied

问题报错 mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) //报错信息,提示账号密码错误,其实并不是 添加secntlmssp参数即可;中途可能需要等一些时间 mount -t cifs -o usernamelisi,p…

在低配Windows上部署原版llama.cpp

现在大语言模型的部署,通常都需要大的GPU才能实现,如果是仅仅想研究一下,大语言模型的算法,我们是很想能够直接在我们的工作电脑上就能直接运行的,llama.cpp就是很好的实现。 LLaMa.cpp使用int4这种数值格式&#xff…

【js步骤引导】基于jquery实现步骤引导进度条效果(附源码)

【写在前面】 步骤引导条这个功能其实在我们很多业务系统中是最常见的,尤其是快递订单、审批流程、上传资源等涉及步骤操作的业务中广泛应用,因此今天我也详细的和大家讲讲如何基于jquery去实现步骤引导效果,支持上一步下一步的切换。 【涉…

【云计算】HBase表操作

文章目录 前言一、shell创建二、操作 前言 HBase是一个分布式、可扩展的、非关系型的NoSQL数据库。它是建立在Hadoop HDFS上的一个开源的数据库管理系统。HBase的设计目标是提供高可靠性、高可扩展性、高性能、高延迟、高容错性和高可用性。 HBase是一种面向列的数据库&#…

【多智能体合作】Self-Organized Group for Cooperative Multi-agent Reinforcement Learning

【多智能体合作】Self-Organized Group for Cooperative Multi-agent Reinforcement Learning 本文提出了一个自主分组机制,这种机制具有 选举指挥官(CE) 和 消息总结(MS) 的功能。 在 CE 中,每隔 T个时间步…

【无标题】机器学习——朴素贝叶斯

朴素贝叶斯(Naive Bayesian algorithm)是有监督学习的一种分类算法,它基于“贝叶斯定理”实现,该原理的提出人是英国著名数学家托马斯贝叶斯。 一、贝叶斯定理 P(A) 这是概率中最基本的符号,表示 A 出现的概率。比如在…

Spark 4/5

4. 启动Spark Shell编程 4.1 什么是Spark Shell spark shell是spark中的交互式命令行客户端,可以在spark shell中使用scala编写spark程序,启动后默认已经创建了SparkContext,别名为sc 4.2 启动Spark Shell Shell /opt/apps/spark-3.2.3-bi…

实战深入了解redis+消息队列如何实现秒杀

SpringBoot Redis RabbitMQ 实现高并发限时秒杀 所谓秒杀,从业务角度看,是短时间内多个用户“争抢”资源,这里的资源在大部分秒杀场景里是商品;将业务抽象,技术角度看,秒杀就是多个线程对资源进行操作&…