Jump to content

All Activity

This stream auto-updates     

  1. Today
  2. Прошу подсказать, как ответить в существующую тему? Что я делаю не так? Прошу помочь. С уважением.
  3. Yesterday
  4. Last week
  5. 在可编程逻辑控制器 (PLC) 和分布式控制系统 (DCS) 中,由于这些系统的实时性以及工业过程的相关复杂性,硬连线 I/O 和串行 I/O 之间的选择变得尤为重要。 下面,我将详细分析这些特定系统中每个系统的特征。 硬连线输入/输出 下面列出了我们必须讨论的有关硬连线 I/O 的要点。 直接连接 实时响应 接线复杂性 灵活性有限 可靠性 信号完整性 适应性 安全关键应用 1. 直连 硬连线 I/O 直接连接到 PLC 或 DCS。每个输入或输出设备都有一条返回控制器的专用线路。 2. 实时响应 这些 I/O 通常设计用于实时控制任务。它们特别适用于需要立即采取行动的时间敏感型应用,例如过程控制、联锁和紧急关闭。 3. 接线复杂性 对于具有大量 I/O 点的大型系统,硬连线解决方案可能会变得很麻烦,需要大量布线和更大的控制柜。 4. 灵活性有限 由于需要物理重新布线,修改或扩展硬连线系统可能是劳动密集型的。 5、可靠性 硬连线 I/O 通常被认为对于关键任务来说更可靠,因为它们具有直接、点对点的性质,可以降低通信故障的风险。 6. 信号完整性 与串行通信相比,硬连线连接的信号完整性通常更好,尤其是在电磁干扰 (EMI) 较多的环境中。 7. 适用性 最适合较小的系统或可靠性和速度至关重要的场景。 8. 安全 硬连线 I/O 主要用于安全关键型应用,例如控制回路至关重要的工业过程控制应用。 串行输入/输出 下面列出了我们要讨论的有关串行 I/O 的要点。 数据序列化 基于协议的通信 可扩展性 联网能力 数据处理 距离 漏洞 成本 安全 1. 数据序列化 串行 I/O 通常通过一条数据线一次传输一位数据。这与同时发送多个位的并行系统形成对比。硬连线 I/O 中的每个信号都有单独的电线,但串行 I/O 通常只有一根电缆用于传输/接收所有数据。 2. 基于协议的通信 它们通常依靠已建立的工业协议(如 Modbus、PROFIBUS 或以太网/IP)进行通信,这些协议标准化了设备之间的数据交换。 3. 可扩展性 串行 I/O 通常更具可扩展性。添加更多 I/O 点通常只需要配置现有网络,无需额外布线回控制器。 4. 联网能力 串行 I/O 可以轻松联网,并且通常具有内置诊断功能,这使得它们更加通用,但也增加了复杂性。 5. 数据处理 串行 I/O 在数据处理方面更加通用。它们可以通过网络传输更复杂的数据类型,包括实数和字符串。 6. 距离 它们更适合 I/O 点远离 PLC 或 DCS 控制器的应用。在某些情况下,我们可能需要一些特殊设备,例如中继器、网关等。 7. 漏洞 由于串行 I/O 是基于协议的,因此更容易出现数据冲突、延迟和其他网络相关问题等问题。 8. 成本 虽然由于网络硬件的原因,初始设置成本可能较高,但长期成本可能较低,特别是对于需要频繁修改或扩展的系统。 9. 安全 串行 I/O 绝不会用于安全关键型应用,因为主电缆损坏可能会导致数据完全故障。 在硬连线和串行 I/O 之间进行选择 两者之间的选择通常取决于各种因素,例如系统规模、所需的操作速度、安全性、数据复杂性和成本考虑。工程师通常会进行详细分析,有时甚至在单个 PLC 或 DCS 系统的不同部分中使用这两种类型,以充分利用每种类型的优点。例如,硬连线 I/O 可用于安全关键型应用,而串行 I/O 可用于数据收集和监控任务。 硬连线 I/O 和串行 I/O 之间的比较 下表显示了硬连线 I/O 和串行 I/O 之间的差异。 参数 硬连线输入/输出 串行输入/输出 连接类型 直接、点对点连接 基于协议,通常是联网 数据传输速度 通常更快,实时处理 由于序列化可能会更慢(取决于协议) 复杂性 由于序列化可能会变慢(取决于协议) 更易于管理的复杂性 可扩展性 扩展困难且昂贵 扩展更容易且成本更低 可靠性 故障点较少,可靠性更高 故障点较多 布线 需要大量布线 布线较少,通常只需一根数据线 信号完整性 在高 EMI 环境中更好 可能容易受到 EMI 影响 支持的数据类型 一般为 4-20 mA 模拟信号,24 V DC 数字信号 由于网络硬件的原因,这可能会更高 距离 适合较短距离 可以处理较长距离 成本(初始) 小型系统较低,大型系统较高 高(取决于协议) 成本(维护) 由于故障排除的复杂性而较高 通常较低 灵活性 有限,难以修改 高度灵活,易于修改 冗余 实施起来困难且昂贵 实施起来更容易且成本更低 安全应用 通常用于安全关键任务 不太常用于安全关键任务 网络诊断 有限或无 通常内置 当谈到 PLC 和 DCS 系统的安全性时,硬连线 I/O 和串行 I/O 具有不同的特性,这些特性可以增强或可能损害工业过程的安全性。 下面的比较表仅关注这两类 I/O 系统的安全方面。 安全方面 硬连线输入/输出 串行输入/输出 可靠性 由于直接连接和故障点较少,可靠性通常更高 基于协议和网络,引入更多潜在故障点 实时响应 非常适合实时响应,通常用于紧急关闭和安全联锁 由于网络拥塞或协议限制,可能会出现延迟,这使得它们不太适合立即采取行动 系统复杂性 较低的复杂性通常更容易识别和解决安全问题 网络和协议的复杂性使得确定安全问题的根本原因变得具有挑战性 信号完整性 不易受到电磁干扰 (EMI),从而提高信号质量和可靠性 可能更容易受到 EMI 和信号衰减的影响,从而危及安全 数据完整性 由于通常是点对点的,因此数据损坏的可能性较小 由于网络而更容易出现数据完整性问题,从而增加了安全相关故障的风险 人为错误 由于其简单性,不太容易出现影响安全的配置错误 配置或维护过程中出现人为错误的可能性更大,影响系统安全 紧急情况 由于响应时间快,通常是紧急关闭等安全关键系统的首选 由于可能存在延迟和其他网络相关问题,通常不用于立即操作任务 安全 较低的网络攻击敏感性,因为它们通常不联网 由于网络的原因,更容易受到可能危及安全的网络威胁 内置安全功能 安全功能通常是硬连线且不复杂,因此非常坚固 可能有内置的安全协议,但这些协议可能会受到网络问题的影响 认证 由于复杂性更低、可靠性更高,安全关键型应用的认证变得更加容易 由于网络和协议的复杂性,可能需要更广泛的测试和认证 从安全角度来看,硬连线 I/O 和串行 I/O 之间的选择通常倾向于关键安全应用的硬连线 I/O,因为它们具有固有的可靠性和即时响应能力。然而,系统的整体安全性并不仅仅取决于所使用的 I/O 类型;它还受到设计、维护实践和操作人员能力等因素的影响。
  6. 无论是工业自动化还是任何其他 PLC 系统,每个装置或设备在经过一定时间后都会达到一个阶段,需要对其进行更改或升级。 升级和迁移 例如,如果 PLC 的使用时间超过10年,则其技术支持将不再存在,或者 PLC 已经过时而无法更换。在这种情况下,您有两个选择 - 要么迁移到一套全新的 PLC,要么升级固件和程序。理解这种差异非常重要,因为它有助于选择合适的工作。 在这篇文章中,我们将了解升级和迁移 PLC 系统之间的区别,并了解如何实施正确的系统。 为什么需要迁移或升级 PLC 系统? 在进入主题之前,首先有必要了解为什么我们需要这样做。假设您已经使用“X”PLC 近 15 年了。程序不会突然出现故障;这是一个完全不同的理论,完全取决于程序员如何编写代码。PLC 代码一旦编写,终生都会以相同的方式执行。 问题始于硬件和支持。如果这种“X”PLC 不稳定或者编程有很多限制,那么 PLC 制造商通常不会将这种“X”PLC 投入生产这么长时间。 很快,该 PLC 将开始过时,并且将无法找到替代品。即使是系统集成商或 PLC 制造商本身也无法提供技术支持,因为他们的人员将转移到更新的品牌,或者其编程电缆也不再可用。 在这种情况下,如果 PLC 系统由于某种原因突然出现故障,那么您别无选择,只能等待较长的停机时间结束。另外,如果你仍然能够从某个地方获得这个 PLC,那么它的成本将非常高并且超出预算。 由于当前的供应链中断以及新的工业自动化解决方案和零件的稀缺,准确估计采购新设备可能需要多长时间是不可行的。在这种情况下,您有两个选择 - 要么迁移到另一个品牌,要么将现有品牌升级到更新的固件 CPU 或程序。 因此,这就是迁移和升级在工业自动化中发挥重要作用的原因。此外,新的解决方案还减少了错误和风险,提供了更强大的技术支持、服务专业知识、更少的资本投资以及工厂的高效运营。 什么是 PLC 系统的移植? 首先,让我们了解两者中较简单的一个。迁移是指用新系统完全替换旧系统。这类似于一个公民从原来的城市迁移到一个新城市。假设您有一台旧 PLC,在使用 10 年后被发现存在一些硬件缺陷。 CPU 的两个数字输入出现故障,并且该 CPU 不再在市场上销售。另外,由于运气不佳,提供 PLC 的系统集成商已经关闭了业务或转向了一些较新的品牌。 在这种情况下,迁移意味着您需要购买其他品牌的 PLC。在购买之前,您需要考虑 IO 数量、IO 接线、通信端口可用性、编程能力、内存容量、执行速度、可扩展程度等因素。 一旦你完成了这一切,你就需要购买一个新的,并根据制造商的软件在其中编写一个新的程序。另外,您需要与新供应商共享以前的 IO 列表,以便他在 PLC 中相应地进行 IO 映射,并减少在电气面板中接线 IO 的时间。完成后,您可以用新的 PLC 替换旧的 PLC 并相应地使用系统。 虽然使用这种方法不能完全应用新的、一致的编程标准,但整体功能仍然尽可能接近原始,并且可以在一定程度上改进程序。 什么是 PLC 系统升级? 我们再来看第二个 PLC 系统升级的案例。您拥有与之前讨论的制造商相同的 PLC,并且发生了故障。现在,您发现同一制造商的一些更高级别的 PLC 可用,具有相似的编码风格和 IO 功能。 甚至供应商也可以提供支持。您无需将供应商更换为更新的供应商或完全更改 PLC 品牌,只需将系统升级到更新、更高的系统即可。这个新的 CPU 要么必须用新的编码重写,要么只是即插即用,具体取决于软件。 因此,升级需要在更新系统时进行更全面的 IO 接线和 PLC 编码。 此外,从头开始重写新代码可以让程序员消除他在旧系统中观察到的错误,并以更简单的方式规划高效可靠的逻辑。这是一种升级系统的全新方法。 迁移和升级 PLC 系统之间的差异 迁移意味着切换到全新的 PLC 制造商,而升级意味着切换到同一 PLC 制造商的较新 CPU。 迁移比升级更便宜,因为它需要更少的停机时间、更少的新硬件、更少的编程时间和设计基础设施。 迁移比升级风险更小,因为您已经拥有旧程序的可用程序,只需复制粘贴相同的程序即可。虽然 100% 复制是不可能的,但由于这种方法,功能可以在很大程度上相似。 迁移可能会导致使用新的硬件,这可能需要工程师花时间快速了解系统,以便他们能够对其进行维护和故障排除。在这种情况下,升级就容易多了。 迁移的可靠性和效率不如升级,因为尽管你研究了这么多,但你仍然不知道这个新的 PLC 现在将如何工作。 迁移和升级是一件棘手的事情,需要参与其中的工程师和程序员的详细专业知识。此外,要采取的操作因系统而异。一旦完成,它可以使您的任务变得更加容易。这样,我们看到了 PLC 系统升级和迁移的概念。
  7. 我们都知道 PLC 在当今的自动化时代有多重要,所以有很多流行的 PLC 品牌,例如西门子、横河、AB、ABB、GE 等。在这些 PLC 控制器上,提供了很多 LED 指示来了解控制器的不同状态 ,但要了解状态,我们首先需要了解这些指示的含义。 GE 制造 PLC 上的 LED 指示 在本文中,我们将了解其中一款 GE PLC(特别是 CPL 系列)的 LED 指示,我们还将了解控制器上可用的各种端口的功能。 在这篇文章中,我们将解释 GE 制造的 PLC CPL-410 型号的 LED 指示。 关于 CPL 410 型号 该 PAC(可编程自动化控制器)系统称为 RX3iCPL410,配有内置 Linux 服务器,支持梯形逻辑、结构化文本、功能框图和 C 等编程语言。 包含 64Mb 可配置数据和程序存储器、用于离散输入和输出的 32K 位以及用于模拟输入和输出的 32K 字。还支持大容量内存用于数据交换 最多支持 768 个程序块,1 个程序块大小为 128KB,还支持 4 个独立的以太网 LAN(10\100\1000)。 最多允许 32 个 Modbus TCP IP 客户端,48 个 SRTP(服务请求传输协议)可以同时运行,以及 16 个同时的 Modbus TCP IP 服务器连接。 该 PLC 可以处理高达 -40 至 70 摄氏度的工作温度,它是 DIN 导轨安装设备,支持 18-30 VDC 电源,并且不需要特殊电源。 前面有 5 个以太网端口,底部有 1 个 RJ45 连接,OLED 显示屏可用于导航和监控 CPU 的各种状态,还有许多带 LED 指示的开关可用于监控状态并浏览设置。 我们可以使用 Proficy Machine Edition 软件对 CPU 进行编程和配置,该系统可以轻松创建冗余系统,到辅助 PLC 的切换时间为 100ms。 好的,现在我们将讨论此特定 GE PLC 型号 CPL-410 的 LED 指示。 在下图中我们可以看到很多指示和通讯端口,图 1 中 PLC 没有任何连接,图 2 是运行中的通讯通道。 图 1(左)、图 2(右) 所以,让我们从右上角开始。 µSD:此插槽用于插入Micro-SD卡;Micro SD 卡用于外部存储或加载程序;它有一个保护盖,以防止损坏。 DISP:您可以访问 OLED 显示屏上的显示菜单导航并根据需要进行更改,使用此按钮您可以访问 LAN 设置、控制状态、I/O 状态、设备信息、Linux 操作系统设置、冗余信息和冗余命令,我们可以检查每个 LAN 连接的配置 IP。 SEL:您可以使用此指示和按钮指导选择以进行任何设置修改,您可以根据您的要求导航选项。 RUN:用于向 PLC 运行命令,它激活 OLED 菜单以从 PLC 选择 RUN 启用或 RUN 禁用模式,在运行状态下,绿色指示将在运行按钮下方闪烁。 STOP:用于向 PLC 发送停止命令,可以通过该按钮为 PLC 选择停止启用或停止禁用。 PHY PRES:TPM(可信平台模块)物理存在指示暨选择,这将在健康状况下亮起绿灯。 SSD:固态硬盘活动,绿色指示处于健康状态。这是为了检查存储数据的固态磁盘或驱动器的运行状况。 TEMP:这表明控制器温度过高,当温度超出限制时,它将显示琥珀色 LED 指示。 OK:此信号表明 CPU 正常且处于健康状态。 OE:输出使能,正常时绿色指示。 FRC:当我们对任何模块或设备施加力时,黄色指示灯会亮起,表明力信号已启用。 FLT:当出现系统故障时,该指示将发出红光,如果任何模块出现问题,就会发生系统故障。 IO:该 LED 指示 IO 网络状态的健康状况;健康状况下绿色指示灯会亮起。 RACT:冗余系统是避免主控制系统出现任何问题时避免过程故障的必要条件,还需要对冗余系统进行密切监控以确保始终可用,RACT LED 指示将指示冗余处于活动状态或活动冗余状态,当冗余设备处于活动状态时,指示将呈绿色,一旦冗余 CPU 热备准备就绪,该 LED 将被激活。 RBOK:表示冗余备份单元正常,指示灯呈绿色。 GPOK:Linux 成功启动并重新启动 CPU 后,此 LED 指示灯将呈绿色闪烁,表示通用功能正常,即操作系统处于健康状态或准备好供用户登录,或者我们可以说 Linux 正在运行。 PWR:电源打开,我们也可以用这个按钮重置控制器,我们必须按住 PWR 按钮才能重置 PLC,在健康状态下它会发出绿光。 PLC 中的通讯端口 让我们对通信端口有一些了解: USB1:此端口分配给 Linux,可用于访问键盘、记忆棒、笔驱动器和其他已正确安装驱动程序的存储设备。 USB2:此端口分配给控制器运行时 PACS(可编程自动化控制器) LAN:LAN 端口用于配置工厂通信包和热备冗余,其中两个 LAN3 组端口用于实现此目的。它们在两个 CPU 之间提供高速数据同步链路。将主 CPU 的上部 LAN3 端口连接到辅助 CPU 的上部 LAN3 端口,并将主 CPU 的下部 LAN3 端口连接到辅助 CPU 的下部 LAN3 端口。 前面板局域网: -LAN-1:此端口不可切换,连接到最上面的 RJ45 连接器。 -LAN-2:连接中间两个 RJ45 连接器,可内部切换。 -LAN-3:连接下方的两个 RJ45 连接器,这些端口也能够内部切换,该端口用于为系统提供热备冗余。 底层局域网: -RJ45:该端口支持串行 IO 协议,该端口也是分配给 Linux 系统本身的。 LAN 端口的速度和链路的健康状况对于正常通信至关重要,我们来看看 LAN 端口的上下指示以及该指示的含义。 LAN 端口状态(上方指示): 绿色指示:相应的链路已建立,绿色闪烁:检测到流量,熄灭,无连接。 LAN 端口 - 速度(下方指示): 绿色 亮起:数据速度为 1 Gbps 或 100 Mbps,熄灭:网络数据速度为 10 Mbps 请参见下图了解 LAN 端口的指示。 图 3 PLC 底部可用的其他端口 RJ45:这是一个串行 COM 端口,我们可以在其中使用 RJ45 连接器连接通信通道,我们可以使用此端口进行直接以太网连接,或者我们可以使用 TCP IP 转换器(串行到以太网)进行 Modbus 或串行通信通道通信 。请注意,RJ 连接器有 8 个引脚,并与组合成双绞线的电线连接,这种双绞线有助于减少串扰并消除电磁干扰。 PLC 底部有以下端口(图 4) 图 4 Display Port:这是一个视频显示端口,我们可以使用此端口同时或单独传输视频和音频。DP 可传输信号范围为 144Hz 至 4k。 EFA:这是一个 IICS(Informatica 智能云服务)云端口,这是用于集成和数据管理的基于云的服务,使用此平台您可以配置连接、创建用户、运行、安排和监控活动或任务。 EPCSS:Energy Pack Control & Status Signal,它是一个带有 5 个接线端子的接线端子。虽然 EPCSS 在使用时是可选的,但它允许 PLC 控制器在断电时保存其当前状态。 24DC IN:三线端子块,用于向 PLC 提供 24V 直流电源。 我们来看看图 5 中所有 LED 指示的汇总 图 5 至此,对 LED 指示以及 GE 制造的 PLC 的各种端口有了一个基本的了解。
  8. 当您开发 PLC 程序时,您需要确保在向客户展示之前对其进行了正确的测试和验证。这是因为 PLC 程序中有很多部分,如逻辑、配置、设置等。 因此,有必要测试和验证每个部分,无论哪个程序会出现故障。如果配置或逻辑存在错误,那么系统将在现场出现故障。 为了避免这种情况,大多数程序员会花费数小时来测试 PLC 逻辑,这是他们所做的非常重要的一步。在这篇文章中,我们将学习 PLC 开发的测试和验证过程。 PLC 开发中的测试和验证 下面提到了与 PLC 测试和验证相关的一些要点。 召集利益相关者召开首次会议,讨论 PLC 项目的范围、目标和要求。 制定测试和验证的目标和验收标准。 分配测试和验证过程所需的资源,包括团队成员、硬件和软件工具。 准备详细的功能设计规范 (FDS),作为 PLC 程序开发和测试的基础。 根据功能设计规范开发初始代码块和例程。 专门为单元测试编写测试计划,确定每个单元应该完成什么以及如何测试它。 执行单元测试,遵循测试计划并记录每个功能或例程的结果。 创建集成测试的测试计划,概述如何将不同的代码块和例程组合并作为单个实体进行测试。 执行集成测试,验证整个程序的功能以及与其他系统的互操作性。 开发 FAT 协议,指定系统必须满足才能被视为可接受的标准。 在模拟环境中基于 FAT 协议进行 FAT,以确保满足所有要求。 起草详细的验证协议,定义如何进行验证、检查什么以及可接受的结果是什么。 审查验证协议并获得质量保证和其他利益相关者的批准。 实施验证协议、记录结果并识别任何偏差或失败。 创建 SAT 协议,重点关注 PLC 系统运行的真实环境。 进行 SAT 以验证 PLC 系统在其预期操作环境中可靠工作。 准备测试和验证活动、结果以及所采取的任何纠正措施的综合文档。 获得所有利益相关者的最终批准,确保 PLC 系统经过测试和验证。 建立流程来监控 PLC 系统的性能并安排定期重新测试和重新验证活动。 归档所有 PLC 项目文档和代码,并正式结束项目。 上述步骤提供了在新的 PLC 开发项目中准备测试和验证的简单指南。 让我们一一看看一些重要的步骤,需要遵循这些步骤直到最后才能正常运行。 IO 映射 PLC 根据输入和输出运行。因此,测试程序的第一步是检查 PLC 中的 IO 映射。您必须在模拟中强制每个数字输入,或者向 PLC 提供实际的硬件输入。 一项一项地,如果映射正确,那么同样会反映在您的图形和程序中。这将验证数字输入。对于模拟输入遵循相同的过程。但是,对于模拟输入,您必须提供多个原始计数,而不仅仅是一个计数。 广泛的计数可以让您正确了解通道是否正常运行。然后,对于数字输出,你必须一一强制它们。如果 PLC 输出按照顺序打开和关闭,则您的 DO 映射是正确的。 对模拟输出遵循相同的过程,并提供广泛的原始计数而不是单个计数。您将正确了解 AO 通道是否正常运行。 通讯协议检查 一旦在 PLC 程序中验证了 IO,下一步就是检查通信和网络地址。假设 PLC 有一个以太网端口和一个 Modbus RTU 端口。您已将一个 HMI 连接到以太网端口,并将三个 VFD 连接到 Modbus 端口。Modbus 端口用于与 VFD 传输和接收数据,如电流、频率、电压等。 这些映射已由您在 PLC 逻辑中完成。首先检查以太网口,测试 IP 是否能 ping 通;以及是否与 HMI 通讯。然后,建立 Modbus 通讯并检查与 PLC 的数据通讯是否正常。 这完全清除了您的硬件部分,因为您现在可以正确地将数据传送到现场;通过硬 IO 或软 IO。这两个基本步骤是验证的第一步。 手动模式 一些系统具有没有关键联锁的手动模式,而一些系统具有带有关键联锁的手动模式。要检查手动模式,您必须逐步打开每个输出,并检查实际的物理输出是否打开。 第一步验证物理 DO 或 AO 是否已与手动模式按钮正确链接。然后,您必须产生相应的警报并检查输出是否关闭。 仅应关闭链接的输出。其余输出不应受到影响。这确保了所有输出都已在程序中通过正确的互锁正确链接。因为,一旦手动模式被清除,将确认物理输出可以手动打开,然后可以更容易地检查自动模式。 直接检查自动模式逻辑会使程序员混淆什么输出正在打开或关闭。验证手动模式将确保各个输出是否打开。 自动模式 下一个重要步骤是检查自动模式。自动模式是一个带有互锁的验证序列。每个系统都有一个控制逻辑文档,显示序列如何与适当的联锁和输出矩阵一起工作。 PLC 程序员必须确保当任何序列运行时,相应的输出相应地打开/关闭。另外,序列是否正常运行并具有互锁? 自动模式逻辑在制作时必须主要分为四个部分 打开输出, 编写序列流, 连接联锁和警报,以及 显示当前运行状态。 这种技术使得程序流程非常容易查看和排除故障。 应尽量避免不断使用置位-复位线圈和梯形逻辑。梯形图逻辑使用起来很方便,但是在线仿真运行时,排查故障很费时间。 此外,置位-复位线圈也难以管理,因为一旦使用了置位线圈,就必须小心地将其复位到某处。否则,如果条件写入不正确,该位将保持设置状态。 就这样,我们看到了 PLC 开发中的测试和验证过程。
  9. 只有使用变频驱动器才能控制感应电机的速度。基本上,我们可以通过三种不同的模式来控制感应电机的速度。 使用数字信号 使用 0~10V/0~5V/4~20mA/0~20mA 等模拟信号 使用 Modbus 通讯,无论是 RTU 模式还是 TCP/IP 模式 感应电机转速 在这篇文章中,我们将使用范围为 0 至 20 mA 的模拟输入信号来控制电机的速度。本文介绍如何使用 PLC 的模拟输出来控制电机的速度。请参阅下面的示意图以获取概述。 为了改变电机的速度,来自 PLC 的 0 至 20 mA 模拟输出信号被发送到 VFD 的模拟输入端子。随着毫安从 0 增加到 20,速度从 0 到 50 Hz 变化。在本主题中,我们使用 S7 200 智能 PLC 的六个独特的模拟输出点来控制六个电机的速度。(每个电机根据电机额定值都有单独的 VFD)。 这里使用的 PLC 是西门子 S7 200 Smart 系列的 CPU ST60,并配有两个模拟量输出模块 EM AQ04,而 VFD 型号是施耐德电气的 ATV310 系列。西门子 HMI 与 CPU ST60 通信,可从屏幕上改变电机的速度。 在进行 PLC 逻辑之前,请参阅下面的硬件配置和连接详细信息: CPU ST60 中添加了上述模拟量输出模块。VFD 的每个模拟输入点都会从各个 PLC 模拟输出点接收 0 至 20 mA 信号。 现在,查看 ATV310 VFD 驱动器的参数详细信息。 401:01(参考通道 1) 204.0:0A(AI1型) 204.1:4mA(AI1电流定标参数 0%) 204.2:20mA(AI1电流定标参数 100%) 除此之外,还需要根据电机额定值在 “300” 组中设置电机参数。 模拟输出模块也称为 DA 模块或数模模块。根据该声明,根据配置设置将数字值转换为毫安或电压。 不同的 PLC 有不同的数字值,可以转换成模拟电压或毫安信号。西门子 S7 200 系列使用 0 代表 0 毫安,27648 代表 20 毫安。 根据参数号 “204.1”,我们必须确定输出点发出 4mA 左右的数字值。通过使用碰巧方法,我们确定该值为“5559”,此时我们接收到的电流大约为 4 毫安。 根据上面的讨论,频率将在 0 到 50Hz 之间的任何位置,并且 PLC 中的毫安表示为数字值。当从 HMI 馈送特定频率时,需要进行一些缩放才能获得实际频率。 因此,我们可以将这些数字值称为 “未缩放” 值。现在要将这些未缩放的值更改为缩放后的值,可以使用以下公式: OSH = 27648.0(输出 20 mA 模拟信号的未缩放数字值) OSL = 5559.0(输出 4 mA 模拟信号的未缩放数字值) ISL = 0(频率输出下限,单位 Hz) ISH = 50(频率输出上限,单位 Hz) “输入” 是用于从 HMI 设置电机速度的变量。 “输出” 是缩放后的数字值 现在,将这些值放入公式中并进一步评估: 输出 = [(27648.0 – 5559.0) *(输入 – 0)/(50 – 0)] + 5559.0 输出 = [22089.0*输入 /50] + 5559.0 输出 = [441.78*输入] + 5559.0 在评估梯形图逻辑中的方程式之前,请先完成以下 PLC 软件中的模拟输出配置设置: 在 Step 7 MicroWin Smart 软件中,单击 “项目树” 栏中突出显示的系统块设置选项。 在系统块设置中,配置第一张 AQ04 卡的所有通道和第二张 AQ04 卡的第 3、4 通道,当前类型突出显示。 使用模拟输出进行感应电机速度控制的 PLC 编程 网络 1: VD200 以频率或 Hz 的形式存储从 HMI 设置的输入值或变量值。然后乘以 441.78 并存储在 VD204 中。 然后将 VD204 中的值加上 5559 并存储到 VD208 中。 VD208 中的值是实数格式的评估缩放输出值。VD208 中的值的小数部分被丢弃,整数部分使用 “TRUNC” 指令以双整数格式存储在 VD276 中。 之后,MW4 以整数格式存储该双整数值。AQ04 模块的第一个通道 AQW16 的地址是该值现在传输的位置。 例如:如果 VD200 = 41.5 Hz 从 HMI 馈送,则 VD208 = [441.78*41.5] + 5559.0 = 23892.87。 因此,为了达到 41.5 Hz,需要将 23892 以整数形式存储在 MW4 中。 根据网络评论,第一个通道用于改变其中一个应用中电机(装载机)的速度。 同样,网络 2 至 6 的构建是为了使用 VD212、VD224、VD236、VD248 和 VD260 作为其变速设定点,从 EQ04 模块的各自通道改变其他电机和风扇的速度。 根据接线连接,第二个 EQ04 模块使用第三、第四通道; 因此,使用的地址是 AQW36 和 AQW38。要了解更多信息,请参阅系统块配置。
  10. 由于多种原因,PLC 接线(可编程逻辑控制器)的最佳实践对于工业自动化和控制系统至关重要。 在生产运营、制造和能源生产领域以及广泛的工业领域,PLC 的主要组件有助于调节和监控不同的流程。 PLC 接线最佳实践 图片提供:PLCHMIs 以下是正确 PLC 接线如此重要的一些关键原因。简而言之,它提供可靠性、安全性、准确性、维护性、可扩展性、合规性、成本效率和文档。 PLC 接线有哪些做法? PLC(可编程逻辑控制器)的接线是自动化控制系统安装和调试的基本部分。PLC 用于控制各种工业过程和机器。 接线将 PLC 连接到工厂车间的传感器、执行器和其他设备。它确保信号从 PLC 准确传输,使其能够与设备交互。 以下是 PLC 接线时应采取的一些重要做法: 规划 在开始布线之前,必须有一个清晰的布局计划。它应包括组件、输入/输出 (I/O) 设备以及 PLC 在机柜或电气面板中的位置。 接线图 确保拥有电气图的更新(修订)副本。 选择合适的电缆 使用符合必要电气规格的优质电缆。 确保它们足够长并具有足够的电流容量,以避免信号传输问题和过热。 鉴别 清楚地标记所有电缆、连接器和端子。它简化了故障排除、维护和未来扩展。标签可以轻松识别系统内的每根电缆、连接器和端子。 标签有助于保持控制系统的完整性。错误连接电缆或端子可能会导致设备损坏、系统故障甚至安全风险。正确的识别可以减少安装或维护过程中出错的机会。 牢固的连接 通过拧紧端子来确保牢固和安全的连接,以防止可能导致故障的连接松动。 对于市中心的工厂来说,成本可能极其昂贵。连接松动会导致设备意外停机或故障,从而导致生产延误和财务损失。 电源和信号分离 电源线和信号线之间保持足够的距离,以避免电磁干扰。 如有必要,请使用排水沟或分隔线以物理方式分隔电缆。这有助于防止串扰并减少干扰的机会。 测试与验证 在给 PLC 系统通电之前,必须执行连续性和验证测试。这是为了确保所有组件均按照设计规范正确连接。不正确的连接可能会导致设备故障、效率低下或损坏。 安全 接线时请遵守电气安全规定。在进行接线之前,请确保 PLC 和所有组件均已拔掉插头。 文档 保留所有接线的详细记录,包括最新的图表、接线清单和配置文档。这对于未来的维护和未来的系统修改非常有价值。 训练 确保操作和维护系统的人员接受过 PLC 接线和操作方面的培训。 监管合规性 验证 PLC 接线是否符合适用标准。 正确的接线对于保证 PLC 控制系统的可靠、安全运行至关重要。 PLC 接线对于工业控制系统的可靠性、安全性、准确性和可维护性至关重要。 正确的接线可确保控制系统按预期运行并符合行业标准和法规,最终有助于工业过程的整体效率和成功。 为什么正确的 PLC 接线很重要? PLC(可编程逻辑控制器)的正确接线对于工业自动化和过程控制系统至关重要,原因如下: 正确的接线可提供系统可靠性。正确的接线可确保系统组件之间牢固且稳定的电缆连接,从而减少间歇性故障或通信错误的可能性。 它保证了安全。不正确的接线可能会导致短路、过载和电气危险。正确的接线可以最大限度地减少电气事故的可能性,并确保系统符合安全标准。 它提高了系统性能:不正确的接线会对系统性能产生负面影响,导致通信和指令执行延迟。正确的布线可确保快速、准确的数据传输。 正确的接线可减少停机时间和维护成本。它帮助我们进行更简单的维护:仔细组织和标记电缆将使我们更容易识别和解决系统问题。 法规遵从性:在许多行业中,一些特定的法规和标准要求正确布线以确保系统安全和质量。 PLC 接线技巧 下面我们分享一下 PLC 接线的相关要点。 遵守国家和当地的电气规范。 使用屏蔽电缆传输模拟信号和通信信号。 确保所有组件正确接地。 标记所有电线和端子。 实施电线颜色编码方案。 将输入接线与输出接线分开。 使用尽可能短的电缆长度。 避免将电线缠绕在端子螺钉上。 根据负载和电流要求选择合适的线规。 对绞合线使用线套。 在物理上分开高压线和低压线。 仔细检查电源和 I/O 连接的极性。 将电线捆扎整齐并使用扎带。 通电前测试电线连续性和正确连接。 维护更新且详细的文档。 使用接线端子更方便维护。 定期进行接线检查。 使用应力消除机制来保护电线。 为了安全,请遵循上锁/挂牌程序。 接线完成后进行彻底的系统测试。
  11. 每当一个新的 PLC 程序员去现场调试一个项目时,出现的第一个问题就是如何去做。这是因为 PLC 系统庞大且难以理解。 因此,每个 PLC 程序员必须知道自己在到达现场时应该做什么,并有适当的计划。如此大量的电场线和设备,需要配合 PLC 程序逻辑来了解他在做什么。 在这篇文章中,我们将学习 PLC 程序员应遵循的调试步骤。 PLC 编程器现场调试步骤 PLC 程序员的第一步是检查他的笔记本电脑上是否安装了所有必需的 PLC 软件。假设该站点系统中有施耐德自动化。那么,首先,他需要在笔记本电脑上安装所有相应的 PLC 软件。软件每次都必须正确打开,所有相关驱动程序也必须正确响应。之后,他需要将笔记本电脑连接到办公室的自动化硬件。这将确保他能够在系统中正确上传和下载。软件安装或连接不当可能会导致现场调试出错。 然后,他必须在笔记本电脑上进行最终备份,并通过模拟检查 PLC 逻辑。这将确保他到现场了解整个过程。之后,携带所有通讯电缆,准备前往现场。如果发现由于时间限制,系统没有得到充分检查,则记下测试过程中观察到的待处理点和逻辑错误。确保在调试时对此进行检查。 到达现场后,首先全面了解工厂状况。有多少机械工作待处理,有多少电气工作待处理;这是最重要的。另外,检查水、空气和蒸汽等公用设施的状况。记下所有状态并在笔记本电脑上列出日常活动列表。将此文件分享给你的直属上级,以便他知道活动卡在哪里,并可以相应地推动相应的人员完成工作。 一旦面板被交付测试,就开始检查现场 IO。根据 IO 列表和接线图,相应的现场设备必须相应操作。记下发现的任何问题并联系电气人员解决问题。 如果 PLC 系统中有通讯设备,也必须检查它们。所有通讯设备必须能够在网络总线上与 PLC 自动化系统正常通讯。 现场接线确认后,必须检查所有机械装置是否按接线运行。最后,进程运行很重要,如果设备没有响应,则进程将无法正常运行。 一旦完成所有器件验证部分,下一步就是与工艺工程师验证逻辑。必须检查设备是否按照编写的逻辑运行。如果发现问题,检查是否可以通过逻辑解决,或者是否必须由工艺工程师解决。得出同样的结论并解决。 这样您的 PLC 调试活动就完成了。保存所有最终备份并将其交给您的上级以确保安全。此外,记下所有最终工艺参数并录制运行工厂的视频以供理解。制作最终报告并由客户签字以证明调试已完成。记下他的任何言论,并确保问题尽早得到解决。 PLC 调试步骤 下面简单介绍一下 PLC 调试的主要步骤。 查看文档:检查系统要求和原理图。 安全检查:验证上锁/挂牌和其他安全协议。 硬件检查:检查 PLC 和 I/O 模块是否有任何损坏。 上电:打开 PLC 并确认基本功能。 建立通讯:建立 PLC 与编程终端之间的链接。 更新固件:如果需要,安装最新的 PLC 软件版本。 配置 I/O:设置输入和输出模块。 加载程序:将初始 PLC 代码下载到系统中。 测试模式:验证各个输入、输出和通信。 回路检查:确保现场设备和 PLC 之间的信号完整性。 逻辑测试:验证 PLC 功能和序列。 模拟:使用模拟输入测试复杂逻辑。 流程启动:开始流程的初始测试运行。 微调:根据测试运行调整 PID 控制器调谐、计时器、计数器和设定值。 更新文档:记录调试期间所做的更改。 功能测试:验证整个系统是否按预期工作。 操作员培训:教操作员如何使用新设置。 创建备份:保存最终的 PLC 程序和配置参数。 客户批准:获得客户或项目经理的签字。 移交:完成系统移交的文档。 这样,我们就看到了 PLC 程序员要遵循的调试步骤。
  12. PLC 编程有五种语言:梯形图、指令表、结构化文本、功能块图和顺序流程图。每种类型的 PLC 语言都有其自身的优点和缺点。虽然某些语言在视觉上看起来不错并且很容易排除故障,但其他语言具有较低的内存消耗和更快的处理速度。 使用的最基本的 PLC 语言之一是指令表。它不像其他语言那样出名,并且由于技术过时,只有少数 PLC 程序员使用,但仍然在几乎所有 PLC 制造商的软件中可用。在这篇文章中,我们将了解 PLC 中指令表语言的概念。 什么是指令列表? 用指令表语言编写的 PLC 程序由一系列由逻辑控制器顺序执行的指令组成。每条指令由单个程序行表示,并由以下部分组成: 线路编号 当前值(仅限在线模式) 指令运算符 操作符 可选注释 基本上,如果您见过微处理器中使用的传统汇编语言,那么您很容易就会与这种语言产生联系。它也可以称为梯形逻辑和结构化文本的混合。梯形逻辑是指指令必须以线性方式编写,而结构化文本是指助记符在单词中使用。 请参阅下图以了解更多信息。第一张图显示了用梯形图语言编写的 PLC 逻辑。逻辑是 – 如果 %M0 开启且 %M1 开启或 %M2 开启,%M3 将开启。 现在,请参考以下指令列表逻辑。您可以看到每行只有一个组件 - 第一行有 %M0,第二行有 %M1 与下一行进行 AND 逻辑。 第三行让 %M2 与前一行进行 OR 逻辑,第四行关闭命令,第五行打开输出 %M3。因此,它是梯形逻辑和结构化文本的表示。 指令表的组成部分 PLC 指令表的主要组成部分如下所述。 行号 – 创建新程序行时会生成四位数的行号,并由软件自动管理。上图中可以看出为 0000 到 0004。 当前值——在线模式下,您可以看到各个元素的当前值,如下图所示。在线动画期间,下图中指示其为真或假。 指令运算符 – 该运算符是一种用于执行指令的命令。也可以称为所写逻辑的输入侧和输出侧。它是一个助记符号,用于表示输出端要执行的命令类型以及输出端将如何执行它。例如,上图中,LD 代表加载,通过加载第一位的值开始执行,AND / OR 表示逻辑指令,ST 表示将结果值存储到目标位。 评论——这是可选的。它允许程序员编写任何注释来帮助他轻松排除逻辑故障。 PLC 编程中的指令表 下面介绍一些 PLC 的指令表。 LD – 将操作数的布尔值加载到累加器中。 LDN – 将操作数的布尔值取反后加载到累加器中。 LDR – 当操作数从 0 变为 1(上升沿)时,将操作数的布尔值加载到累加器中。 LDF – 当值从 1 变为 0(下降沿)时,将操作数的布尔值加载到累加器中。 AND – 它在前一个结果和当前操作数之间执行 AND 运算。 ANDN – 它在前一个结果和当前操作数的倒数之间执行 AND 运算。 ANDR – 在前一个结果和当前操作数的上升沿之间执行 AND 运算。 ANDF – 在前一个结果和当前操作数的下降沿之间执行 AND 运算。 OR – 在前一个结果和当前操作数之间执行或运算。 NOT – 它执行操作数的逆运算。 ST – 它采用生成的结果的值。 STN – 它采用生成结果的倒数值。 S – 对操作数进行设置操作。 R——对操作数进行复位操作。 除此之外,它还有其他指令,如跳转、子程序、结束、与、或等,具体取决于 PLC 制造商。 这样,我们就了解了 PLC 编程中指令表的概念。
  13. 每当 PLC 程序员访问现场进行调试或进行某些服务呼叫时,他必须知道在开始工作之前必须携带哪些工具。这是因为大多数地点都非常偏远,如果忘记携带,并非所有材料都可以轻松获取。因此,如果他小心谨慎并随身携带必要的材料,那么他就可以轻松完成工作。 当程序员阅读待办事项列表时,通常会出现很多混乱;所以,我想简单地提一下,以便他们能够快速掌握。 PLC 编程工具 PLC 程序员所需的主要工具如下所述。 安装了 PLC 软件的笔记本电脑 USB 至 PLC 接口电缆 以太网电缆 螺丝刀套装 电气测试表(万用表) 剥线钳 钢丝钳 接线端子螺丝刀 电工胶带 便携式硬盘或 USB 闪存驱动器 RJ45 压接工具 串行转换器(RS232 到 USB 等) IP 配置工具(可选) 用于标记电线的标签机 工业以太网交换机 模拟信号环路校准器 绝缘钳 用于记录的笔记本和笔 用于现场标签的便携式打印机 防静电手腕带 注意:所需工具可能因具体 PLC 品牌、型号和现场工作性质而异。始终确保携带必要的个人防护装备 (PPE)。 在这篇文章中,我们将看到 PLC 程序员在现场需要携带的工具。 合适的笔记本电脑 这是首要的基本要求。屏幕/硬件损坏、RAM 性能缓慢或内存不足的劣质笔记本电脑可能会严重妨碍程序员的工作。所有必备软件都必须存在于程序员使用过的笔记本电脑中。 任何不正确安装的软件都会以非常糟糕的方式破坏他的工作。他的所有通信端口都必须正常工作。笔记本电脑充电器必须正确。除此之外,Wi-Fi 等网络适配器必须正常工作。 编程电缆 当 PLC 程序员到达现场时,他基本上是要连接到一些自动化设备。为此,他必须携带所有必备的编程电缆。在前往现场之前,他必须在办公室检查这些电缆。 例如,如果 PLC 有 USB 端口、LAN 端口和 RS485 端口,那么他至少必须携带 USB 和 LAN 电缆,这些电缆很容易获得。只携带一根电缆是有风险的。 笔式驱动器/便携式硬盘 外部存储是必须的,因为您可以随时需要它来传输文件或存储备份。存储必须有足够的可用空间,以便在需要时存储数据。 如今,许多自动化设备都配有 USB(笔式驱动器)端口;因此,如果电缆不起作用,携带它可以增加安全性。 鼠标 在现场,PLC 程序员大部分时间都面临着按时完成任务的压力。使用笔记本电脑触摸板会消耗大量时间。 此外,笔记本电脑触摸板使图形设计变得忙碌。因此,携带 USB 鼠标可以帮助他们轻松完成任务。 螺丝刀套装 螺丝刀对于 PLC 程序员来说是非常重要的工具。如果他在现场遇到任何接线问题,或者接线工需要他的一些额外帮助,那么各种尺寸的螺丝刀将非常有用。 此外,PLC 程序员可以在没有人帮助的情况下独立处理一些电气接线,以快速解决任何问题。 剥线钳 与螺丝刀类似,剥线钳也发挥着重要作用。如果突然需要进行大量接线,那么 PLC 程序员只需剥去线头并按要求进行接线即可独立完成。 网络连接 由于 PLC 编程器可以多次要求在线支持访问,因此要求 SIM 卡有足够的数据并且速度必须足够好以支持。 通常,您的 SIM 卡也有可能无法访问该网站。在这种情况下,请向当地工程师寻求帮助以获取他们的数据,或者更好的是,您可以携带网络适配器以获得最佳使用效果。 文具用品 如果 PLC 程序员携带记事本、钢笔、记号笔等书写用的文具,那就太好了。很多时候,在工作中写一些东西可以帮助程序员在压力大的情况下记住事情。 此外,由于客户持续不断地要求完成工作,编写东西使程序员的工作变得更容易。 这样,我们就看到了 PLC 程序员在现场需要携带的必备工具。
  14. 在工业自动化中,有时 IO 仪表距离面板很远,由于距离太远而无法与本地 PLC 连接。 因此,可以使用远程 IO 模块,仅将这些 IO 的数据与主 PLC 进行通信。这使得通信更加容易,并为仪器工程师提供了将仪器放置在任何需要的地方的灵活性。 远程 IO 适配器模块 远程适配器与主 PLC 之间的通信大多通过以太网完成,这是最快、最高效的通信方式。 许多 PLC 品牌都提供此类远程 IO 模块。其中,施耐德电气就是这样一个品牌,其中有 BMXCRA 或 BMECRA 模块可供使用。在这篇文章中,我们将了解施耐德 PLC 中 CRA 模块的概念。 施耐德 PLC 中的 CRA 模块 图片:BMXCRA31210、Modicon X80 RIO 模块 CRA 是 Schneider PLC 自动化系列中的远程 IO 适配器模块。它没有任何 CPU 来编写逻辑;它只是一个数据通信器。它获取 IO 值并将其不断更新到主 CPU。该模块工作在以太网 IP 协议上。它有三个 LAN 端口用于工作。 除了标准 IO 值外,该模块还提供各种类型的诊断以进行故障排除。这有助于程序员更灵活地编写逻辑。例如,您有三个 IO 模块,距离 CPU 非常近。然后,只需在软件中的 CRA 模块中配置这三个模块即可;然后 CRA 将使用它与 CPU 进行数据通信。 模块配置 该模块上有两个旋转开关。它们定义了模块的 ID。例如,系统中使用了 4 个 CRA 模块。所有四个都彼此相距很远。然后,每个模块必须被赋予一个单独的标识,以便 CPU 逻辑可以轻松区分。 另外,模块 IP 在 CPU 程序中设置。CRA 模块中没有任何配置。只需在 PLC 逻辑中为 CRA 模块正确配置 IP 地址,通过旋转开关设置 ID,您的 CRA 模块就会开始相应运行。 该模块有四个 LED 用于故障排除 – 运行、IO、模块状态和网络状态。详细阅读模块的目录以获得正确的描述。 施耐德 PLC 通讯模块 该模块仅在 Schneider PLC 的 M580 和 Quantum 系列中受支持。该模块的一个有趣之处在于它具有大量的通信服务,例如 SNMP 代理、SNTP 客户端、FDR 客户端、FTP 客户端、TFTP 客户端、DHCP 客户端、CIP 显式消息和服务质量。所有这些都是网络安全功能的一部分,有助于保护模块免受网络攻击。 CRA 模块是完全冗余的。这取决于您如何将系统联网。冗余级别取决于布线方式以及拓扑结构。基于此,您可以安全地操作逻辑,而不必担心 IO 数据丢失。 例如,您有两个 CRA 模块并需要 IO 冗余。根据其支持的拓扑,您可以这样设计网络:如果第一个 CRA 模块的一个 LAN 端口发生故障,您可以通过第二个 LAN 端口将数据传输到第二个 CRA 模块,然后传输到主 PLC。有多种路由选项可供选择。 这样,我们就看到了施耐德 PLC 中 CRA 模块的概念。
  15. 在工业自动化中,IO 分为三种类型:本地、远程和分布式。 它定义 IO 是位于本地电气面板还是远程网络面板中。 这是根据面板上现场仪表的位置决定的。 不同类型的自动化制造商都有相应的模块,用于使用远程 IO。 罗克韦尔就是这样的著名品牌之一。 在罗克韦尔 PLC 中,IO通信最常用的网络适配器是 AENT 模块。 该模块可以连接在本地 PLC 以外的位置,并通过以太网通信与其连接。 相应的 IO 与 AENT 模块连接。 在这篇文章中,我们将了解罗克韦尔 PLC 中 AENT 模块的概念。 罗克韦尔 PLC 中的 AENT 模块 如前所述,AENT 模块是一种远程 IO 适配器。 该模块内部没有任何 CPU; 它只是一个网络接口,用于通过以太网 IP 协议与主 PLC 进行现场 IO 通信。 这意味着该模块中不能写入任何逻辑,因为它只会读取配置有该模块的 IO 模块的数据并将其写入主 PLC CPU。 您最多可以将 64 个 IO 模块与 AENT 模块连接以进行连接。 一般用 1734-AENT 系列来标识。 不仅是 IO 数据,您还可以通过该模块获得 IO 的每个诊断信息。 这使得故障排除更加容易。 模块通信通过以太网 IP 协议进行,并且为此配备了 RJ45 端口。 它可以以半双工或全双工模式进行通信。 该模块的标准电源为 24V DC。 IP 地址配置 在模块中设置 IP 地址的一般方法有 3 种: 通过设置其上的开关(它有三个数字,表示 IP 地址的最后三位数字) 使用 Rockwell 提供的 BootP/DHCP 软件 使用 Rockwell 提供的 IP 配置软件。 设置 IP 地址后,即可使用该模块与主 PLC 进行通信。 在 PLC 软件 (Studio 5000) 中,必须在此 AENT 模块中配置 IO 模块。 然后,这些模块通过 AENT 模块将其 IO 状态传达给主 CPU。 该模块可用于星形拓扑或树形拓扑。 该模块具有以下用于诊断的 LED – 模块状态、网络状态、网络活动、POINT 总线状态、系统电源和现场电源。 您可以通过阅读其目录来获取每个 LED 的详细说明。 这有助于模块的详细故障排除。 需要注意的是,模块连接的电源最多只能驱动 10 个 IO 模块; 因此,AENT 中每连接 10 个模块后就需要一个电源模块。 机箱尺寸 与该模块相关的最重要的术语之一是机箱尺寸。 机箱尺寸是指与 AENT 连接的模块数量。 例如,如果使用 19 个 IO 模块,则必须将 AENT 配置中的机箱大小设置为 20。 适配器将此机箱尺寸设置存储在非易失性存储器中。 当适配器的非易失性机箱尺寸与其背板上的实际模块数量不匹配时,适配器将不会进行任何 I/O 连接。 此外,一旦您在线,除了离线配置之外,您还需要在线设置此大小。 完成此步骤后,您才可以使用该模块与主 CPU 进行 IO 值通信。 AENT 模块是更高系列的适配器,因此仅与三种类型的 PLC 一起使用 - Control Logix、Compact Logix 和 Flex Logix。 这样,我们就看到了罗克韦尔 PLC 中使用的 AENT 模块的概念。
  16. 在任何 PLC 中,了解其指令的编写方式都很重要。 所有语言的基本理解都是相同的; 不同之处在于它的说明方式。 如果我们清楚地了解说明,那么我们就可以使用任何类型的 PLC 软件。 自动化领域使用最广泛的品牌之一是罗克韦尔。 其中有许多不同类型的指令用于编程。 其中,有两条指令是任何 PLC 逻辑中最需要的。 它们是——单次上升沿和单次下降沿。 在这篇文章中,我们将看到这两条指令的工作原理。 一触发上升沿 (OSR) 在 PLC 编程中,您一定听说过两种常见的对象类型——正峰值和负峰值。 正峰值意味着仅当变量从 0 变为 1 时才会触发。该对象的输出为触发脉冲类型。 现在,PLC 中不再有变量状态,而是一条附加指令,您可以在其中获取整个梯级的触发输出。 这意味着,当整个梯级或条件将其状态从 0 更改为 1 时,输出将处于脉冲型触发条件。 这是 PLC 中的上升沿触发指令。 在罗克韦尔 PLC 中,称为单触发上升沿指令。 可以参考下图来理解。 正如您所看到的,该指令在其条件下接受两个输入。 两者都写成 NO 逻辑; 意思是当两者都打开时,只有条件为真。 现在,当这种情况发生时,指令中有两个变量——存储位和输出位。 存储位的作用是存储条件状态。 当这两个位都打开并且条件从 0 变为 1 时,存储位将更新为 1 并将该值传递到输出位。 输出位打开的时间很短(以毫秒为单位)。 PLC 程序员可以在其逻辑中使用该脉冲输出。 只要条件为真,存储位就不会改变。 一旦条件变为假,存储位就会更新为 0。当条件再次变为真时,输出位将作为脉冲打开。 这表明,当您只想通过一个脉冲来打开输出时,该指令非常有用,并且该脉冲必须仅在整个条件为真时生成,而不是在单个变量变为真时生成。 一击下降沿 (OSF) 现在,举一个需要在系统停止时采取行动的例子。 这意味着,当条件从真变为假时,必须采取某些行动。 并且该动作必须以触发器类型完成; 它不应该持续打开。 这称为负峰值。 要执行此函数,必须从变量中获取负峰值,或者必须从整个条件中获取负峰值,如前所述。 对于第二种类型,Rockwell PLC 使用单触发下降沿指令。 请参阅上图。 梯级中有 2 个 NO 条件,并且该梯级的输出连接到 OSF 块。 该块有两个位——存储和输出。 存储位用于存储梯级的状态。 当条件为真时,存储位更新为1。当条件从真变为假时,存储位更新为 0,输出位以脉冲形式变为 1。 当条件再次成立时,循环会再次重复。 输出位为脉冲形式,并且持续时间很短(以毫秒为单位)。 这表明,当您只想通过一个脉冲来打开输出时,该指令非常有用,并且只有当整个条件为假时,而不是在单个变量变为假时,才必须生成该脉冲。 这样,我们就看到了罗克韦尔 PLC 中的单次上升沿和单次下降沿指令。
  17. 在本文中,我们将讨论分散式外设或分布式 IO,我们不会研究 TIA Portal,我们只是讨论什么是分布式 IO 以及我们为什么需要它。 内容: 什么是外部外设或分布式 IO? 一个简单的例子来解释分布式 IO 的需求。 o 1 台带有 PLC 的机器。 o 1 台带有 PLC 的机器位于远离安全的地方。 o 2 台或更多台具有相同 PLC 的机器 o 已安装具有不同 IO 模块(GSD 文件)的机器 结论 外围设备 分布式 IO 设备是用于自动化和控制系统的设备。 它们充当中央控制器 (PLC) 与自动化过程中安装的不同传感器和执行器之间的中介。 将它们想象成从传感器收集信息并将命令传递给执行器的信使。 分布式 IO 这种分布式方法简化了接线,您无需将所有电线直接连接到 PLC,而是将这些分布式 IO 设备安装在机器端。 它们从传感器收集信息(例如温度或运动)并向执行器(例如电机或阀门)发送命令。 这使得整个系统工作流畅,布线更少,也更容易管理和扩展,从而提高了系统的灵活性。 在下一节中,我们将使用一些示例以更简单的方式解释分布式 IO 的想法和需求。 简单举例说明分布式 IO 的必要性 假设我们有一台生产机器,这台机器是通过 PLC 控制的,任何类型的 PLC,见图 1。 图 1. 通过 PLC 控制的生产机器。 正如您所看到的,控制机器的 PLC 安装在现场机器侧。 我们知道 PLC 被设计为能够在恶劣的环境下运行,因此将 PLC 安装在机器侧并不是一个坏主意,因为我们知道它将能够承受与机器相关的不同运行条件, 环境温度高、湿度大、震动等造成的枯萎。 现在,如果我们需要修改流程并增加对机器的控制,这意味着我们需要增加机器的输入和输出数量,这意味着我们需要获得更大数量的 PLC IO,或者至少我们需要将 IO 模块添加到当前的 PLC。 您应该知道,向当前 PLC 添加额外的 IO 模块将取决于您为项目选择的 PLC,因为每个 PLC 都有您可以添加到 PLC 的最大 IO 数量。 因此,如果我们需要的额外 IO 数量超过了我可以添加到 PLC 的最大 IO 数量,那么我将不得不购买更大的 PLC,这意味着将您的软件重写到新的 PLC 或至少迁移您的软件 项目。 见图 2。 图 2. 用于新机器扩展的更大 PLC。 因此,对于新的扩展,我们必须购买更大的 PLC。 现在,我们说 PLC 可以在现场安装,并且它的设计能够承受恶劣的环境,但通常情况并非如此,通常情况下,PLC 安装在远离条件良好且受到保护的地方,例如 MCC 房间。 这意味着我们过程的每个输入或输出信号都必须从机器侧连接到 PLC(MCC室),因此如果我有 100 个 IO 信号,那么我将不得不在机器和 PLC 之间拉动 100 个信号电缆 。 如果我将来需要进行任何扩展,我将不得不拉动额外的新电缆。 见图 3。 图 3. MCC 机房内安装 PLC。 正如您所看到的,我们现在必须为流程中的每个 IO 信号在 PLC 和机器之间拉一根电缆。 这对于 IO 数量较少的小型机器来说是可以接受的,但对于具有大量 IO 的大型进程来说就不是那么容易接受了。 因为这将包括拉动大量电缆,这将增加该过程的成本,并且还会引入需要注意的新问题,例如电缆管道、EMC 兼容性、电缆桥架以及更多额外的考虑因素。 这就是外部外设或分布式 IO 模块变得非常有用的地方。 见图 4。 图 4. 使用分布式 IO 设备。 分布式 IO 模块简单来说就是安装在机器端的 IO 模块,用于收集过程的所有输入并发送给 PLC,也可以从 PLC 获取输出信号并发送给相关的执行装置。 从图中可以看到,PLC 和机器之间的连接现在是通过在分布式 IO 设备和 PLC 之间拉一条通信电缆来完成的。 分布式 IO 设备具有多种通信功能,在我们的示例中,我们假设采用 Profinet 通信,因此颜色为绿色。 使用分布式 IO 设备将为您带来扩展过程 IO 的优势,而无需安装更大的 PLC。 您只需将新的 IO 添加到设备中,PLC 之间的通信仍然使用 Profinet 或任何其他通信方法进行通信。 您甚至可以使用同一个 PLC 控制全新的机器,只需将新的通信电缆从 PLC 拉到新机器即可。 见图 5。 图5.用同一个 PLC 控制 2 台机器。 正如您所看到的,要使用 PLC 控制一台全新的机器,我只需要一根连接 PLC 和机器的额外通信电缆。 当然,您需要确保您的 PLC 功能可以处理和控制两台机器。 另一件事是,分布式 IO 可以与不同品牌的 PLC 一起使用,这意味着我可以将不同品牌的分布式 IO 与西门子 PLC 一起使用。 见图 6。 图 6. 使用不同品牌的分布式 IO。 如图所示,一台机器使用 SIEMENS 分布式 IO 设备,另一台机器使用 Schneider 分布式 IO 设备,并且两台机器都将通过同一台 PLC 进行控制。 结论 分布式 IO 设备用于扩展控制系统的范围,允许长距离连接大量传感器和执行器。 与传统的机器 - PLC 信号连接相比,分布式 IO 减少了所需的接线量。 在分布式 IO 系统中添加或删除设备很容易,使其具有高度可扩展性和可靠性。
  18. 在之前的文章中,我们简单介绍了分布式 IO 设备的概念、它们是什么以及为什么我们需要它们。 在本文中,我们将展示如何在 PLC 项目中配置分布式 IO 设备。 与往常一样,我们重点关注西门子和 TIA Portal 系统,因此我们将展示使用西门子 ET200S 分布式 IO。 内容: 分布式 IO 设备的硬件配置。 将 IO 模块分配给控制器。 将配置下载到实际的硬件模块。 分布式 IO 设备的硬件配置 任何分布式 IO 设备的硬件配置只是意味着将该 IO 设备分配给项目中的某个控制器,以便来自该 IO 的输入信号将到达该 PLC,并且输出命令将来自该 PLC。 让我们将 PLC 添加到我们的项目中,看看如何继续。 见图 1。 图 1. 将 PLC 添加到我们的项目中。 从我们刚刚添加的 PLC 中可以看出,PLC 已经有一些集中式 IO,但在本文中,我们假设机器的一部分距离很远,我需要连接到 PLC,在这种情况下, 我们将使用安装在机器部分的分布式 IO 设备,它将拥有与机器该部分相关的所有 IO,然后分布式 IO 设备将通过适当类型的通信方法(如 Profinet 或)与 PLC 进行通信 现场总线。 PLC 项目中的分布式 IO 让我们添加 ET200S 设备。 见图 2。 图 2. 添加您需要的 IO 模块。 从图中可以看出,有很多不同的 IO 模块可供您根据您的应用进行选择。 我们将选择标准的 ET200S 模块。 见图 3。 图 3.拖放 ET200s 模块 如图所示,只需将 IO 模块拖放到项目的网络视图中即可。 请注意,我们为 IO 模块选择的 Profinet 接口与我们的 PLC 相同。 将 ET200S 模块添加到我们的项目后,我们可以开始将我们的输入和输出模块添加到 ET200S,您可以从右侧的硬件目录栏找到与所选模块兼容的所有 IO,见图 4。 图 4. 为 ET200S 添加 IO。 正如您从图片中看到的,我可以通过将 IO 拖放到空白区域来添加它们。 ET200S 可以使用的最大 IO 数量取决于它的类型和规格。 要添加输入和输出模块,只需将其从右侧的硬件目录中拖放到即可,见图 5。 图 5. 拖放您需要的 IO。 将 IO 模块分配给控制器 现在,您将分布式 IO 模块添加到项目中,您会注意到 IO 设备未分配或连接到任何控制器。 见图 6。 图 6. 添加的 IO 模块未分配给 PLC。 查看分布式 IO 模块未分配给任何控制器的另一种方法是,没有为我的 IO 分配地址。 由于它没有连接到任何控制器,见图 7。 图 7. 地址未定义。 如图所示,I 和 O 地址区域为空白,表明它们尚未分配给控制器。 所以我们需要将 IO 模块分配给 PLC。 要将 IO 模块分配给控制器,我们需要进入网络视图,选择 IO 模块,然后右键单击并按 “分配给新的 DP 主站/IO 控制器”,见图8。 图 8. 将 IO 模块分配给控制器。 按下 “分配给新的 DP 主站/IO 控制器”后,会出现选择 IO 控制器窗口,您可以在其中选择要分配 IO 模块的 PLC,在我们的项目中我们只有一个控制器,因此该窗口 将仅显示一个选项。 见图 9。 图 9. 选择 IO 控制器窗口。 一旦按下 OK,IO 模块将被分配给 PLC。 现在,如果你检查 IO 模块的设备视图,你会发现输入和输出现在已经在项目中分配了地址,这意味着它们现在属于某个 PLC 控制器。 见图 10。 图 10. IO 模块现已分配地址。 将配置下载到实际硬件模块 这就是您选择和配置分布式 IO 模块并将其分配给项目中的 PLC 的方法。 不过,有件事你应该知道, 是的,我们确实将 IO 模块分配给了 PLC,但这只是在软件方面(TIA Portal)完成的。 实际的硬件 IO 设备仍然不知道它已分配给该 PLC。 这意味着如果我将项目下载到 PLC,它将成功编译并下载,但是当 PLC 需要与 IO 设备联系以获取输入或给出输出命令时,它将无法找到设备,即使 尽管两者之间有通信电缆。 并且 PLC 会给出错误。 为了解决这个问题,我必须做一些叫做 “分配设备名称” 的事情 为此,只需右键单击 IO 设备并按分配设备名称,这将打开以下窗口,见图 11。 图 11. 分配设备名称。 单击分配设备名称时,将出现 “分配 PROFINET 设备名称” 窗口。 见图 12。 图 12. 分配设备名称窗口。 这个过程是用硬件设备完成的,但由于我们没有硬件组件,只能进行模拟,所以我们在这里看不到它。 但是,当您选择 PC/PG 接口并单击更新时,您应该找到您的 IO 设备,然后您只需选择分配设备名称即可将设备名称分配给实际的 IO 硬件模块。 完成后,您现在可以将此 IO 设备用作 PLC 的普通 IO。 您可以在 PLC 项目树中找到 IO 模块,因为它现在是 PLC 的一部分。 见图 13。 图 13. IO 模块属于 PLC 项目树。
  19. 在之前的文章中,我们介绍了分布式 IO 模块的概念,以及如何使用 PLC 配置 IO 模块。 在本文中,我们将展示如何在 PLC 系统之间进行分布式 IO 共享。 内容: 问题描述。 与两个 PLC 共享 IO 设备。 将不同的内部模块分配给 PLC。 问题描述 在上一篇文章中,我们展示了如何将分布式 IO 模块与 PLC 连接和配置,并通过该 PLC 控制分布式模块的 IO 点。 在本文中,我们讨论需要将同一分布式 IO 模块与两个不同 PLC 一起使用的情况。 见图1。 图 1. 两个不同的 PLC 项目。 PLC 系统之间的分布式 IO 共享 想象一下,我们需要在两个 PLC 之间共享分布式模块的输入和输出点。 在两个 PLC 之间共享分布式 IO 模块是可能的,但并非所有模块都能做到这一点,但大多数现代模块都可以。 共享信息的另一种方法是将所有信息从分布式 IO 获取到一个 PLC,并在两个 PLC 之间建立通信,然后交换所需的数据。 这将在另一篇文章中展示。 在分布式 IO 设备(IO设备_1)中,我们配置了许多 IO 模块,例如 4DIx24VDC 模块、8DOx24VDC 模块、2DIx24VDC 模块以及更多模块。 见图 2。 图 2. 我们的 IO 设备中的不同 IO 模块。 与两个 PLC 共享 IO 设备 在本文中,我们将假设正如您从图片中看到的那样,我们要通过 PLC_1 控制 4DIx24VDC 模块和 8DOx24VDC 模块,并且我想从 PLC_2 控制 2DIx24VDC 模块和 2DOx24VDC 模块。 所以我想在两个 PLC 之间共享不同的模块,从而共享名称设备。 如图 1 所示,分布式 IO 设备(IO 设备_1)已经是 PLC_1 的扩展,正如我们在上一篇文章中设置的那样,但我们还需要将其设为 PLC_2 的扩展,以便可以在两者之间共享 PLC。 见图 3。 图 3. IO 设备是 PLC_1 的扩展 通常,在执行此操作时,我们会将每个 PLC 置于不同的 TIA Portal 项目中,但由于我们没有真正的硬件设备,因此我们将仅使用一个 TIA Portal 软件项目来演示如何在两个 PLC 之间共享分布式 IO 模块 。 我们有一个项目有两台 PLC。 我们需要将 IO 设备_1 分配给 PLC_1 和 PLC_2 为此,请在网络视图中复制该模块并将其粘贴到您的项目中以拥有两个模块。 见图 4。 图 4. 复制并粘贴 IO 设备。 现在,我们需要将此 IO 设备分配给 PLC_2,就像我们在上一篇文章中对 PLC_1 所做的那样。 见图 5。 图 5. 将模块分配给 PLC_2 现在,如果您尝试将项目下载到两个 PLC,PLC_1 将能够找到 IO 模块。 但是,PLC_2 将无法找到 IO 模块,因为没有名为 IO device_2 的实际硬件模块,我们只有一个硬件 IO 设备,并且从上一篇文章开始,它被配置为名称 IO device_1,这就是为什么 PLC_2 将 找不到 IO 设备。 见图 6。 图 6. 通过设备网络名称进行连接。 因此,我们需要为两个 IO 模块指定相同的设备网络名称,见图 7。 图 7. 网络设备名称 如您所见,IO 模块的网络设备名称为 IO device_1,其他 IO 模块见图 8。 图 8. 第二个 IO 模块的网络设备名称。 此处,网络名称为 IO device_2。 我们需要为两个 IO 模块指定相同的名称,以便两个 PLC 都能找到它并连接到它。 取消选中自动名称生成选项,这样我们就可以更改名称并将它们都设为 IO device_1,同时确保两个模块中红色区域内的所有信息相同。 见图 9。 图 9.取消点击自动生成选项。 在我们将两个模块的信息更改为相同后,请检查图片 10a 和 10b。 图 10a. 第二个 IO 模块。 图 10b. 第一个IO模块 现在两个 IO 模块是相同的,两个 PLC 都可以找到 IO 模块并与其通信。 见图 11。 图11. 两台 PLC 都能找到 IO 模块。 到目前为止,我们假设两个 PLC 都位于同一个 TIA Portal 项目中。 但是,如果我们与另一个 TIA Portal 项目中的控制器共享 IO 模块,我们将执行与之前相同的操作,但会添加一个额外的步骤。 在此步骤中,我们将转到 IO 模块的属性并更改共享设备 IO 周期选项,如图 12 所示。 图 12. 项目外部的 IO 控制器 从图中可以看到,如果两个 PLC 属于不同的 TIA Portal 项目,我们将红框内的值改为 1。 由于我们在同一个项目中拥有两个 PLC,因此我们将其保持为零。 现在两个 PLC 都可以看到 IO 设备并与其通信,我们需要告诉 IO 模块,哪些内部模块应该与哪个 PLC 通信。 正如我们在图 2 中提到的,我们需要一个 4DIx24VDC 模块和 8DOx24VDC 模块来与 PLC_1 通信,我想从 PLC_2 控制2DIx24VDC 模块和 2DOx24VDC 模块。 我们可以按照以下步骤来做到这一点。 为 PLC 分配不同的内部模块 首先进入 IO 设备_1 的属性,您会发现 IO 设备的所有内部模块都属于 PLC_1。 见图 13。 图 13. IO 模块的共享设备。 从图中可以看到,访问 IO 设备的所有内部模块都分配给 PLC_1,但是正如我们之前提到的,我们需要 PLC_2 访问最后两个内部模块 2DIx24VDC 模块和 2DOx24VDC 模块。 为此,只需右键单击所需的模块并取消选择 PLC_1 选项,并将其设为空白以指示该模块将通过不同的控制器进行控制。 见图 14。 图 14. 取消选择内部模块。 如果取消选择 PLC_1 选项后检查 IO 设备_1 的设备概览,您将看到这些内部模块没有为 PLC_1 分配地址,表明它们属于其他位置。 见图 15。 图 15. 未分配给 PLC_1 的模块无寻址 现在,我需要将这两个模块分配给 PLC_2 的 IO device_2。 通过执行与之前相同的步骤,转至 IO 设备_2 的共享设备属性,并仅将 PLC_2 分配给两个需要的模块。 见图 16。 图 16. 将所需模块分配给 PLC_2 现在,2DIx24VDC 模块和 2DOx24VDC 模块已分配给 PLC_2,如果您检查设备概述,您会发现它们的寻址方式与我们想要的 PLC_2 相同。 见图 17。 图 17. 寻址属于 PLC_2 这就是我们如何在两个 PLC 之间共享一个 IO 模块,无论它们位于同一个 TIA Portal 项目中还是位于两个不同的项目中。
  20. PLC 之间可以通过多种方式进行通信和对话,在本文中我们将讨论其中一种方法,即如何使用 i-device 功能在 PLC 之间建立西门子通信,以进行 PLC 到 PLC 的数据传输。 什么是智能设备功能? I-Device 功能可用于非常轻松地在两个 PLC 之间交换数据。 智能设备就是用作 IO 设备的 PLC。 这意味着 PLC 将充当 IO 模块,为其他 PLC 提供输入并接收输出。 智能设备功能使 PROFINET 不仅可以与 IO 控制器等下级设备进行通信,还可以作为 IO 设备与其他上级或中央控制器进行 IO 通信。 西门子 PLC 之间的通信 大多数 S7 系列 PLC 支持 I-Device 功能,但某些控制器不支持,具体取决于固件版本,例如: S7-300(固件版本 V3.2 及以上) S7-1200(固件版本 V4 及以上) 您可以通过进入 PLC PROFINET 接口属性并检查 “操作模式” 选项来简单地了解您的控制器是否具有智能设备功能。 见图 1a 和 1b。 图 1a. PLC 不支持智能设备 从图中我们看不到 “运行模式” 选项,因此我们知道 PLC 不支持智能设备功能。 图 1b. PLC 支持智能设备功能 从图中可以看出,该 PLC 支持智能设备功能。 具有 “智能 IO 设备” 配置的 PLC 称为智能设备。 I-Device 就像标准 IO 设备一样,需要像标准 IO 设备一样进行处理。 这意味着智能设备还连接到更高级别的 IO 控制器。 因此,智能设备将充当 IO 模块,但它仍然是 PLC,因此如果您愿意,它仍然充当控制器。 数据交换概念 I-Device 方法的指导原则是使用 CPU 中已知的过程映像。 从更高级别的 IO 控制器的角度来看,与智能设备的通信类似于与分布式 IO 的通信,在输入和输出处进行通常的读写过程。 从智能设备的角度来看,到更高级别 IO 控制器的数据传输也类似于通过输入和输出到本地或分配的分布式 IO 的数据传输。 智能设备配置选项 配置有两种可能性: 在项目中配置智能设备。 配置在另一个项目中使用的智能设备 为另一个项目组态智能设备时,STEP 7 允许您通过将已组态的智能设备导出到 GSD 文件中来完成此操作。 GSD 文件可以像其他 GSD 文件一样导入到其他项目或其他工程系统中。 这不仅可以实现项目内部的通信,还可以通过经过验证的方式实现跨项目的通信以及不同制造商之间的数据交换。 我们将在另一篇文章中展示这一点。 在本文中,我们将展示同一西门子 PLC 项目中智能设备的配置。 同一 PLC 项目中的智能设备配置 我们假设项目中有两个 PLC,CPU 1516-3 PN/DP 将充当此配置中的控制器,CPU 1214C 将充当智能设备。 首先将两个 PLC 添加到 TIA Portal 项目中,并在它们之间设置 Profinet 连接。 见图2。 图 2. 两台 PLC 之间建立连接。 现在,我们需要将 CPU 1214C PLC 配置为智能设备。 您可以通过转到 Profinet 接口属性并在操作模式选项中单击 IO 设备选项来完成此操作。 见图3。 图 3. 选择 IO 设备。 之后,您需要将智能设备分配给更高级别的控制器,即我们项目中的 CPU 1516-3 PN/DP PLC。 为此,只需从分配的 IO 控制器下拉列表中选择该 PLC。 见图4。 图 4. 将智能设备分配给控制器。 此后,智能设备现已连接并分配给控制器 PLC。 见图5。 图 5. 智能设备被分配给控制器 PLC。 下一步是在智能设备和控制器之间通过所谓的传输区域交换数据。 创建传输区域 传输区域是用于在智能设备和更高级别 IO 控制器之间交换数据的 IO 区域。 转到 “智能设备通信” 部分。 单击 “传输区域” 列的第一个字段。 TIA Portal 将创建一个您可以更改的预定义名称。 从图 6 可以看出。 图 6. 创建传输区域 选择通讯关系类型:目前只能选择 CD。 见图7。 图 7. 选择 CD 通讯选项。 选择 CD 选项后,将创建一个传输区域,并自动创建 IO 控制器和智能设备的地址。 见图 8。 图 8. 创建传输区域。 地址是自动预先分配的,如果需要,您可以根据您的环境调整地址并指定要传输的传输区域的长度一致。 要像以前一样创建另一个传输区域,只需按 “添加新” 即可,见图 9。 图 9.添加新的传输区域。 正如我们之前所说,数据交换基于简单的处理图像概念,这意味着您始终发送输出并接收输入。 另请注意,您在上图中看到的箭头表示智能设备和控制器之间的信息流。 因此,如果我将数据从控制器发送到智能设备,则箭头将从控制器到智能设备,并且将输出控制器的地址,并且将输入智能设备的地址,反之亦然,如您所见 上一张图片。 另请记住,最好将传输区域重命名为正确的指示名称。 见图 10。 图 10. 重命名您的传输区域。 加载 PLC 项目 要加载 PLC 项目数据,请在项目导航中依次选择两个控制器,并将项目加载到相应的模块中。 请注意,由于我们没有实际的硬件设备,因此无法模拟此功能。
  21. 在本文中,我们将讨论两个 PLC 之间通信的另一种方式,无论它们位于同一项目还是两个不同的 PLC 项目中。 在本文中,我们将讨论西门子 PLC 中的 PUT 命令,该命令可用于将数据从一个 PLC 发送或放入第二个 PLC。 什么是 PUT 命令? 一般来说,PUT 命令是 TIA Portal 内置功能块 FB,专门用于 S7 系列 CPU,用于将数据从本地 PLC 传送到远程伙伴 PLC。 使用 PUT 命令时,我将有两个 PLC,我需要将数据从一个称为本地的 PLC 发送到另一个称为伙伴的 PLC。 必须对伙伴 PLC 进行一些配置,以使其能够被其他 PLC 访问。 除了 PLC 之间的 Profinet 连接之外。 我们将创建一个示例项目来展示如何使用 PUT 命令。 西门子 PLC 中的 PUT 命令 我们将假设一个示例项目,其中同一项目中有两个 PLC,PLC_1 将充当本地 PLC,PLC_2 将充当合作伙伴 PLC。 我们想要将一个整数从本地写入伙伴 PLC。 PLC 项目示例 首先,我们创建一个新项目并添加两个 PLC。 见图1。 图1.添加本地和伙伴 PLC。 我现在需要的是配置 PLC_2,即接收数据的 PLC_2,以便能够接收该数据。 PLC_1 将与 PUT 命令一起使用。 我需要做的第一件事是允许 PUT 命令访问将接收数据的 PLC_2。 见图2。 图 2. 允许 PUT 命令访问。 如图所示,我们允许 PUT 命令从 PLC_2 的属性中访问 PLC_2,在保护和安全选项中,单击 “允许远程伙伴通过 PUT/GET 通信进行访问” 现在,我可以使用 PUT 命令将来自任何远程伙伴的数据放入 PLC_2。 第二件事是在 PLC_2 中为要放入其中的数据准备一个空间或内存。 我们假设我们想要将一个整数值放入该 PLC 中,因此我将根据该值准备一个内存。 见图3。 图3. 准备接收数据的区域。 就是这样; 这是您需要从 PLC_2 侧准备的完整配置,以便能够通过 PUT 命令接收数据。 接下来,我们设置从 PLC_1 发送的数据。 我们将创建一个数据块来保存发送到 PLC_2 的数据,在该数据块内,我们将定义一个要放入 PLC_2 的整数标签。 见图4。 图4. 创建数据块来保存发送的数据。 我们定义了一个要发送到 PLC_2 的整数标签 “SendMeToPLC_2”。 见图5。 图5.定义要发送的数据。 请注意,对于 PLC_1,我们不需要允许使用 PUT 命令选项进行访问。 我们在将接收数据的 PLC 中激活此功能,而不是在将发送数据的 PLC 中激活此功能。 现在,让我们在编程中使用 PUT 命令,在主 OB1 中我们将拖放 PUT 命令 FB。 见图6。 图6. 将PUT命令添加到OB1中。 需要注意的是,PUT命令是在S7通讯文件夹中找到的,因为它是S7系列PLC的专有功能,因为它涉及到安全问题。 请记住,在图 2 中,当我们允许使用 PUT 命令时,它位于 PLC 属性的安全和保护属性中,因为它与 PLC 安全和保护相关。 PUT 命令本质上是一个功能块,因此当将其添加到我的逻辑中时,我将被要求创建一个数据实例。 见图7。 图 7. 为 PUT 命令创建数据实例。 按“确定”后,PUT 命令现已添加到您的 PLC 逻辑中。 见图8。 图 8. PUT 命令 添加 PUT 命令后,现在我们需要对其进行配置,我们为 PUT 命令配置两个参数。 PLC 之间的连接 将从 PLC_1 PUT 到 PLC_2 的块 要转到 PUT 命令的配置视图,请按最后一张图片中显示的蓝色小图标。 在连接参数中,您将设置本地 (PLC_1) 和伙伴 (PLC_2) PLC 之间的通信。 见图9。 图9. 连接参数。 如您所见,本地 PLC 设置为 PLC_1,这是使用 PUT 命令的 PLC。 伙伴端仍然是空的,这就是我们应该分配 PLC_2 的地方。 如果您单击下拉列表,您将有两个合作伙伴选项。 见图10。 图10. 合作伙伴连接 伙伴是接收数据的 PLC; 您会发现有两个选项可供选择: PLC_2 [CPU 1516-3 PN/DP] 未指定 因为两个 PLC 都在同一个项目中,所以当我选择 PLC_2 选项时,所有连接参数都会自动填写。见图11。 图 11. PLC_2 作为伙伴 另一方面,如果合作伙伴PLC来自不同的项目,那么我将选择“未指定”选项,在这种情况下,我将必须填写一些数据,例如合作伙伴PLC的IP地址。 见图12。 图12. 未指定的合作伙伴 如您所见,在这种情况下,我需要填写一些数据,例如 IP 地址,还需要为 PLC_1 添加子网。 要为 PLC_1 添加子网,我们将转到 PLC_1 的 Profinet 属性并选择添加子网选项。 见图13。 图 13. 添加子网。 完成后,连接参数配置就完成了。 见图 14。 对于您发出的每个 PUT 命令,连接名称应该是唯一的,TIA Portal 将自动为其指定一个新名称,但您最好为项目中的连接分配一个更合适的名称。 我们这里保持原样。 图14.连接参数完成 PUT 命令配置的下一步是块参数设置。 在这些参数中,我们指定 PUT 命令的触发器,这意味着什么信号将启动 PUT 命令操作。 以及将从 PLC_1 放入哪些数据以及将其存储在 PLC_2 中的何处。 见图15。 图 15. 模块参数设置 对于开始请求 (REQ) 信号,我们定义了一个输入标签 (SendData %I0.0)。 正如我们之前提到的,我们已经定义了将发送到 PLC_2 的标签以及它将在 PLC 内存储的位置。 完成块参数配置后,PUT 命令的配置也就结束了。 见图16。 图 16. 调用 PUT 命令 所以,综上所述,当 REQ 信号被触发时,SD_1 中的数据将被发送到 ADDR_1。
  22. 在上一篇文章中,我们讨论了 PUT 命令以及如何使用它在同一项目或两个不同项目中的两个 PLC 之间进行通信。 在本文中,我们将讨论用于西门子 PLC 到 PLC 通信项目中用于数据交换的 GET 命令。 GET 命令是什么? 就像 put 命令一样,GET 命令是 TIA Portal 内置功能块 FB,专门用于 S7 系列 CPU,用于将数据从远程伙伴 PLC 获取到本地 PLC。 与 PUT 命令相反,GET 命令不是将数据从 PLC_1 放入 PLC_2,而是将数据从 PLC_2 获取到 PLC_1。 当使用 GET 命令时,我有两个 PLC,我需要从一个称为“伙伴”的 PLC 到另一个称为“本地”的 PLC 获取数据。 本地 PLC 是对 GET 命令进行编程的地方。 除了两个 PLC 之间的 Profinet 连接之外。 必须对伙伴 PLC 进行一些配置,以使其能够被其他 PLC 访问。 我们将创建一个示例项目来展示如何使用 GET 命令。 西门子 PLC 到 PLC 通信项目 我们将假设一个示例项目,其中同一项目中有两个 PLC,PLC_1 将充当本地 PLC,PLC_2 将充当合作伙伴 PLC。 为了创建需要使用 GET 命令的情况,我们假设我们想要从伙伴 PLC_2 读取/获取整数到本地 PLC_1。 首先,我们创建一个新项目并添加两个 PLC。 见图1。 图1.新建一个工程,添加两台PLC。 现在,我们需要配置伙伴 PLC_2 以启用来自 PLC_1 的 GET 访问。 我们还需要准备将从 PLC_2 移至 PLC_1 的数据。 首先,我们需要允许 GET 命令访问将提供数据的 PLC_2。 见图2。 图 2. 允许 GET 命令访问。 从图中可以看到,我们允许GET命令从PLC_2的属性中访问PLC_2,在保护和安全选项中,单击 “允许远程合作伙伴通过 PUT/GET 通信进行访问” 现在,我可以使用 GET 命令从伙伴 PLC_2 读取/获取数据。 接下来,我们要创建将移动到 PLC_1 的数据,我们假设 PLC_1 要从 PLC_2 获取整数。 我们将定义一个名为 “SendDataToPLC_1” 的整数标签,该整数标签将从 PLC_2 读取到 PLC_1。 见图3。 图3. 定义要移动到 PLC_1 的数据 就是这样; 这是您需要从 PLC_2 侧准备的完整配置,以便能够通过 GET 命令接收数据。 现在,我们转到 PLC_1,在 PLC_1 中,我们要创建使用 GET 命令从 PLC_2 读取数据的逻辑。 正如我们在上一篇文章中所做的那样,我们只需将 GET 命令拖放到主 OB1 中即可。 见图4。 图4.拖放GET命令 需要注意的是,GET命令位于S7通讯文件夹中,因为它是S7系列PLC的专有功能,因为它涉及到安全问题。 请记住,在图 2 中,当我们允许使用 GET 命令时,它位于 PLC 属性的安全和保护属性中,因为它与 PLC 安全和保护相关。 当您将 GET 命令拖放到您的系统中时,您将被要求创建一个数据块实例,因为 GET 命令本质上是一个功能块 FB。 见图5。 图 5. 为 GET 命令创建数据实例。 现在,我们将 GET 命令添加到逻辑中,我们需要开始配置 GET 块,就像之前使用 put 命令所做的那样。 要打开 GET 命令的配置视图,请按块顶部的蓝色小图标。 见图6。 图 6. 打开配置视图。 我们有两个主要参数需要配置,连接参数和块参数。 见图7。 图 7. GET 块配置。 从图中可以看到,Local PLC就是调用GET命令的PLC。 虽然合作伙伴 PLC 是提供数据的 PLC,但它也是我们允许 GET 访问的同一 PLC。 在我们的项目中,合作伙伴 PLC 是 PLC_2。 从图中还可以看到,伙伴是空的,我们必须选择 PLC。 见图8。 图8. 合作伙伴列表中的不同选项 正如您所看到的,我们为合作伙伴 PLC 有两种不同的选项可供选择。 未指定是指当 PLC 属于不同的 TIA Portal 项目时,如果 PLC 属于同一 TIA Portal 项目,则您将在列表中找到其他 PLC。 当您选择PLC_2选项时,因为我们的PLC在同一个项目中,连接配置将自动填写。见图9。 图 9. PLC_2 作为伙伴 因为两个PLC都在同一个项目中,所以当我选择PLC_2选项时,所有连接参数都会自动填写。 另一方面,如果合作伙伴PLC来自不同的项目,那么我将选择“未指定”选项,在这种情况下,我将必须填写一些数据,例如合作伙伴PLC IP地址。 见图10。 图 10. 未指定的合作伙伴 PLC。 如您所见,当伙伴为“Unspecified”时,您将需要手动添加一些信息,例如伙伴PLC IP地址。 还可以看到我们需要给本地PLC_1添加一个子网。 为此,您只需转到 PLC_1 的 Profinet 属性并选择添加新子网。 见图11。 图 11. 为 PLC_1 添加子网 在PLC_1中添加新的子网后,连接参数配置就完成了。 见图12。 图12.连接参数完成。 我们需要处理的下一个配置是块参数。 在块参数中,我们定义将在两个 PLC 之间移动的数据以及允许开始执行 GET 块的触发信号。 见图13。 图 13. 块参数。 如您所见,我们需要定义 GET 块的触发信号,还需要定义将从 PLC_2(读取区域 ADDR_1)移动哪些数据以及这些数据将移至何处(存储区域 RD_1)。 我们已经定义了 ADDR_1,其前面是我们在 PLC_2 中定义的 SendDataToPLC_1 整数标记。 现在,我们将为该整数标签和触发信号定义存储区域。 见图 14。 图 14. 定义触发信号和存储区域 定义触发信号 ADDR_1 和 RD_1 后,我们将这些参数填充到块配置中。 见图15。 图15.填写区块参数 现在,GET 块的配置已完成,您可以看到该块现在已准备好下载和运行。 见图16。 图 16. GET 块 GET 块现已配置完毕,一旦触发信号激活,该块将从 PLC_2 读取 ADDR_1 并将其写入 PLC_1 中的 RD_1。
  23. 在之前的文章中,我们开始讨论两个或多个 PLC 之间通信的不同方式,到目前为止,我们讨论了智能设备功能以及西门子 PLC 专用的 PUT 和 GET 命令。 西门子 PLC 与其他 PLC 通讯 在本文中,我们将讨论另一种将两个 PLC 连接在一起的方法,这种方法比我们之前讨论的 PUT 和 GET 命令更具优势,因为与 S7 系列独有的 PUT/GET 命令相反。 这种新方法是一种开放的用户通信,这意味着我们可以使用它在西门子 PLC 和任何其他品牌的 PLC 之间进行通信,甚至不需要是两个 PLC,这种方法可以在 PLC 和任何其他可以理解的设备之间进行通信 TCP 网络协议如 PC、服务器、打印机等 在本文中,我们将展示如何使用 TCON 和 TDISCON 块在两个 PLC 之间建立通信,在下一篇文章中,我们将展示如何在建立连接后在 PLC 之间移动数据。 开放用户通信块 TCON 和 TDISCON 我们使用 TCON 块在两个 PLC 之间建立通信连接。 连接建立后,PLC 将自动维护。 通信双方都调用 TCON 指令来建立通信连接。 这意味着我必须在两个 PLC 中调用 TCON 块,并且我们必须在两个 PLC 中配置该块,正如我们将在示例项目中看到的那样。 在块配置期间,我们将指定哪个伙伴是主动通信端点,哪个是被动通信端点。 这意味着哪个 PLC 将尝试连接,哪个 PLC 将打开通信端口并等待另一个 PLC。 当执行 TDISCON 块或当 CPU 更改为 STOP 模式时,现有连接将终止并删除建立的连接。 要再次建立连接,您需要再次执行 TCON。 使用 TCON 的示例 PLC 项目 正如我们在之前的文章中所解释的,要在两个 PLC 之间建立通信,我们必须建立两件事: PLC 之间的通信。 两个 PLC 之间的数据传输。 在本文中,我们将使用 TCON 块在两个 PLC 之间建立采用 TCP 协议的开放用户通信。 在下一篇文章中,我们将展示如何在连接完成后移动数据。 首先,我们创建一个新项目并添加两个 PLC。 我们将添加 CPU1516-3PN/DP PLC,并将它们命名为 PLC_1 和 PLC_2,目的是在它们之间建立连接。 见图1。 图1.添加 PLC_1 和 PLC_2。 现在,我们只需将 TCON 块添加到 PLC 逻辑中,正如我们之前提到的,我们需要为两个 PLC 调用 TCON,让我们从 PLC_1 开始。 只需拖放 TCON 块即可在打开的用户通信文件夹中找到该块。 见图2。 图2.拖放 TCON 指令 TCON 块本质上是一个功能块,因此当将其添加到我的主 OB1 时,我们将被要求为该块创建一个数据块实例。 创建数据实例并为其指定适当的名称。 见图3。 图3.创建数据实例。 现在,TCON 块已添加到您的逻辑中,我们需要配置该块的连接参数。 只需按块上方的蓝色小配置图标即可。 见图4。 图 4. 打开配置视图 当您按下蓝色图标时,您将打开 TCON 块的配置视图,我们可以在其中设置连接参数。 您会发现它与 PUT 和 GET 命令的连接参数非常相似。 见图5。 图5. TCON 连接参数。 由于我们使用开放式用户通信,TCON 块中的合作伙伴 PLC 选项比 PUT/GET 命令有更多选项。 见图6。 图 6. 合作伙伴 PLC 选项 从图中可以看出,我们有 4 种不同的选择,它们是: PLC_2:如果两个 PLC 位于同一项目中,则此处将显示 PLC_2 广播:这将使网络上的任何设备都可以使用连接 多播:这将与选定的设备(多个设备但不是所有设备)建立连接 未指定:如果 PLC 位于另一个 TIA Portal 项目中。 当选择未指定的选项时,我们会被要求添加 PLC 的 IP 地址,并且还需要添加新的连接数据。 见图7。 图7. 添加新的连接数据 如图所示,要创建新的连接数据,只需单击下拉箭头并按新建即可。 这将创建一个新的连接数据块,并将自动分配给 TCON 块,见图 8。 图8. 连接数据块已创建。 正如您所看到的,连接数据块已创建,现在我需要添加合作伙伴 PLC 的 IP 地址。 我们需要做的另一件事是选择哪个 PLC 将主动建立连接。 这将决定哪个 PLC 将负责建立连接,而另一个 PLC 将仅负责打开连接端口。 见图9。 图 9. 将 PLC_1 指定为主动连接建立。 当我们选择 PLC_1 作为主动连接建立时,PLC_2 将负责打开连接端口,我必须为该端口选择一个值。 它可以是任何值,但在 TIA Portal 中自动分配为 2000,因此我们将保持原样。 见图10。 图 10. 合作伙伴端口。 在上图中可以看到连接参数已经变成绿色,表示所有配置都已完成并接受。 当使用 TCON 在两个 PLC 之间建立连接时,两个 PLC 都必须调用 TCON 指令来建立连接,因此我们现在需要对另一个 PLC_2 执行相同的操作。 将 TCON 块添加到 PLC_2 的主 OB1 中,见图11。 图11. 在 PLC_2 中调用 TCON。 添加 TCON 块后,我们需要像配置 PLC_1 一样配置连接参数。 见图12。 图 12 PLC_2 连接参数 从图中可以看到,我们仍然选择 PLC_1 作为主动建立连接,而 PLC_2 的端口仍然保留为 2000。 两个 PLC 配置的活动连接建立和端口必须相同,否则连接将失败。 至此,两台 PLC 的连接配置完成,见图13。 图 13. 两个 PLC 中的 TCON 块。 从图中我们可以看出,我们还需要一件事,那就是为两个 PLC 定义 REQ。 我们为 PLC_2 创建了AllowConnection,为 PLC_1 创建了 StartConnection。 见图 14。 图 14. 定义 REQ 信号。 现在两个 PLC 之间的连接已经完成,如下: 当 REQ 信号有效时,PLC_1 将尝试与 PLC_2 建立连接,但直到 PLC_2 启用连接功能后才能这样做,并且当 PLC_1 的 TCON 块收到 REQ 信号时才会完成。 PLC_2 的 TCON 的 REQ 信号有效以启用连接(这意味着 PLC_2 将打开端口 2000 等待连接) REQ 信号有效,PLC_1 的 TCON 开始连接(这将允许 PLC_1 通过端口 2000 与 PLC_2 建立连接) 项目模拟 让我们编译我们的项目并开始模拟,看看如何建立连接。 要查看任何 PLC 以及 PLC 之间的连接,可以打开网络视图并打开连接选项卡以查看所有活动的和已建立的连接。 见图15。 图 15.PLC_2 正在等待连接。 当 REQ 为 True 时,PLC_2 将打开连接,您可以看到 STATUS 值为 7002 _ 如果您检查 TCON 块的帮助,状态 7002 表示正在等待连接_。 您还可以从网络视图的图片中看到 PLC_2 正在等待连接。 当 PLC_1 TCON 块的 REQ 为真时,PLC_1 将尝试与 PLC_2 建立连接,并且由于 PLC_2 已打开并等待连接,因此 PLC_1 将能够找到并与 PLC_2 建立连接。 见图16。 图 16. PLC_1 建立连接。 请注意,网络视图中的所有连接现在均呈绿色,表示 PLC_1 和 PLC_2 之间的连接正常且正在进行。 正如我们之前提到的,一旦连接建立并建立,它就会自动维护。 因此,即使 REQ 信号变为假,两个 PLC 之间的连接也将保持。 见图17。 图 17。连接仍在进行中。 但是,如果转动 REQ 信号并不能断开连接,如果我想断开连接,该如何断开呢? 断路块 TDISCON 要断开两个 PLC 之间的连接,我们可以将 PLC 置于 STOP 模式,但这在运行过程中是不实用的。 我们还可以使用断开块或 TDISCON。 要添加 TDISCON 模块,只需将其拖放到您的逻辑中,见图 18。 图 18. 添加 TDISCON 块 正如您所看到的,添加 TDISCON 块将需要一个数据块实例,一旦将该块添加到您的逻辑中,您所需要做的就是分配您需要断开连接的连接 ID,并且您还需要为其分配一个 REQ 信号 启动连接终止。 见图19。 图 19. TDISCON 块。 现在,让我们在另一个 PLC 中添加一个 TDISCON 块,这样我们就能够断开连接。 参见图 20。对于 PLC_1 的 TDISCON 块。 图 20. PLC_1 中的 TDISCON 让我们回到仿真,看看如何使用 TDISCON 模块,见图 21。 图 21. 连接仍处于活动状态。 从图中可以看出,PLC 之间的连接仍然有效,TDISCON 的 REQ 信号仍然为假。 如果 PLC_1 的 REQ 变为 TRUE,连接将被终止,但您会注意到 PLC_2 仍在等待连接,见图 22。 图 22. PLC_1 的 REQ 为真。 当 PLC_2 TDISCON 块的 REQ 为真时,PLC_2 将不再等待连接。 见图23。 图 23. 连接终止。 我们在本文中展示了如何使用 TCON 和 TDISCON 块在两个 PLC 之间建立连接。
  24. 在上一篇文章中,我们讲了如何使用开放用户通信在两个 PLC 之间建立连接,我们使用 TCP 协议在两个 PLC 之间进行连接。 我们在文章中展示了如何使用 TCON 和 TDISCON 等指令来建立此连接。 在 PLC 之间移动数据 在本文中,我们将展示如何开始在上一篇文章连接的 PLC 之间移动数据。 为此,我们将使用 TSEND 和 TRCV 块。 发送数据至 PLC_2 我们将在上一篇文章中创建的项目的基础上进行构建,这意味着我们的项目中已经安装了 TCON 和 TDISCON 块。 我们将通过添加 TSEND 和 TRCV 块来继续我们的项目,以开始在两个 PLC 之间移动数据。 要将数据从 PLC_1 发送到 PLC_2,我们首先创建一个数据块,该数据块将保存我们需要发送到 PLC_2 的所有信息。 见图1。 图 1. 新建一个数据块。 正如我们之前讨论的,更好的做法是为块提供正确的命名,这样就可以轻松直观地弄清楚每个块的用途。 其次,让我们在数据块中添加一些要发送到 PLC_2 的数据。 我们假设我们需要发送三个不同的数据标签。 见图 2。 图 2. 定义一些数据发送到 PLC_2。 为了能够将刚刚创建的数据块发送到 PLC_2,我们还需要做一件事,即确保未选择数据块的优化块访问。 为此,我们需要转到数据块的属性并取消选择该选项。 见图 3 和 4。 图 3. 进入数据块属性。 图 4. 取消选中 “优化块访问” 选项。 确保在使用 TSEND 块之前取消选中此选项,否则它将不起作用。 现在我们已经准备好了要发送到 PLC_2 的数据,让我们实际尝试发送它。 我们将通过使用 TSEND 块来做到这一点。 只需将指令拖放到主 OB1 中即可将其添加到您的逻辑中。 见图 5。 图 5. 添加 TSEND 块。 添加 TSEND 块时,系统会要求您创建一个实例数据块,因为它本质上是一个功能块,再次给它一个适当的名称。见图 6。 图 6. 为 TSEND 创建数据实例。 当 TSEND 块添加到您的逻辑中时,您会发现我们需要进行一些重要的配置。 见图 7。 图 7. TSEND 块。 正如你所看到的,我们需要进行一些配置: REQ 信号允许发送数据。 对于 REQ 信号,我们将定义一个标签 SendData,用于启用数据发送。 我将用来发送数据的连接的 ID,因为我可以有多个连接,所以我需要指定将使用哪个连接。 在上一篇文章中,我们为 PLC_1 和 PLC_2 之间的连接定义了 ID 1,因此我们将ID设置为 1。 我需要发送的数据。 我们已经创建了一个数据块,其中包含我需要发送的所有信息,我们只需将数据块拖放到 TSEND 块中即可。 见图 8。 图 8. 配置 TSEND 块。 从 PLC_1 接收数据 当我们设置 TSEND 将数据发送到 PLC_2 后,我们需要在 PLC_2 内部接收这些数据。为此,我们将使用 TRCV 块。见图9。 图 9. 添加 TRCV 块。 如您所见,只需拖放 TRCV 块即可将其添加到您的逻辑中。 您知道接下来我们需要为该块创建一个数据实例。 见图 10。 图 10. 将数据实例添加到 TRCV 块。 将 TRCV 块调用到您的逻辑中后,我们需要像配置 TSEND 一样配置一些参数。 见图 11。 图 11. TRCV 模块。 如您所见,EN-R 是一个使能信号,必须为真才能允许 TRCV 模块开始接收数据。 ID 是将要使用的连接,DATA 是将存储接收到的数据的位置。 因此,我们需要创建一个数据块来接收其中的数据。 请记住给它一个合适的名称。 见图 12。 图 12. 创建数据块接收数据。 接下来,定义将从 PLC_1 接收的信息标签,最佳实践是确保数据块具有与将接收的数据相同的数据结构。 见图 13。 图 13. 定义数据标签。 对于 EN-R,我们将定义一个 RecieveData 标签来启用数据接收。 对于连接 ID,它是我们之前设置的 1。 见图 14。 图 14. EN-R 信号。 接下来,将我们创建的数据块拖放到 TRCV 块中以完成所有配置。 见图 15。 图 15. 将数据块添加到 TRCV 块中。 当您拖放我们创建的 DB 时,您会注意到 TIA Portal 发出警告,并且它不接受我们刚刚添加的数据块。 这是因为我们没有像对 TSEND 那样取消选中数据块的“优化块访问”。 见图 16。 图 16. 优化的块访问。 正如我们之前所说,我们必须取消选中此选项,否则 TSEND 和 TRCV 将无法工作。 见图 17。 图 17. 取消选中优化块访问选项。 您可以看到,一旦我们取消选中 “优化块访问”,TRCV 指令就会接受数据块。 现在 TSEND 和 TRCV 块的调用和配置已完成。 让我们模拟一下我们的项目,看看数据将如何发送和接收。 首先,我们将创建一个简单的逻辑,确保我们定义的标签有数据值。 自动创建数据值的简单逻辑 我们将创建一个简单的逻辑来自动创建和更新数据值,以便更容易查看两个 PLC 之间的数据传输。 见图 18。 图 18. 简单的逻辑。 这个简单的逻辑将使用时钟位 %M50.5 自动更改 SendToPLC_2 数据块内存储的数据值。 PLC 项目仿真 让我们编译我们的项目并开始模拟。 我们需要做的第一件事是使用我们上一篇文章配置的 TCON 块在两个 PLC 之间建立连接。 请记住,我们需要启用 PLC_2 的连接功能并建立与 PLC_1 的连接。 见图 19、20 和 21。 图 19. PLC 之间无连接 图 20. 启用连接。 图 21. 建立连接。 现在,我们在两个 PLC 之间建立了连接,让我们按照设置将数据从 PLC_1 移动到 PLC_2。 首先,将 SendData 标记设置为 TRUE。 见图 22。 图 22. REQ 信号为真。 您可以看到,即使 SendData 为 TRUE,PLC_1 也没有向 PLC_2 发送数据。 这是因为 TRCV 模块尚未启用以接收任何数据。 见图 23。 图 23. EN-R 信号错误。 如您所见,由于 RecieveData 尚未为 TRUE,因此未启用 TRCV 模块来接收任何数据。 一旦 EN-R 为真,数据将从 PLC_1 的数据块发送到 PLC_2 的数据块。 见图 24。 图 24. EN-R 信号为 True。 一旦 EN-R 为真,您可以看到数据从 PLC_1 移至 PLC_2。 如果你打开工程自己模拟一下,你会发现 PLC_1 中的数据不断更新,并传输到 PLC_2 中。 这就是我们如何在两个 PLC 之间建立通信并使用 TSEND、TRCV 块。
  25. Earlier
  26. PLC 改造项目涉及用更新、更先进的版本更新或替换旧的 PLC(可编程逻辑控制器)系统。 这样做是为了提高性能、添加新功能或保持与现代技术的兼容性,同时最大限度地减少完全更换现有设备的需要。 PLC 改造项目 当您在任何系统中工作时,无论是工业自动化还是其他任何系统,您并不总是需要调试全新的工厂。 有时,旧工厂无法按照预期结果正常运行。 这意味着不是整个系统,而是某些部分。 它可能是 PLC 系统或电气系统或机械系统。 与其改变整个系统,不如只用新系统替换该部分。 其余系统将保持原样。 这称为改造。 这是工程师需要学习的一个非常重要的方面。 在这篇文章中,我们将看到与改造 PLC 系统相关的步骤。 为什么需要 PLC 改造? 当您拥有 PLC 系统时,您必然会遇到有时会出现故障的情况。 对于任何系统(不仅是 PLC)来说,这是一个自然的考虑因素,并不意味着 PLC 系统每次都会出现故障。 这是考虑到的最坏情况。 目前,除 PLC外,其余电气、机械系统均工作正常。 PLC 系统更换需求的常见原因是 – 逻辑中反复出现错误、过时的 PLC 已发生故障且在市场上不再可用、PLC 中反复出现的固件或硬件故障以及无可用服务。 在这些情况下,最好的选择是仅更换 PLC 系统,而不是更换整个系统。 这称为 PLC 改造工作。 基本上,您要么将 PLC 升级到新的,要么完全用新品牌替换它。 这降低了成本,不影响原来的工作工厂,节省时间并提高可靠性。 基本上,工厂的工作逻辑将保持不变; 您只需用新硬件替换它并运行工厂即可。 PLC 改造项目流程 第一步是研究 PLC 的控制面板图。 每个 PLC 都有自己不同的接线版本以及汇源概念。 所以,有必要先了解一下原来的接线。 这将帮助您根据当前的 PLC 准备新的 IO 列表。 因为如果一味地使用相同的 IP 列表,那么当您安装新的 PLC 时,您大多会遇到现场接线问题 如果可能的话,获取旧程序。 如果不可能,则在前往现场之前在办公室制定新的逻辑。 另外,与客户或最好的情况(最终客户端)一起测试逻辑。 最终客户将提供最大的帮助,因为他们已经操作了旧的 PLC 系统,并且可以帮助快速解决问题。 客户可以帮助深入检查流程。 如果在前往现场之前对程序进行测试,那么它将大大减少您在现场的时间。 尝试匹配屏幕并开发图形,就像旧的运行屏幕一样。 这将帮助操作员按照习惯更轻松地运行工厂。 一旦逻辑和图形准备就绪,就可以与接线员一起规划现场。 接线员首先将新的 PLC 替换为旧的 PLC,然后用万用表交叉检查所有点。 这是为了确保所有点是否已按照新接线连接。 需要注意的一件重要事情是,改造需要适当的关闭,因此在计划现场访问之前请务必确保。 在断电情况下对接线进行环路检查后,启动系统并下载 PLC 和图形中的最新程序。 现在,首先,您必须检查 IO。 这是非常关键的一步,因为您要用新线路替换旧线路。 现场的所有信息办公室必须以与之前相同的方式做出响应。 如果没有这个,您就无法以自动或手动模式运行设备。 现在,检查编写的逻辑,看看它是否按照早期系统执行。 所有安全联锁、许可条件、顺序和其他逻辑必须以与旧系统相同的方式工作。 如果工作正常,必须得到客户和最终客户的批准以进行验证并在报告中提及。 制作所有最终报告,存储最终备份,并拍摄正在运行的系统的照片和视频。 这可以确保您完成的改造 PLC 项目有一份完成报告。 PLC 项目概要 评估现有的 PLC 系统,确定改造需求,并确定项目目标、范围和限制。 设计详细的新系统计划,确保与现有机械和网络的集成,并制定迁移策略。 备份当前系统中的所有程序、数据和文档并准备恢复计划。 采购新的 PLC 和任何附加硬件,确保兼容性和可用性。 为安装场地准备必要的安全措施,并根据需要安排停机时间。 退役旧的 PLC 系统并安装新的 PLC 和相关硬件。 将程序逻辑传输或重写到新的 PLC,测试所有功能和通信。 对新系统进行全面测试,验证性能并进行必要的调整。 对人员进行新系统操作和维护方面的培训,并更新或创建系统文档。 正式切换到新的 PLC 系统,密切监控问题,并提供必要的支持。 进行实施后审查,以评估成功情况、记录经验教训并规划未来的维护或升级。
  27. 在上一篇文章中,我们讨论了如何使用 TCON 和 TDISCON 块在两个 PLC 之间建立连接,以及如何使用 TSEND 和 TRCV 块在它们之间移动数据。 跨 PLC 系统传输数据 在本文中,我们将学习一条新指令,可用于使用 TSEND_C 和 TRCV_C 块跨 PLC 系统进行通信和传输数据。 TSEND_C TSEND_C 指令是 TIA Portal 指令,用于在两个 PLC 之间建立连接。 连接建立后,PLC 将自动维护和监控。 TSEND_C 指令是异步执行的,具有以下功能: 与 TCON 块类似,建立通信连接。 通过类似于 TSEND 块的现有通信连接发送数据。 与 TDISCON 类似,终止或重置通信连接。 因此,TSEND_C 被称为“紧凑”,因为它同时充当 3 个以上的块。 TRCV_C TRCV_C 指令也是一条 TIA Portal 指令,用于在两个 PLC 之间建立连接。 连接建立后,PLC 将自动维护和监控。 “TRCV_C” 指令异步执行,依次实现以下功能: 建立和建立类似于 TCON 的通信连接。 通过类似于 TRCV 的现有通信连接接收数据。 与 TDISCON 类似,终止或重置通信连接。 因此,TRCV_C 被命名为“紧凑”,因为它同时充当 3 个以上的块。 在我们的 PLC 项目中使用 TSEND_C 和 TRCV_C 在上一篇文章中,当我们需要建立并将数据从 PLC_1 发送到 PLC_2 时,我们必须在每个 PLC 中使用三个不同的块。 见图1。 图 1. PLC_1内部逻辑 如您所见,我们使用 TCON 和 TDISCON 块来建立和重置连接,并使用 TSEND 从 PLC_1 发送数据。 PLC_2 也是如此。 见图 2。 图 2 PLC_2 逻辑 我们再次使用 TCON 和 TDISCON 块来建立和重置连接,并使用 TRCV 接收来自 PLC_1 的数据。 现在,我们想要替换所有这些块并尝试使用 TSEND_C 和 TRCV_C 来实现相同的功能。 首先,在需要发送数据的 PLC_1 中,我们将使用 TSEND_C 块,只需将该块拖放到主 OB1 内即可。 见图 3。 图 3. 添加 TSEND_C 块。 由于 TSEND_C 本质上是一个功能块,因此系统会要求您创建一个数据实例。 见图 4。 图 4. 为 TSEND_C 创建实例 TSEND_C 看起来与 TSEND 块类似,因为您需要进行一些配置并添加一些信号。 见图 5。 图 5. TSEND_C 块 现在,我们需要一个信号来发送 REQ 和数据并配置连接。 对于 REQ 信号,我们创建了一个 SendData 标签。 另外,我们可以拖放上一篇文章创建的数据块,我们需要将其发送到 PLC_2,我们可以将其拖放到块的 DATA 输入处。 见图 6。 图 6. TSEND_C 块的配置。 要配置块的连接参数,我们可以按块顶部的小配置图标打开配置视图。 配置视图看起来与 TCON 块的配置视图非常相似。 见图 7。 图 7. TSEND_C 的连接参数 我们已经在之前的文章中展示了如何配置连接参数,因此我们可以像使用 TCON 块一样进行操作,见图 8。 图 8 连接参数配置 通过这个连接配置,我们就完成了 TSEND_C 的所有配置。 请注意,与配置 TCON、TDISCON 和 TSEND 块相比,它快了多少。 现在,我们需要将 TRCV_C 添加到 PLC_2,以便它可以接收从 PLC_1 发送的数据。 在 PLC_1 的主 OB1 中,只需将 TRCV_C 拖放到您的逻辑中即可。 请参见图 9。请记住为 TRCV_C 块创建一个数据实例。 图 9. 添加 TRCV_C 将 TRCV_C 添加到您的逻辑后,我们需要对其进行配置。 正如我们对 TSEND_C 所做的那样,我们需要添加一个信号来启用数据接收,并且我们还需要添加将在其中保存数据的数据块。 见图 10。 图 10.TRCV_C 我们将 RecieveData 标签定义为 EN_R 信号。 见图 11。 图 11.定义 EN_R 标签 请记住取消选中数据块的 “优化块访问” 选项,否则该块将无法像我们在上一篇文章中展示的那样工作。 接下来,我们需要配置 TRCV_C 块的连接参数,就像我们对 TSEND_C 所做的那样,请记住,未指定的伙伴 PLC 现在是 PLC_1,见图 12。 图 12 TRCV_C 连接参数 PLC 项目模拟 现在我们已经配置了 TSEND_C 和 TRCV_ C 块,我们想要模拟我们的项目并看看它们将如何工作,但首先,我们将创建一个简单的逻辑来自动更新将发送到 PLC_2 的 PLC_1 的数据。 见图 13。 图 13. 自动更新数据的简单逻辑。 现在让我们编译并开始我们的项目的模拟。 您会注意到的第一件事是 PLC_1 和 PLC_2 将立即尝试建立连接,因为我们设置了 TSEND_C 和 TRCV_C,它们会自动尝试建立连接。 这就是两个 PLC 之间存在连接的原因。 见图 14。 图14. 直接建立连接。 可以看到,PLC 之间的连接是直接建立的,因为 TSEND_C 和 TRCV_C 中的 CONT 参数设置为 TRUE,这意味着该块将自动尝试与伙伴 PLC 建立连接。 我们可以在这里放置任何控制信号来控制连接的建立。 您可以看到的另一件事是 TSEND_C 的 REQ 和 TRCV_C 的 EN_R 设置为 FALSE,这就是为什么 PLC 之间不会有任何数据移动。 见图 15。 图 15. PLC 之间无数据传输。 如果 TSEND_C 的 REQ 信号设置为 true,则 PLC_1 将尝试发送数据,但会等待其他 PLC 允许接收数据,见图 16。 图 16. REQ 为真。 正如您所看到的,SendData 为 TRUE,但没有发送任何数据,因为 RecieveData 仍然为 false。 仅当 ReceiveData 设置为 true 时,PLC_2 才会从 PLC_1 接收数据。 见图 17。 图 17. 数据发送至 PLC_2 正如您所看到的,RecieveData 何时为 true。 数据将从 PLC_1 发送到 PLC_2,但是,您可以看到两个 PLC 内部的数据是不同的,因为 PLC_1 的数据按照我们之前所做的简单逻辑自动变化。 这意味着 EN_R 信号允许传输数据一次,当我需要再次传输数据时,该信号必须变为 false,然后再次变为 true。 查看随附的 TIA Portal 项目并查看 PLC 之间的数据传输。
  28. 在本文中,您将学习通过开关控制 LED 的 PLC 示例并了解梯形图逻辑解释。 此 PLC 示例专为工科学生学习和练习梯形图逻辑而设计。 相同的 PLC 程序在工业用途上的实现会有所不同。 PLC 示例 为以下应用设计 PLC 梯形逻辑。 我们使用三个开关来控制三个 LED。 如果任意 1 个开关打开,则 LED I 将亮起。 如果任意 2 个开关打开,则 LED II 将亮起。 如果 3 个开关全部打开,则 LED III 将亮起。 在上一篇文章中,我们讨论了使用拨动开关的相同 PLC 示例,了解逻辑。 输入 下面列出了所需的数字输入。 开关 1:I0.0 开关 2:I0.1 开关 3:I0.2 输出 下面列出了所需的数字输出。 电机 1:Q0.0 电机 2:Q0.1 电机 3:Q0.2 通过开关控制 LED 的梯形图 梯形图逻辑解释 对于此应用,我们使用 EcoStruxure Machine Expert Basic v1.2 软件进行 PLC 编程。 在上面的程序中,我们为开关 1 (I0.0)、开关 2 (I0.1) 和开关 3 (I0.2) 使用常开触点和常闭触点 在 Rung0 中,当任意 1 个开关(常开触点)打开且其他 2 个开关(常闭触点)关闭时,LED 1 将打开。 要打开 LED 2 Rung1,任何 2 个作为常开触点的开关应打开,其余 1 个作为常闭触点的开关应关闭。 为了使 LED 3 点亮,Rung2 中的开关 1、开关 2 和开关 3 串联,从而实现 AND 逻辑门。 当所有三个开关都打开时,LED 3 将打开。 当任意 1 个开关打开时 信号在真实状态下流过开关 1。 在假状态下,开关 2 和开关 3 还将信号传递到输出。 因此,LED 1 将亮起。 当开关 2 打开且开关 1 和开关 3 处于常闭触点状态且关闭时,LED I 将打开。 当开关 3 接通且其他 2 个常闭触点开关断开时,LED 1 将亮起。 打开多个开关将会断开电路。 常闭触点在真实状态时不允许发出信号。 结果,LED 1 将关闭。 当任意 2 个开关打开时 当开关 1、开关 2 打开并且开关 3 关闭时,LED 2 将打开。 开关 3 作为常闭触点,处于假状态时,将允许信号通过。 当开关 1 和开关 3 打开并且开关 2 关闭时,LED 2 将打开。 开关 2 在错误状态时将允许信号。 信号流经开关 2 和开关 3,因为它们处于真实状态。 在假状态下,开关 1 还将信号传递到输出。 因此,LED 2 将亮起。 当两个以上输入打开时,用于第三个开关的常闭触点在真实状态下不会闭合电路。 因此,LED 2 将熄灭。 当 3 个开关全部打开时 当三个开关 SWITCH 1 (I0.0)、SWITCH 2 (I0.1)、SWITCH 3 (I0.2) 全部打开时,LED 3 将亮起并关闭其他两个输出。
  29. 通过梯形图了解多个开关和电机上的 PLC 逻辑示例。 该 PLC 逻辑示例是为工科学生学习和练习梯形图逻辑而准备的。 相同的 PLC 程序在工业用途上的设计会有所不同。 PLC 逻辑示例 问题陈述: 为以下应用设计 PLC 梯形逻辑。 使用四个拨动开关来控制四个电机。 如果开关 1 打开,则电机 I 将打开。 如果开关 2 打开,则电机 I 和电机 II 将打开。 如果开关 3 打开,则电机 I、电机 II 和电机 III 将打开。 如果开关 4 打开,则电机 I、电机 II、电机 III 和电机 IV 将打开。 PLC 输入 下面提到了该 PLC 逻辑的数字输入列表。 开关1:I0.0 开关2:I0.1 开关3:I0.2 开关4:I0.3 PLC输出 下面列出了所需的数字输出。 电机1:Q0.0 电机2:Q0.1 电机3:Q0.2 电机4:Q0.3 多个开关和电机梯形逻辑 这是给定问题陈述的 PLC 逻辑。 程序解释 本例中,我们使用施耐德 PLC 软件进行编程。 在上面的 PLC 程序中,我们使用了常开触点作为开关 1 (I0.0)、开关 2 (I0.1)、开关 3 (I0.2) 和开关 4 (I0.3) 电机1的开关 1、开关 2、开关 3 和开关 4 并联,从而实现或逻辑门。 对于电机 2,输入开关 2、开关 3 和开关 4 并联,从而实现或逻辑门。 开关 3 和开关 4 正在实现 “或” 逻辑门,即与电机 3 并联连接。 仅开关 4 连接到电机 4。 要使电机 1 打开,开关 1 或开关 2、开关 3 或开关 4 应打开。 要打开电机 2,开关 2、开关 3 或开关 4 应打开。 当开关 3 或开关 4 打开时,电机 3 将打开。 当开关 4 打开时,电机 4 将打开。 PLC 仿真结果 接下来,我们将看到不同输入开关ON和OFF组合的PLC仿真结果。 当开关 1 为 ON 时 当拨动开关1打开时,电流流过它(这里我们在电路的情况下使用术语“电流”,所以这里你可以将其假设为“电流”或简称为“信号”) 。 结果,电机 1 启动。 其他电机将保持关闭状态,因为开关 1 未连接到它们。 当开关 2 为 ON 时 当开关 2 打开时,电流将流过开关 2,从而打开电机 1 和电机 2。这是因为开关 2 仅连接到电机 1 和电机 2。 当开关 3 打开时 当开关 3 接通时,电流流过它,这将打开三个电机,即电机 1、电机 2 和电机 3。输入开关 3 仅连接到这些输出。 由于开关 3 未连接到电机 4,因此电机 4 将保持关闭状态。 当开关 4 为 ON 时 开关 4 打开时将打开所有电机。 开关 4 连接到所有电机,打开时,电机 1、电机 2、电机 3 和电机 4 将打开。
  1. Load more activity
×
×
  • Create New...