Jump to content
  • PLC programming technology and HMI interface design Simplified Chinese database

    PLC, DCS, HMI and SCADA product application technical articles

    • leigehong
      在上一篇文章中,我们讨论了什么是组织块,并且谈到了一个非常重要的组织块,它就是主 OB1。
      在本文中,我们将继续讨论不同的 OB,这次我们讨论的是时间中断组织块或 OB10。
      内容:
      中断 OB10 是一天中的什么时间? 如何创建和使用 OB10? 简单的程序示例。 一天中中断时间的重要规则。 结论。 什么是当日时间中断 (OB10)?
      顾名思义,时间中断是一个组织块,它将在一天中的某个时间中断 PLC 程序主周期的执行。该中断时间(日期和时间)可以指定为在指定时间发生一次,或者以指定时间间隔定期发生,例如每分钟、每小时、每天、每周和一些其他选项。
      您可以在同一程序中拥有多个时钟中断,它们不必具有相同的逻辑或代码,每个中断都可以有自己的功能,并且每个中断都可以单独配置为在指定的时间发生 时间。
      如何创建和使用 OB10?
      要创建一天中的时间中断,请按照与需要在逻辑中添加任何新块时相同的步骤进行操作。见图1。

      图 1 – 添加一天中的时间中断
      按左侧项目树中的添加新块选项,选择组织块,然后选择一天中的时间中断,如上图所示。
      现在您可以打开 OB10 并添加调用此块时要执行的任何 PLC 逻辑,所谓调用是指中断事件或时间已经发生,因此操作系统将中断主周期并执行 OB10。
      我们将在 OB10 中编写一段非常简单的代码,以帮助我们更好地理解这个 OB10 块的工作原理。在此逻辑中,我们使用 add 指令将值 1 添加到称为 TimeOfDayInterruptCounter 的内存区域,然后将求和结果放回同一区域。这样我们就可以有一个用于执行 OB10 的计数器。
      每次调用并执行 OB10 时,TimeOfDayInterruptCounter 的值都会加 1。见图 2。

      图 2 – 将逻辑添加到 OB10
      现在我们已经创建了 OB10 并在其中编写了一些逻辑,我们需要配置 OB10 的设置时间以及我们希望它中断主周期的次数。
      要配置 OB10 的时间和间隔设置,我们需要进入 OB10 的属性页面。见图3。

      图 3 – OB10 的属性
      在 OB10 的属性中,您会发现许多可以配置的设置和属性。
      现在我们需要的是一天中的时间中断页面,以便我们可以设置何时调用 OB10 以及调用多少次。见图4。

      图 4 – 时间中断设置
      正如您从最后一张图片中看到的,您可以设置 OB10 的执行、开始日期以及执行 OB10 的时间。
      为了模拟方便,我们将执行间隔设置为每分钟,这样每分钟都会调用并执行 OB10。这意味着从 2023 年 3 月 23 日和时间 09:25 AM 开始,TimeOfDayInterruptCounter 的值将每分钟增加 1。
      您可以选择根据 PLC 系统时间或本地时间设置时间,如上图所示。在上一篇文章中,我们讲了 PLC 的系统时间和本地时间,各个时间的含义以及如何配置和使用它们。
      正如我们之前所说,当地时间是您现在在 PC 上看到的时间。所以是 PLC 使用地区的实际时间。
      您必须根据 PLC 的使用地点配置本地时间。见图5。

      图 5 – 设置 PLC 当地时间
      简单 PLC 程序示例
      我们在 PLC 程序中添加了时间中断 OB10,并对其进行了设置,以便每分钟执行一次。我们还配置了 PLC 的本地时间。
      我们创建了 ADD 指令的简单逻辑,以便在每次执行 OB10 时将 TimeOfDayInterruptCounter 的值累加 1。
      我们将添加另一条指令,但在主 OB1 中,该指令是 RD_LOC_T 或读取本地时间,因此我们可以看到本地时间的进展情况并将其与 OB10 的执行进行比较。见图6。

      图 6 – 简单程序示例
      编译您的 PLC 程序并开始新的模拟。
      请注意,我们将设置中断发生的时间,以便在模拟 PLC 逻辑时可以调用并执行 OB10。请参阅以下模拟。

      从动画中可以看到,TimeOfDayInterruptCounter 的值一开始为零,然后从 09:25 AM 开始每分钟增加 1,表示 OB10 每分钟执行一次。
      一天中的时间中断的重要规则
      如果设置时间中断以使相应的 OB 被处理一次,则启动时间不得是过去的时间(相对于 CPU 的实时时钟)。 如果设置时间中断以定期处理相应的 OB,但开始时间是过去的时间,则在下次到期时根据当前时间处理时间中断 OB。 周期性时间中断的日期必须与实际日期相对应。例如,开始日期为 1/31 的时间中断 OB 每月重复一次是不可能的。在这种情况下,仅在有 31 天的月份中启动 OB。 启动期间激活的时间中断只有在启动完成后才会执行。 启动会删除由用户程序中的指令设置和激活的所有时间中断。 结论
      OB10 是一个组织块,可配置为在特定日期和时间中断程序循环。该中断可以发生一次,也可以每隔一定时间定期发生。
      没有具体原因说明您需要 OB10,因为这取决于您的流程和逻辑。是的,您可以使用您的个人代码实现相同的功能,但它是一个可用且易于使用的内置函数。而且你知道如何使用它。

    • 在之前的文章中,我们讨论了什么是组织块,并讨论了主循环中断 OB1 和时间中断 OB10。
      在本文中,我们将继续讨论不同的 OB,这次我们讨论的是延时中断组织块或 OB20。
      内容:
      什么是 OB20? 如何调用 OB20? SRT_DINT 指令的参数。 示例程序。 结论。 什么是延时中断 (OB20)?
      OB20 是一个组织块,由操作系统调用并执行,但是我们必须告诉操作系统什么时候调用这个 OB20。
      操作系统从用户 PLC 程序获取信息来调用该 OB20,它将等待配置的延迟时间,然后调用并执行 OB20 内部的任何逻辑。
      我们通过在项目树中添加新块来创建 OB20 块。见图1。

      图 1 – 创建一个新的 OB20 块
      现在我已经创建了延时中断,那么什么时候执行呢? 以及如何配置块执行的时间延迟?
      同样,OB20 是一个组织块,这意味着您不调用要执行的块,而是告诉操作系统何时可以调用它并执行其中写入的任何功能。
      如何让操作系统调用 OB20?
      为了告诉操作系统我们要调用 OB20,我们使用 SRT_DINT 或启动时间延迟中断,见图 2。

      图 2 - 启动延时指令
      SRT_DINT 指令的参数
      从上图可以看出,可以使用 SRT_DINT 指令来调用 OB20。但您需要配置一些参数才能使指令正常工作。
      EN:在 EN 输入出现下降沿信号之前,不会执行指令。这意味着您必须指定一组条件中的一个条件来启用信号,并且只有当该条件为真然后再次为假时,指令才会起作用。
      OB_NR:您分配需要调用的延迟中断的编号,在我们创建 OB20 的情况下为 20,但我们可以创建多个延迟中断,然后我们必须使用单独的 SRT_DINT 指令调用每个延迟中断。
      DTIME:即执行OB20之前要等待的延迟时间,为了模拟,我们将这个时间设置为 5 秒。
      SIGN:调用延时中断 OB 时在 OB 的启动事件信息中出现的标识符。
      PLC 程序示例
      为了更好地理解 OB20,我们将创建一个简单的逻辑来了解如何调用和执行 OB20。我们将基于之前文章中为 OB1 和 OB10 制作的逻辑构建此 PLC 示例。
      在 OB20 内部,我们将创建一个逻辑,用于计算在我们为 OB20 配置的 5 秒延迟时间内调用和执行了多少个 OB1 周期。见图3。

      图 3 – OB20 内部逻辑
      在最后一张图中,您可以看到我们使用 MOVE 指令在 OB20 调用开始时以及执行后推送有关周期计数的信息。
      其余逻辑请参见图 4。

      图 4 – 计算 5 秒内有多少个周期
      之后,我们将循环计数的两个值相减,即可得到在五秒延迟内执行了多少个循环。
      现在我们已经创建了我们想要的逻辑,我们如何调用 OB20? 如前所述,我们必须使用 SRT_DINT 指令。我们将在之前配置为每分钟执行一次的 OB10 中使用该指令。这意味着 OB20 也将每分钟调用并执行一次,但延迟时间为 5 秒。
      在上一篇文章中,我们构建了一个逻辑来调用 OB1 被调用和执行的次数,我们还构建了另一个逻辑来每分钟调用 OB10。
      在本例中,我们将使用 OB10 的调用来调用 OB20。见图5。

      图 5 – 通过 OB10 调用 OB20
      我们之前说过,SRT_DINT 需要 EN 处的下降沿信号才能启动调用。这就是为什么我们使用 TimeOfDayInterruptEnabled 信号,我们知道执行 OB10 时该信号将为 true,然后返回 false,为我们提供所需的边沿信号。
      现在所有 PLC 逻辑都已完成,让我们编译并运行一个新的仿真。请参阅以下我们项目的模拟。

      您首先在动画中看到周期计数的值为零,但是当调用 OB10 并且 TimeOfDayInterruptEnabled 为 true 时,逻辑将等待 5 秒,然后计数值将使用周期计数进行更新。
      结论
      OB20 是由操作系统调用并执行的组织块。 我们可以通过 SRT_DINT 指令告诉操作系统调用 OB20。

    • 在之前的文章中,我们讨论了不同类型的组织块,例如主 OB1 是主循环程序块,在本文中我们将讨论另一个循环组织块。OB30 或循环中断 OB。
      内容:
      什么是循环中断 OB30? OB1 的主周期是什么? 为什么需要 OB30? 如何配置循环中断? 如果我有多个循环中断怎么办? 结论。 什么是循环中断 OB30?
      循环中断 OB30 是一个组织块,它以指定且精确的时间间隔被调用和执行,与连续调用和执行的主循环 OB1 不同,循环中断将按照您在创建循环中断 OB 时配置的时间间隔被调用 。
      例如,如果我创建的 OB30 的时间间隔(也称为周期时间)为 20ms,则意味着操作系统将中断主周期 OB1 并每 20ms 调用 OB30。
      必须确保循环中断 OB 的运行时间必须小于其时间间隔。否则,当 OB30 的本次调用仍在执行时,仍有可能发生下一次 OB30 的调用到达。在这种情况下,操作系统会生成时间错误,可能导致 PLC 进入 STOP 模式。
      什么是主循环 OB1?
      主循环 OB1 是负责由 PLC 循环执行逻辑的组织块。每当您创建新项目并添加 PLC 时,软件都会自动创建主 OB1。
      PLC 代码的基本基础是循环行为,这意味着您需要连续执行代码。当逻辑处理完成后,操作系统将再次开始处理它。这是通过使用主 OB1 来完成的,您可以在该 OB1 中放置和调用所有逻辑和代码,操作系统将确保连续执行它。
      主 OB1 循环时间是指循环程序的运行时间,包括所有嵌套程序部分(例如 FC、FB 和更高优先级 OB)的运行时间。如果创建了多个程序循环 OB,则每个程序循环 OB 都会影响循环时间。
      操作系统监视循环时间是否仍然小于配置的最大循环时间。如果超过最大循环时间,PLC 将根据您的编程进入 STOP 模式或调用 OB80。
      为什么需要 OB30?
      有人可能会说,我可以将 OB30 内的任何功能放在主 OB1 中,并尝试摆脱它,这取决于当今大多数 PLC 的快速性能。有时这可能没问题,但并非每次都如此。
      根据 PLC 的性能,主循环时间可能在 1 到 150 毫秒之间;它可以不同,但这是标准配置,该循环时间取决于很多因素,例如 PLC 程序的大小、逻辑内部的中断以及其他因素,这些因素很可能会使循环的运行时间不稳定。
      现在,如果您需要精确地每 10 毫秒执行某些功能,而不是 9 毫秒或 11 毫秒。现在您不能依赖主 OB1,因为结果可能达不到预期。在这种情况下,您使用循环中断 OB30,将其配置为您想要的 10ms,操作系统将确保精确地每 10ms 调用并执行此函数。这就是为什么它被称为中断;因为它会中断主 OB1 的执行来调用并执行您的 OB30。
      需要 OB30 的功能示例
      PID 控制器处理。 安全电路监控。 监控机器之间的通信。 前面的所有示例都需要在特定时间连续监视和检查参数,因为它们与实际物理量或机器安全相关。不应延迟执行此类功能,因为它们会影响流程的安全性和连续性。
      如何配置循环中断?
      创建循环中断时,需要配置一些参数。请参见图 1 添加新 OB30。

      图 1 – 添加新的循环中断 OB30
      创建循环中断时,您可以在块的属性中找到许多可以设置的参数,请参见图 2。

      图 2——OB30的特性
      您需要考虑的最重要的参数如下:
      周期 使用参数“循环时间”设置循环中断 OB 两次调用之间的时间间隔。它是 1 µs 的整数倍。
      相位偏移 在此,您可以设置开始时间相对于循环时间的倍数偏移的时间段。
      有关周期时间和相位偏移配置,请参见图 3。

      图 3 – 设置 OB30 的循环时间和偏移量
      循环中断 OB 的优先级 这是配置循环中断时必须考虑的另一个重要参数,因为您可能有多个循环块,如果需要同时调用两个不同的 OB,操作系统将调用并执行该块 更高优先级的编号。
      您应该知道 PLC 主程序循环 OB1 的优先级编号为 1,这是块可以具有的最低优先级。这就是 OB1 可以被任何其他块调用中断的原因。见图4。

      图 4 – 设置 OB30 的优先级
      如果我有多个循环中断怎么办?
      在逻辑中出现多个循环中断的情况并不罕见。如果您的 PLC 逻辑中有两个 PID 控制器,那么您可能需要两个循环中断来处理每个 PID。在这种情况下,需要确保不同循环中断的调用和执行不会重叠。
      例如,如果 OB30 的间隔循环时间为 5ms,OB31 的循环间隔为 10ms,则意味着 OB30 的第二次调用也将是调用 OB31 的时间。这可能会导致逻辑错误,即使您将其中一个的优先级设置为高于另一个,也会扰乱较低优先级块的循环时间。见图5。

      图 5 – 调用不同循环中断的重叠
      在这种情况下,当您使用多个循环中断 OB 时,可能建议使用相位偏移。
      如果它们的周期时间具有公倍数,则可以使用相位偏移来防止同时启动时间。见图6。

      图 6 – 不同 OB 调用之间的偏移
      因此,为了避免这种重叠,我们将 OB31 的偏移时间设置为 1 ms。
      这意味着 OB31 时间间隔的计数将比 OB30 的起始时间偏移 1ms。见图7。

      图 7 – OB31 的偏移设置
      结论
      循环中断对于不应该面临任何延迟的时间关键任务非常有用。 您的逻辑中可以有多个循环中断。 使用循环中断的偏移设置来避免同时启动时间。 使用优先级设置来控制不同循环中断的执行顺序。

    • 在之前的文章中,我们开始讨论 TIA Portal PLC 的不同组织块,讨论了 OB 是什么,并讨论了一些 OB,例如 OB1 - 主循环、OB10 和 OB20,分别表示时间延迟和时间延迟中断。在本文中,我们将讨论西门子 Tia Portal 中的 OB100 或启动组织块。
      内容:
      什么是 OB100? 为什么需要 OB100? 启动期间的重要注意事项。 简单的程序示例。 什么是初创组织块(OB100)?
      OB100 或启动 OB 是一个组织块,在 PLC 启动时由操作系统调用并执行一次,即每次从 STOP 模式转换到 RUN 模式时一次。
      只有执行完 OB100 内部的所有启动函数后,主循环 OB1 才会被调用和执行。
      您的 PLC 逻辑中可以有多个启动 OB,如果发生这种情况,操作系统将从较低 OB 编号到较高编号开始一一调用并执行所有这些启动 OB。IE。如果您有 OB100 和 OB123,则将首先调用并执行 OB100,然后再调用并执行 OB123。
      执行 OB100 后,操作系统将输入模块读入 PII 并启动主循环程序 OB1。
      为什么需要 OB100?
      在启动循环逻辑之前,您可以使用 OB100 来执行许多您可能想要或需要执行的任务,原因如下:
      初始化变量。 重置系统模块。 重新校准传感器/执行器。 在开始流程之前检查警报和安全状况。 即使您尚未为逻辑创建启动 OB,操作系统在启动主逻辑之前仍然需要执行许多任务,其中一些任务是:
      清除非保留记忆 清除 PIQ 调用并执行启动 OB(如果有)。 更新个人身份信息 更改为 RUN 模式后启用输出。 您是否注意到启动例程的最后一个任务是启用输出? 这就是为什么执行主循环程序 OB1 的第一步是将 PIQ 写入输出模块。
      启动期间的重要注意事项
      关于 “STARTUP” 模式,请注意以下几点:
      模块上的输出被禁用。 过程映像被初始化。 过程映像未更新。 为了在“启动”期间从输入读取当前状态,您可以通过直接 I/O 访问来访问输入。 为了在启动期间初始化输出,可以通过过程映像或直接 I/O 访问写入值。 在转换到“RUN”模式期间,这些值在            输出端输出。 非保持性位存储器、定时器和计数器被初始化。 数据块中的非保持性标签被初始化。 在启动期间,尚未运行循环时间监控。 简单程序示例
      在此示例中,我们将向 PLC 逻辑添加一个启动 OB100,并查看 OB100 执行了多少次。请参阅图 1 添加新的 OB100。

      图 1 – 添加 OB100
      正如您从最后一张图片中看到的,您添加启动组织块的方式与我们添加功能块的功能相同。
      在我们刚刚创建的 OB100 中,我们将添加一个简单的 ADD 指令,以累计 OB100 被调用和执行的次数。见图2。

      图 2 – OB100的累计执行次数
      现在,编译并运行您的程序,看看会发生什么。请参阅以下动画来了解 PLC 程序的模拟。

      动画1
      从上面的动画中可以看到,OB100CycleCounter 为 1,并且当 PLC 模式从 STOP 转换为 RUN 时它不会改变。
      嗯,它确实发生了变化,但你看不到这种变化。每次 PLC 进入 STOP 模式,然后再次进入 RUN 模式。执行 OB100 后,计数器将重置为零,然后再次重置为 1。您还可以看到主 OB1 循环计数器发生变化,PLC 停止然后再次运行,OB1CycleCounter 将再次开始累加。
      为了看到启动计数器的变化,我们需要保留标签内存的值。见图3。

      图 3 – 保留 OB100CycleCounter 标签存储器
      我们保留 OB100CycleCounter 标签后,现在再次运行 PLC 仿真,看看会发生什么。参见模拟动画2。

      动画2
      现在,您可以从上面的动画中看到,每次我停止 PLC 然后再次启动它时,启动计数器都会增加。由于现在保留了标签内存,因此该值不会重置为零,这就是您看到 OB100CycleCounter 的值累加的原因。
      现在,我需要向启动 PLC 逻辑添加额外的功能,即了解 PLC 上次启动的时间。我们将通过一个简单的逻辑来实现这一点,在启动时读取 PLC 的本地时间并将日期和时间移动到某个存储区域。见图4。

      图 4 – 启动时读取当地时间
      添加逻辑后,再次编译并运行模拟。参见 PLC 仿真动画3。

      动画3
      从上面的动画可以看到,每次 PLC 启动时,启动日期和时间都会被记录在我们分配的内存区域中。现在我有了关于我的 PLC 启动了多少次以及上次启动时间是什么时候的信息。
      结论
      如果您想在运行循环过程之前评估某些功能,启动 OB 非常重要。您可以使用启动 OB 来初始化参数、校准传感器,甚至在允许流程运行之前检查安全条件。

    • 在本文中,我们将继续讨论西门子 PLC 中不同类型的组织块。这次我们将讨论 OB121 或 Tia Portal 中的编程错误中断。
      内容:
      什么是编程错误中断 OB121? 编程错误的示例。 如果检测到编程错误会发生什么? 在 TIA Portal 中模拟编程错误。 OB121 如何有助于防止编程错误? 结论。 什么是编程错误中断 (OB121)?
      OB121 是一个组织块,如果运行逻辑时发生编程错误,PLC 操作系统将调用该块。请注意,我们并不是在讨论在尝试将逻辑下载到 PLC 时编译器会捕获的编程错误。见图1。

      图 1 – 一些编程错误会被编译器捕获
      从最后一张图可以看出,我的 PLC 逻辑中有一个编程错误;网络 1 的输入和输出中缺少一些操作数。但是,编译器甚至在将逻辑下载到 PLC 之前就捕获了该错误。图1中的错误不是可以触发需要调用 OB121 的编程错误类型。
      PLC 程序中编译器无法发现的错误,但在 PLC 运行时仍然会导致逻辑出现问题,这就是我们所说的编程错误。这些错误将触发操作系统对 OB121 的调用。
      编程错误示例
      以下是 PLC 逻辑中可能导致编程错误的一些错误示例:
      超出了块调用的最大嵌套深度。 您使用了 NULL 指针来寻址操作数。 未知指令。 寻址字符串的长度信息不正确。 读取时面积长度错误。 写入时区域长度错误。 计时器编号错误 访问未加载的数据库;DB 编号位于允许的区域内。 数据库不存在。 这些错误以及更多错误可能会导致 PLC 中的编程错误。您可以查看 TIA Portal 的帮助部分,了解可能导致 PLC 编程错误的其他原因。
      如果检测到编程错误会发生什么?
      当您的 PLC 检测到编程错误时,可能会发生以下三个事件之一。
      您的 PLC 将显示错误并进入停止模式。 您的 PLC 将显示错误,但继续运行您的逻辑。 您的 PLC 将显示错误,然后尝试解决该错误。 这三个事件基本上取决于您的 PLC 编程。这意味着您的代码将决定操作系统在检测到编程错误时的行为方式。
      在 TIA Portal 中模拟编程错误
      为了更好地理解 PLC 的行为方式,我们将创建一个简单的程序,在其中引发编程错误,然后我们将看看会发生什么。见图2。

      图 2 – 简单的程序逻辑
      我们创建的逻辑非常简单,当 InitiateProgError 已启用时,值 126 将被移至 DB52.DBW16 区域。请注意,我们还没有创建 DB52。所以,这将是我们的编程错误。请注意,在编译或下载到 PLC 期间不会捕获此错误。见图 3 和 4。

      图 3 – 编译器未捕获的错误
      查看该块如何成功编译,同时包含编程错误。

      图 4 – 下载到 PLC 的块
      该块再次下载到 PLC 时出现编程错误。
      现在,让我们模拟一下 PLC 程序,看看会发生什么。PLC 代码的模拟参见动画1。

      动画1
      正如您从上面的动画中看到的,PLC 错误 LED 将呈红色闪烁几秒钟,然后 PLC 将进入停止模式。
      进入 PLC 在线诊断看看发生了什么。见图5。

      图 5 – PLC 在线和诊断
      您在动画中看到的内容与您在上一张图片中看到的内容完全相同。它们可以分为 3 个步骤:
      PLC 检测到编程错误,即 OB52 未加载。 操作系统将触发对 OB121 的调用,但在我们的逻辑中并没有创建 OB121。 当 PLC 发现我们的逻辑中没有创建 OB121时,操作系统就会发起 STOP 请求。PLC 将进入 STOP 模式。 OB121 如何有效防止编程错误?
      让我们将 OB121 添加到 PLC 代码中,看看情况会如何变化。见图6。

      图 6 – 添加 OB121
      创建 OB121 并将其添加到 PLC 逻辑中后,让我们看看模拟中会发生什么。
      请记住,我们尚未在 OB121 内编写任何 PLC 逻辑。参见动画2。

      动画2
      从动画2 中可以看到,当 InitiateProgError 被触发时,PLC ERROR LED 将呈红色闪烁,但 PLC 将继续运行。
      这意味着 PLC 不会进入 STOP 模式。 让我们检查一下在线诊断,看看到底发生了什么。见图7。

      图 7 – 错误并未导致 PLC 停止
      从图中可以看出,PLC 检测到错误,但没有进入 STOP 模式。它将跳过此错误,继续循环并从头开始。
      当再次出现错误时,它将再次检测到错误,并在诊断中发出警报。跳过错误并继续。这意味着 PLC 在每个扫描周期都会发出相同的警报。这就是为什么在图片中您看到事件不断触发并且警报在每个扫描周期重复。
      因此,只要有一个空的 OB121 就可以让您保持 PLC 运行和扩展,从而保持过程运行。
      但是,我们还可以做更多的事情,我们可以尝试捕获这个错误并消除它。另外,我们可以尝试显示检测到的编程错误的类型。
      确定错误类型
      OB121 有一个内部故障 ID 标识符,我们可以用它来显示故障类型,也可以作为 HMI 上的警报。在 OB121 内部,我们将创建一个简单的 MOVE 指令,在该指令中,我们将 OB121 的 Fault_ID 输入推送到全局 DB 内定义的存储区域。见图8。

      图 8 – 识别错误类型
      从上图可以看出,当发生编程错误时,Fault_ID 将被推送到 Data.ProgErrorID 中。见图9。

      图 9 – 编程错误 Fault_ID
      可以看到故障 ID 为 3A。如果您查看 TIA Portal 帮助您可以找到该故障的含义。
      3A:访问未加载的 DB;DB 编号位于允许的区域内。
      捕获错误
      这只是意味着,在找出原因后尝试解决 PLC 编程错误。这主要取决于错误是什么以及您希望如何处理它。我们将模拟错误的解决方案,看看 PLC 将如何表现。
      针对我们创建的错误的实际解决方案是仅创建 DB52 或使用已创建的数据块。
      但为了模拟,我们将只添加一个简单的触点,当编程错误发生时,该触点将打开以捕获该错误。见图 10 和 11。

      图 10 – 捕获错误
      每当调用 OB121 时,都会设置 CatchError。

      图 11 – 消除错误
      每当调用 OB121 时,都会设置 CatchError,用于捕获网络 1 中的编程错误。PLC 模拟请参见动画 3。

      动画3
      从上面的动画可以看出,当 InitiateProgError 被触发时,PLC 会暂时出错,然后错误会被清除,PLC 始终处于 RUN 模式。
      结论
      如果代码中存在编程错误,只需在逻辑中包含一个空 OB121,即可确保 PLC 不会进入 STOP 模式。您稍后还可以使用 OB121 来识别错误并解决它。

    • 本文介绍的是在 PLC 梯形逻辑的帮助下使用比较器进行信号灯操作的 T 字路口交通控制系统。
      T 字路口交通控制系统
      T字路口交通控制系统的功能由三组段组成。通过比较器操作的逻辑,我们控制交通灯系统。

      第一段: 第一段中,车道1允许通行,车道2和车道3停止通行。在此段中,车道 1 的绿灯(绿 1)亮起,车道 2 的红灯(红 2)和车道 3 的红灯(红 3)亮。此期间持续十五秒。
      第二段: 在第二段中,车道 2 允许通行,车道 1 和车道 3 停止通行。在该段中,车道 2 的绿灯(绿 2)亮起,车道 1 的红灯(红 1)和车道 3 的红灯(红 3)亮。此期间持续十五秒。
      第三段: 第三段,车道3允许通行,车道1和车道2停止通行。在该段中,车道 3 的绿灯(绿 3)亮起,车道 1 的红灯(红 1)和车道 2 的红灯(红 2)亮。此期间持续十五秒。
      执行完所有三个段后,操作序列再次开始并不断重复。
      输入和输出说明
      在这个 PLC 项目中,我们使用了 2 个输入、6 个输出、2 个内存和 1 个接通延迟定时器。
      序号 符号 说明 1 I 0.0 开始 2 I 0.1 停止 3 M 0.0 内存 4 M 0.1 内存 1 5 Q 0.0 绿色 1 6 Q 0.1 红色 1 7 Q 0.2 绿色 2 8 Q 0.3 红色 2 9 Q 0.4 绿色 3 10 Q 0.5 红色 3 11 DB1 延时定时器 PLC 编程及其讲解
      1. 当按下 START (I 0.0) 按钮时,MEMORY (M 0.0) 通电。这个 M 0.0 是用于执行程序中所有进程的主存储器。由于它被锁存,因此它仅处于通电状态。如果按下停止(I 0.1),整个过程将随时停止。

      2. 一旦 MEMORY 通电,它将打开 TIMER DB1,控制交通路口的计时。在此计时器中,我们将预设时间设置为 45 秒。一旦定时器达到预设时间,存储器 1 (M 0.1) 就会通电,并且该 M 0.1 还会根据逻辑重置定时器并连续运行循环。
      3. 其次,比较器在控制交通路口方面发挥着主要作用。首先,输出 GREEN 1 (Q 0.0) 按照逻辑打开。这里我们使用小于或等于比较器。在此逻辑中,Q0.0 将在 0 秒到 15 秒内处于 ON 状态。之后,它将进入OFF 状态
      4. 接下来,对于输出 RED 1 (Q0.1),我们使用大于或等于函数。Q0.1 将在 15 秒至 45 秒内处于 ON 状态。当 Q0.0 处于 ON 状态时,它处于 OFF 状态。
      5. 然后,对于输出 GREEN 2 (Q0.2),我们对此输出使用小于或等于和大于或等于。两个比较器功能均与输出串联逻辑连接。在此情况下,Q0.2 将根据条件处于 ON 状态 16 秒至 30 秒。
      6. 接下来,对于输出 RED 2 (Q0.3),我们还使用小于或等于和大于或等于函数来执行操作。比较器与输出并联连接。该输出将在 0 秒至 15 秒以及 30 秒至 45 秒期间处于 ON 状态。在 15 秒之间,它只会处于 OFF 状态,因为此时 Q0.2 处于 ON 状态。
      7. 然后对于最后一个 GREEN 3 输出 (Q0.4),我们使用大于或等于函数。根据条件逻辑,它将在 30 秒到 45 秒内处于 ON 状态。在此时间之前,它将处于关闭状态。
      8. 最后,RED 3 输出(Q0.5)。这里我们使用小于或等于函数来执行 PLC 逻辑。0 秒到 30 秒内它将处于 ON 状态,之后将处于 OFF 状态。
      结论
      因此,通过这种方式,给定的丁字路口交通控制由比较器功能与 PLC 逻辑来执行。我们可以通过多种方式借助 PLC 逻辑来控制交通逻辑,这也是方式之一。

    • 当你使用 PLC 时,你需要知道它一般有哪些类型的电压;以便您可以进行相应的接线。不仅仅是电源,还必须与所需的输入输出电压有关。
      每个 PLC 制造商根据他们提供的模块和 CPU 都有自己的一组电压和电流范围。在本文中,我们将了解随处可见的 PLC 工作电压。
      PLC 电源
      标准情况下,PLC 可在四种电压下运行:24V DC、24V AC、110V AC 和 240V AC。在有些 PLC 中,只有 CPU 需要电源,IO 模块由 CPU 背板供电,而在有些 PLC 中,包括 CPU、输入和输出在内的所有模块都需要电源。

      无论如何,您都需要在 PLC 面板中安装 SMPS 或变压器来转换原始电源电压。在交流电源电压中,一些 PLC 提供 110-240V AC 的电压范围。
      PLC 中的每个电源点都有一个接地点,以在出现浪涌或短路时保证 PLC 的安全。当使用交流电源时,内部大多装有保护熔断器。
      直流电源内部也有保险丝,但对于交流电源,由于涉及高电压,因此必须使用保险丝。当 CPU 给出额定电压时,就意味着你提供的电压已经得到了很好的稳定和控制。
      但是,电压保持恒定在 24V 或 240V 是不切实际的。因此,PLC 有一个额定电压范围,如 20-28V DC 或 220V-245V AC。每个 PLC 中都预定义了该范围,以便您获得一个电源区域,以便高效地使用它们,而不会出现任何问题。
      IO 模块电源
      现在,让我们进入下一个主题:IO 模块所需的电源。如前所述,有两种类型的电源可用,一种是模块由 CPU 背板本身供电,另一种是模块需要外部电源。
      使用背板时,每个 CPU 都有一个 mA 额定值,它将作为所连接模块的负载提供。
      例如,如果 CPU 的额定值为 24VDC – 450mA,那么它还将指定 CPU 背板可以为 IO 模块提供这么多电流,并且您只能将该数量的模块连接到 CPU 机架。
      此外,每个模块都会指定连接到背板总线上时需要多少电流。这可以帮助您为特定应用选择适当的模块和 CPU。
      说到第二种供电方式,有一些模块需要外接电源。因此,在这种情况下,您必须相应地选择具有更高电流和额定负载的 SMPS 或变压器。反过来,这可以正确地为 CPU 和模块供电,也可以为需要相同电源的面板上的其他组件供电。
      现场仪表电源
      PLC 的现场接线也大多需要仪器仪表的直流电压和大功率设备的交流电压。因此,上述四种电压对于 IO 模块公共电源接线来说是相同的。
      另外,请记住,除了标准电源外,PLC 内部大多还有备用电池。这样可以确保 PLC 内存中的程序在断电时保持完整。
      PLC 电源选择
      因此,在选择电源时,一般需要考虑以下参数:额定电压、额定电流、额定功率、纹波和噪声、电压可调范围、电压容差、线路调整率和负载调整率。
      选择正确的电源后,您就可以连接 CPU 和模块以正确供电。
      这样,我们就了解了  PLC 工作电压的概念。

    • 可编程逻辑控制器 (PLC) 和可编程自动化控制器 (PAC) 是两种类型的工业控制器,用于自动化制造、加工和其他工业应用中的流程和机器。两种类型的控制器具有相似的功能,但它们之间也存在显着的差异。
      在本文中,我们将介绍 PLC 和 PAC 的区别、相似之处和示例。
      内容:
      什么是 PLC? 什么是 PAC? PLC 和 PAC 之间的相似之处。 PLC 和 PAC 之间的差异。 来自不同供应商的 PLC 模型示例。 来自不同供应商的 PAC 模型示例。 PLC 什么时候最适合?什么时候用 PAC? 结论 什么是 PLC?
      PLC 是 Programmable Logic Controller 的缩写,是一种用于自动化控制系统的专用工业计算机。PLC 设计用于在恶劣环境下运行,用于控制制造工厂、装配线和其他工业环境中的机械。
      PLC 可以使用梯形图、功能块图、结构文本、指令表和时序图等5种不同的语言进行编程。这 5 种语言根据 IEC 61131-3 标准获得批准和应用。
      什么是 PAC?
      PAC 代表可编程自动化控制器,它类似于 PLC,但具有更高级的功能。PAC 将传统 PLC 的功能与执行更复杂的任务以及与其他设备和系统通信的能力相结合,使其比 PLC 更加灵活和强大。
      PAC 通常用于汽车、航空航天和发电等行业中更复杂的自动化和控制应用。PAC 可以使用与 PLC 相同的 5 种语言进行编程,但也可以使用 C 和 C++ 进行编程,使它们能够处理更复杂的算法编码。
      PLC 和 PAC 之间的相似之处
      PLC 和 PAC 之间的相似之处太多,有时甚至很难判断它们是否不同。虽然他们之间还是有一些区别的。
      他们的相似之处甚至更多。以下是 PLC 和 PAC 之间的一些共同点:
      核心功能
      PLC 和 PAC 均旨在为工业自动化系统提供可靠且准确的控制。 它们用于监控传感器和其他设备的输入,处理信息,然后向执行器和其他设备输出控制信号。
      编程
      PLC 和 PAC 都使用编程语言来创建决定自动化系统行为的控制逻辑。它们共享 IEC 61131-3 标准中定义的 5 种编程语言,但 PAC 提供更多编程语言选项,包括 C 和 C++。
      耐用性
      PLC 和 PAC 均可承受恶劣的工业环境,例如极端温度、湿度和振动。它们的设计坚固可靠,使用寿命长,维护要求低。
      模块化设计
      PLC 和 PAC 均采用模块化设计,易于扩展和定制。可以添加或删除模块以满足特定要求。
      行业标准
      PLC 和 PAC 的构建都是为了满足自动化和控制系统的行业标准,例如 IEC 61131。这些标准确保不同制造商的设备和系统之间的互操作性。
      PLC 与 PAC 的区别
      PAC 和 PLC 之间的区别可能有些模糊。虽然 PAC 的构成没有定义,但 PAC 与 PLC 有一些共同特征:
      功能性
      虽然 PLC 和 PAC 都用于自动化和控制应用,但 PAC 具有更高级的功能,例如运动控制、过程控制和数据采集。PAC 通常还比 PLC 拥有更多的处理能力和内存。
      连接性
      PAC 拥有比 PLC 更先进的连接选项,包括以太网、USB 和无线。这使得将它们集成到更大的自动化系统以及与其他设备和系统通信变得更容易。
      成本
      由于其更先进的功能和灵活性,PAC 通常比 PLC 更昂贵。
      更多高级功能
      PAC 通常具有比 PLC 更先进的软件功能,例如集成运动控制、数据记录和高级诊断工具。这些功能使工程师和技术人员能够更轻松地对控制系统进行监控和故障排除。
      不同供应商的 PLC 模型示例
      西门子 S7-1500 PLC:
      这是来自领先自动化供应商之一西门子的高性能 PLC。它专为要求苛刻的应用而设计,并提供运动控制、安全和安保等高级功能。见图1。

      图 1 – 西门子 S7-1500 PLC
      Allen-Bradley CompactLogix 5370 PLC:
      这是罗克韦尔自动化的一款多功能 PLC,提供广泛的 I/O 选项和通信协议。它适用于各种应用,包括机器控制和过程自动化。见图2。

      图 2 – Allen-Bradley CompactLogix 5370 PLC
      三菱电机 Q 系列 PLC:
      这是三菱电机可靠的 PLC,提供高速处理、灵活的 I/O 选项和高级编程功能。它适用于多种应用,包括汽车、食品和饮料以及制药。见图3。

      图 3 — 三菱电机 Q 系列 PLC
      欧姆龙 NJ 系列 PLC:
      这是 Omron 的高速、高性能 PLC,提供先进的运动控制和网络功能。它适用于多种应用,包括包装、印刷和半导体制造。见图4。

      图 4——欧姆龙 NJ 系列 PLC
      Beckhoff TwinCAT PLC:
      这是 Beckhoff 的一款基于软件的 PLC,在基于 PC 的平台上运行。它提供运动控制、CNC 和机器人等先进功能,适用于各种应用,包括机器控制和过程自动化。见图5。

      图 5 – Beckhoff TwinCAT CX9240 基于 PC 的 PLC
      来自不同供应商的 PAC 模型示例
      艾默生 DeltaV DCS PAC:
      这是艾默生的分布式控制系统 (DCS) PAC。它专为复杂的连续控制应用而设计,提供过程建模、批量管理和高级控制等高级功能。见图6。

      图 6 – 艾默生 DeltaV DCS PAC
      施耐德电气 Modicon M340 PAC:
      这是施耐德电气的高性能 PAC,提供运动控制、安全和网络安全等高级功能。它适用于多种应用,包括能源、水处理和采矿。见图7。

      图 7 – Modicon M340 PAC
      PAC 的其他一些示例如下:
      ABB AC 800M PAC 横河 ProSafe-RS PAC 菲尼克斯电气 PLCnext 技术 PAC 博世力士乐 IndraMotion MLC PAC PLC 何时最适合?什么时候是 PAC?
      PLC 和 PAC 用于不同类型的自动化应用,具体取决于该应用的具体要求。以下是有关 PLC 最适合的情况和 PAC 最适合的情况的一些一般准则:
      PLC 最适合:
      离散控制应用:
      PLC 最适合涉及离散控制的应用,例如控制输送机、分拣设备或包装机械的操作。
      简单的控制系统:
      PLC 非常适合具有相对简单的控制系统的应用,可以使用梯形逻辑或其他类似的编程语言进行编程。
      成本敏感型应用:
      PLC 通常比 PAC 便宜,这使得它们成为成本为重要因素的应用的不错选择。
      中小型系统:
      PLC 适用于输入和输出数量相对较少的中小型控制系统。
      制造工厂中的输送系统是自动化系统的一个很好的例子,其中 PLC 最适合。在此应用中,PLC 负责控制输送机的速度和方向,并监控输送线上传感器和其他设备的状态。PLC 还可以编程来处理特定的生产任务,例如分类、计数或包装。
      输送机系统通常具有固定的结构和需要以顺序方式执行的一组明确定义的操作。PLC 非常适合此类应用,因为它们设计用于处理离散控制任务并且运行非常可靠。PLC 可以轻松编程和配置,以处理不同类型的传感器、执行器和通信协议。
      PAC 最适合:
      过程控制应用:
      PAC 最适合涉及过程控制的应用,例如控制化工厂、水处理厂或发电厂的运行。
      复杂的控制系统:
      PAC 非常适合具有需要高级算法和优化功能的复杂控制系统的应用。
      大型系统:
      PAC 适用于输入和输出数量较多且系统分布面积较大的大型控制系统。
      高性能应用:
      PAC 能够处理需要快速数据处理、实时控制和高可靠性的高性能应用。
      发电厂控制系统是自动化系统的一个很好的例子,其中 PAC 最适合。在此应用中,PAC 负责控制和监视大量复杂的过程和设备,例如涡轮机、发电机、锅炉和泵。PAC 还负责收集和分析来自各种传感器和其他来源的数据,并根据这些数据做出决策,以优化工厂的绩效。
      发电厂控制系统是一个非常复杂和动态的环境,许多不同的过程和设备同时运行。PAC 非常适合此类应用,因为它们提供分布式控制、冗余和容错等高级功能,这对于确保工厂的可靠性和安全性至关重要。PAC 可以处理大量数据,并且可以编程来执行复杂的算法和优化任务。
      结论
      PLC 和 PAC 都用于工业自动化应用。 它们具有不同的功能,并且最适合不同类型的应用程序。 在 PLC 和 PAC 之间进行选择时,必须考虑应用的具体要求。 PLC 通常用于控制系统相对简单的离散控制应用。 PAC 用于具有复杂控制系统并需要先进算法和优化功能的过程控制应用。

    • 控制任何机器或系统中的过程一直是工程师的梦想。由于技术的出现,已经开发了许多控制器来灵活可靠地控制过程。
      控制器有两种通用类型,广泛应用于从小规模到大规模的许多过程中。它们是微控制器和 PLC。它们可以完成各种操作,从小型计算到复杂的算法、逻辑性能和数据处理。通过自动化流程,使任务变得更加容易。
      在这篇文章中,我们将了解微控制器和 PLC 之间的区别。
      什么是微控制器?
      让我们先了解基础知识。您有一个按钮和一盏灯。按下按钮 5 秒后,系统会要求您打开灯。从这些来看,我们需要什么来执行这个任务? 您将需要一个输入(按钮)、一个输出(灯)、一个用于执行此任务的控制器(处理器类型)、一个为电路供电的电源以及一个用于存储该逻辑以及输入和输出状态的存储器。当将其组合在单个封装中时,就形成了微控制器。
      简而言之,微控制器是一种小型计算机,它接受物理输入,根据它们处理逻辑,并打开或关闭物理输出。它是一个小型的芯片式器件,将所有这些电路嵌入其中,就像一个小封装一样,并完成所有的处理和控制工作。
      微控制器将处理少量的输入和输出。例如,考虑安装在手持设备上的小型显示电路,如 LED 或 LCD。如果按下其上的按钮,显示屏上就会显示相应的数字。
      当您按下另一个按钮时,它将显示根据处理器内部逻辑写入的其他数字。这意味着它首先被编程为显示一个数字,然后按下第二个按钮,就会显示计算出的数字。所有这些计算、变量的存储处理和 IO 处理都是在这个微控制器芯片内部完成的。

      什么是 PLC?
      让我们继续进行更高级别的处理。您有 50 个传感器,4-20 mA 或热电偶类型。您有 20 种不同类型的输出,0-10V DC 执行器或继电器输出。您已被分配相同的任务来根据其中写入的逻辑接受输入和控制输出。
      需要所有相同的 IO 组件、电源、处理器和内存。但是,您可以看到所有这些具有内存和处理器的 IO 板/引脚无法嵌入在小型单芯片上。这就是 PLC 发挥作用的时候。PLC 基本上是微控制器的扩展。它是一个柜箱式设备,有 IO 板、内存和处理器;所有这些都在不同的芯片上相互连接。所有这些芯片组成一个 PLC 机柜。
      IO 可以有不同的类型,从简单的数字信号到复杂的模拟信号。它们有特殊的通信板,可以与以太网、Modbus、CAN Open、Profibus、Profinet 等现实协议进行通信。
      微控制器也有通信板,但它们的接口很小,连接性有限。
      IO 模块要么嵌入在主 PLC 中,要么通过通信连接到远程模块。这很容易实现 IO 的扩展。各种高级工业传感器和执行器可以轻松与 PLC 连接。
      单片机和 PLC 的区别
      现在我们已经了解了它们的含义,让我们看看它们的区别:
      仅在定义中,我们就知道 PLC 可以处理大量进程和循环。这就是为什么它最适合工业应用。微控制器无法满足大量具有复杂接线和通信要求的 IO。它最适合小规模应用。 与微控制器相比,PLC 中的信号处理更加灵活。这意味着,模数转换、高速计数器输入和输出在 PLC 中比在微控制器中更容易配置。 由于微控制器提供的功能有限,因此其价格比 PLC 便宜。 PLC 的主要优点是其坚固性和稳定性。具有非常高的温度和环境顽固性,是关键、危险和恶劣环境的最佳产品。 与微控制器相比,PLC 更容易受到电磁噪声和其他类型的噪声的影响。 PLC 中的编程比微控制器中的编程要容易得多。微控制器使用 C 和 C++ 等复杂软件进行编程,这在 PLC 中要容易得多,因为它具有易于与电气绘图理解相关的语言。 微控制器需要嵌入式系统、VLSI 和软件方面的知识来设计,而 PLC 程序员则需要工业自动化、仪器仪表和网络方面的知识来设计。

    • 顺序逻辑在 PLC 编程中非常有用。它有助于轻松整理事情。使用 PLC 的各种应用程序都写入了一些或其他顺序逻辑。
      两种最广泛使用的序列是 LIFO 和 FIFO。您一定听说过电子学中用于堆叠和排序的名称。这些类型的顺序逻辑在 PLC 中也可用。
      在本文中,我们将学习 PLC 编程中的 LIFO 和 FIFO 顺序概念。
      PLC 中的 FIFO 顺序
      FIFO 代表先进先出。从它的名字就可以很容易地理解这个序列的含义。先来的东西就会先出去。您输入一个元素;当您请求一个元素时,输入的第一个元素将提供给您。同样的逻辑也适用于 FIFO 序列的 PLC 编程。
      在编程中,分配一个逻辑块,称为 FIFO。它最多可以存储 16 个字或更多,具体取决于 PLC。它包含三种类型的输入——重置、存储和检索。
      在复位输入的上升沿,序列被复位并清空。在存储输入的上升沿,输入处存在的字被存储在块中。该模块将记住收到的单词序列。
      在检索输入的上升沿,首先输入的字将在 PLC 程序员配置的目标字中给出。它有两个输出——空的和满的。如果空位为真,则表示存储器为空,如果满输入为真,则表示存储器已满。

      PLC 中的 LIFO 顺序
      LIFO 代表后进先出。从它的名字就可以很容易地理解这个序列的含义。最后出现的东西将首先消失。您输入一个元素;当您请求一个元素时,最后输入的元素将提供给您。同样的逻辑也适用于 LIFO 序列的 PLC 编程。
      在编程中,逻辑块被指定为后进先出(LIFO)。它最多可以存储 16 个字或更多,具体取决于 PLC。它包含三种类型的输入——重置、存储和检索。在复位输入的上升沿,序列被复位并清空。
      在存储输入的上升沿,输入处存在的字被存储在块中。该模块将记住收到的单词序列。
      在检索输入的上升沿,最后输入的字将在程序员配置的目标字中给出。它有两个输出——空的和满的。如果空位为真,则表示存储器为空,如果满输入为真,则表示存储器已满。
      这些序列非常容易操作。程序员必须注意不要同时向存储块提供任何输入。在这种情况下,该块将不会执行任何操作。一次只需给出一个输入。还需要注意的是,不同的 PLC 在热启动或冷启动时的功能不同。
      一般来说,例如在 PLC 冷启动时,寄存器将被重置,而在热启动的情况下,寄存器将保持原样。这取决于制造商。

    • PLC 中有许多指令有助于以简化的方式执行逻辑。指令有多种类别,如算术、比较、逻辑、控制器等。例如,用于添加两个变量的简单加法指令就属于算术类别。因此,类似地,PLC 逻辑中可以使用多种类型的指令。
      PLC 编程中广泛使用的一种这样的指令是移位指令。它属于数值处理的范畴。
      在这篇文章中,我们将学习 PLC 编程中移位寄存器指令的概念。
      PLC 中的移位寄存器
      顾名思义,移位指令是将字的位移动某个预定义位置的命令。
      例如,您有一个 16 位的字。您想要将位号 3 从当前的第四位置移动到第七位置。因此,每当给出移位命令脉冲时,该位就会在每个触发器中从第四位置移位到第七位置。
      在这种连续性中,第五个位置的位将移动到第八个位置;第三位置的位将移动到第六位置。因此,在这里,您将按您定义的位置数移动组中的位。
      移位指令
      移位指令有两种类型——移位和循环。让我们看一下旋转指令。考虑语法 – %MW10:= SHL (%MW12, 4)。%MW10 是目标存储器字,%MW12 是源存储器字。
      请参阅下图。在 %MW10 中,当给出第一个左移触发时,位 0 移至位 1,依此类推。该结果存储在 %MW12 中。当这样的触发被给出四次时,最终,位0将最终转移到位4,依此类推。
      最终结果无论如何都存储在 %MW12 中,并且您会得到从源字移位四个位置的位的最终答案。但是,要记住的一件事是,每次移位时,前面的位都会填充值 0。您可以在图像中清楚地看到这一点。
      第一次移位后,%MW12 中的第一位为 0。因此,经过四次移位后,最终结果将为 – 0000 1101 1100 0000。因此,该移位可以是右移或左移。

      PLC 中还有另一种类型的转换;较早的类型从前一个位置添加了零,但第二种类型保持第一位的值(右侧的 MSB 和左侧的 LSB)不变。这称为算术移位。
      因此,如果移位前第一位(右端的 MSB 和左端的 LSB)的值最初为 1,则最后一位将仅保持为 1,并且将从前第二位开始添加零,最多添加多少次 给出了移位命令。需要注意的是,最后移位的位总是存储在进位位中。
      轮换指令
      第二种是循环指令。考虑语法 – %MW10:= ROL (%MW12, 4)。%MW10 是目标存储器字,%MW12 是源存储器字。我们将使用上面相同的图像作为参考。旋转指令,顾名思义,只是将位旋转您定义的位置。
      与移位指令相比,移位指令在每个前面的位后添加零;这里,位只是按照与左方向相同的顺序移位。因此,假设您的源词为 – 1100 1010 1100 0101;那么,触发 4 个位置后,最终结果将是 – 1010 1100 0101 1100。相同的逻辑在正确的方向上工作。最后移位的位也存储在进位位中。
      另一种类型属于旋转类别。这里,不是只移位 16 位,而是翻转进位位。这意味着,最后一位被移至进位位,然后进位位将被移至第一位,依此类推。在早期类型中,最后一位仅存储在进位位中。

    • S7-1200 PLC 是一种紧凑、模块化且经济高效的解决方案,为中小型自动化应用提供广泛的功能和灵活性。这些功能包括通信选项、内存、CPU 性能和 IO 配置。当您有需要控制的过程时,您应该选择 PLC 并对其进行配置,以最适合您的过程要求。
      在本文中,我们将讨论 S7-1200 PLC 的硬件配置,并举例说明如何在西门子 Tia portal 中对其进行配置。
      内容:
      PLC 的硬件配置是怎样的? 硬件配置的重要性。 简单的项目示例。 如何使用给定的示例配置我们的 PLC?                     CPU 的硬件配置。
                          IO 硬件配置。
                          人机界面配置。
      结论。 PLC 的硬件配置是怎样的?
      硬件配置是指 PLC 的特定组件,例如 CPU、内存、输入/输出 (I/O) 模块、通信端口、电源以及系统可能需要并添加的任何附加模块或附件 。
      PLC 的硬件配置还包括启用或禁用某些 CPU 功能,具体取决于设备、其功能以及过程的要求。
      PLC 的硬件配置步骤通常涉及以下内容:
      根据应用需求选择合适的 PLC 型号。 确定系统的输入/输出要求,包括传感器、执行器以及将连接到 PLC 的其他设备的类型和数量。 选择将用于将 PLC 连接到其他设备和系统的通信协议和网络拓扑。 确定 PLC 及其外围设备的电源要求。 将 PLC 安装在适当的位置并连接所有必要的电缆和电线。 配置 PLC 软件以与硬件组件进行通信并设置适当的逻辑和控制功能。 硬件配置的具体步骤可能会根据 PLC 型号和应用要求而有所不同,但这些是该过程中通常涉及的基本步骤。
      在本文中,我们将讨论在 TIA Portal 平台中完成的硬件配置。这意味着我们将假设您了解您的应用程序,并且您已经选择了 PLC 型号和为其供电的电源。您可以参考之前的文章,其中我们讨论了如何选择最适合您的应用的 PLC 和电源。
      PLC 中硬件配置的重要性
      正确的硬件配置可确保系统可靠且稳健。如果硬件组件配置不正确,它们可能无法按预期工作,从而导致系统故障或错误
      硬件配置影响系统的性能。通过选择正确的硬件组件并进行适当的配置,系统可以以最高的效率和速度运行,并可以处理大量的输入和输出。
      硬件配置影响系统的可扩展性和灵活性。硬件组件及其配置的选择应考虑到系统未来的扩展或修改,以确保系统能够轻松适应更改或升级。
      硬件配置影响系统的成本。通过选择合适的硬件组件和配置,可以避免不必要的成本,并使系统的总体成本最小化。
      S7-1200 硬件配置
      我们将假设一个简单的 PLC 项目,并在开始编写代码之前了解如何将 PLC 配置到我们的项目中。
      使用 PLC 的反应器温度控制系统
      该项目涉及使用 PLC 控制反应器的温度。该系统应测量反应器的温度并通过控制冷却液的流量来调节温度。
      该项目使用四个热电偶来测量温度,两个电磁阀来控制冷却液的流量,以及一个电机来驱动反应器的叶轮。
      输入/输出配置
      输入:
      热电偶 1 – 4:这些是 4 个模拟输入,用于测量反应器内不同位置的温度。
      紧急停止按钮:这是一个数字输入,用于在紧急情况下停止系统。
      温度设定点电位计:这是一个模拟输入,允许操作员设置所需的温度设定点。
      输出:
      电磁阀 1 和 2:这是 2 个数字输出,用于控制冷却液通过反应器管道的流量。
      电机控制:这是一个数字输出,用于控制驱动叶轮的电机的速度和方向。
      加热器控制:这是控制反应器加热系统的数字输出。
      系统操作:
      系统等待操作员使用电位计设置温度设定点。 PLC 读取温度设定值并将其与反应器的当前温度(由四个热电偶测量)进行比较。 如果反应器温度低于设定点,PLC 会激活加热器控制输出以升高温度。 如果反应器温度高于设定点,PLC 会激活电磁阀输出之一,以增加冷却液的流量并降低温度。 PLC 持续监控温度并调整加热器和冷却系统以维持所需的设定值。 PLC 还控制驱动叶轮的电机以混合反应器中的内容物。 如果按下紧急停止按钮,PLC 将禁用所有输出并停止系统。 PLC 项目可以进一步扩展和修改,以包含附加功能,例如报警、数据记录或远程监控,具体取决于项目的具体要求。但是,我们不会关心该系统的 PLC 逻辑编码,而是使用此示例来解释如何对 PLC 进行硬件配置以适合我们的项目。
      这包括:
      选择 PLC CPU。 选择 IO 模块。 将输入和输出标签分配给硬件模块。 为 PLC 分配 IP 以进行通信。 分配保护密码。 配置 PLC 的本地时间。 配置 HMI 并设置与 PLC 的连接。 如何根据给定的示例配置 PLC?
      下面我们将讨论使用所需硬件创建基本的 PLC 项目。
      CPU 的硬件配置:
      选择 CPU:
      在 TIA Portal 中启动新项目时,应配置新设备并将其添加到项目中。见图1。

      图 1. 为您的项目配置设备
      从上图中可以看出,TIA Portal 已经向您显示第一步应该是配置新设备。
      在上一篇文章中,我们讨论了如何选择适合您工艺的 PLC,所以这里不再提及,对于我们的项目,因为它是一个简单的项目,我们将选择 CPU 1214C AC/DC/RLY。见图2。

      图 2. 将新控制器添加到项目中
      中央处理器特性:
      根据您为项目选择的 CPU,将提供不同的 CPU 功能和属性。
      您可以根据需要启用或禁用这些功能。某些功能需要进行额外的配置。见图3。

      图 3 – CPU 特性
      正如您在上图中看到的,您可以在项目中为 CPU 设置许多属性。
      我们将提到您需要在创建的每个项目中配置的一些属性,其他一些属性仅在特殊情况下使用。
      沟通:
      这对于任何 PLC 项目来说都是非常重要的配置;您的项目很可能有不同的模块和设备需要相互通信。设置 PLC 和这些设备之间的通信对于您的项目非常重要。
      通过选择 CPU,您已经定义了通信方式。有些 CPU 仅适用于 Profinet,有些仅适用于 Profibus,有些则能够同时使用两者。本例中所选的 PLC 仅适用于 Profinet。
      从 Profinet 界面,您将为 PLC 设置 IP 地址,该 IP 在项目中应该是唯一的;您不能为两个不同的模块使用相同的 IP。见图4。

      图 4 – Profinet 接口
      周期:
      如您所知,这是 PLC 的另一个重要属性;程序的循环时间取决于您编写了多少代码以及 PLC 执行该代码需要多长时间。
      在循环时间属性中,可以设置循环监控时间,如果 PLC 执行程序的时间超过这个设置的时间,那么PLC 就会报错。见图5。
      通过此属性,您还可以确定 CPU 的最小循环时间,如果触发了 “启用循环 OB 的最小循环时间”,则可以执行此操作。
      然后,您可以写入所需的最小循环时间,PLC 将调整其性能以匹配该时间。当然这个时间受到 CPU 性能的限制,所以你不能把这个时间降低到一定的限制以下。

      图 5 – 周期时间属性
      系统和时钟存储器位:
      系统内存位和时钟内存位是 CPU 内部的内置位,操作系统用于指示 PLC 中的某些事件。
      例如,有一个内存位仅在第一次扫描时变为 TRUE,或者如果诊断状态发生变化,则内存位将变为 TRUE,还有一些专用时钟内存位,例如代表 10Hz 时钟的位或代表 10Hz 时钟的位。2Hz的时钟。
      这些位在某些应用中非常有用,并且可以节省大量编程代码以获得相同的功能。见图6。

      图 6 – 启用系统和时钟存储器位
      您可以启用一个或两个内存字节的使用;您还可以确定这些字节的地址,如图所示。
      一天中的时间:
      PLC 的另一个非常重要的属性是设置 PLC 内部的时间。在您制作的几乎所有项目中,您都需要了解实时情况,以便能够分配不同日期的某些操作。
      在上一篇文章中,我们讨论了 PLC 内部的本地时间和系统时间以及如何使用它们。CPU 的此属性允许您将本地时间设置为所需的时区。见图7。

      图 7 – 当地时间属性
      保护和安全:
      通过该属性,您可以确定 PLC 的访问级别和密码保护。见图8。

      图 8——保护和安全财产
      前面提到的属性是您要做的几乎所有 PLC 项目中最常配置的属性。还有一些其他属性不太可能与简单程序(例如 Web 服务器和 OPC UA)一起使用。
      项目硬件配置的下一步是配置 IO。
      IO 硬件配置:
      项目的另一个重要步骤是 IO 的配置,这意味着确定您需要多少个 IO 模块以及需要什么类型的 IO 模块。
      在决定 IO 时,您应该考虑一些关键点,例如拥有一些备用 IO 点以及选择适合项目内输入传感器和输出执行器的 IO 模块。见图9。

      图 9 – 添加模拟输入模块
      正如我们在示例项目中提到的,我们有 4 个热电偶用作 PLC 的模拟输入,因此我需要添加一个至少具有 4 个输入通道的模拟输入模块,因为所选的 PLC 只有 2 个模拟输入通道。
      另外,热电偶是一种特殊类型的模拟输入,需要专用的输入模块。这就是为什么我们选择 AI 8xTC 模块,它有 8 个输入通道,专用于与热电偶一起使用;我们选择 8 通道模块,4 通道模块有备用通道供将来需要扩展项目时使用。
      如果您转到 AI 8xTC 模块的属性,您将看到您可以单独配置每个输入通道,您可以选择热电偶类型、测量范围和其他属性。见图10。

      图 10 – 配置输入模块
      接下来,您需要定义 IO 标签,并将每个输入或输出分配给 PLC 或 IO 模块中的正确 IO 点。见图11。

      图 11 – 分配输入标签
      然后继续分配其余的输入和输出标签,见图 12 和 13。

      图 12 – 为 PLC 分配输入标签

      图 13 – 将输出标签分配给您的项目
      人机界面配置
      您的 PLC 项目可能需要 HMI,选择 HMI 后,您可以进行不同的配置。
      本文仅介绍如何配置 HMI 与 PLC 之间的通讯。从上图可以看出,您通过添加新设备来选择 HMI,然后选择 HMI。见图 14。

      图 14 – 选择 HMI
      设置 HMI 和 PLC 之间的通讯有多种方法,但最简单的方法是通过网络视图页面。见图 15。

      图 15 – 设置 HMI 连接
      在网络视图页面中,您只需从 HMI 上单击代表 Profinet 的绿色小方块并将其拖至 PLC 即可设置 HMI 和 PLC 之间的连接。
      然后,TIA Portal 将在两个模块之间绘制一条绿线,并自动为 HMI 提供 IP 地址以设置它们之间的通信。
      结论
      硬件配置是任何 PLC 项目中非常关键的一步。 PLC 的正确硬件配置将确保满足项目所需的功能。 硬件配置包括选择 IO 模块、启用或禁用某些 CPU 属性以及使用 PLC 配置不同的设备(例如 HMI)。

    • 西门子是一家著名的跨国公司,业务涉及能源、医疗保健、交通和工业自动化等多个行业。西门子成立于 1847 年,现已发展成为一家在多个国家开展业务的全球性公司。西门子以其创新产品和服务而闻名,并被公认为世界上最具可持续发展能力的公司之一。
      在本文中,我们将概述西门子 PLC,它只是西门子在工业自动化领域各种产品中的一小部分。
      内容:
      西门子在工业自动化领域。 西门子不同的 PLC 系列。 西门子 S7 PLC 概述。 西门子 S7-1200。 西门子 S7-1500。 西门子 S7-300。 西门子 S7-400。 西门子 S7-ET 200 CPU 为什么有很多不同的型号? 如何确定哪种类型的 S7 PLC 最适合我的应用? 结论。 西门子在工业自动化领域
      西门子是工业自动化领域的领导者,以其高品质的产品和解决方案而闻名。该公司提供广泛的工业自动化产品,包括可编程逻辑控制器(PLC)、人机界面(HMI)、变频驱动器(VFD)和工业通信网络。
      西门子还提供工业自动化软件解决方案,例如全集成自动化 TIA Portal,它是一种将所有自动化软件工具集成在一个平台中的工程框架。此外,西门子还开发了自己的工业物联网 (IIoT) 平台,称为 MindSphere,该平台能够收集和分析工业环境中连接设备的数据。
      西门子不同的 PLC 系列
      西门子开发了两个主要的 PLC 系列,它们是:
      Simatic S5 系列 PLC Simatic S7 系列 PLC Simatic S5 系列是西门子的上一代 PLC,目前仍在一些较旧的工业系统中使用。但已不再生产。
      Simatic S7 系列是目前的西门子 PLC。它提供各种具有不同性能和功能级别的 CPU,以满足不同的自动化需求。S7系列以其可靠性、坚固性和灵活性而闻名,广泛应用于汽车、食品饮料、制药等行业。
      西门子 S7 PLC 概述
      西门子 S7 系列 PLC 提供了各种具有不同性能和功能级别的 CPU,以满足不同工业自动化过程的需求,这些 CPU 将属于以下子系列之一:
      西门子 S7-1200
      Simatic S7-1200 是一款紧凑型 PLC,专为中小型应用而设计。它以其紧凑的设计、集成的通信和编程选项提供了灵活且经济高效的自动化解决方案。
      西门子S7-1500
      Simatic S7-1500 是一款高性能 PLC,专为中型到大型应用而设计。 它提供运动控制、安全和安保等高级功能,使其适合复杂的自动化任务。
      西门子 S7-300
      Simatic S7-300 是一款模块化 PLC,可轻松适应各种应用。它提供高处理能力、广泛的通信选项和广泛的 I/O 模块,使其成为许多行业的热门选择。
      西门子 S7-400
      Simatic S7-400 是一款高性能 PLC,专为需要高处理能力和广泛通信功能的苛刻应用而设计。它提供大量 I/O 模块、冗余选项和高级诊断功能,使其适合复杂的自动化任务。
      西门子 S7-ET 200SP
      Simatic S7-ET 200SP 是一款紧凑型远程 I/O 系统,可轻松与其他 Simatic S7 PLC 集成。它提供高度的灵活性、可扩展性和模块化,使其适合各种自动化应用。
      当您在 TIA Portal 中创建新项目并尝试添加新设备时,您可以找到不同 S7 系列的所有可用且受支持的 CPU。见图1。

      图 1 – Simatic S7 系列中提供了不同的 PLC
      S7-1200 PLC
      Simatic S7-1200 是一款多功能且经济高效的 PLC,提供多种型号以满足不同的自动化需求,使其成为中小型应用的热门选择。
      以下是 S7-1200 系列不同型号的概述:
      Simatic S7-1200 CPU: 这些是 S7-1200 系列中的标准 CPU,有不同的版本,包括 CPU 1211C、CPU 1212C、CPU 1214C、CPU 1215C 和 CPU 1217C。它们提供比基本控制器更高级的功能,包括内置通信接口和附加 I/O 选项。它们还有不同的版本,包括 DC/DC/DC、DC/DC/RLY、AC/DC/RLY 和 AC/DC/TC。它们的功能有限,但非常适合简单的控制任务。
      Simatic S7-1200 安全集成: 这是 S7-1200 的安全认证版本,包含安全相关功能,例如安全输入、安全输出和安全通信,以增强自动化系统的安全性。
      Simatic S7-1200 SIPLUS: 这是 S7-1200 的加固版本,设计用于在极端温度、湿度和振动的恶劣环境中运行。
      S7-1200 的不同型号见图2。

      图 2 – 不同型号的 S7-1200 CPU
      S7-1500 PLC
      Simatic S7-1500 是一款功能强大的 PLC,提供一系列型号来满足不同的自动化需求,使其成为要求苛刻的应用的热门选择。
      以下是 S7-1500 系列不同型号的概述:
      Simatic S7-1500 标准 CPU: 这些是 S7-1500 系列中的标准 CPU,有不同的版本,包括 CPU 1511-1 PN、CPU 1513-1 PN、CPU 1515-2 PN 和 CPU 1518-4 PN。它们提供高速处理和先进的通信选项,例如 Profinet、Profibus 和工业以太网。
      Simatic S7-1500 安全集成: 这是 S7-1500 的安全认证版本,包含安全相关功能,例如安全输入、安全输出和安全通信,以增强自动化系统的安全性。
      Simatic S7-1500 高级控制器: 这些是 S7-1500 的高级版本,提供附加功能,例如运动控制、高速计数和高级通信选项。
      Simatic S7-1500 T-CPU: 这是 S7-1500 CPU 的高级版本,具有扩展的运动控制功能,例如运动功能以及齿轮传动和凸轮功能。
      Simatic S7-1500 TM NPU: 这是一个神经处理单元 (NPU),专为机器学习和人工智能 (AI) 应用而设计,例如预测性维护、质量控制和流程优化。
      S7-1500 的不同型号见图3。

      图 3 – S7-1500 的不同型号
      S7-300 PLC
      Simatic S7-300 CPU: 这些是 S7-300 系列中的标准 CPU,有不同的版本,包括 CPU 312C、CPU 313C、CPU 314C、CPU 315-2DP、CPU 317-2DP 和 CPU 319-3PN/DP。它们提供高处理能力、先进的通信选项和广泛的 I/O 选项。
      Simatic S7-300 故障安全 CPU: 这些是经过安全认证的 S7-300 CPU 版本,包含安全相关功能,例如安全输入、安全输出和安全通信,以增强自动化系统的安全性。
      Simatic S7-300 紧凑型 CPU: 这些是 S7-300 CPU 的紧凑版本,尺寸更小,功耗更低,非常适合空间和电源有限的应用。
      Simatic S7-300 技术 CPU: 这些是专门为特定自动化应用(例如运动控制、温度控制和过程控制)而设计的专用 CPU。
      Simatic S7-300 分布式控制器: 这些模块化控制器提供分布式 I/O 和通信选项,非常适合需要分布式自动化的应用。
      S7-300 的不同型号见图4。

      图 4 – S7-300 的不同型号
      S7-400 PLC
      Simatic S7-400 CPU: 这些是 S7-400 系列中的标准 CPU,有不同的版本,包括 CPU 412-1、CPU 414-1、CPU 414-2、CPU 416-2 和 CPU 417-4。它们提供高处理能力、先进的通信选项和广泛的 I/O 选项。
      Simatic S7-400H CPU: 这些是高可用性 CPU,提供冗余选项以增强自动化系统的可用性和可靠性。
      Simatic S7-400F/FH CPU: 这些是经过安全认证的CPU,包含安全相关功能,例如安全输入、安全输出和安全通信,以增强自动化系统的安全性。
      Simatic S7-400 分布式控制器: 这些模块化控制器提供分布式 I/O 和通信选项,非常适合需要分布式自动化的应用。
      S7-400 的不同型号见图5。

      图 5 – S7-400 的不同型号
      西门子 S7-ET 200 PLC
      Simatic S7-ET 200 CPU: 这些是 S7-ET 200 系列中的标准 CPU,有不同的版本,包括 CPU 1511C-1 PN、CPU 1513-1 PN 和 CPU 1515-2 PN。它们提供高处理能力、先进的通信选项和广泛的 I/O 选项。
      Simatic S7-ET 200F CPU: 这些是经过安全认证的 CPU,包含安全相关功能,例如安全输入、安全输出和安全通信,以增强自动化系统的安全性。
      Simatic S7-ET 200SP CPU: 这些是紧凑型 CPU,尺寸更小,功耗更低,非常适合空间和电源有限的应用。
      S7-ET200 的不同型号见图6。

      图 6 – S7-ET200 不同型号
      为什么有很多不同的型号?
      西门子 S7 PLC 有许多不同的型号,为客户提供了广泛的选项和功能可供选择,使他们能够选择最适合其特定自动化需求的 PLC。
      不同的型号提供不同的功能、处理能力、内存、通信选项和 I/O 功能。一些模型是为特定应用而设计的,例如运动控制、温度控制和过程控制,其他模型是为通用自动化系统而设计的。
      此外,随着技术的进步和新的自动化需求的出现,西门子不断开发和发布具有增强特性和功能的新型号和版本的 S7 PLC,为客户提供最新的自动化技术,帮助他们提高生产力、降低成本、增强生产力。他们的系统的性能。
      如何确定哪种类型的 S7 PLC 最适合我的应用?
      为您的应用选择正确的 S7 PLC 类型需要仔细考虑几个因素。以下是一些常规步骤,可帮助您确定哪种类型的 S7 PLC 最适合您的应用:
      确定自动化系统的规模和复杂性:
      如果您拥有大型且复杂的自动化系统,则可能需要高性能 PLC,例如可以处理大量 I/O 点和高级通信选项的 S7-400 或 S7-1500。如果您的系统较小且不太复杂,则较小的 PLC(例如 S7-1200 或 S7-300)可能就足够了。
      确定所需的 I/O 类型并计数:
      每个 S7 PLC 都有不同范围的 I/O 选项和容量。您需要确定应用程序所需的 I/O 点的类型和数量,并选择可以支持它们的 PLC。
      考虑所需的处理速度和性能:
      不同的 S7 PLC 具有不同的处理速度和性能能力。您需要确定所需的处理速度并选择能够满足您的性能要求的 PLC。
      评估所需的通信选项:
      不同的 S7 PLC 提供不同的通信选项,例如以太网、Profibus、Profinet 和 AS-i。您需要确定应用程序所需的通信协议,并选择可以支持它们的 PLC。
      考虑所需的安全功能:
      如果您的应用需要安全功能,例如安全输入、安全输出和安全通信,您可能需要经过安全认证的 PLC,例如 S7-1500F 或 S7-400F。
      结论
      西门子提供广泛的工业自动化产品,包括具有不同功能和性能的各种型号的 PLC,包括 S7-1200、S7-1500、S7-300 和 S7-400 CPU。
      西门子 S7 PLC 有多种不同型号,为客户提供了广泛的选项和功能可供选择。
      选择最适合您流程的 PLC 型号需要在选择 PLC 之前考虑一些要点,其中一些要点是 IO 数量、安全要求和通信选项。

    • 这是一个用于气动阀顺序模式操作的 PLC 程序。
      气动阀的顺序 PLC 编程
      编写梯形逻辑,用于气动阀的顺序 PLC 编程,以顺序模式操作气缸。

      解决方案:
      在此系统中,有两个气缸和两个按钮连接到 PLC。
      按钮连接到 PLC 输入,气缸连接到 PLC 输出。
      系统工作需要满足以下条件: –
      当按下 START PB 时,气缸 A 应启动,气缸 B 应在气缸 A 启动 5 秒后启动。
      当按下 STOP PB 时,气缸 A 和 B 都将停止。
      现在要满足以下条件,我们必须使用一个定时器来延迟气缸 B 的操作。
      输入/输出列表
      输入:
      X1 - 启动 PB X2 - 停止 PB 输出:
      Y0 - A 缸 Y1 - B 缸 气缸顺序运行梯形图

      程序说明:
      在梯级 1 中,我们使用 STRAT PB (X1) 启动气缸 A (Y0)。这里我们使用 STOP PB (X2) 的常闭触点来停止气缸 A (Y0)。与 X1 触点并行,我们使用 Y0 的常开触点来锁存输出。
      在梯级 2 中,我们使用定时器 T0 来计算气缸 B (Y1) 的延迟。
      在梯级 3 中,我们使用了 T0 的常开触点,因此一旦气缸 B (Y1) 上的时间延迟就会开启。

    • 在本文中,我们将学习如何阅读 PLC 数据表以及对自动化工程师有用的 PLC 规格的重要说明。此外,我们还将讨论 PLC 数据表中提供了哪些不同的信息,以及这些信息对我作为程序员或安装工程师有何用处。
      内容:
      数据表提供哪些信息? PLC 数据表中的信息示例 额定电流和电压 PLC 内存 不同的块和数据区寻址 输入和输出规格 通讯接口和协议 环境条件 阅读数据表的重要注意事项。 数据表提供哪些信息?
      PLC 的数据表将为您提供很多信息;这些信息将涵盖 PLC 可以提供的几乎所有功能。但其中一些信息对您来说并不像其他信息那么重要,这取决于您使用 PLC 的范围。
      如果您是安装工程师,那么您将重点关注 PLC 的技术规格,例如电源电压、输入和输出类型以及这些 IO 点的额定功率。
      您还将更加关注 PLC 的尺寸和 PLC 运行时的环境条件,以确定 PLC 所使用的电气面板的尺寸以及 PLC 所使用的冷却方法。
      如何阅读 PLC 数据表?
      另一方面,如果您只是 PLC 程序员,那么过去的信息对您来说可能并不那么重要,相反,您将关注与 PLC 内存、可用 IO 数量和能力相关的数据。添加新模块。
      您还需要注意一些其他信息,例如该 PLC 支持的编程语言,因为并非所有 PLC 都支持所有编程语言。作为程序员,沟通和网络也是您需要关心的其他重要点。
      PLC 的数据表始终以 PLC 的总体概述描述开始。S7-1200 和 S7-1500 的简单示例请参见图 1 和 2。

      图 1 – S7-1500 PLC 数据表的第一页。

      图 2 – S7-1200 PLC 数据表的第一页。
      正如您所看到的,数据表的开头给出了 PLC 的一般描述。此一般描述将为您提供有关 PLC 的基本概念以及它是否适合您的应用。
      PLC 数据表中的信息示例
      在本文中,我们将使用 S7-1200 PLC 的数据表来显示它包含的一些不同信息。
      额定电流和电压
      在数据表的某个部分中,必须有一些有关 PLC 电压和电流额定值的信息,有些 PLC 需要直流电源,而另一些则需要交流电源,而且 PLC 的输入和输出可能有不同的额定值,这 我们的 PLC 正是这种情况,PLC 的供电电压为 220AC,但 IO 的额定值为 DC。见图3。

      图 3 – 电压和电流额定值。
      PLC 内存
      数据表中会提供不同的 PLC 内存容量,这会显示您有多少工作内存以及是否可以扩展它,见图4。

      图 4 – PLC 的内存描述。
      不同的块和数据区寻址
      在本节中,您将了解可在 PLC 中使用的不同块,例如定时器、计数器、FC 等,以及可使用的块的最大数量。您还将获得数据区域的内存及其保持性。见图5。

      图 5 – CPU 块可用。
      输入和输出规格
      这是另一个需要提供的关键数据,通过这些信息您将了解您的 PLC 提供的 IO 数量,以及如何连接和使用每个 IO。见图 6 和 7。

      图 6 – PLC 的数字输入。
      正如您所看到的,我们的 PLC 中有 8 个 DI 点,其中 6 个可用于编码器等 HSC(高速计数)输入。它还告诉您输入电压为 24vdc,这意味着您不能将输入的交流传感器直接连接到 PLC。

      图 7 – 我们的 PLC 中提供数字输出。
      如果 PLC 有模拟 IO,那么数据表中也会提及。见图8

      图 8 – 模拟 IO 描述。
      通讯接口和协议
      数据表中还将提及 PLC 中可用的通信接口以及它可以支持的通信协议。见图9。

      图 9 - PLC 的通讯接口。
      可以看到,我们的 PLC 只有一个通讯接口,就是作为 RJ-45 端口提供的 PROFINET 接口。然而,PLC 本身可以支持许多通信协议,例如 PROFIBUS 和 AS-Interface。见图10。

      图 10 – 支持的通信协议。
      环境条件
      这是您应该了解的有关 PLC 的另一个非常重要的数据,因为它将有助于确定最适合您的 PLC 的外壳和冷却类型。见图11。

      图 11 – PLC 的环境条件。
      阅读 PLC 数据表的重要注意事项
      并非所有 PLC 数据表都包含相同的信息,因为不同的 PLC 将具有不同的特性和功能,因此要显示的信息也不同。
      并非数据表中的所有信息对您都很重要,这取决于您是 PLC 程序员还是我们之前提到的安装工程师。
      如果您不理解数据表中的某些信息,也没关系,正如我们所说,数据表将提供有关您的 PLC 支持的几乎所有功能的信息,您可能不知道其中一些功能,甚至可能从未了解过 需要使用它。例如,OPC UA 或 Web 服务器功能。因此,如果您发现一些您不理解的数据,并不一定意味着您的 PLC 不适合您的项目。
      结论
      阅读 PLC 数据表对于帮助确定 PLC 是否适合您的应用非常重要。确定可以使用的 IO 类型和电源额定值也很重要。
      尝试阅读不同 PLC 型号的数据表,看看您是否能理解数据表中提供的基本信息。

    • 在这篇文章中,我们将讨论当您开始对 PLC 进行编程时经常出现的一个主要问题,即固件版本的常见错误以及如何处理它们。
      内容:
      PLC 的固件版本是多少? 为什么固件版本会引起问题? 如何知道硬件 PLC 的固件版本? 如何处理固件版本错误? 结论。 PLC 的固件版本是多少?
      PLC 或 PLC 模块(IO、通信模块等)的固件只是安装在 PLC 中的内部软件,负责硬件的实际功能。
      固件版本将决定您的 PLC 具有哪些内部功能,例如安全协议、内部优化功能、更好的时间处理以及其他不同的特性和功能。
      具有旧固件版本的 PLC 将比新固件版本的 PLC 具有更少的功能和内部功能。
      图 1 和图 2 向您展示了相同的硬件 PLC 在安装不同固件版本时如何具有不同的功能和性能。

      图 1 – 固件版本 V4.0

      图 2 – 固件版本 V4.4
      您是否注意到,现在只需更新到更高的固件版本,同一 CPU 就可以添加更多功能?借助更高版本的固件 V4.4,CPU 现在在其性能能力中添加了 OPC UA 等功能。
      为什么固件版本会引起问题?
      看,您通常通过选择 PLC 来启动 PLC 项目,然后开始编程。
      您将根据以下两点之一在 TIA Portal 中选择 PLC:
      您已经购买了硬件 PLC,因此您将选择与 TIA Portal 项目中实际拥有的相同的 PLC。 您还没有购买 PLC,因此您将在 TIA Portal 中选择符合您要求的 PLC,然后再购买。 在这两种情况下,如果 TIA Portal 项目中选择的 PLC 固件版本与实际硬件的固件版本不同,则会出现问题。而且您的程序甚至不会下载到硬件 PLC 中。
      因此,您应始终确保实际 PLC 的固件版本与 TIA Portal 中选择的 PLC 相匹配。
      值得一提的是,如果 TIA Portal 中选择的固件版本比实际 PLC 旧,您的程序不会遇到任何问题,您将失去一些 PLC 特性和功能,但您的程序将正常工作 。
      如果相反,就会出现问题,如果 TIA Portal 中选择的固件版本比实际 PLC 更新,那么就会出现问题。
      因此,如果您不知道硬件的固件版本,则应在 TIA Portal 项目中选择旧版本。
      如何知道硬件 PLC 的固件版本?
      我们可以通过以下两种方法之一了解我们拥有的硬件 PLC 的固件版本:
      从 PLC 本身
      任何 PLC 模块的固件版本始终写入硬件设备上的某个位置。请参阅接下来的图片。

      图 3 – 固件版本 FS:04

      图 4 – 固件版本为 V7.0.5
      从 TIA Portal 软件
      使用 TIA Portal 软件,您可以将 PLC 连接到 TIA Portal 并搜索设备,然后您可以找到硬件设备的固件版本,请参阅以下步骤。
      您甚至不必创建一个新项目;只需 TIA Portal 的项目视图就足够了,见图 5。

      图 5 – 未创建项目的 TIA Portal 的项目视图。
      通过在线访问搜索您的 PLC。由于 TIA Portal 和 PLC 之间是通过以太网电缆连接的,因此我们将使用以太网连接选项。双击更新可访问设备开始搜索您的 PLC。见图6。

      图 6 – 更新可访问设备以搜索您的 PLC。
      如果 PLC 和 TIA Portal 之间存在连接,则软件应找到您的 PLC。见图7。

      图 7 – 软件已找到您的 PLC。
      现在,双击在线和诊断以显示 PLC 的信息。见图8。

      图 8 - PLC 在线信息。
      从常规属性中,您可以找到 PLC 的固件版本,如上图所示。
      您还可以从“功能”属性中找到固件版本。见图9。

      图 9 – 功能属性中的固件版本。
      如何处理固件版本错误?
      首先,让我们创建一个固件版本错误场景,然后我们将了解如何处理和修复此错误。
      我们将首先创建一个新项目,然后添加一个新设备,在此 PLC 示例中,我们将有意选择比实际硬件 PLC 更新的固件版本。我们知道我们的 plc 固件是 V4.0,但是在 TIA Portal 中我们将选择 V4.4 固件版本。见图10。

      图 10 – 添加具有更高固件版本的新 PLC。
      按“确定”添加您的设备,就这样,您已经创建了一个会导致固件错误的情况。为了看到这一点,让我们尝试将项目下载到我们的 PLC 中。
      请注意,我们甚至还没有编写任何代码。只需下载到 PLC 即可。见图11。

      图 11 – 下载到 PLC 失败,固件不兼容。
      从上图可以看出,一旦尝试将项目下载到PLC,就会出现错误,指出 PLC 和 TIA Portal 的固件版本不匹配。
      如果您尝试上网,甚至可以看到它。见图12。

      图 12 – PLC 处于错误状态。
      要解决此错误,我们只需将 TIA Portal 项目中选择的 PLC 的固件版本更改为旧版本或与实际硬件 PLC 相同的固件即可。
      为此,我们转到 PLC 的属性页面,然后从常规属性中选择更改固件版本。见图13。

      图 13 – 更改固件版本选项。
      按下更改固件版本按钮后,将出现更改设备窗口;在此窗口中,您将能够更改固件版本。见图 14。

      图 14 – 更改设备窗口。
      在更改设备窗口中,您将看到您之前选择的当前设备以及您需要将其固件与您实际拥有的设备进行匹配的新设备。
      请注意,当选择较低的固件(例如 V4.3)时,窗口底部的信息将向您显示在降级到较低固件时丢失的功能,如上图所示。
      现在,将新设备的固件更改为 V4.0 版本的硬件 PLC。请注意,仅仅选择较低的固件,PLC 就失去了多少特性和功能。见图 15。

      图 15 – 匹配硬件 PLC 和软件之间的固件。
      按“确定”确认更改,然后尝试再次将项目下载到 PLC。您会注意到,现在项目将被加载到 PLC,没有任何错误。见图16。

      图 16 – 项目被加载到 PLC 中。
      将项目成功加载到 PLC 表明固件版本错误现已修复。您还可以在线查看 PLC 项目的在线视图。见图17。

      图 17 – 该项目的在线视图。
      您在上图中看到的绿色勾号和圆圈表示软件和硬件的所有配置都匹配并且彼此兼容。
      结论
      在 TIA Portal 中创建新项目时,固件版本错误是非常常见的问题。
      最佳实践是了解您所拥有的硬件设备的固件版本,并将其固件与 TIA Portal 中选定的设备进行匹配。
      如果您不知道硬件设备的固件,则应选择 TIA Portal 中所选模块的最旧版本。避免您的项目出现任何固件问题。

    • 在本文中,我们将介绍 TIA Portal 和西门子 PLC 中的时钟存储器位。我们将展示如何启用内存位的使用,以及它如何帮助您避免编码大量逻辑线以获得 PLC 内部已完成的简单功能。
      内容:
      什么是时钟存储器位? 需要时钟存储器位。 在我的项目中启用时钟内存。 简单的程序示例。 程序模拟。 结论。 什么是时钟存储器位?
      时钟存储器是一种以 1:1 的比率周期性地改变其二进制状态的位存储器。这仅仅意味着它以预定义的频率定期在 true 和 false 之间更改其状态。
      CPU 中预定义了 8 个时钟存储器位,这就是它们也称为时钟存储器字节的原因。
      当您启用内存字节并分配时钟内存参数时,您可以决定 CPU 的哪个内存字节将成为时钟内存字节。
      对时钟存储器位的需求
      您不一定需要时钟存储器,因为您可以创建自己的逻辑并实现相同的功能。然而,当您需要此类功能时,将其放在口袋里是一件好事。因为为 8 个时钟存储器位创建 8 个独立的逻辑将花费您的一些时间和精力,并且可能会使您的程序变得不必要的大。
      例如,您可以使用时钟存储器来激活闪烁的指示灯或启动定期重复的操作,例如记录实际值。
      时钟位存储器字节的每一位都被分配一个频率。参见下表。
      时钟存储器字节的位 7 6 5 4 3 2 1 0 周期(秒) 2.0 1.6 1.0 0.8 0.5 0.4 0.2 0.1 频率(赫兹) 0.5 0.625 1 1.25 2 2.5 5 10 表 1. 根据 TIA Portal 帮助手册的时钟存储器位频率。
      在西门子 PLC 中启用时钟存储器
      要在逻辑中使用时钟存储器位,您需要从 CPU 的属性中启用时钟存储器字节的使用。见图1。

      图 1 – 启用时钟存储器字节
      您可以选择要分配给时钟存储器的字节地址,只需确保它不与 PLC 逻辑中的任何其他存储器字节冲突即可。
      从图中可以看出,我们选择了地址 0,因此如果您需要使用 2Hz 时钟位,您将使用位 %M0.3
      Tia Portal 传送带示例程序
      在上一篇文章中,我们使用了一个简单的示例,即传送带在传送带的起点和末端之间移动产品。当皮带运行时,LED 指示灯会亮起。见图2。

      图 2 – 简单的传送带系统
      我们将使用相同的示例,但这次我们将使用时钟内存位使 LED 更加直观。这次我们将使用带有 LED 的时钟存储器位来指示过程的不同情况。
      流程说明
      在由 PLC 控制的传送带系统中,传送带的两端有两个存在传感器来检测产品的存在,当在传送带的起始处检测到产品时,可以通过启动来启动传送带 按钮,当产品到达末端时,皮带将自动停止,并且不会再次运行,直到在开始时再次检测到新产品并按下“开始”按钮。
      根据系统的当前情况,指示 LED 应该具有多种行为。
      这些情况如下:
      如果传送带起始处有产品,但尚未按下 START,则 LED 应以 0.5Hz 的频率闪烁。 如果传送带正在移动产品,LED 应以 2Hz 的频率闪烁。 当产品到达传送带末端时,LED 应亮起 当产品从末端取出时,LED 将熄灭。 项目 IO
      我们有 4 个数字输入,如下所示:
      启动:启动按钮以运行输送机。 停止:停止按钮可随时停止输送机。 P1:皮带起始处的存在传感器。 P2:皮带末端的存在传感器。 我们还有 2 个数字输出,如下所示:
      电机:启动后,传送带将开始运行。 LED:将按照前面提到的顺序激活。 程序代码
      首先,我们选择 PLC 并分配 IO 标签。见图3

      图 3 – 分配输入和输出标签
      不要忘记启用时钟存储器字节的使用,如图 1 所示。
      我们将有两个代码网络,一个用于控制传送带,另一个用于 LED 逻辑。逻辑见图4和图5。

      图 4 - 传送带的控制逻辑

      图 5 - LED 的控制逻辑
      正如您所看到的,使用时钟存储器位使逻辑变得简单且易于阅读。想象一下,如果您在不使用这些位的情况下创建相同的逻辑,您将使用大量计时器,并且您的逻辑将相当复杂。
      程序模拟
      我们之前解释过如何使用 PLCSim 来模拟我们的代码。在此示例中,我们将使用模拟序列来创建与实际过程相同的序列,并查看 LED 行为是否与预期功能匹配。
      首先编译我们的代码并开始新的模拟。见图6。

      图 6 – 程序模拟
      如您所见,LED 现在已关闭;传送带的起点或终点没有产品。
      我们创建了一个模拟序列,并观察 LED 对不同工艺条件的反应。请看下面的动画。

      看看您是否能注意到 LED 行为如何随不同过程条件而变化。
      结论
      时钟存储器位以预定义的频率打开和关闭。 当您需要激活闪烁的指示灯或启动定期重复操作时,它们非常有用。 使用时钟存储器位可以节省您通过自己的逻辑获得相同功能所需的时间和精力。

    • 在本文中,我们将讨论 PLC 中的模拟输入信号处理以及如何在自动化过程中处理这些信号。
      内容:
      什么是模拟输入信号? S7-1200 和 1500 中的输入模拟量处理。 S7-300 和 400 中的输入模拟量处理。 哪些最适合控制?– 模拟或数字信号 结论。 什么是模拟输入信号?
      在我们深入了解如何在 TIA Portal 中处理模拟输入信号之前,我们首先了解模拟输入。
      任何自动化系统都需要输入信号来了解流程的状态,以便能够做出保持流程运行和稳定的决策。这些输入信号是离散或数字输入信号,其形式为 0 或 1 值。另一种类型的输入是模拟信号。
      模拟信号只是系统中物理量的连续表示,因此如果您需要监控过程中的温度或压力,模拟信号将为您提供与物理量的实际变化相对应的连续和瞬时值。
      模拟信号有多种标准形式,但最常见的是 0-10V 或 4-20mA。这取决于您使用的模拟传感器的类型,并且还决定您可以使用的 PLC 模拟模块的类型。
      假设模拟压力传感器的测量范围为 0-10 bar,输出为 4-20mA。通常,模拟信号在被测量的物理量和相应的输出之间具有线性关系。
      这意味着如果传感器测量 0 bar,它将给出 4mA 信号,如果传感器测量 10 bar,它将给出 20mA 信号,并且两者之间的信号也将是线性的。见图1。

      图 1 – 模拟信号表示。
      PLC 还是看不懂 4-20mA 的物理量,这就到了 PLC 模拟量模块的使用。模拟模块将对这种表示形式进行另一次转换,以便 PLC 能够真正理解它。
      模拟模块会将模拟 mA 测量值转换为数字值,具体取决于模块的类型,但对于西门子 PLC,这些值始终在 0 – 27648 范围内。因此,如果传感器测量 0 bar,则输出将为 4mA,在PLC内部会转换为0值。见图2。

      图 2 – 输入信号的模数转换
      然后,PLC 将根据您的编程将 0-27648 值转换为等效的物理测量值,我们稍后将对此进行介绍。见图3。

      图 3 – PLC 内部缩放后的测量值。
      温度的模拟处理有很大不同,因为温度传感器的物理变化行为不像液位或压力传感器那样呈线性。这就是为什么不同类型的温度传感器有标准化表格来告诉哪个温度对应于哪个传感器值。
      这就是为什么在进行温度测量时,您会选择 PLC 的特殊类型的输入模块,其中这些标准表是内部定义的,您可以直接获得与传感器测量相对应的温度值。
      这就是为什么您找不到上面写有电压或电流测量范围的温度传感器。您只会找到所写的传感器类型,例如 PT100、PT1000、KTY84、PTC 等。
      S7-1200 和 1500 中的模拟输入处理
      为了了解如何在现代 S7 系列 PLC 中处理模拟信号,我们首先创建一个新项目并添加 S7-1200 CPU。我们还将添加一个模拟输入/输出模块。见图4。

      图 4 – 添加模拟输入模块。
      现在,让我们定义我们的输入信号标签,我们假设一个压力传感器可以测量 0 到 10 bar 之间的压力,并给出 4 到 20mA 之间的相应信号。
      我们将在输入模块的第一个标签中定义该输入信号。见图5。

      图 5 – 定义输入信号标签。
      正如我们之前所说,输入模块可以处理不同的输入信号,无论是0-10V还是4-20mA,因此我们需要为我们的传感器分配正确的配置。
      正如我们所说,压力信号以 4-20mA 的形式给出,因此我们将为此配置我们的输入通道。见图6。

      图 6 – 配置输入通道
      现在我们完成了硬件配置部分,我们将开始编写处理代码。为此,我们将创建一个函数 FC,以便每次有模拟信号需要处理时都可以重用它。在该 FC 内,我们将创建处理模拟信号并将其转换为物理测量值的逻辑。
      在 TIA Portal 中,我们可以使用预定义的指令来执行此操作,这些指令是 NORM_X 和 SCALE_X 指令。见图7。

      图 7 – NORM_X 和 SCALE_X 指令
      如您所见,NORM_X 会将模拟输入标准化为 0 到 1 之间的值,然后 SCALE_X 将用于将此标准化值缩放到测量的物理值的范围,在我们的传感器情况下为 0 到 10 之间 酒吧。
      我们使用函数 FC,而不是直接在主 OB1 中编写代码,以使我们的代码可与任何模拟信号重用。每次我有一个新的模拟输入信号时,我只需将 FC 块拖放到我们的主 OB1 中,然后写入所需输入的相关参数。见图8。

      图 8 – 拖放您的 FC。
      当您将 FC 拖放到主 OB1 中时,系统会要求您提供该函数调用的关联参数。
      在我们的例子中,输入信号是压力传感器,ScaledMIN 和 ScaledMAX 是 0-10 bar 的测量值范围。见图9。

      图 9 – 为我们的压力传感器分配功能参数。
      如果我有一个新的模拟输入,那么我不必再次重新创建 PLC 逻辑,我只需将 FC 拖放到主 OB1 中并分配新的传感器参数即可。
      假设我们现在有一个新的模拟传感器,用于测量水箱内水位的 0 % 到 100 % 之间。我们将执行与之前相同的步骤,从定义新的输入标签开始。见图10。

      图 10 – 定义新的液位传感器
      接下来,我们将像图 6 中那样配置液位传感器的输入通道。我们将假设相同的配置。
      接下来,我们将拖放我们创建的 FC,并分配液位传感器的参数。见图11。

      图 11 – 重新使用带有液位传感器的 FC。
      正如您从上图中看到的,这是在逻辑中使用函数 FC 的众多优点之一,因为它有助于减少我们的编程量。
      现在,您拥有了一个通用代码,可以与 PLC 项目中所需的任何输入模拟信号一起多次重复使用。
      请参阅西门子 PLC 中输入信号处理的下一个仿真。

      S7-300 和 S7-400 中的模拟输入
      要了解如何在 S7-300 等较旧的 S7 系列 PLC 中处理模拟信号,我们首先创建一个新项目并添加 S7-300 CPU。
      所选的 PLC 已经有足够的模拟量输入通道,所以我们不再添加任何模拟量模块。见图12。

      图 12 – 添加 S7-300 PLC。
      然后我们将定义新的模拟传感器标签,我们将假设压力传感器的测量范围在 0 到 100 bar 之间,输出为 4-20mA。
      我们将像之前对 S7-1200 所做的那样配置 PLC 输入通道,以适应我们的模拟输入传感器。见图13。

      图 13 – 配置输入通道。
      现在到PLC编码部分,s7-300中用于处理模拟量处理的指令与 s7-1200不同。
      在S7-1200 PLC中,我们必须使用NORM_X和SCALE_X。但对于S7-300,我们没有标准化指令,仅使用SCALE指令。见图 14。

      图 14 – S7-300 中的 SCALE 指令
      从上图可以看出,S7-300 中的 SCALE 指令有点类似于 NORM_X 和 SCALE_X 指令组合在一起。还有一个更明显的区别是双极性输入。
      BIPOLAR 输入用于指示 IN 参数的值是否被解释为双极或单极。该参数可以采用以下值:
      BIPOLAR = 1,则假定输入整数值介于 -27648 和 +27648 之间。例如,当模拟传感器给我们提供 -10V 至 +10V 范围内的输出时 BIPOLAR =0 则假设输入整数值介于 0 到 27648 之间。例如,当传感器给我们提供 0-10V 范围内的输出时 这就是在 S7-1200 和 S7-300 PLC 中处理模拟输入信号的简单方法。
      哪些最适合控制? – 模拟或数字信号
      看,这两个信号对于任何自动化系统都至关重要且有用,但如果可以的话,我个人更喜欢使用模拟信号,因为对过程物理量进行模拟信号测量将使我能够持续监控过程参数,这将使我能够更好地 跟踪和控制我的流程。
      此外,对参数进行连续监控将使我能够为不同的信号值设置不同的控制逻辑,这将使您更容易获得用于控制过程的值范围以及用于过程偏离正常操作的警报和警告的另一个值范围 。
      结论
      模拟信号是系统中物理量的连续表示。 模拟输入通常提供 0-10V 或 4-20mA 范围。 模拟信号处理是指将模拟 4-20mA 信号转换成与真实物理量相对应的、PLC能够理解的一系列数值。 在现代 S7 系列 PLC(如 S7-1200)中,处理模拟信号是使用 NORM_X 和 SCALE_X 指令完成的。 在 S7-300 等较旧的 S7 系列 PLC 中,处理模拟信号是使用 SCALE 指令完成的,该指令基本上是 NORM_X 和 SCALE_X 指令之间的组合。

    • 在本文中,我们将展示如何使用西门子 Tia Portal 软件将程序从物理 PLC 备份到您的计算机。
      内容:
      为什么需要备份? 如何从 PLC 进行备份? 关于从 PLC 备份的注意事项 结论 为什么需要备份?
      想象一下,如果您在使用软件时不小心从 PC 中删除了软件。或者您可能需要对已运行 10 年的某些流程软件进行更新,并且您不再拥有软件代码。
      与其从头开始重写整个代码,不如直接上传当前代码并对其进行更改,这样会更容易。
      在本文中,我们将展示如何轻松地将 PLC 中包含的软件上传到您的 PC。
      如何从 PLC 进行备份?
      与使用 S7-300 或 S7-400 等旧控制器相比,使用新型西门子控制器 S7-1200 和 S7-1500 的 TIA Portal 在备份时具有更多优势,使用旧控制器时,您可以进行备份,但不会显示任何注释或寻址详细信息,软件可以正常工作,但难以阅读或理解。
      使用较新的 PLC 控制器,您现在可以上传代码以及所有相关的寻址和注释,这将使阅读代码变得非常简单,并可以对其进行任何更新。
      从 PLC 上传软件的步骤
      创建一个新项目,但与我们通常所做的不同,我们不会添加新设备,而是按 “在线” 并选择 “将设备上传为新站”。见图 1。

      图片 1 – 将设备上传为新站。
      这将带您将设备上传到 PG/PC 窗口。参见图片 2。

      图片 2 – 上传设备窗口。
      您需要选择上一张图片中所示的 PG/PC 接口类型,然后按“开始搜索”。
      搜索完成后,您将看到软件找到的所有设备。请注意,不必只查找 PLC;您还可以找到 HMI、IO 模块以及软件可以检测到的所有其他通信模块。参见图片 3。

      图片 3 – 扫描完成并找到设备。
      扫描完成后,您可以选择需要上传的 PLC,然后按“上传”。这将开始将软件从 PLC 上传到您的 TIA Portal。参见图片 4。

      图片 4 – 从 PLC 上传完成。
      从上一张图片中可以看到,保存在 PLC 上的完整项目将上传到您的 TIA Portal。甚至包括所有注释和地址。参见图片 5。

      图片 5 – PLC 项目已上传
      如您所见,整个 PLC 项目已从 PLC 上传到您的 PC。包括所有块、注释和项目配置。
      关于从 PLC 备份的注意事项
      如果您的 PC 和 PLC 具有不同的 IP 地址,TIA Portal 将要求您为 PC 分配一个与 PLC 寻址相匹配的新 IP,如果您允许,它甚至会自动执行此操作。
      如果 PLC 上的项目受密码保护,则在上传步骤开始之前会要求您输入此密码,如果您无法提供正确的密码,则上传将无法启动。请确保您知道该密码(如果有)。
      有时,TIA Portal 会找到您的 PLC,但由于各种原因无法上传项目,例如,PLC 上的项目是用与您当前使用的 TIA Portal 版本不同的版本编写的。无论哪种情况,都会向您显示上传失败的原因,一旦这些原因被清除,您就可以上传。
      结论
      您可以使用 TIA Portal 将 PLC 上的项目上传到您的 PC。 如果 PLC 是 s7-1200 或 s7-1500,则将上传项目以及所有相关寻址和注释。 如果有任何原因阻止 TIA Portal 上传项目,TIA Portal 会向您显示此原因,一旦您解决问题,您就可以上传。

    • 当您听说 PLC 编程时,其中使用的五种语言是 - 梯形逻辑、结构化文本、功能框图、顺序流程图和指令表。任何语言,一旦理解,都可用于编写应用程序代码并正确运行机器。
      最佳 PLC 编程语言

      图 - 示例梯形逻辑
      但通常,新的 PLC 程序员会对使用什么来编写程序感到困惑。如果他了解一种语言的优点和缺点,那么他可以轻松确定使用什么来编写 PLC 程序。因此,有必要了解它们之间的区别并确定使用哪种语言进行编码。在这篇文章中,我们将看到哪种语言最适合 PLC 编程。
      梯形逻辑
      梯形逻辑是最基本的 PLC 编程语言类型。它可以很容易地与电气接线控制图相关联。传统上,电气控制接线用于根据提供的输入来操作输出。
      由触点和线圈组成的梯形逻辑图在梯形逻辑编程中以相同的方式实现。您有一系列梯级,每个梯级都有触点和线圈。当梯级通电时,线圈会根据其类型相应地运行。
      您可以在程序中编写任意数量的梯级,代码将相应地执行。当您看到它时,它与梯子相似,因此,它被命名为梯形逻辑。请参阅下图以了解。你可以看到它是多么简单。

      在上图中,与继电器逻辑图中的开关设备相关的输入在梯形图中显示为触点。继电器逻辑图中的M1输出线圈在梯形图中用输出线圈符号表示。
      梯形图中每个触点/线圈符号上方出现的地址号是指逻辑控制器的外部输入/输出连接的位置。因此,在两个末端电源轨之间,您可以放置所需的元素并在其中写入逻辑。梯级以循环方式从上到下执行。
      结构化文本
      结构化文本可以说是本地 IT 级语言。结构化文本语言的相似性与我们用软件语言编写的代码非常相似。顾名思义,结构化文本是以赋值方式编写的一系列文本。
      指令必须以分号结尾。执行赋值时,单个或多元素变量的当前值将由表达式求值的结果替换。
      赋值由左侧的变量规范、后跟赋值运算符:=、后跟要求值的表达式组成。两个变量(赋值运算符的左侧和右侧)必须具有相同的数据类型。请参阅下图进行理解。 

      如您所见,它具有不同类型的操作和条件。在上面的示例中,if-else 语句用于求值表达式。如果条件为真,则输出端分配的变量将打开,当条件为假时,变量将关闭。因此,ST 语言最适合数学计算,因为它看起来很简单易懂。
      顺序流程图
      当您想要以重复或顺序的方式编写复杂程序时,顺序流程图是最先进的工具。顾名思义,SFC 语言允许您通过流程图编写程序。它以步骤、分支、链接、跳转和转换的方式工作。 
      SFC 部分是“状态机”,即状态由活动步骤创建,转换传递切换/更改行为。步骤和转换通过定向链接相互链接。
      两个步骤永远不能直接链接,必须始终由转换分隔。活动信号状态过程沿着定向链接进行,并通过切换转换触发。请参阅下图以了解。 

      链式流程的方向遵循方向链接,从前一步的末尾运行到下一步的顶部。分支从左到右处理。每个步骤都有零个或多个操作。
      每个转换都需要一个转换条件。链中的最后一个转换始终连接到链中的另一个步骤(通过图形链接或跳转符号)以创建闭环。因此,步骤链是循环处理的。
      功能框图
      功能框图 (FBD) 语言通常用于微处理器,在 PLC 编程中也有类似的格式。它是相互连接的块的图表,每个块都有其输入和输出。 
      FBD 语言非常容易排除故障,因为您可以在一个视图中直接查看整个代码,而不必上下滚动。这有助于快速维护,还可以提高编程效率。请参阅下图以了解。 

      如您所见,您可以通过线路轻松连接各种类型的功能和块,这显示了逻辑中的流程。您只需分配输入和输出引脚,连接这些引脚之间的线路,您的代码就会相应地工作。
      指令表
      用指令表语言编写的程序由一系列由逻辑控制器按顺序执行的指令组成。
      每条指令由单个程序行表示,并由以下组件组成 - 行号、仅可在线查看的当前值、指令运算符和操作数。请参阅下图以了解。 

      你可以看到每一行只执行一个操作。与梯形逻辑中使用的触点和线圈不同,你拥有相应的加载指令和设置/重置指令。它是梯形逻辑和结构化文本的混合体。这就是为什么它也被称为类似于汇编语言的原因。当你在PLC 上线时,你可以在这个窗口中看到动画值。
      当我们看到这五种语言时,我们发现程序员最常用的是梯形逻辑、结构化文本和功能框图。每种语言都有其优点和缺点。但是,这三种语言都很容易理解、解释和设计。这有助于程序员正确地设计逻辑。
      这并不意味着剩下的两种语言没有被使用。这取决于程序员使用什么来实现编码的技能。所以,很难评论哪种语言最好;但是,在这三种语言中,梯形逻辑也是最常用的。

    • 开发 PLC 逻辑时,您总是需要定时器和计数器。自动化过程中的任何循环如果没有使用定时器和计数器通常都是不完整的。您需要它们在一定时间后执行任务或将任务保持开启/关闭一段时间。其用途取决于要开发的应用程序。
      并且,在深入研究 PLC 的高级指令之前,程序员必须首先了解这些基本块,以便正确实施它们并获得帮助以更轻松地学习高级块。
      在本文中,我们将了解 PLC 编程中定时器和计数器之间的区别。
      什么是定时器?
      定时器是一种用于在一定延迟后打开或关闭输出的指令。例如,如果您想在 5 秒后打开一盏灯,则使用定时器执行此任务。
      定时器将接受输入,当输入打开时,其计时将开始。5 秒后,定时器输出将打开,从而间接打开灯。我们正在谈论的是该类型的普通定时器。
      定时器有两种类型——定时器关闭和脉冲定时器。简而言之,基本功能是相同的——在一定延迟后执行任务。

      请参考上图以更正确理解。定时器有四个输入和输出——输入、设定值、当前值和输出。输入接受启动定时器的条件,设定值用于获取设定的定时器值,当前值显示当前运行的定时器值,输出用于打开或关闭与其连接的变量。
      当 PLC 定时器获得输入时,如果设定值为 5 秒,则定时器从 1、2 和 3 开始,依此类推,直到 5。当 5 秒完成后,输出打开。当输入关闭时,定时器的当前值立即变为零。
      无论定时器是否正在运行;如果输入关闭,则定时器不会启动,其输出和当前值将为零。这是 TON(定时器开启延迟)定时器的功能。
      什么是计数器?
      计数器是一种指令,用于在达到设定的计数后打开输出。计数可以递增或递减。
      例如,如果您想在按下按钮五次后打开灯,则使用计数器执行此任务。计数器将接受输入,当输入打开时,其计数将递增为 1。
      当输入关闭时,不会发生任何事情。当它再次收到输入时,计数将递增为 2。计数 5 过去后,计数器输出将打开,从而间接打开灯。我们谈论的是计数器向上类型。
      计数器还有一种类型 - 计数器向下。简而言之,基本功能是相同的 - 在一定计数后执行任务。

      请参阅上图以更正确理解。计数器有五个输入和输出 - 计数输入、复位输入、设置值、当前值和输出。计数输入接受计数条件,复位输入接受计数器复位条件,设定值用于获取设定的计数器值,当前值显示当前运行的计数器值,输出用于打开或关闭与其连接的变量。
      当计数器获得计数输入时,如果设定值为 5,则计数器递增为 1,依此类推,直到 5;在计数输入中收到每个脉冲时(意味着计数输入必须打开和关闭 5 次)。完成 5 次计数后,输出打开。
      现在,即使给出计数输入脉冲,计数器也会在 5 之后继续增加,输出也将保持打开状态。要再次将计数器状态恢复为零,您必须提供复位输入。给出此输入后,计数器当前值变为零,输出也会关闭。因此,它类似于锁存型功能。要解锁计数器,您必须重置它。这是 CTU(计数向上)计数器的功能。
      定时器和计数器之间的区别
      PLC 中的定时器和计数器之间的主要区别如下。
      定时器需要连续输入才能打开变量,但计数器不需要连续输入。因此,定时器在连续条件下工作,而计数器在脉冲条件下工作。 如果移除定时器输入,则其输出将返回到零状态;但如果移除计数器输入,则计数器将保持其最后一个值。 定时器没有复位输入,而计数器需要复位输入才能将计数器恢复到其原始状态。 定时器的类型包括定时器开启、定时器关闭和定时器脉冲。计数器的类型包括计数器加法和计数器减法。 定时器设定值可以是秒、分钟或毫秒;但计数器设定值是固定整数。

    • PLC 编程包含多种类型的指令和操作数,用于执行逻辑。最常用的指令之一是计数器。
      计数器用于计数。许多应用都需要计数;例如,即使是像计算一分钟内通过的瓶子数量这样的小逻辑也需要计数器。如果这样一个小应用程序需要计数器,那么自动化技术中就会有许多更大的逻辑类型,这些逻辑使用计数器。因此,这些是 PLC 编程中使用的重要指令类型。
      有两种类型的计数器可用 – 普通计数器和步进计数器。在这篇文章中,我们将了解普通计数器和快速计数器之间的区别。
      什么是普通计数器?
      PLC 中没有正式术语称为普通计数器。它只是一个定义,用于显示两种基本类型的计数器 – 升压和降压。顾名思义,这些指令用于在输入脉冲时计数。
      假设你有一个按钮,你想计算它被按下了多少次。如果你明白我们想要表达的意思,按下意味着只要按下它,它就会保持打开状态。一旦你把它拿开,它就会关闭。
      这意味着它是一个脉冲型输入,计数器只理解这种类型的输入。如果输入持续保持打开状态,那么它就不会计数。只有当输入从打开状态变为关闭状态时,它才会计数,然后再次重复相同的序列。 

      请参阅上图以了解。CU(计数)输入用于在收到输入时增加计数器。由于它是一个触发器,因此当收到脉冲型输入时,计数会增加。PV 输入是设定值。只要没有达到设定的计数,计数器(Q)的输出就会保持关闭状态。当达到设定值时,输出就会打开。
      现在,即使给出了计数输入,计数也会继续增加,输出也会保持打开状态。要关闭它,需要提供复位输入,该输入将复位计数器并使当前值归零。这是计数器的一般工作原理。
      什么是快速计数器?
      快速计数器与普通计数器相同,但唯一的区别是它计数非常快速的输入类型。假设您有一个接近传感器,它在 30 秒内打开或关闭 1000 次。这种快速输入在普通计数器中很难检测到,因为它的扫描时间较短。快速计数器将通过快速计数其输入处接收到的脉冲数来完成这项工作。
      与普通计数器类似,其输出在达到设定值后打开,并且需要复位输入来复位计数器并关闭输出。快速计数器可以在 5 kHz 的频率下工作。
      由于快速计数器功能块由特定的硬件中断管理,因此维持最大频率采样率可能会因您的特定应用程序和硬件配置而异。并非所有 PLC 输入都可以用作快速计数器;它只有一些专用的 PLC 输入用于分配快速计数功能。
      如您所见,这两个计数器之间的唯一区别是运行速度,因为普通计数器不能接受任何快速类型的输入。

    • 在此 PLC 程序中,使用 PLC 编程设计自动门操作,当检测到物体时打开或关闭门。这里的物体只是一辆汽车。
      自动门操作
      下面的模拟显示了自动门系统的操作。

      输入和输出
      类型 设备编号 设备名称 操作 输入 X0 下限 当门到达下限位时亮起。 输入 X1 上限 当门到达上限位时亮起。 输入 X2 门内传感器 当物体接近门时开启。 输入 X3 输出传感器 当物体离开门时亮起。 输入 YO 门上 当 YO 开启时向上移动。 输出 Y1 门下 当 Y1 为 ON 时,向下移动。 输出 Y6 光 Y6 ON 时亮灯。 输出 Y7 蜂鸣器 Y7 打开时发出声音(屏幕上的灯亮起)。 程序说明
      当汽车接近入口时,门向上移动。入口传感器 X2 用于检测汽车是否在入口处。
      汽车驶过后,门就会向下移动。出门传感器 X3 用于检测汽车通过门后是否存在。
      当上限开关 (X1) 激活时,门的向上移动会停止。
      同样,当下限开关 (X0) 接合时,门的向下移动也会停止。
      只要检测到汽车在入口 (入口门传感器 X2) 和出口 (出口传感器 X3) 的范围内,门就会保持向上。
      蜂鸣器 (Y7) 发出蜂鸣声作为门移动的信号。
      当汽车在检测范围内时,在入口门传感器 (X2) 和出口传感器 (X3) 之间,灯 (Y6) 保持亮起。
      门的移动状态通过控制面板上四个指示灯的亮起或熄灭来指示。
      可以手动控制门。可以按下控制面板上的按钮来打开 (⬆门向上) 或关闭 (⬇门向下) 门。
      PLC 编程


    • 在此高级 PLC 逻辑中,检测不同尺寸的零件,并根据箱子尺寸对其进行分类,然后将其放置在托盘中。
      零件不过是不同尺寸的箱子,例如小、中、大。机器人将不同尺寸的箱子随机放置在传送带上。然后系统检测箱子尺寸并移动到相应的传送带并将它们放置在相应的托盘中。
      分拣和配送线 PLC 编程
      以下模拟显示了分拣和配送线系统的操作。

      输入和输出
      类型 设备编号 设备名称 操作 输入 X0 起点(供应) 当检测到零件时亮起。 输入 X1 上 当检测到零件时亮起。 输入 X2 中间 当检测到零件时亮起。 输入 X3 降低 当在右端检测到部件时 ON。 输入 X4 传感器 当在右端检测到部件时 ON。 输入 X5 传感器 当 Y1 为 ON 时,传送带向前移动。 输入 X6 检测部分 当检测到零件位于推杆前面时,ON。 输入 X10 起点(卸载) 卸料机器人位于起始点时亮起。 输入 X11 工件在工作台上 当工件在工作台上时,该信号为 ON。 输入 X12 机器人操作完成 机器人动作结束时ON。 输出 Y1 输送机前进 当Y2为ON时,传送带向前移动。 输出 Y2 输送机前进 当 Y3 为 ON 时,向前移动。 输出 Y3 分拣翼 当 Y4 为 ON 时,传送带向前移动。 输出 Y4 输送机前进 当 Y5 为 ON 时,输送机向前移动。 输出 Y5 输送机前进 Y6 ON 时伸出,Y6 OFF 时缩回。推杆不能在行程中途停止。 输出 Y6 推进器 当 Y7 为 ON 时,机器人将零件移动到托盘。一个过程循环开始。 输出 Y7 卸载命令 当 Y7 为 ON 时,机器人将零件移至托盘。一个过程循环开始。 输出 Y10 红色的 Y10 ON 时亮灯。 输出 Y11 红色的 Y11 为 ON 时亮灯。 输出 Y12 黄色的 Y12 ON 时亮灯。 程序说明
      启动控制面板上的按钮 PB1 (X20) 会触发供应命令 (Y0),从而使机器人开始移动物体。
      一旦机器人完成移动零件并返回其原始位置的任务,供应命令 (Y0) 就会停用。激活供应命令 (Y0) 会推动机器人提供零件。
      激活控制面板上的开关 SW1 (X24) 会促使传送带向前移动。相反,停用开关会导致传送带停止。
      传送带上载有不同尺寸(即大、中、小)的零件,根据上部 (X1)、中部 (X2) 和下部 (X3) 传感器的输入进行分类,并传送到指定的托盘中。
      当分离式输送机上的分拣翼 (Y3) 激活时,大型零件被引导至后部输送机,随后零件在输送机上运输并最终从右边缘下降。
      当分离式输送机上的分拣翼 (Y3) 停用时,中型零件被引导至前部输送机,随后由机器人传送到托盘。
      当分离式输送机上的分拣翼 (Y3) 激活时,小零件被路由到后部输送机。一旦分离式输送机中的检测零件传感器 (X6) 激活,输送机就会停止,零件会被推到托盘上。
      当机器人检测到工作台 (X11) 上的零件时,卸载命令 (Y7) 就会激活。一旦机器人完成其操作,机器人操作完成 (X12) 状态将打开(当零件放置在托盘上时发生),卸载命令 (Y7) 就会停用。
      只要控制面板上的 SW2 (X25) 开关保持激活状态,在以下情况下就会自动供应新零件:
      当机器人开始运输中型零件时。 当托盘上添加小零件或大零件从传送带的右边缘下降时。 显示灯按以下方式闪烁:
      红灯表示机器人正在供应零件。 绿灯表示传送带正在运动。 当传送带静止时,黄灯亮起。  PLC 程序


    • 在此 PLC 编程中,我们使用传感器和传送带按高度对箱子进行分类和分配,并将其放入指定的存储箱中。
      此 PLC 程序根据零件的大小分配指定数量的零件。 
      PLC 按高度对箱子进行分类
      下面的模拟显示了 PLC 逻辑根据箱子高度对箱子进行分类的工作原理。这里有 3 种不同大小的箱子,如小号、中号和大号。
      每种箱子尺寸都有三个存储箱。有三个推杆和三个传送带。每种箱子尺寸都有一个推杆和一个传送带。 

      机器人将箱子随机放置在传送带上。传感器用于检测箱子的尺寸。当相应尺寸的箱子到达那里时,使用传感器启动和停止传送带。
      相应的推杆被激活并将相应尺寸的箱子移动到专用的存储箱中。 
      PLC I/O 列表
      下表列出了该系统的输入和输出。
      类型 设备编号 设备名称 操作 输入 X0 初始点 当机器人处于起始点时亮起。 输入 X1 上 当检测到零件时亮起。 输入 X2 中间 当检测到零件时亮起。 输入 X3 降低 当检测到零件时亮起。 输入 X4 传感器 当检测到零件处于倾斜状态时打开。 输入 X5 传感器 当检测到零件处于倾斜状态时打开。 输入 X6 传感器 当检测到零件处于倾斜状态时打开。 输入 X7 传感器 当在右端检测到部件时 ON。 输入 X10 检测部分 当检测到零件位于推杆前面时,ON。 输入 X11 检测部分 当检测到零件位于推杆前面时,ON。 输入 X12 检测部分 当检测到零件位于推杆前面时,ON。 输出 Y0 供给指令 当 Y0 为 ON 时,供应一份。一个加工循环开始:
      木制零件按 M、S、L、M、M、L、S、S、L、L 的顺序重复。
      输出 Y1 输送机前进 当 Y1 为 ON 时,传送带向前移动。 输出 Y2 输送机前进 当Y2为ON时,传送带向前移动。 输出 Y3 输送机前进 当 Y3 为 ON 时,传送带向前移动。 输出 Y4 输送机前进 当 Y4 为 ON 时,传送带向前移动。 输出 Y5 推杆 Y5 ON 时伸出,Y5 OFF 时缩回。推杆不能在行程中途停止。 输出 Y6 推杆 Y6 ON 时伸出,Y6 OFF 时缩回。推杆不能在行程中途停止。 输出 Y7 推杆 Y7 为 ON 时伸出,Y7 为 OFF 时缩回。推杆不能在行程中途停止。 程序描述
      根据高度和组件分布对箱体进行分类,编写可编程逻辑控制器 (PLC)。
      启动机器人的操作需要按下控制面板上的按钮 PB1 (X20),这将激活机器人供应命令 (Y0)。
      当机器人完成零件移动并返回其初始位置时,机器人供应命令 (Y0) 将停用。传送带移动命令由控制面板上的开关 SW1 (X24) 控制。
      激活开关(将其打开)可推动传送带向前移动,而停用开关(将其关闭)可使传送带停止。
      通过上部 (X1)、中部 (X2) 和下部 (X3) 传感器的输入,对零件进行分类,分为大、中、小尺寸。分类后,零件被传送到指定的托盘中。
      通过激活(打开)零件检测传感器(X10、X11 或 X12)可识别出推进器中零件的存在。
      检测到零件后,传送带停止,检测到的零件被移到托盘上。
      注意:推进器的操作由推进器启动命令控制。接收到 ON 信号后,推进器完全伸出,而 OFF 信号则导致推进器缩回。
      每个托盘应包含特定数量的零件,具体取决于零件的大小。任何超过这些指定数量的零件都会绕过推进器并从右端的传送带中弹出。
      每个尺寸的指定零件数量如下:
      大:3 个零件 中:2 个零件 小:2 个零件 PLC 梯形逻辑


    • 在此高级 PLC 程序中,基于 PLC 的产品分拣机系统用于使用升降机根据尺寸分离零件来运送不同的产品。
      这里有三个基于尺寸的位置,如小、中、大。传送带用于传送产品并将其放置在托盘上。
      基于 PLC 的产品分拣机系统
      以下模拟显示了使用升降机操作的 PLC 分拣系统。

      输入和输出
      类型 设备编号 设备名称 操作 输入 X0 检测到零件时, 上部 ON。 输入 X1 升降机处于较低位置时, 中部 ON。 输入 X2 检测到零件时, 下部 ON。 输入 X3 检测到零件时, 升降机上部 ON。 输入 X4 升降机处于中间位置时, 下部升降位置 ON。 输入 X5 升降机处于中间位置时, 中部升降位置 ON。 输入 X6 零件在升降机上时, 上部升降位置 ON。 输入 X10 检测到零件在左端时, 传感器开启。 输入 X11 检测到零件在左端时, 传感器开启。 输入 X12 检测到零件在右端时, 传感器开启。 输入 X13 检测到零件在左端时, 传感器开启。 输入 X14 检测到零件在右端时, 传感器开启。 输入 X15 升降机处于上部位置时, 传感器开启。 输出 Y0 供给指令 Y0 为 ON 时,供给一个零件:金属圆筒按 S、L、M、L、M、S 的顺序重复。 输出 Y1 输送机前进 当在右端检测到部件时 ON。 输出 Y2 提升指令 Y2 为 ON 时,升降机上升。Y2 为 OFF 时,升降机停止。 输出 Y3 升降指令 当Y3接通时,电梯下降。当Y3为OFF时,电梯停止。 输出 Y4 升降旋转指令 当 Y1 为 ON 时,传送带向前移动。 输出 Y5 下输送机向前 当 Y4 为 ON 时,升降机旋转,将零件传送到传送带上。当Y4为OFF时,升降机旋转回原位。 输出 Y6 中间输送机向前 当 Y5 为 ON 时,输送机向前移动。 输出 Y7 上输送机向前 当 Y6 为 ON 时,传送带向前移动。 程序说明
      整个系统由两个组件组成:常规控制和升降机管理。
      常规控制:
      激活操作面板上的 PB1 (X20) 按钮可启动料斗的供应命令 (Y0)。停用 PB1 (X20) 按钮可关闭供应命令 (Y0)。激活供应命令 (Y0) 后,料斗将输送零件。
      控制面板上的 SW1 (X24) 激活时,传送带开始移动。相反,SW1 (X24) 停用时,传送带停止移动。
      传送带左侧的传感器 X10、X12 或 X14 检测到零件后,相应的传送带启动,将零件运送到右端托盘。零件经过传送带右侧的传感器 X11、X13 或 X15 后三秒钟,传送带停止。
      传送带上不同尺寸(大、中、小)的零件按上部(X0)、中部(X1)和下部(X2)传感器的输入进行分类。
      升降机管理:
      一旦升降机中升降传感器(X3)上的零件被激活,零件将根据其尺寸被输送到以下传送带之一:
      大型零件:导向上部传送带 中型零件:导向中型传送带 小型零件:导向下部传送带 根据升降机的位置管理提升(Y2)和下降(Y3)的命令,由以下传感器检测:
      上部:X6 中部:X5 下部:X4 零件从升降机转移到传送带后,启动升降机旋转命令(Y4)。
      零件转移后,升降机返回其初始位置并保持待命状态。
      PLC 逻辑


    • 舞台控制的 PLC 程序提供幕布的打开和关闭,以及舞台的升降。它提供两种操作模式:自动和手动。
      舞台控制的 PLC 程序
      下面的模拟显示了 PLC 在舞台控制应用中的使用情况。
      这是一个实用项目,我们必须自动打开和关闭舞台幕布,也可以使用按钮手动打开和关闭。传感器用于检测不同点的左右幕布的位置。 

      打开幕布后,舞台将向上移动并升至顶部位置。同样,当幕布关闭时,中央舞台将向下移动。还将使用下限和上限传感器跟踪舞台位置。 
      PLC 设备列表
      下表列出了此 PLC 程序中的所有输入和输出。
      类型 设备编号 设备名称 操作 输入 X0 内部(左幕布 幕布处于一半时为 ON。 输入 X1 幕布完全关闭时 ON 幕布完全打开时 ON。 输入 X2 外侧(左幕布) 幕布完全关闭时 ON。 输入 X3 内侧(右幕布) 幕布打开一半时 ON。 输入 X4 中间(右幕布) 幕布完全打开时 ON。 输入 X5 外侧(右幕布) 舞台到达下限时 ON。 输入 X6 舞台上限 Y2 ON 时舞台向上移动。Y2 OFF 时舞台停止。 输入 X7 舞台下限 舞台到达上限时 ON。 输出 Y0 幕布打开命令 Y0 ON 时幕布打开。Y0 OFF 时幕布停止。 输出 Y1 幕布关闭命令 Y1 ON 时幕布关闭。Y1 OFF 时幕布停止。 输出 Y2 舞台上升 Y2 ON 时舞台上升。Y2 OFF 时舞台停止。 输出 Y3 舞台下降 Y3 ON 时舞台向下移动。Y3 OFF 时舞台停止。 输出 Y5 蜂鸣器 Y5 开启时发出声音(屏幕上的灯亮起)。 程序说明
      PLC 程序控制舞台设置,包括打开/关闭幕布和升高/降低舞台。
      此 PLC 程序的目的是便于控制一系列舞台设置,包括打开和关闭幕布以及升高和降低舞台本身等任务。为了满足不同的偏好和要求,该程序提供了两种不同的操作模式:自动和手动。
      自动操作
      按下操作面板上的“开始”按钮 (X16) 时,蜂鸣器 (Y5) 发出声音,持续时间为 5 秒。
      注意:“开始” 按钮 (X16) 仅在幕布关闭且舞台位于其下限时激活。
      蜂鸣器停止后,打开幕布 (Y0) 的命令被激活。幕布将继续打开,直到达到输入信号 X2 和 X5 定义的外部极限。
      一旦幕布完全打开,当“舞台上升”命令 (Y2) 被激活时,舞台开始上升。舞台将继续向上移动,直到达到其上限,如输入信号 X6 所示。
      按下操作面板上的“结束”按钮 (X17) 可启动幕布的关闭。关闭幕布的命令 (Y1) 被激活,幕布将关闭,直到达到由输入信号 X0 和 X3 定义的内部限位。
      手动操作
      以下操作仅在上述自动操作未激活时可用。 

      可以通过按下操作面板上的“幕布打开”按钮 (X10) 打开幕布。一旦幕布达到其外部限位 (X2 和 X5),幕布将停止。
      可以通过按下操作面板上的“幕布关闭”按钮 (X11) 关闭幕布。幕布将继续关闭,直到达到其内部限位 (X0 和 X3)。
      按下操作面板上的“⬆舞台上升”按钮(X12)可使舞台上升。舞台到达上限(X6)后停止。
      按下操作面板上的“⬇舞台下降”按钮(X13)可使舞台下降。舞台到达下限(X7)后停止。
      操作面板上的指示灯将相应地亮起或熄灭,提供有关幕布和舞台操作状态的视觉反馈。 
      PLC 编程


    • PLC 编程用于控制传送带方向:根据检测到的零件尺寸促进正向或反向移动。识别每个零件的尺寸并确保其分配到指定位置。
      高级 PLC 传送带控制
      当操作员按下按钮时,料斗提供不同尺寸的物体,然后传送带和传感器用于根据物体的大小分离物体。
      推进器用于分离两种不同尺寸的物体。传送带可以向前和向后移动,以根据其专用的存储托盘放置物体。
      机器人用于拾取和放置中型盒子中的物体。
      下面的模拟显示了具有不同盒子尺寸的 PLC 传送带模拟。 

      PLC 输入和输出
      下表列出了此 PLC 项目的输入和输出。
      类型 设备编号 设备名称 操作 输入 X0 上 当检测到零件时亮起。 输入 X1 中间 当检测到零件时亮起。 输入 X2 降低 当机器人处于起始点时亮起。 输入 X3 检测部分 当检测到零件位于推杆前面时,ON。 输入 X4 初始点 当 Y1 为 ON 时,传送带向前移动。 输入 X5 桌子上的零件 当零件位于桌子上时亮起。 输入 X6 机器人操作完成 当检测到零件处于倾斜状态时打开。 输入 X7 传感器 当在右端检测到部件时 ON。 输入 X10 传感器 当在左端检测到部件时 ON。 输入 X11 传感器 当在右端检测到部件时 ON。 输入 X12 传感器 机器人动作结束时 ON。 输出 Y0 供给指令 当 Y0 为 ON 时,供应一份零件:木制零件按 L、M、S、M、S、L 的顺序重复。 输出 Y1 输送机前进 当 Y2 为 ON 时,传送带向前移动。 输出 Y2 输送机前进 当 Y3 为 ON 时伸出,当 Y3 为 OFF 时缩回。推杆不能在行程中途停止。 输出 Y3 推手 当 Y4 为 ON 时,机器人将零件移动到托盘。一个过程循环开始。 输出 Y4 卸载命令 当 Y5 为 ON 时,输送机向前移动。 输出 Y5 输送机前进 当 Y6 为 ON 时,输送机向后移动。 输出 Y6 输送机反向 当 Y6 为 ON 时,输送机向后移动。 程序说明
      按下控制面板上的按钮 PB1 (X20) 时,它会激活料斗的供应命令 (Y0)。一旦释放按钮 PB1,供应命令就会停用。每当执行供应命令时,机器人就会分配零件。
      当控制面板上的开关 SW1 (X24) 激活时,传送带开始向前移动。一旦停用 SW1,传送带就会停止。
      传送带将大、中、小零件(分别由上部 (X0)、中部 (X1) 和下部 (X2) 传感器分类)运送到指定的托盘。
      大部件:导向下部传送带并传送到右侧的托盘。 中部件:由机器人传送到托盘。 小部件:导向下部传送带并传送到左侧的托盘。 当检测部件传感器 (X3) 激活时,传送带停止,大部件或小部件导向下部传送带。
      注意:当推杆的启动命令打开时,它会完全伸出。当启动命令关闭时,推杆会完全缩回。
      当机器人中的工作台上部件 (X5) 传感器激活时,卸载命令 (Y4) 被启用。当机器人操作完成 (X6) 传感器被激活(当部件放置在托盘上时激活),卸载命令 (Y4) 被停用。
      只要控制面板上的开关 SW2 (X25) 处于 ON 状态,在以下情况下就会自动供应新零件:
      当机器人开始处理中型零件时 当将小型或大型零件放入托盘时 PLC 编程传送带正反转控制


    • 计数器是 PLC 编程中非常重要的指令。几乎每个逻辑都需要它。无论是计数某物还是计数事件,计数器都是 PLC 编程的重要组成部分。
      因为事件计数在许多应用程序中都有使用,它可以帮助 PLC 程序员节省编写繁琐代码的时间。但是,很多时候,如果计划不起作用,总是需要找到备用解决方案。
      对于计数器,如果 PLC 程序员无法正常工作,他们也必须知道备用逻辑。为此,可以组合和编写两个指令 - 移动和添加。
      在这篇文章中,我们将学习如何使用移动和添加指令在 PLC 编程中设计计数器。
      计数器
      首先,我们将看到计数器指令的编写方式。请参阅下图。如您所见,计数器有三个输入 - 计数、重置和设置值;并有两个输出 - 完成和当前值。
      需要一个计数输入来为计数器提供计数脉冲,需要一个复位输入来复位计数器,并且需要一个设定值来为计数器提供设定的计数。完成输出用于表示计数器已完成计数,当前值显示计数器到目前为止已计数的当前计数值。 

      当收到计数输入时,计数器会增加一个值。计数输入以脉冲为基础工作,而不是连续工作。当计数器达到其设定的计数时,输出完成位继续。
      然后关闭它的唯一方法是给出复位输入。计数值将在此输入上变为零,计数器因此复位。需要注意的是,即使计数已达到并且您仍然给出计数输入,那么计数也会继续递增。
      您还可以看到在计数器输出之后使用了一个比较块,这允许它传递到要打开的最后一位。如果设定的计数为零,这可以防止最后一位不必要地打开。
      使用移动指令在 PLC 中设计计数器
      现在,我们将了解如何借助移动和添加指令编写相同的代码。请参阅下图。在第一个梯级中,计数输入被添加指令替换。
      如果输入条件为真,则会发生加法,并且还会使用脉冲。必须使用脉冲,否则,将持续进行加法,并且无法对其进行控制。 

      在第二个梯级中,它比较是否已达到设定的计数。它还检查设定的计数是否大于零。
      如果这些条件为真,则输出打开。在第三个梯级中,在收到相应的输入后,计数器值变为零。
      这相当于重置输入的操作。这三个梯级足以复制计数器的功能。您可以根据需要使用计数器或此 PLC 逻辑。但是,需要注意的是,我们也可以通过这种方式编写计数器。
      这样,我们就了解了如何使用移动和添加指令在 PLC 编程中编写计数器。

    • 在上一篇文章中,我们讨论了 PLC 的固件版本以及如何处理由于 TIA Portal 中的项目与实际 PLC 之间的固件不匹配而可能发生的错误。在本文中,我们将展示如何更新 PLC 的固件版本。
      内容:
      什么是固件版本? 为什么固件版本会给我带来麻烦? 如何知道硬件 PLC 的固件版本? 如何处理固件版本错误? 如何更新 PLC 的固件版本? 结论。 什么是固件版本?
      正如我们在上一篇文章中所解释的那样,PLC 或 PLC 模块(IO、通信模块等)的固件只是安装在 PLC 中的内部软件,它负责硬件的实际功能。
      具有较旧固件版本的 PLC 将具有比较新固件版本的 PLC 更少的功能和内部能力。
      图片 1 和 2 向您展示了安装不同固件版本后,同一硬件 PLC 的功能和性能如何不同。 

      图片 1. 固件版本 V4.0

      图片 2. 固件版本 V4.4
      您可以看到,只需更新到更高的固件版本,CPU 现在就拥有了更多功能。使用更高的固件 V4.4,CPU 现在在其性能能力中添加了 OPC UA 等功能。
      为什么固件版本会导致问题?
      您将根据以下两点之一在 TIA Portal 中选择 PLC:
      您已经购买了硬件 PLC,因此您将选择与 TIA Portal 项目中实际拥有的相同的 PLC。 您还没有购买 PLC,因此您将在 TIA Portal 中选择符合您要求的 PLC,然后稍后再购买。 无论是哪种情况,如果 TIA Portal 项目中选择的 PLC 固件版本与实际硬件的固件版本不同,您就会遇到问题。在某些 PLC 中,您的程序甚至不会下载到硬件 PLC 中。
      因此,您应始终确保实际 PLC 的固件版本与 TIA Portal 中选择的 PLC 相匹配。
      值得一提的是,如果 TIA Portal 中选择的固件版本比实际 PLC 旧,您的程序不会出现任何问题,您将失去一些 PLC 特性和功能,但您的程序将正常工作。
      如果情况相反,则会出现问题,如果 TIA Portal 中选择的固件版本比实际 PLC 新,那么您就会遇到问题。
      这就是为什么如果您不知道硬件的固件版本,则应在 TIA Portal 项目中选择旧版本的原因。
      如何知道硬件 PLC 的固件版本?
      我们可以通过以下两种方法之一了解硬件 PLC 的固件版本:
      从 PLC 本身: 任何 PLC 或 PLC 模块的固件版本始终写在硬件设备的某个位置。
      从 TIA Portal 软件: 使用 TIA Portal 软件,您可以将 PLC 连接到 TIA Portal 并搜索设备,然后您可以找到硬件设备的固件版本。我们在上一篇文章中展示了如何做到这一点。
      如何处理固件版本错误?
      如果实际硬件 PLC 的固件版本比 TIA Portal 项目中选择的 PLC 版本旧,这将导致固件错误,为了解决这些错误,我们可以尝试以下方法之一:
      我们可以选择 TIA Portal 项目中的 PLC 与实际 PLC 具有相同或更旧的固件版本。我们在上一篇文章中展示了这一点。 我们可以将实际硬件 PLC 的固件版本更新为比项目中选择的固件版本更高的固件版本,或者至少更新为相同的固件版本。这就是本文的范围。 如何更新 PLC 的固件版本?
      您可以通过两种方式更新 PLC 的固件版本:
      使用 TIA Portal 在线更新。 使用西门子存储卡 SMC 离线更新。 使用 TIA Portal 在线更新固件:
      您无需在 TIA Portal 中打开现有项目,只需安装 TIA Portal 软件并将 PLC 连接到 PC 即可。参见图 3。

      图 3. 打开 Tia Portal 而不创建新项目。
      打开 TIA Portal 后,进入在线访问,选择 PLC 和 PC 之间合适的通信适配器,然后按“更新可访问设备”搜索 PLC。见图 4。

      图 4. 查找您的 PLC。
      找到 PLC 后(如上图所示),打开 PLC 文件夹,按“在线和诊断”查看 PLC 固件版本。见图 5。

      图 5. PLC 的当前固件版本。
      现在,要更新固件版本,请按“固件更新”属性。见图 6。

      图 6. 固件更新页面。
      如您所见,当您按“固件更新”属性时,您可以看到当前固件更新为 V4.1.3,还可以查看固件加载器,您可以在其中浏览要安装的固件版本。
      当然,首先您的 PC 上必须有固件版本,这意味着我们需要下载固件版本。要下载固件版本,您应该登录西门子帐户,如果您没有帐户,您可以轻松创建一个新帐户,但需要 1 到 2 天才能激活。
      之后,您可以搜索 PLC 的固件版本。在我们的例子中,我们有一个 S7-1200 CPU 1214C AC/DC/RLY,我们将使用其文章编号搜索其固件版本。见图 7。

      图 7. 搜索 PLC 的固件版本。
      之后下载您要安装的固件版本,在我们的例子中,我们想将我们的 PLC 更新到 V4.4.0,因此我们将此版本下载到我们的 PC。参见图 8。

      图 8. 下载 V4.4.0
      下载的文件将是一个 zip 文件,您应该解压文件以获取固件版本数据文件,然后返回到固件加载器属性并单击浏览以搜索固件版本。参见图 9。

      图 9. 搜索固件版本文件。
      不要担心在此步骤中犯错,因为如果固件版本与 PLC 不兼容,您将无法运行更新。参见图 10。

      图 10. 如果固件不匹配,更新将无法继续。
      如您所见,当我们尝试将 1215C CPU 的固件版本上传到带有 11214C CPU 的 PLC 中时,它给出了一个错误,即该文件不适合 PLC。
      现在,再次单击浏览,但这次搜索正确的固件版本。参见图片 11。

      图片 11。固件版本正确时没有错误消息。
      如您所见,当我们选择合适的固件版本时,没有错误消息,我们现在可以按 “运行更新” 开始更新我们的 PLC。
      一旦您开始更新过程,就会出现固件更新窗口,如果更新顺利,最后会出现一条成功消息。参见图片 12 和 13。

      图片 12。固件更新正在运行。

      图片 13。固件更新成功完成。
      现在固件版本已更新,请重新按“更新可访问设备”并检查 PLC 固件版本来刷新您的通信。
      您会发现 PLC 的固件版本现在是 V.4.4.0,而不是 V4.1.3,这意味着我们成功更新了 PLC 的固件版本。参见图片 14。

      图片 14。固件已更新至 V4.44.0
      这就是我们使用 TIA Portal 更新 PLC 固件版本的方法。
      离线使用西门子存储卡 SMC:
      另一种更新 PLC 固件的方法是使用西门子存储卡 SMC。
      为此,我们只需下载要使用的固件版本,然后将固件版本从 PLC 复制到 SMC,然后将 SMC 插入 PLC 中的专用插槽。下次打开 PLC 时,固件将被更新。
      结论
      您可以使用 TIA portal 软件或西门子 SMC 存储卡更新固件版本。 确保您选择的固件版本完全正确,如果 PLC 和 TIA Portal 之间不匹配,则更新将无法启动。

    • 在上一篇文章中,我们讨论了 PID 是什么,还解释了 PID 的不同参数以及系统对更改这些参数将如何反应。在本文中,我们将展示如何在 TIA Portal 项目中编程、配置和调整 PID。
      内容:
      如何将 PID 添加到您的逻辑中? 如何配置 PID?                     基本设定过程值设定
                          高级设置
      如何进行 PID 整定?                     PID 预整定
                          微调
      PID 的整定方法有哪些? 如何将 PID 添加到您的逻辑中?
      在 TIA Portal 和几乎所有其他 PLC 平台中,您无需对 PID 控制器进行编程,因为 TIA Portal 已经具有用于 PID 的内置块。要将 PID 添加到您的逻辑中,您只需将 PID 块拖放到您的代码中,然后开始为您的系统配置它。
      将 PID 添加到代码中非常简单,但是,有一个非常重要的点您应该考虑。这是你的 PID 的执行间隔。
      如您所知,主执行周期发生在主循环 OB1 内部,OB1 的周期时间取决于很多因素,例如代码的长度、代码中的数学计算以及循环和序列,所有这些 不同的因素会导致 OB1 的周期时间不仅可能会变长,而且每个周期都会有所不同,具体取决于您所使用的编码。
      这意味着,如果您在主 OB1 内调用 PID 块,则 PID 执行将取决于 OB1 的循环时间,而这不是最佳实践方法。
      PID 通常用于控制压力、温度或速度等物理参数,这意味着您的控制器需要非常快速地找出过程值的任何变化,并采取快速反应来抵消这种变化,并为您提供平稳稳定的结果 PID 应该具有的控制。所以如果 PID 加在主 OB1 上,并且受其执行时间的影响,可能需要动作延迟,这会让你的系统不稳定。
      该怎么办?
      最佳实践是在循环中断 OB 中调用 PID 块,并将该循环中断的循环时间设置为您认为适合您的系统的任何值,通常在毫秒范围内,具体取决于您的应用。这意味着,如果您将循环中断设置为 1 毫秒,则无论主 OB1 周期在哪里,您的 PID 都会每毫秒调用并执行一次。
      因此,为了将 PID 添加到您的逻辑中,我们首先添加一个新的循环中断 OB 并为其指定一个适当的名称。见图1。

      图 1. 在您的项目中添加循环中断。
      从图中可以看到我们将循环时间设置为 1000 微秒或1毫秒。所以我们的 PID 每毫秒都会被调用并执行。
      现在您已将循环 OB 添加到项目中,只需拖放 PID 块即可。您可以在指令选项卡/技术/PID 控制/紧凑 PID 中找到它。见图2。

      图 2. 添加 PID 块。
      现在,将系统参数添加到 PID 块、输入、输出和设定值。见图3。

      图 3.  分配 PID 参数。
      您从上一张图片中注意到了吗,您有 2 个不同的输入和 3 个不同的输出,它们是什么?
      输入:
      这是您以实际物理量表示的过程参数的输入值,我们将使用我们的储罐模拟系统,因此在这种情况下,此处的输入是以升为单位的储罐填充液位。这意味着您已经在项目的其他地方进行了模拟输入缩放,并且只需向 PID 提供以升为单位的实际填充水平。
      输入_PER:
      这是过程参数的输入值,但来自模拟输入模块。这意味着它不会被缩放,并且它将在 0-27648 的范围内,并且输入的缩放将在 PID 内部完成。
      输出:
      在这种情况下,PID 将为您提供最大输出值的 0% 到 100% 范围内的控制器输出值。
      输出_PER:
      与 input_PER 相同,PID 将以 0-27648 的形式给出输出。
      输出_PWM:
      在这种情况下,PID将以ON/OFF脉冲的形式给出其输出信号,因此要么有输出,要么没有输出。ON 时输出值为 100%,OFF 时输出值为 0%。
      我们将使用之前使用的相同坦克模拟系统,正如您从上图中看到的,我们使用了 Input 和 Output_PER,因为我们的模拟就是这样构建的。
      如何配置 PID?
      要进入 PID 的配置视图,您可以单击项目树中的配置选项卡,也可以单击 PID 块本身上方的小配置图标。见图4。

      图 4. 进入配置视图。
      这将带您进入功能视图,您可以在其中配置 PID 的不同设置。见图5。

      图 5. 控制器类型设置。
      第一个配置是控制器类型,在这里您可以选择要使用的控制类型,显示的下拉菜单中有很多选项,例如温度、压力、长度等等。 您还可以将其设置为常规,系统会将您的值视为%。在我们的系统中,我们控制水箱内的水升,因此我们将选择体积。
      您还可以设置 PID 的手动/自动模式。
      接下来,您要配置输入/输出参数。见图6。

      图 6. 输入/输出参数。
      在这里,您可以选择不同类型的输入或输出,正如我们之前所解释的。正如我们所说,我们将使用 Input 和 Output_PER。
      接下来,您需要配置过程值设置。见图7。

      图 7. 过程值限制。
      在此步骤中,您将设置过程值的下限和上限。如果您选择输入类型。然后此设置将开放更改,并且您可以设置流程的限制。在我们的例子中,水箱限制为 0 至 50 升。所以我们将其设置为这些值。
      请注意,如果您选择 Input_PER,则此设置将不可用,您只能从下一个选项卡设置进程限制。见图8。

      图 8. 过程值缩放。
      如果您使用 Input_PER,那么如上图所示,您可以根据 0-27648 的缩放比例设置过程值限制。
      如果您想在过程值达到下限或上限时设置警告,则可以在过程值监控选项卡中进行配置。见图9。

      图 9. 过程值监控。
      接下来在设置列表中您将找到 PWM 限制,见图 10。

      图 10. PWM 限制
      在这里,您可以设置输出的最小开启和关闭时间,假设您的系统中有一个泵或阀门,PID 通过 PWM 输出进行控制,您不希望 PID 只为您的泵提供一个序列 非常快速的开/关行为,因为这可能会导致您的泵烧坏。因此,您可以通过此设置告诉 PID 在关闭泵之前将泵打开最短时间,反之亦然。
      如果您没有下一个设置(输出值限制)的 PWM 输出,您可以使用 PID 进行相同的控制。见图11。

      图 11. 输出值限制。
      您可以控制控制输出的下限和上限,例如,您可以将下限设为 20%,这将使 PID 以至少 20% 的流量运行泵。所以你的控制范围是 20% 到 100%。
      最后也是最重要的,您可以在下一个选项卡“PID 参数”选项卡的配置模式下设置 PID 参数,见图 12。

      图 12. PID 参数。
      如果您知道 PID 增益 P、I 和 D,或者您自己进行了调节并且您从其他地方获得了参数,您可以在此处编写 PID 增益 P、I 和 D 的调节参数。您还可以选择使用 PID 或仅使用 PI 控制器。
      如果您没有这些参数,您可以在调整 PID 后自动上传它们。
      如何进行 PID 整定?
      现在您已完成 PID 配置,您可以从项目树中的调试选项卡轻松调整控制器。见图13。

      图 13.  调试 PID
      在调试页面,您的屏幕分为三个部分,上面的页面是您可以开始预调节和微调 PID 的地方。
      在中间,您将有一个图形区域来显示系统的实时响应。您可以看到控制器输出和过程值。每次设定点发生变化时,您都会看到 PID 捕捉新设定点的行为。即使设定点没有改变,但例如我们的储罐供应需求增加,您也会看到 PID 反应来满足该需求,并将设定点保持在其所需值。
      在第三个区域中,您将看到控制器的在线状态,并且您还可以决定 PID 的运行模式。请参见以下模拟视频,该视频显示了 TIA Portal 中 PID 的自动整定过程。
      从视频中您可以看到,预调节完成后,我们的 PID 找到了最适合我们系统的 P、I 和 D 参数。您可以看到,当设定点或流出量发生变化时,控制器将非常快速地做出反应,将设定点恢复到所需的值。
      现在,您只需单击按钮即可将调整参数直接上传到项目中,见图 14。

      图 14. 上传您的参数。
      上传参数后,您可以在配置视图的 PID 参数选项卡中找到它们。见图15。

      图 15. PID 参数。
      然而,下一步应该是从相同的调试视图对 PID 执行微调程序,因为我们没有真正的系统,我们只是使用数学计算来模拟水箱和泵的行为,我们可以 t 进行微调步骤。
      当您拥有真实的系统时,您可以进行微调,您的 PID 将尝试找到能够为系统提供更好响应的参数,甚至消除过程值的超调并直接达到设定点。
      将来,如果我们有一个真正的系统,我们可以展示它是什么样子。
      PID 控制器的整定方法有哪些?
      您不必使用 TIA Portal 调整 PID;有许多不同的方法可以尝试为您的系统找到最佳 PID 参数。它主要是基于反复试验的数学方法。我建议使用 TIA Portal 中的自动调整功能。
      但这里有一些用于实现相同参数的方法。
      启发式调整。 Ziegler-Nichols 调谐方法 Cohen-Coon 调谐方法 Kappa-Tau 调谐方法 Lambda调优方法 还有其他一些。 结论
      对 PID 使用循环中断。 配置您的 PID 以最适合您的系统。 TIA Portal 中的自动调节功能非常有用且有效。

    • PLC 是工业自动化中非常重要的组成部分。它是自动化的基础,每个 PLC 程序员或自动化工程师都必须正确设计它才能正常工作。这不仅仅涉及编程,还涉及最终如何设计 PLC 系统。

      PLC 系统设计中的安全考虑
      我们都认为,如果正确地编写了一个程序,并且所有的联锁、顺序和流程都正确,那么我们的 PLC 系统就可以使用了。但是,必须指出的是,设计任何系统时最重要的参数之一是安全性。因此,类似地,PLC 系统的设计必须考虑安全性。 在本文中,我们将了解设计 PLC 系统时的安全注意事项。
      电源
      这是考虑 PLC 设计时首要的参数。面板中有两种类型的电源 - 直流电源和交流电源。DC 通常为 12-24V DC,AC 通常为 110V AC 或 230V AC。
      PLC 由任一电源供电,现场仪表也由任一电源供电。如果面板具有单个 SMPS 或 230V 单母线,那么设计人员就可以轻松地为系统接线。如果面板有多个电源,则您可能会错误地连接一个电源的正极线和另一个电源的负极线。这反而会使您的系统变得复杂,并使故障排除变得更加困难。因此,单个电源还可以最大限度地减少线路干扰,并防止从稳定的交流电源到电源和 CPU 的错误输入信号。
      多个电源是不必要的,而且还会增加短路和频繁故障的可能性。因此,电源设计是 PLC 系统安全运行的一个非常重要的因素。
      接地
      众所周知,接地需要将任何泄漏电流传递到地面。这样可以防止触电、噪音和电磁干扰。工业区域标准中性点对地电压必须小于 0.5V。
      1V 稍高一点是可以接受的,但如果高于此值,则意味着接地不正确,电信号发生泄漏会影响性能。PLC 电源和 IO 通道必须正确接地并连接到面板中的接地母线。
      另外,仪表接地与电源接地必须分开;否则,任何接地合并都会造成短路或信号干扰。
      关键数字输入信号
      每个 PLC 系统都必须具有紧急停止、面板电源故障和气压等关键输入。此外,所有这些信号必须以 NC(常闭)格式连接。
      急停用于操作人员按下该按钮时使系统突然停止,面板断电用于当相电源出现问题时使系统停止,气压信号表示是否需要空气来操作阀门 或其他气动输出是否正确。
      如果这些输入中的任何一个失败,所有操作都应立即停止。在一些大型系统中,还观察到,如果按下紧急按钮,则不是停止整个系统,而是为各个大额定输出提供紧急停止。因此,操作员可以轻松隔离每个系统并操作其他系统,而不用停止整个系统。
      手动模式联锁
      程序员总是轻视手动模式逻辑。他们的动机只是打开或关闭输出。然而,必须注意的是,任何不规则的手动输出操作都会影响系统的性能。如果系统非常关键,那么它可能会对附近人员造成危及生命的问题。
      因此,建议也在手动模式下应用警报或其他关键联锁装置。这可以防止操作员随意操作系统。而且,由于这种逻辑,保证了 PLC 系统的安全。
      警报
      控制逻辑文件中给出的所有警报通常由程序员在程序中获取。然而,PLC 程序员必须根据 PLC 中获取的 IO,在系统中提供一些额外的安全警报。
      这些通常是运行反馈报警、跳闸反馈报警、超行程或欠行程报警、传感器故障报警、PLC 通道故障报警、热过载报警、恒温器报警、过压或欠压报警等。这些报警因系统而异,基于 实际投入的情况。
      但是,如果这些输入中的任何一个不存在,那么建议程序员向客户提出相同的建议以供考虑。这可以防止系统以故障方式运行。
      这样,我们在设计 PLC 系统时看到了一些一般性的安全考虑。

    • 在上一篇文章中,我们讨论了什么是 UDT、如何创建用户定义数据类型 (UDT) 以及在项目中使用 UDT 的优势。在本文中,我们将展示在 PLC 编程中使用 UDT 的一种方法。
      内容:
      旧储罐模拟器功能块。 带 UDT 的新储罐模拟 FB。 调用新的储罐模拟 FB。 向 UDT 添加新标签。 结论。 PLC 编程中的 UDT
      在我们的前几篇文章中,我们使用相同的储罐模拟器系统来解释许多概念,例如闭环控制和 PID 控制器。在本文中,我们将使用相同的储罐模拟器来展示如何在编程中使用 UDT 的概念。
      旧储罐模拟器功能块
      在旧的储罐模拟器系统中,我们定义了一些内部参数,以便根据需要多次重用功能块。见图1。

      图1. 储罐模拟器 FB。
      从图中可以看出,在功能块接口中我们定义了一些输入和一些 InOut,这些参数应该在调用 FB 时提供。
      例如,如果我们调用FB来模拟储罐1,并再次调用它来代表储罐2,则需要将每个储罐的参数提供给相关的被调用功能块。见图2。

      图 2. 储罐1 和储罐 2 的模拟。
      您可以看到,对于每个 FB 调用,我们都必须分配相关标签。对于储罐 1 模拟,我们应该将储罐 1 的标签分配给调用的 FB。储罐 2 模拟也是如此。
      带 UDT 的新储罐模拟 FB:
      现在,我们想要使用我们在上一篇文章中定义的 UDT“Tank”来模拟我们的储罐。我们将创建一个新的模拟功能块。见图3。

      图 3. 添加新的储罐模拟 FB。
      新的模拟功能块与旧的 FB 具有相同的逻辑,但是在这个模拟功能中,我们将使用定义的 UDT“Tank”作为 InOut 内部标签,如图所示。
      因此,您不再需要在 FB 接口的不同区域中声明功能块参数,而是只需一个标签即可携带罐体的所有所需信息。
      调用新储罐模拟 FB:
      为了调用新的模拟功能,我们选择在循环中断 OB 内调用它,以确保功能块的执行不受主逻辑 OB1 循环时间的影响,正如我们用 PID 解释的那样。
      所以我们需要首先创建一个新的循环中断 OB。见图4。

      图 4. 为调用储罐 3 和 4 添加循环中断。
      您可以选择您认为合适的循环时间,在我们的例子中,我们将其设置为 3000 微秒或 3 毫秒。
      现在,您可以将 “Tank Simulator with UDT” FB 拖放到循环中断中以调用 FB。将出现一个调用选项窗口,为 FB 数据实例提供您喜欢的任何名称。见图5。

      图 5. 致电您的 FB。
      调用 FB 后,您知道需要分配与要模拟的储罐相关的参数。见图6。

      图 6. 将储罐参数分配给 FB 调用。
      请注意,您只有一个参数需要填充该功能块。这是您创建的 UDT 标签。其中已经包含功能块所需的所有储罐参数。
      我们想要模拟储罐_03,因此我们将标记分配给 FB 调用。见图7。

      图 7. 拖放您的标签。
      罐 3 的功能块调用看起来比使用不带 UDT 的旧模拟器 FB 调用罐 1 更简单。见图8。

      图 8. 储罐 1 和储罐 3 调用差异。
      你能看出两个储罐调用的区别吗? 如果没有 UDT,则必须提供功能块的所有参数。想象一下,如果您必须使用此模拟器模拟 50 辆储罐。分配所有这些参数将是非常无聊和耗时的,更不用说首先为每个储罐声明它们了。
      但对于带有 UDT 的模拟器来说,您可以调用任意多个,并且不会花费太多时间或精力。见图9。

      图 9. 呼叫许多其他储罐。
      现在,假设您必须向模拟中添加一个新变量。例如,您想要添加流出警告信号。对于没有 UDT 的旧模拟器功能块,这意味着您必须为每个储罐声明这个新标签,并且每次调用储罐时都必须将其一一添加。
      但使用 UDT,您只需要更新您创建的 UDT 并添加您想要的新标签。见图10。

      图 10. 向 UDT 添加新标签。
      当您对 UDT 进行任何更改时,您甚至不需要更新函数调用。由于调用参数相同,因此更改是在参数本身内部进行的。见图11。

      图 11. 无需调用 FB。
      但是,您仍然需要重新编译 PLC 项目或至少重新编译数据块,以便更新对 UDT 的更改。见图12。

      图 12.  重新编译以更新 UDT 的更改。
      编译后,对 UDT 的所有更改将自动更新到该 UDT 的所有声明标签。见图13。

      图 13. 所有标签现已更新。
      结论
      您可以在项目中使用 UDT 来使您的编程更快、更容易理解。 使用 UDT 还可以更轻松地更改功能和功能块。

    • 当您在 PLC 系统中工作时,有必要了解 PLC 模块中发生了哪些故障。如果 PLC 程序员不明白 PLC 出现了什么故障以及如何解决它,那么他将花费很长时间来排除系统故障。
      每个 PLC 及其模块上都有 LED,以便于观察和故障排除。他们的用户手册中也给出了它们的详细描述。因此,了解这些 LED 的工作原理非常重要,一旦获得它们,故障诊断对于 PLC 程序员来说就变得非常容易。
      在这篇文章中,我们将学习 PLC 中故障诊断的概念。
      PLC 故障诊断
      让我们看一下可以通过 PLC LED 识别的一些最常见的故障类型:
      Run LED 用于指示模块是否正常工作。如果常亮,则说明模块工作正常。如果该 LED 熄灭,则模块有故障或关闭。
      Err LED 用于指示模块是否出错。如果持续亮起,则为内部模块错误。如果闪烁,则表示模块配置不正确或者与其连接的 PLC 硬件存在问题。如果灯灭,则说明模块没有故障。
      I/O LED 用于指示与模块连接的 PLC IO 的确切状态。如果持续亮起,则表示电源电压错误或短路。如果灯灭,则表示 IO 连接没有错误。
      通道 LED 用于显示各个通道的状态。如果 LED 持续亮起,则表示通道工作正常。如果它闪烁,则存在一些错误(断线或值超出范围)。如果它是关闭的,则表示该通道根本没有配置。
      一些通信模块(例如 Modbus RTU)具有 LED 真值表,表示相同的每个值。
      PLC 中的 LED 指示
      它们大多如下表所示:

      注意:LED 指示可能因 PLC 型号和品牌而异。上表是市场上一种 PLC 型号的示例。
      某些通信模块(例如 Modbus TCP/IP)的 LED 诊断稍微复杂。但了解它们对于故障排除非常重要。
      如果运行 LED 亮起,则模块正在运行;如果 LED 熄灭,则模块停止。如果 Err LED 闪烁,则表示模块出现错误;如果闪烁,则表示模块配置不正确,或者连接的背板存在问题。
      如果网络状态指示灯熄灭,则表示模块没有与任何设备通信;如果它打开,则它正在与至少一台设备通信;如果闪烁,则表示检测到重复的 IP 地址或超时错误。
      这样,我们就看到了 PLC 中的一些常见故障诊断。

    • 当您在 PLC 系统中工作时,您知道需要注意的最基本的事情是内存。你写了什么程序,消耗了多少内存;是决定 PLC 性能的一个非常重要的因素。为此,有必要了解 PLC 中的内存结构是如何组织和定义的。
      PLC 内存组织

      如果不了解内存组织,就很难预测您需要编写多少精确的程序。在这篇文章中,我们将看到 PLC 中的内存组织。PLC中的存储器主要分为两种类型——数据文件和程序文件。
      数据文件
      数据文件是存储器的位置,存储诸如存储器字、状态字、输入变量、输出变量、通信变量、定时器、计数器以及 PLC 制造商提供的其他内置库函数等信息。
      让我们一一看看每个例子。
      内存字 – 内存字是布尔变量、整型变量、双整型变量和浮点变量。假设 PLC 分配了 100 个内存变量供使用。其中仅使用 5 个变量。第一个变量是位类型,存储 0 或 1。第二个变量是整数,有符号或无符号。第三个变量也是一个整数。第四个变量是一个双整数,有符号或无符号。如果变量是双精度整数或浮点数,则它会消耗两个内存变量。因此,第五个内存变量将是一个双整数。 状态字 – 状态字存储有关 PLC 的信息。它有两种类型——状态位和状态整数。 输入变量 – 它们存储有关 PLC 数字输入和模拟输入的数据。 输出变量 – 它们存储有关 PLC 数字输出和模拟输出的数据。 通讯变量 – 它们存储有关 PLC 中使用的通讯协议的数据。它们可以是 Modbus、以太网、Can-Open 等。 除此之外,其他内置库也用于存放在数据文件内存中。它们是定时器、计数器、脉冲块等。
      程序文件
      顾名思义,程序文件存储有关写入的逻辑、子例程和中断的数据。这是 PLC 中内存的主要消耗部分。如果编写的 PLC 代码较多,则程序文件消耗较大,如果编写的代码较少,则程序文件消耗较少。所有逻辑,无论是梯形图、功能框图、结构化文本、顺序流程图还是指令列表,都位于程序文件存储器中。
      此外,用户定义的功能块和用户定义的数据类型也包含在程序文件中。
      PLC 中的存储器组织存储在内部存储器或内部和外部 SD卡中。当出现内部存储器已满的情况,需要更多数据来编写 PLC 程序时,则需要插入外部 SD 卡来扩展程序存储器。
      在这种情况下,数据文件和程序文件都会被扩展。许多 PLC 都有一个在线动画窗口,它显示当前的内存使用情况。它可以在线或离线查看。这有助于更好的内存规划。

    • 在可编程逻辑控制器 (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 类型;它还受到设计、维护实践和操作人员能力等因素的影响。

    • 无论是工业自动化还是任何其他 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 系统升级和迁移的概念。

×
×
  • Create New...