西门子供应CPU模块代理商
PLC是什么意思?相信很多人处于大概知道是什么,但是又无法准确说出的阶段,作为专注于为企业提供数据采集和设备控制解决方案的众诚工业,今天和大家探讨一下。
而众诚工业还能根据用户需求,设计PLC控制程序,为客户提供PLC编程和上位机软件的定制化开发技术服务,满足用户的多种需求,比如,自主研发的洁净空调智能控制系统和通风排风智能控制系统就配置PLC,不仅具有报警和定时控制功能,还兼具可扩展性和兼容性,系统能被第三方系统集成。
以上PLC的基本介绍,相信大家对PLC也有一个初步的了解。PLC的型号、品牌不同,对应着其结构形式、性能、编程方式等等都有所差异,价格也各不相同,在挑选时候,建议先要明确自己的应用需求,比如具体的应用场景,希望实现的运动和控制功能,已经特殊的控制要求,这些将决定了PLC的选型和搭配组合。
简单地说,PLC就是一种小型的计算机,和我们常用的计算机不同的是,PLC是设备之间通过数字信号进行互动,而我们常用的计算机,是人和计算机的互动。
控制是PLC的核心功能,其控制类型主要分为以下几种1、开关量的开环控制。这是PLC*基本的控制功能,它能凭借其强大的逻辑运算能力,取代传统继电接触器的控制系统;
2、数据采集与监控。这是PLC非常必要的功能,否则它将无法完成现场控制;
3、数字量智能控制。PLC具有实现接收和输出高速脉冲的功能,近年来先进的PLC还开发了数字控制模块和新型运动单元模块,让工程师更加轻松地通过PLC实现数字量控制;
4、PLC能通过模拟量采集和调节温度、压力、速度等参数。
正因为PLC功能强大,且具有设计方便、重量体积小、能耗低、改造工作量小、通用性强、维护方便等易学易用的特点,深受工程师的欢迎,因此应用非常广泛,钢铁、石油、化工、纺织、交通、机械制造等等行业都能看到它的身影。
系统要保证扫描周期在一定的时间段内(即*大循环时间)完成;否则将生成时间错误事件。 • 在每个扫描周期的开始,从过程映像重新获取数字量及模拟量输出的当前值,然后将其 写入到 CPU、SB 和 SM 模块上组态为自动 I/O 更新(默认组态)的物理输出。 通过指令 访问物理输出时,输出过程映像和物理输出本身都将被更新。 • 随后在该扫描周期中,将读取 CPU、SB 和 SM 模块上组态为自动 I/O 更新(默认组态)的 数字量及模拟量输入的当前值,然后将这些值写入过程映像。 通过指令访问物理输入时, 指令将访问物理输入的值,但输入过程映像不会更新。 • 读取输入后,系统将从第一条指令开始执行用户程序,一直执行到*后一条指令。 其中 包括所有的程序循环 OB 及其所有关联的 FC 和 FB。 程序循环 OB 根据 OB 编号依次执行, OB 编号*小的先执行。 在扫描期间会定期处理通信请求,这可能会中断用户程序的执行。 自诊断检查包括定期检查系统和检查 I/O 模块的状态。 中断可能发生在扫描周期的任何阶段,并且由事件驱动。事件发生时,CPU 将中断扫描循环, 并调用被组态用于处理该事件的 OB。 OB 处理完该事件后,CPU 从中断点继续执行用户程序。 5.1.3 组织块 (OB) OB 控制用户程序的执行。CPU 中的特定事件将触发组织块的执行。OB 无法互相调用。FC 或 FB 不能调用 OB。只有发生诊断中断或时间延迟这类事件才能启动 OB 的执行。CPU 按照 OB 对应的优先级对其进行处理,遵从高优先级在前低优先级在后的顺序执行 OB。 参见 事件执行的优先级与排队 (页 83) 5.1.3.1 程序循环 OB 程序循环 OB 在 CPU 处于 RUN 模式时循环执行。主程序块是一种程序循环 OB。您可在此处 放置控制程序的说明和调用其他用户块。您可以拥有多个程序循环 OB,CPU 将按编号顺序 执行这些 OB。主 (OB 1) 是默认程序循环。程序循环事件在每个程序循环(扫描)期间发生一次在程序循环期间,CPU 写入输出、读取 输入和执行程序循环 OB。程序循环事件是必需的,并且一直启用。可以没有任何程序循环 OB,也可以有多个程序循环 OB。程序循环事件发生后,CPU 将执行编号*小的程序循环 OB (通常为“Main”OB 1)。在程序循环中,CPU 会依次(按编号顺序)执行其它程序循环 OB。 程序循环执行,因此将在以下时刻发生程序循环事件: • 上一个启动 OB 执行结束 • 上一个程序循环 OB 执行结束 表格 5-2 程序循环 OB 的起始信息 输入 数据类型 描述 Initial_Call Bool 初始调用 OB 时为“True” Remanence Bool 保持性数据可用时为“True” 5.1.3.2 启动 OB 启动 OB 在 CPU 的操作模式从 STOP 切换到 RUN 时执行一次,包括处于 RUN 模式时和执行 STOP 到 RUN 切换命令时上电。之后将开始执行主“程序循环”OB。请参见“CPU 的工作模式 (页 68)”中的“开始处理” 5.1.3.3 延时中断 OB 延时中断 OB 在组态的时延后执行。 延时中断事件 将延时中断事件组态为在经过一个指定的延时后发生。延迟时间可通过 SRT_DINT 指令分配。 延时事件负责中断程序循环,以执行相应的延时中断 OB。一个延时事件只可连接一个延时 中断 OB。CPU 支持四个延时事件。 表格 5-3 延时中断 OB 的启动信息 输入 数据类型 说明 Sign Word 传递给 SRT_DINT 调用触发的标识符循环中断 OB 循环中断 OB 以指定的时间间隔执行。*多可组态四个循环中断事件,每个循环中断事件对 应一个 OB。 循环中断事件 用户可通过循环中断事件组态中断 OB 在组态的周期时间执行。创建循环中断 OB 时即可组 态初始周期时间。循环事件负责中断程序循环并执行相应的循环中断 OB。请注意,循环中 断事件的优先级比程序循环事件更高。 一个循环事件只可连接一个循环中断 OB。 可为每一个循环中断分配一个相移,从而使循环中断彼此错开一定的相移量执行。例如,如 果有 5 ms 的循环事件和 10 ms 的循环事件,并且这两个事件每 10 毫秒同时发生一次。如 果将 5 ms 的事件相移 1 到 4 ms,将 10 ms 的事件相移 0 ms,则这两个事件不再会同时发生。 默认相位偏移为 0。要更改初始相移,或更改循环事件的循环时间,请执行以下步骤: 1. 在项目树中右键单击循环中断 OB。 2. 从上下文菜单中选择“属性”(Properties)。 3. 单击“循环中断 [OB 30]”(Cyclic interrupt [OB 30]) 对话框中的“循环中断”(Cyclic interrupt), 然后输入新的初始值。 *大相移为 6000 ms(6 秒)或为*大循环时间,选择两者中的较小者。 还可以用 Query 循环中断 (QRY_CINT) 和 Set 循环中断 (SET_CINT) 指令在程序中查询并更改 扫描时间和相移。SET_CINT 指令设置的扫描时间和相移不会在上电循环或切换到 STOP 模式 的过程中保持不变;扫描时间和相移值会在上电循环或切换到 STOP 模式后重新变为初始值。 CPU 共支持四个循环中断事件。 5.1.3.5 硬件中断 OB 硬件中断 OB 在发生相关硬件事件时执行。硬件中断 OB 将中断正常的循环程序执行来响应 硬件事件信号。 硬件中断事件 硬件发生变化时将触发硬件中断事件,例如输入点上的上升沿/下降沿事件或者 HSC(High Speed Counter,高速计数器)事件。S7‑1200 支持为每个硬件中断事件使用一个中断 OB。 可在设备组态中启用硬件事件,并在设备组态中为事件分配 OB,也可在用户程序中通过 ATTACH 指令进行分配。CPU 支持多个硬件中断事件。具体的可用事件由 CPU 型号和输入点 数决定。 硬件中断事件数具有以下限制:HSC 事件: • CV=PV:*多 6 个 • 方向更改:*多 6 条 • 外部复位:*多 6 条 表格 5-4 硬件中断 OB 的启动信息 输入 数据类型 说明 LADDR HW_IO 触发硬件中断的模块的硬件标识符。 USI WORD 用户结构标识符(16#0001 至 16#FFFF),保留供以后使用 IChannel USINT 触发中断的通道的编号 EventType BYTE 与触发中断的事件相关的模块特定事件类型的标识符,例如 下降沿或上升沿。 EventType 中的位取决于如下触发模块: 模块/子模块 值 过程事件 CPU 或 SB 的 板载 I/O 16#0 上升沿 16#1 下降沿 HSC 16#0 HSC CV=RV1 16#1 HSC 方向已更改 16#2 HSC 复位 16#3 HSC CV=RV2 5.1.3.6 时间错误中断 OB 如已组态,那么当扫描周期超过*大周期时间或发生时间错误事件时,将执行时间错误中断 OB (OB 80)。如已触发,错误中断将中断正常的循环程序执行或其它任何事件 OB。 发生以下任何事件都会生成描述该事件的诊断缓冲区条目。无论是否存在时间错误中断 OB, 都会生成诊断缓冲区条目。出现几种不同时间错误情况中的任何一种都会引起时间错误事件: • 扫描周期超过*大周期时间 如果程序循环在指定的*大扫描周期时间内未完成,就会出现“超出*大周期时间”这 种情况。有关详细信息,请参见主题“监视和组态循环时间 (页 87)”。 • 由于在 CPU 结束执行第一次中断 OB 前又启动了第二次中断(循环或延时),因此 CPU 无 法启动所请求的 OB。 • 发生队列溢出 如果中断的出现频率超过 CPU 的处理频率,就会出现“发生队列溢出”这种情况。CPU 通 过不同的队列对各种事件类型的未决(排队的)事件数量加以限制。如果相应队列已满 时发生某一事件,那么 CPU 将生成一个时间错误事件。 所有时间错误事件都会触发时间错误中断 OB(如果存在)的执行。如果不存在时间错误中断 OB,则 CPU 更改为 STOP 模式。 通过执行 RE_TRIGR 指令 (页 301)重启周期时间监视,用户程序可将程序循环执行时间*多 延长为所组态*大周期时间的十倍。但是,如果在同一程序循环中出现两次“超出*大周期 时间”情况且没有复位循环定时器,则无论时间错误中断 OB 是否存在,CPU 都将切换到 STOP 模式。请参见主题“监视和组态循环时间 (页 87)”。 时间错误中断 OB 包含的启动信息可帮助您确定生成时间错误的事件和 OB。可以在 OB 中编 写指令,以检查这些启动值并采取适当的措施。 表格 5-5 时间错误 OB (OB 80) 的启动信息 输入 数据类型 描述 Fault_ID BYTE 16#01 - 超出*大循环时间 16#02 - 请求的 OB 无法启动 16#07 和 16#09 - 发生队列溢出 Csg_OBnr OB_ANY 出错时正在执行的 OB 的编号 Csg_Prio UINT 导致错误的 OB 的优先级 有关将 OB 添加到项目的说明,请参见主题“组织块 (OB) (页 72)”。 新 V4.0 CPU 的优先级为 22。如果将 V3.0 CPU 更换为 V4.0 CPU (页 1490),则优先级为 26, 即对 V3.0 有效的优先级。无论哪种情况,优先级字段都可以编辑,用户可以将优先级设置为 22 到 26 之间的任何值。诊断错误中断 OB 当 CPU 检测到诊断错误,或者具有诊断功能的模块发现错误且为该模块启用了诊断错误中 断时,将执行诊断错误中断 OB。诊断错误中断 OB 将中断正常的循环程序执行。如果希望 CPU 在收到诊断错误后进入 STOP 模式,可在诊断错误中断 OB 中包含一个 STP 指令,以使 CPU 进入 STOP 模式。 如果未在程序中包含诊断错误中断 OB,CPU 将忽略此类错误并保持 RUN 模式。 诊断错误事件 PROFINET、PROFIBUS、本地模拟和一些本地数字设备能够检测并报告诊断错误。发生或清 除几种不同诊断错误情况中的任何一种都会引起诊断错误事件。所支持的诊断错误有以下几 种: • 无用户电源 • 超出上限 • 超出下限 • 断路 • 短路 如果存在诊断错误中断 OB (OB 82),那么诊断错误事件将触发中断执行。如果不存在,CPU 将忽略该错误。 有关将 OB 添加到项目的说明,请参见主题“组织块 (OB) (页 72)”。 说明 多通道本地模拟设备(I/O、RTD 和热电偶)的诊断错误 诊断错误中断 OB 一次只能处理一个通道的诊断错误。 如果多通道设备的两个通道出现错误,则第二个错误只会在以下情况下触发诊断错误中断 OB:第一个通道错误已清除,由第一个错误触发的诊断错误中断 OB 已执行完毕,并且第二 个错误仍然存在。