[工业自动化-18]:西门子S7-15xxx编程 - 软件编程 - PLC用于工业领域的嵌入式系统:硬件原理图、指令系统、系统软件架构、开发架构等
目录
前言:
一、PLC的硬件电路原理
1.1 硬件框图
1.2 硬件模块详解
(1)CPU
(2)存储器
(3)输入/输出(I/O)模块
(4)编程器
(5)电源
(6)外设接口
二、PLC程序原理
2.1 指令系统
2.2 PLC的软件组成
2.3 PLC系统软件架构
2.4 PLC应用程序架构
2.5 PLC系统程序是如何调用应用程序的?
2.6 PLC程序的执行原理
(1)输入采样阶段
(2)用户程序执行阶段
(3)输出刷新阶段
2.7 PLC程序扫描周期
2.8 输入/输出滞后现象
2.9 PLC扫描周期与程序循环周期是一样吗?
2.10 PLC是多线程系统吗?不是!PLC是单线程模型!!!
三、PLC程序开发架构:开发系统(主机系统)、运行系统(嵌入式目标系统)
前言:
PLC是专用于工业领域的专用嵌入式系统,因此,他具备嵌入式系统的通用特性。
因此,作为一种工业控制的计算机,PLC和普通计算机有着相似的结构;但是由于使用场合、目的不同,在结构上又有一些差别。
一、PLC的硬件电路原理
1.1 硬件框图
PLC硬件系统的基本结构框图如图所示:
PLC(可编程逻辑控制器)的基本硬件系统结构框图通常由以下几个主要组件组成:
-
CPU(中央处理器):CPU是PLC的核心部件,负责执行程序和进行逻辑控制。它通常包括一个或多个处理器核心、内存、时钟,以及用于程序和数据存储的高速缓存等。
-
输入模块:输入模块用于连接传感器、按钮、开关等外部设备,并将它们的信号转换为数字信号,以供PLC进行处理和控制。常见的输入模块包括数字输入模块、模拟输入模块等。
-
输出模块:输出模块用于控制和驱动外部执行器、继电器、电机等设备。它将PLC输出的数字信号转换为电流、电压等形式,以实现对外部设备的控制。常见的输出模块包括数字输出模块、模拟输出模块等。
-
总线(Bus):总线是PLC内部各组件之间进行通信和数据交换的接口。它可以是内部总线(如系统总线、背板总线等),也可以是外部总线(如以太网、CAN总线等),用于与其他设备进行通信。
-
电源模块:电源模块为PLC系统提供电源供电,通常包括主电源模块和备用电源模块,用于保证系统的稳定供电和可靠运行。
-
编程和调试接口:PLC通常有专门的接口用于编程和调试。它可以是串口、以太网接口、USB接口等,用于连接计算机或其他编程设备。
上述组件通常通过总线进行连接和通信,共同组成PLC硬件系统。它们协同工作,通过CPU的控制和处理,实现对外部设备的输入、输出控制和逻辑运算。
需要注意的是,PLC的硬件结构可能因厂商和型号的不同而有所差异,上述仅为一般性的基本结构框图。具体的PLC硬件系统结构应根据实际情况和厂商提供的文档进行参考。
1.2 硬件模块详解
在图中,PLC的主机由CPU、存储器(EPROM、RAM)、输入/输出单元、外设I/O接口、通信接口及电源组成。对于整体式PLC,这些部件都在同一个机壳内。
而对于模块式PLC,各部件独立封装,称为模块,各模块通过机架和电缆连接在一起。
主机内的各个部分均通过电源总线、控制总线、地址总线和数据总线连接,根据实际控制对象的需要配备一定的外部设备,构成不同的PLC控制系统。
常用的外部设备有编程器、打印机、EPROM写入器等。PLC可以配置通信模块与上位机及其他的PLC进行通信,构成PLC的分布式控制系统。
下面分别介绍PLC的各组成部分及其作用,以便用户进一步了解PLC的控制原理和工作过程。
(1)CPU
CPU是PLC的控制中枢,PLC在CPU的控制下有条不紊地协调工作,从而实现对现场的各个设备进行控制。CPU由微处理器和控制器组成,它可以实现逻辑运算和数学运算,协调控制系统内部各部分的工作。
控制器的作用是控制整个微处理器的各个部件有条不紊的进行工作,它的基本功能就是从内存中读取指令和执行指令。
(2)存储器
PLC配有两种存储器,即系统存储器和用户存储器。系统存储器用来存放系统管理程序,用户不能访问和修改这部分存储器的内容。
用户存储器用来存放编制的应用程序和工作数据状态。存放工作数据状态的用户存储器部分也称为数据存储区,它包括输入/输出数据映像区、定时器/计数器预置数和当前值的数据区及存放中间结果的缓冲区。
PLC的存储器主要包括以下几种。
- (1)只读存储器
- (2)可编程只读存储器
- (3)可擦除可编程只读存储器
- (4)电可擦除可编程只读存储器
- (5)随机存取存储器
(3)输入/输出(I/O)模块
- ①开关量输入模块
开关量输入设备是各种开关、按钮、传感器等,PLC的输入类型通常可以是直流、交流和交直流。输入电路的电源可由外部供给,有的也可由PLC内部提供。
- ②开关量输出模块
输出模块的作用是将CPU执行用户程序所输出的TTL电平的控制信号转化为生产现场所需的,能驱动特定设备的信号,以驱动执行机构的动作。
(4)编程器
编程器是PLC重要的外部设备,利用编程器可将用户程序送入PLC的用户程序存储器,调试程序、监控程序的执行过程。编程器从结构上可分为以下三种类型。
- (1)简易编程器
- (2)图形编程器
- (3)通用计算机编程器
(5)电源
电源单元的作用是把外部电源(220V的交流电源)转换成内部工作电压。外部连接的电源,通过PLC内部配有的一个专用开关式稳压电源,将交流/直流供电电源转化为PLC内部电路需要的工作电源(直流5V、±12V、24V),并为外部输入元件(如接近开关)提供24V直流电源(仅供输入端点使用)。驱动PLC负载的电源由用户提供。
(6)外设接口
外设接口电路用于连接手持编程器或其他图形编程器、文本显示器,并能通过外设接口组成PLC的控制网络。PLC使用PC/PPI电缆或者MPI卡通过RS-485接口与计算机连接,可以实现编程、监控、联网等功能。
二、PLC程序原理
2.1 指令系统
西门子是工业自动化领域的重要厂商之一,他们为其PLC产品提供了特定的指令系统。
以下是西门子PLC(例如S7-1200和S7-1500系列)常用的指令系统:
-
逻辑指令:与、或、非和异或等逻辑操作指令,例如AND、OR、NOT、XOR。
-
比较指令:用于比较数据或变量之间的关系,例如等于(EQ)、不等于(NE)、大于(GT)、小于(LT)等。
-
数学指令:包括加法(ADD)、减法(SUB)、乘法(MUL)、除法(DIV)等基本算术操作指令。还有一些高级数学指令,如开方(SQRT)、对数(LOG)等。
-
定时器指令:用于实现定时功能,包括打开定时器(TON)、关闭定时器(TOF)、读取定时器值(TP)等。
-
计数器指令:用于实现计数功能,包括打开计数器(CTU)、关闭计数器(CTD)、读取计数器值(CV)等。
-
转移指令:用于程序的跳转和转移,例如条件跳转(JMP)、子程序调用(CALL)等。
-
位操作指令:用于处理位数据的操作,如设置位(SET)、重置位(RES)、翻转位(INV)等。
-
数据传输指令:用于在不同的寄存器和存储器之间传输数据,例如从输入寄存器读取数据(IR)、写入变量到输出寄存器(QW)等。
-
数据转换指令:用于不同数据类型之间的转换,例如整数到浮点数的转换、字符串到数值的转换等。
-
特殊功能指令:西门子PLC还提供了一些特殊功能指令,如高速计数器(HSC)、位置控制器(PID)等,用于特定的应用需求。
以上仅是西门子PLC指令系统的一些常见示例。具体的指令集和指令使用方法可能会根据PLC型号和固件版本的不同而有所差异。建议根据具体的PLC型号,参考相应的编程手册和技术文档,以了解更详细和具体的指令信息。
2.2 PLC的软件组成
PLC的软件由系统程序和用户程序组成。
系统程序由PLC制造厂商设计编写,并存入PLC的系统存储器中,用户不能直接读写与更改。
系统程序一般包括:系统诊断程序、输入处理程序、编译程序、信息传送程序及监控程序等。
PLC的用户程序是用户利用PLC的编程语言,根据控制要求编制的程序。在PLC的应用中,最重要的是用PLC的编程语言来编写用户程序,以实现控制目的。
由于PLC是专门为工业控制而开发的装置,其主要使用者是广大电气技术人员,为了满足他们的传统习惯和掌握能力,PLC的主要编程语言采用比计算机语言相对简单、易懂、形象的专用语言。
1.图形式指令结构
2.明确的变量常数
3.简化的程序结构
4.简化应用软件生成过程
5.强化调试手段
PLC的软件由系统程序和用户程序组成,它们共同协作来实现控制系统的功能。
系统程序:系统程序是PLC的内置程序,也被称为操作系统或固件。它提供了PLC的基本功能和通用服务,包括与硬件交互、处理输入输出、实时调度任务、诊断和故障处理等。系统程序通常由PLC厂商开发和提供,并在PLC出厂时预装。
用户程序:用户程序是由用户根据具体的应用需求编写的,用于实现特定的控制逻辑和功能。用户程序通常由一系列逻辑和功能块组成,这些块包括输入和输出块、逻辑块、运算块、定时器和计数器块等。用户程序是根据实际的控制需求编写的,它根据输入信号的状态,经过逻辑判断和计算,控制输出信号的状态,从而实现对外部设备的控制。
用户程序可以使用类似于梯形图(Ladder Diagram)的图形编程语言(如LD),也可以使用文本编程语言(如指令列表/基于文本的编程语言(IL/ST))进行编写。不同的PLC厂商和型号可能提供不同的编程语言和开发环境。
用户程序需要通过PLC编程工具进行编写、编辑、调试和下载到PLC中运行。这些编程工具通常提供了图形化界面、在线监视和在线修改等功能,以便用户进行程序开发和调试。
总而言之,系统程序提供了PLC的基本功能和服务,而用户程序是根据具体需求编写的,用于实现特定的控制逻辑和功能。它们共同工作,实现对工业自动化系统的控制和操作。
2.3 PLC系统软件架构
PLC系统程序的软件架构可以根据具体的PLC厂商和型号有所不同,但一般都包含以下几个核心组件:
-
内核(Kernel):内核是PLC系统程序的核心部分,负责系统的启动和管理,包括任务/应用程序的调度、算法执行、内存管理、设备驱动程序等。内核通常是一个实时操作系统(RTOS),能够快速响应输入和输出信号,确保控制系统的实时性和稳定性。
-
输入输出(I/O)模块:输入输出模块是PLC系统程序的重要组成部分,用于处理外部输入和输出信号。它包括输入模块用于接收外部传感器和信号,以及输出模块用于控制外部执行器和设备。输入输出模块负责与外部设备进行数据交换,并将信号传递给其他部分进行处理。
-
通信模块:通信模块用于实现PLC与其他设备、网络和系统的通信。它可以支持多种通信协议和接口,如以太网、串口、CAN总线等。通信模块使PLC能够与上位机、SCADA系统、HMI界面、其他PLC等进行数据交换和远程监控。
-
编程环境和工具:PLC系统程序的开发和调试通常需要通过特定的编程环境和工具来进行。这些工具提供了图形化的界面和编程语言,用于编写、编辑、调试和下载用户程序。编程环境和工具还可以支持在线监视和在线修改等功能,方便用户进行程序开发和调试。
-
诊断和故障处理:PLC系统程序通常都提供了一些诊断和故障处理功能,用于监测系统状态、检测错误和故障,并提供相应的报警和诊断信息。这些功能可以帮助用户及时发现和解决问题,提高系统的可靠性和可维护性。
需要注意的是,以上只是一个简单的概述,实际的PLC系统程序软件架构可能更加复杂,具体的架构会根据PLC厂商和型号的不同而有所差异。在实际应用中,用户可以通过PLC厂商提供的技术文档和编程手册,了解具体的软件架构和开发工具,以及相应的开发和调试方法。
2.4 PLC应用程序架构
PLC应用程序架构是指将PLC应用程序划分为组件、模块和功能块的结构,以实现复杂控制逻辑和功能的开发和维护。一个标准的PLC应用程序架构通常包含以下几个层次:
-
输入输出层:这一层是控制系统的前端,用于处理输入信号和输出信号,然后将其传递给逻辑层进行处理。输入信号通常来自传感器、开关和其他外部设备,而输出信号通常控制电机、执行器、阀门等设备。
-
逻辑层:逻辑层是由各种逻辑功能块及其组合构成的,用于实现控制系统的基本逻辑和功能。逻辑功能块可以包括各种逻辑运算、计算器、定时器、计数器、比较器等等,它们通过逻辑运算和复合实现更复杂的逻辑操作,以实现系统所需的特定功能。
-
应用程序层:这一层是控制系统的核心,它将输入输出层和逻辑层连接起来,实现系统功能的控制和运作。具体来说,应用程序层包括了执行PLC应用程序的主控程序,还有用于执行批处理、数据管理、数据监视等特殊功能的子程序。
-
上层/客户端应用层:这一层是用于与PLC系统进行交互、设置和监视系统运行状态的用户前端。上层/客户端应用程序可以是人机界面(HMI)、工厂信息系统(MES)、商务管理系统(ERP)等应用程序,以便在生产环境中实现远程监视和控制。
总之,PLC应用程序架构是将PLC应用程序划分为组件、模块和功能块的结构,以实现复杂控制逻辑和功能的开发和维护。PLC应用程序层次结构的每个层次都有特定的功能和实现方法,开发人员可以根据需要进行组合和修改,以达到所需的控制系统目标。
2.5 PLC系统程序是如何调用应用程序的?
PLC系统程序中的应用程序通常是以子程序(Subroutine)的形式来调用的。
子程序是一段独立的代码,用于实现特定的功能或逻辑操作。
通过调用子程序,PLC系统程序可以在需要时执行相应的功能。
在PLC系统程序中,调用应用程序的步骤通常如下:
-
定义应用程序:首先,需要在PLC系统程序中定义应用程序或子程序。这可以通过编程软件或开发环境中的特定功能来实现。在定义子程序时,需要指定子程序的名称、输入参数和输出结果。
-
调用应用程序:在PLC系统程序的适当位置,使用特定的指令或功能块调用所需的应用程序。调用应用程序时需要提供所需的输入参数,以便应用程序可以进行必要的计算和处理。
-
执行应用程序:一旦应用程序被调用,PLC系统程序会立即跳转到应用程序的代码段,并开始执行。应用程序独立运行,执行其定义的功能或逻辑操作。在执行过程中,应用程序可以使用输入参数进行计算、读取输入状态、执行逻辑操作,并生成相应的输出结果。
-
返回结果:当应用程序执行完毕后,会将结果返回给PLC系统程序,供后续的逻辑操作使用。根据需要,系统程序可以根据应用程序的输出结果作出相应的决策或触发其他动作。
在PLC系统程序中调用应用程序时,需要根据具体的PLC编程语言和开发环境使用相应的指令或功能块。常见的调用应用程序的指令有CALL、JSR、EXECUTE、JSUB等,具体指令名称和语法会根据PLC厂商和编程环境的不同而有所差异。
需要注意的是,调用应用程序时,应确保程序的执行顺序和所使用的资源是正确和合适的,以避免出现冲突或错误。在编写和调用应用程序时,开发人员应该仔细考虑输入参数、输出结果和代码逻辑,确保程序能够按照预期执行并产生正确的结果。
2.6 PLC程序的执行原理
PLC扫描的工作方式主要分三个阶段:
- 输入采样阶段、
- 用户程序执行阶段
- 输出刷新阶段
如图所示:
(1)输入采样阶段
在输入采样阶段,PLC以扫描方式依次读入所有输入状态和数据,并将它们存入I/O映象区中的相应单元内。输入采样结束后,转入用户程序执行和输出刷新阶段。在这两个阶段中,即使输入状态和数据发生变化,I/O映象区中相应单元的状态和数据也不会改变。
因此,如果输入的是脉冲信号,则该脉冲信号的宽度必须大于一个扫描周期,才能保证在任何情况下,该输入均能被读入。
(2)用户程序执行阶段
在用户程序执行阶段,PLC总是按由上而下的顺序依次扫描用户程序(梯形图)。在扫描每一条梯形图时,又总是先扫描梯形图左边由各触点构成的控制线路,并按先左后右、先上后下的顺序对由触点构成的控制线路进行逻辑运算;然后根据逻辑运算的结果,刷新该逻辑线圈在系统RAM存储区中对应位的状态,或者刷新该输出线圈在I/O映象区中对应位的状态,或者确定是否要执行该梯形图所规定的特殊功能指令。
即在用户程序执行过程中,只有输入点在I/O映象区内的状态和数据不会发生变化,而其他输出点和软设备在I/O映象区或系统RAM存储区内的状态和数据都有可能发生变化,而且排在上面的梯形图,其程序执行结果会对排在下面的凡是用到这些线圈或数据的梯形图起作用;相反,排在下面的梯形图,其被刷新的逻辑线圈的状态或数据只能到下一个扫描周期才能对排在其上面的梯形图起作用。
(3)输出刷新阶段
当用户程序扫描结束后,PLC就进入输出刷新阶段。在此期间,CPU按照I/O映象区内对应的状态和数据刷新所有的输出锁存电路,再经输出电路驱动相应的外设。这时,才是PLC的真正输出。
2.7 PLC程序扫描周期
PLC(可编程逻辑控制器)的扫描周期是指PLC系统完成一次应用程序主循环的扫描所需的时间。
它是PLC系统正常运行的基本时间单位,也是控制程序的执行周期。
PLC的扫描周期通常由以下几个阶段组成:
-
输入扫描(Input Scan):PLC首先读取输入信号的状态,包括传感器、开关和其他外部设备的状态。输入扫描通常涉及读取输入模块的状态和更新输入变量的值。
-
程序执行(Program Execution):在程序执行阶段,PLC根据控制程序的逻辑和功能要求,执行相应的操作和计算。这包括执行各种逻辑运算、计算器、定时器、计数器等功能块,以及执行应用程序、子程序等的调用和运行。
-
输出更新(Output Update):在输出更新阶段,PLC根据控制程序的逻辑和计算结果,更新输出信号的状态。这包括控制电机、执行器、阀门等设备的输出,以实现对外部设备的实时控制。
-
周期延迟(Cycle Delay):在每个扫描周期的末尾,PLC可能会存在一定的延迟,用于处理通信、数据交换、故障处理、系统运行维护等任务。周期延迟的时间可以根据具体的PLC系统配置和要求进行调整。
PLC扫描周期的选择主要取决于具体的应用需求和系统性能要求。较短的扫描周期可以提供更高的实时性和响应性,但可能会增加系统的计算负担和资源消耗。较长的扫描周期可以减少系统资源的占用,但响应时间和实时性可能会受到一定影响。
需要注意的是,PLC扫描周期与控制循环时间并不完全相同。控制循环时间是指PLC系统完成一次对输入状态的读取、程序执行和输出更新等操作所需的时间,包括了扫描周期和可能的延迟时间。
在实际应用中,选择合适的PLC扫描周期需要进行系统需求分析和性能评估。对于需要快速响应和高实时性的应用,可以选择较短的扫描周期;而对于对实时性要求相对较低的应用,可以选择较长的扫描周期。同时,还需要考虑PLC系统的处理能力、输入输出模块的速度以及通信性能等因素,以保证系统能够稳定可靠地运行。
2.8 输入/输出滞后现象
从PLC的工作过程,可以总结如下几个结论:
1、以扫描的方式执行程序,其输入/输出信号间的逻辑关系存在着原理上的滞后。扫描周期越长,滞后就越严重。
2、扫描周期除了包括输入采样阶段、用户程序执行阶段、输出刷新阶段三个主要工作阶段所占的时间外,还包括系统管理操作占用的时间。其中,程序执行的时间与程序的长短及指令操作的复杂程度有关,其他基本不变。扫描周期一般为毫微秒级。
3、第n次扫描执行程序时,所依据的输入数据是该次扫描周期中采样阶段的扫描值X依据的输出数据有上一次扫描的输出值Y(n-1),也有本次的输出值Yn;所n送往输出端子的信号,即是本次执行全部运算后的最终结果Yn。
4、输入/输出响应滞后不仅与扫描方式有关,还与程序设计安排有关。
2.9 PLC扫描周期与程序循环周期是一样吗?
PLC(可编程逻辑控制器)的扫描周期和程序循环周期是不同的概念。
PLC(可编程逻辑控制器)的扫描周期和程序循环周期具有不同的特点和应用。
PLC扫描周期是指PLC系统完成一次对程序主循环的扫描所需的时间。它是PLC系统正常运行的基本时间单位,也是控制程序的执行周期。在扫描周期内,PLC系统要完成输入信号的读取、程序逻辑的执行以及输出信号的更新等操作。PLC扫描周期的长度是由硬件性能和系统资源决定的,一般在毫秒级别。
程序循环周期是指PLC控制程序完成一次循环所需的时间,包括读取输入状态、执行控制逻辑、更新输出状态等操作。程序循环周期长度应该设置为扫描周期的一部分,一般应该短于扫描周期,以保证在一次扫描周期内能够完成多次循环。程序循环周期的长度可以通过调节控制程序的优化参数进行设置和调整,一般在毫秒到几十毫秒之间。
对于大多数简单的PLC应用,程序循环周期的长度一般是固定的,或者在生产线调试期间进行调整。在一些高性能的PLC系统或需要进行更加复杂控制处理的应用中,程序循环周期的长度可能需要根据实际情况进行调整。
从应用层面来看,PLC扫描周期是PLC系统的基本时间单位,它影响着系统的实时性和响应时间。而程序循环周期是控制程序的执行周期,影响着系统的精度和稳定性。在实际应用中,需要根据不同的应用需求和实际硬件性能,合理设置PLC的扫描周期和程序循环周期,以达到最佳的控制效果。
2.10 PLC是多线程系统吗?不是!PLC是单线程模型!!!
传统的PLC(可编程逻辑控制器)通常不直接支持多线程。传统的PLC系统设计为单线程模型,其主要目标是实现对于实时控制逻辑的可靠执行,而不是并行处理多个线程。
然而,一些现代化的PLC产品已经引入了一些并发执行的概念,以满足更复杂的应用需求。这些PLC产品可能提供了一些类似于多线程的机制,允许在单个PLC中同时执行多个任务。
具体来说,现代化的PLC产品可能会提供以下功能来支持并发处理:
-
多任务功能:现代PLC通常具有多任务执行的能力,可以定义和执行多个独立的任务。每个任务可以独立运行,在相同的PLC中同时进行处理。
-
多线程仿真:某些PLC开发环境提供多线程仿真功能,可以模拟并发执行多个任务的情况。这样可以在开发和调试阶段验证并发控制的正确性。
-
并行处理模块:一些PLC系统可能会提供特定的并行处理模块或功能块,用于同时处理多个独立任务。这些功能块可以在同一扫描周期内并行执行不同的操作。
需要注意的是,即使PLC系统提供了一些多线程或并发执行的支持,仍然需要注意任务之间的资源竞争和冲突。PLC的资源包括输出模块、输入模块、共享变量、计时器、计数器等。在设计和编程多线程应用程序时,需要仔细考虑这些资源的使用和共享,以避免潜在的问题。
综上所述,传统PLC系统通常不直接支持多线程,但现代一些PLC产品可能提供一些并发执行的机制,以支持多任务处理。对于复杂的应用需求,可以选择支持并行处理的PLC产品或在PLC系统中采用其他技术来实现多任务并发操作。
三、PLC程序开发架构:开发系统(主机系统)、运行系统(嵌入式目标系统)
在PLC程序开发中,通常存在两个主要的架构层次:开发系统(主机系统)和运行系统(嵌入式目标系统)。
-
开发系统:开发系统是用于PLC程序的编写、编辑、调试和上传等任务的环境。它通常由PLC软件和开发工具组成,提供了一个图形化的界面和编程语言,使工程师能够以可视化的方式构建和调试程序。开发系统通常包括以下组件:
- 编程软件:PLC厂商提供的专用软件,用于创建和编辑PLC程序。这些编程软件通常支持多种编程语言(如梯形图、函数块图、结构化文本语言等)和图形化编辑工具。
- 仿真工具:用于在开发环境中模拟PLC程序的执行,并检查其行为和输出。这样,开发人员可以在实际部署之前测试和验证程序的功能和逻辑。
- 调试工具:用于跟踪和调试PLC程序,以解决可能出现的错误和故障。调试工具可以提供实时监视变量、跟踪程序运行、设置断点等功能,以帮助开发人员定位和修复问题。
-
运行系统:运行系统是PLC程序在实际运行时的环境,用于实时控制和监视外部设备。它通常由PLC硬件和系统固件(内核)组成,包括以下组件:
- PLC硬件:PLC硬件包括主处理器(CPU)、输入输出模块、通信模块和其他扩展模块。这些硬件组件负责接收和处理输入信号,并控制输出信号,实现对外部设备的实时控制。
- 系统固件(内核):PLC系统固件是安装在PLC硬件上的操作系统或固定程序。它提供了核心功能,如任务调度、硬件驱动、I/O处理、通信协议等,以确保PLC程序的可靠运行。
- 实时监控和反馈:运行系统通过实时监控和反馈机制,实时监听外部输入信号和控制输出信号,确保PLC程序按照预期执行,并实时响应外部事件和变化。
开发系统和运行系统在PLC程序的生命周期中扮演不同的角色。开发系统用于开发、测试和调试程序,而运行系统用于实际的控制和监视任务。在开发完成后,PLC程序将从开发系统上传到运行系统中,然后由运行系统在PLC硬件上执行。
需要注意的是,具体的PLC程序开发架构可能会因PLC厂商、型号、应用需求和行业标准的不同而有所变化。用户在进行PLC程序开发时,应参考PLC厂商提供的文档和手册,了解具体的开发系统和运行系统架构,并按照指导进行开发和部署。
相关文章:

[工业自动化-18]:西门子S7-15xxx编程 - 软件编程 - PLC用于工业领域的嵌入式系统:硬件原理图、指令系统、系统软件架构、开发架构等
目录 前言: 一、PLC的硬件电路原理 1.1 硬件框图 1.2 硬件模块详解 (1)CPU (2)存储器 (3)输入/输出(I/O)模块 (4)编程器 (5&a…...

【C++】——运算符重载
🎃个人专栏: 🐬 算法设计与分析:算法设计与分析_IT闫的博客-CSDN博客 🐳Java基础:Java基础_IT闫的博客-CSDN博客 🐋c语言:c语言_IT闫的博客-CSDN博客 🐟MySQL:…...
怎么理解独立机器和虚拟机
独立服务器:顾名思义,就是一个放在机房的实实在在的物理服务器,一个单独的主机(具有性能高,处理速度快等优点,但 也有价格高,可扩展性不强等缺点) vps:虚拟专用服务器,一…...

以太网和局域网
计算机网络的定义 计算机网络是一个将分散的、具有独立功能的计算机,通过通信设备与线路连接起来,由根据协议编写的软件来实现的资源共享和信息传递的系统 计算机网络的分类 广域网是互联网的核心部分 局域网 常见的局域网拓扑结构有4大类:…...
【Git】第三篇:基本操作(配置本地仓库)
初次使用git需要设置你的用户名以及邮箱,这将作为当前机器git的标识,如果你用它来下载远程仓库一些需要登录权限的仓库会要求登录,git默认使用配置邮箱以及用户名登入,但会要求你手动输入密码。 配置本地仓库:git con…...
JS中sort排序
在我们JS排序中,有许多排序的方法,比如冒泡排序、选择排序等等。这次我为大家介绍一下sort排序! sort 按照 Unicode code 位置排序,默认升序 默认情况下,sort()会按照升序重新排序数组,即最小值在前最大值…...

【现场问题】datax中write部分为Oracle的时候插入clolb类型字段,插入的数据为string且长度过场问题
datax的Oraclewriter 报错显示查询报错展示查找datax中的数据插入模块 报错显示 occurred during batching: ORA-01704: string literal too long 查询报错展示 基本上查到的都是这样的,所以锁定是clob的字段类型的问题,而且是只有Oracle出问题&#…...

ASK、PSK、FSK的调制与解调
ASK、PSK、FSK的调制与解调 本文主要涉及数字信号的调制与解调,内容包括:2ASK、2PSK、2FSK的调制与解调以及频谱分析 关于通信原理还有其他文章可参考: 1、信息量、码元、比特、码元速率、信息速率详细解析——实例分析 2、模拟系统的AM信号的…...

基于XML的声明式事务
场景模拟 参考基于注解的声明式事务 修改Spring的配置文件 将Spring配置文件中去掉tx:annotation-driven标签,并添加配置: <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org…...
力扣labuladong一刷day9滑动窗口共4题
力扣labuladong一刷day9滑动窗口共4题 文章目录 力扣labuladong一刷day9滑动窗口共4题一、76. 最小覆盖子串二、567. 字符串的排列三、438. 找到字符串中所有字母异位词四、3. 无重复字符的最长子串 一、76. 最小覆盖子串 题目链接:https://leetcode.cn/problems/m…...

ubuntu开机系统出错且无法恢复。请联系系统管理员。
背景: ubuntu22.04.2命令行,执行自动安装系统推荐显卡驱动命令,字体变大,重启后出现如下图错误,无法进入系统,无法通过CTRLALTF1-F3进入TTY模式。 解决办法: 1.首先要想办法进入系统ÿ…...

Transformer详解一:transformer的由来和先导知识
目录 参考资料前言一、预训练二、神经网络语言模型(NNLM):预测下一个词one-hot编码的缺陷词向量(word embedding) 三、Word2Vec模型:得到词向量CBOWSkip-gramWord2Vec和NNLM的区别Word2Vec的缺陷 四、ELMO模…...

数字化产品经理的金字塔能力模型
在企业数字化转型的浪潮下,要求IT团队更加主动的服务业务、赋能业务,而数字化产品经理正是IT、业务融合的桥梁,该岗位需要具备业务、技术、商业的复合知识结构,并且拥有很强的自驱力。那么数字化产品经理在企业如何产生价值、赋能…...

这 11 个 for 循环优化你得会
日常开发中,经常会遇到一些循环耗时计算的操作,一般也都会采用 for 循环来处理,for 作为编程入门基础,主要是处理重复的计算操作,虽然简单好用,但在写法上也有很多的考究,如果处理不好ÿ…...

JVM字符串常量池StringTable
目录 一、StringTable为什么要调整 二、String的基本特性 三、String的内存分配 四、字符串拼接操作 五、intern()方法 六、Stringtable的垃圾回收 七、G1中String去重操作 一、StringTable为什么要调整 jdk7之前,hotspot对于方法区的实现是永久代ÿ…...
【华为OD题库-010】寻找矿堆的最大价值-Java
题目 给你一个由0(空地)、1(银矿)、2(金矿)组成的的地图,矿堆只能由上下左右相邻的金矿或银矿连接形成。超出地图范围可以认为是空地。 假设银矿价值1,金矿价值2,请你找出地图中最大价值的矿堆并输出该矿堆的价值 输入描述 地图元素信息如: 2…...

在PyTorch中使用CUDA, pytorch与cuda不同版本对应安装指南,查看CUDA版本,安装对应版本pytorch
目录 1 查看本机CUDA版本 2 查看对应CUDA的对应pytorch版本安装 3 用pip 安装 4 用conda安装 5 验证安装 在PyTorch中使用CUDA,根据你的具体环境和需求调整版本号,确保安装的PyTorch版本与你的CUDA版本兼容。 在PyTorch中使用CUDA,你需…...

copilot 产生 python工具函数并生成单元测试
stock.py 这个文件,我只写了注释(的开头),大部分注释内容和函数都是copilot # split a string and extract the environment variable from it # input can be , pathabc, pathabc;pathdef, pathabc;pathdef;pathghi # output i…...

缓存与数据库双写一致性几种策略分析
一、背景 在高并发场景中,为防止大量请求直接访问数据库,缓解数据库压力,常用的方式一般会增加缓存层起到缓冲作用,减少数据库压力。引入缓存,就会涉及到缓存与数据库中数据如何保持一致性问题,本文将对几…...

Spring全家桶源码解析--2.6 Spring scope 限制bean的作用范围
文章目录 前言一、Scope是什么?二、Scope使用2.1 单例:2.1.1 单例Bean的特点如下:2.1.2 单例设计模式 与单例bean: 2.2 原型bean:2.2.1 原型Bean的特点:2.2.2 原型Bean的销毁: 2.3 Request bean…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

Docker 运行 Kafka 带 SASL 认证教程
Docker 运行 Kafka 带 SASL 认证教程 Docker 运行 Kafka 带 SASL 认证教程一、说明二、环境准备三、编写 Docker Compose 和 jaas文件docker-compose.yml代码说明:server_jaas.conf 四、启动服务五、验证服务六、连接kafka服务七、总结 Docker 运行 Kafka 带 SASL 认…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...

计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...

pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...

对象回调初步研究
_OBJECT_TYPE结构分析 在介绍什么是对象回调前,首先要熟悉下结构 以我们上篇线程回调介绍过的导出的PsProcessType 结构为例,用_OBJECT_TYPE这个结构来解析它,0x80处就是今天要介绍的回调链表,但是先不着急,先把目光…...

麒麟系统使用-进行.NET开发
文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的,如果需要进行.NET开发,则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET,所以要进…...

Qwen系列之Qwen3解读:最强开源模型的细节拆解
文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...
简单介绍C++中 string与wstring
在C中,string和wstring是两种用于处理不同字符编码的字符串类型,分别基于char和wchar_t字符类型。以下是它们的详细说明和对比: 1. 基础定义 string 类型:std::string 字符类型:char(通常为8位)…...