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

    PLC, DCS, HMI and SCADA product application technical articles

    leigehong
    在上一篇文章中,我们讨论了什么是功能块 FB、它在 PLC 程序中如何工作以及如何创建和使用功能块 FB。在本文中,我们将讨论西门子 Tia Portal 中不同功能块类型的数据块实例以及何时使用每种类型。
    内容:
    什么是功能块 FB? 数据实例的不同选项。 单实例。 参数实例。 多实例。 什么是功能块?
    功能块或 FB 只是包含代码逻辑的块。您可以使用该 FB 通过编写在其中的代码片段来实现特定的功能。
    当在代码中调用功能块时,系统会要求您分配一个数据块(也称为数据实例)与该 FB 关联,以保存 FB 参数的值。并非 FB 内的所有参数都保存在数据实例中,但我们稍后会讨论这一点。
    调用功能块时,您有 3 个不同的选项用于将数据块实例与此函数调用相关联。这些不同的选项将取决于您调用 FB 的位置。
    所以,简而言之。功能块FB基本上是具有专用数据块 DB 的功能 FC,该数据块用于存储功能块参数的值。
    数据实例的不同选项
    对于功能块的数据实例,我们有 3 个不同的选项,这些选项是:
    单实例。 参数实例。 多实例。 三个不同的调用数据实例来自 3 种不同的调用方法:
    您可以在主 OB1 内调用功能块 FB,这将为您提供以下选项: 单实例。 您可以在功能 FC 内调用功能块 FB,这将为您提供两种选择 单实例 参数实例  
    您可以在另一个功能块内调用该功能块,这将为您提供创建数据实例的三个可用选项 单实例 参数实例 多个实例 单个数据实例
    首先,让我们从创建一个功能块 FB 开始,正如我们之前提到的,我们通过单击 “添加新块” 并选择我们想要的块类型来创建一个功能块。见图1。

    图 1 – 创建功能块 FB
    现在,我们将在主 OB1 中创建的 ReusableFB 称为 ReusableFB。见图2。

    图 2 – 调用主 OB1 内的 FB
    正如您从上图中看到的,在主 OB1 内调用 FB 时,系统会要求您分配一个与该 FB 调用关联的数据实例。在这种情况下,只有一个选项,那就是单一实例。
    选择单实例选项后,将创建一个数据块并与 FB 调用关联。见图3。

    图 3 – 创建的单个实例
    创建的单个实例将用于存储一些 FB 参数的值。如输入、输出、In Out 和静态参数。
    FB 的其他参数将不会被存储,例如温度和常量。见图4和图5。

    图 4 – 数据保存在数据实例内部

    图 5 – 从 FB 保存到数据实例的数据。
    现在,让我们在 FB 中创建一个简单的逻辑,以帮助我们更好地理解数据实例。该逻辑会将常量值 15 添加到静态变量,然后将结果移至输出。见图6。

    图 6 – 创建一个简单的逻辑
    现在,返回主 OB1 并注意 FB 调用现在的情况。见图7。

    图 7 – 每次更改后更新 FB 调用
    您对 FB 内部逻辑所做的任何更改都将导致需要更新功能块调用,以便可以应用您所做的更改。
    您可以通过右键单击 FB 调用并按更新块调用选项或重新编译 PLC 代码来更新块调用。见图8。

    图 8 – 更新 FB 调用
    更新块调用后,您在 FB 代码中所做的更改将在块调用中应用和使用。如图 9 所示。
    FB 现在期望提供 bool 类型的输入信号,并且 FB 将给出 int 类型的输出。

    图 9 – 输入和输出现在与 FB 调用关联
    让我们模拟我们的代码,看看 PLC 将如何运行。请参阅下一个动画,该动画显示了迄今为止 PLC 逻辑的简单模拟。

    从动画中可以看出,每当启动信号为 TRUE 时,该函数就会被执行,并且输出不断变化。一旦启动信号不再可用,输出将保持在最后记录的值。
    这里数据实例的用途是静态变量和输出变量的值保存在单个实例内,因此当启动信号再次返回时,函数将从最后记录的值继续。
    非常重要的注意事项
    切勿对 FB 的两次不同调用使用相同的单个实例。请看下一个动画。

    正如您从动画中看到的,我们有两个不同的 FB 调用,但两个调用都与同一个实例关联,这就是为什么即使 start2 信号为 FALSE,Output2 值也会随 Output1 变化。
    正如您所期望的,第一次调用的数据实例的更改也会在第二次调用中受到影响,因为它们具有相同的内存块。见图10。

    图 10 – 切勿在不同的 FB 调用中使用相同的数据实例
    如果您对不同的 FB 调用使用相同的数据实例,则您的功能块将不再可重用。即使每个不同的 FB 调用的输入/输出参数都不同。正如您从上一个视频(动画)中看到的那样,即使第二个调用甚至没有启用输入信号,两个调用也具有相同的结果。
    另一个非常重要的注意事项
    我们之前说过,如果您从更高级别的 FC 调用您的 FB,则关联的数据实例将有两个选项;这些选项是单个实例和参数实例。见图11。

    图 11 – 使用带有从 FC 调用的 FB 的单个实例
    如果发生这种情况,并且您将在 FC 内调用 FB,则您永远不应该为 FB 使用单个实例。要知道这是为什么。见图12

    图 12 – 多次呼叫上级 FC
    从图 12 中可以看出,当您在逻辑中多次调用更高级别的 FC 时,不会要求您分配数据块,因为 FC 不需要数据块。
    但是你知道 FC 内部有一个叫做 FB 的,这个FB有一个与之关联的单个实例。因此,现在 3 个 FC 调用对于 FB 调用具有相同的数据实例。因此,您的函数 FC 不再可重用。
    该怎么办?当您需要在 FC 内调用 FB 时,最佳选择是使用参数实例。
    参数实例
    正如我们之前所说,如果您在 FC 内调用 FB,则不应选择单个实例,而参数实例更适合您的可重用性目的。
    参数实例将保存调用到 FC 块接口的 In Out 区域的 FB 的数据实例。允许您为每个 FC 调用输入新的数据实例。见图 13 和 14。

    图 13 – 在 FC 内调用 FB 时分配参数实例

    图 14 – 每个 FC 调用都需要一个新的数据实例
    从上图中可以看出,每当您在程序中调用 FC 时,它都会为 FC 内的可重用 FB 请求数据实例。
    但是,使用这种方式您将必须自己创建数据实例。见图15。

    图 15 – 创建一个新的数据实例
    要创建新的数据实例,您可以执行与创建 FC 或 FB 相同的操作,但这次您选择 DB 选项。并确保选择的 DB 类型与调用的 FB 相同。
    现在,您的 FC 可以根据您的需要多次重复使用,您只需为每次调用创建一个实例即可。见图16。

    图 16 – 将 DB 分配给 FC 调用
    多实例数据库
    多实例 DB 简单来说就是被调用 FB 的 DB 将存储在更高级别调用 FB 的 DB 中。仅当您从另一个 FB 调用一个 FB 时,此选项才可用。
    让我们创建另一个 FB 将其用作更高级别的 FB。
    创建此 HigherLevelFB 后,从主 OB1 调用它,当然唯一的调用选项将是单个实例,如前所示。见图17。

    图 17 – 从主 OB1 调用 UpperLevelFB
    现在,从 HigherLevelFB 调用 ReusableFB。并选择多实例选项。见图18。

    图 18 – 分配多实例 DB
    当您选择多实例选项时,创建的 DB 将存储在调用 FB 的静态参数内。见图19。

    图 19 – 实例保存在静态参数内
    您可以多次调用 ReusableFB,每次调用它时,多实例都会存储在静态参数中。见图20。

    图 20 – 多次调用 ReusableFB
    正如您所看到的,下级 FB 的数据实例将保存在上级 FB 的数据实例内。最好有更好的程序结构和易于阅读的逻辑。
    结论
    在代码中创建功能块需要将数据块与您在逻辑中进行的每个 FB 调用相关联。该数据块或也称为数据实例具有不同的选项,具体取决于调用 FB 的块的类型。
    选择数据实例类型时要小心,因为某些选项可能不适合您的情况,如我们之前所示。有时这可能会导致您的逻辑出现问题,并且您的函数无法再重用。
    使用多实例可以帮助更好地组织程序结构,因为所有被调用的 FB 都会将其 DB 存储在主调用 FB 中。

    leigehong
    在对 PLC 进行编程时,可以使用不同的块结构,这些块包括功能 FC、功能块 FB 和数据块 DB。这些块是非常方便的工具,您可以使用它们更好地设计 PLC 逻辑,并使您的代码更具可读性并且易于遵循和调试
    在之前的文章中,我们讨论了 FC 和 FB。在本文中,我们将讨论数据块 DB,更具体地说是全局数据块。
    内容:
    什么是数据块 DB? 数据块的类型。 什么是全局数据块? 创建全局数据块? 使用全局数据块。 示例模拟。 什么是数据块?
    数据块 DB 是用于保存 PLC 程序执行期间写入的参数值的存储区域。
    与代码块相反,数据块 DB 仅包含变量声明。它没有像 FC 或 FB 那样的任何网络或指令。DB 的结构由您在数据块内声明的变量数量定义。
    PLC 中数据块的类型
    数据块有两种类型:
    全局数据块 实例数据块 ARRAY 数据块 全局数据块
    顾名思义,全局数据块是为整个 PLC 逻辑进行全局声明的。它没有分配给特定的代码块。您可以从 PLC 逻辑中任何位置的任何代码块访问全局数据块的值。全局数据块仅包含静态标签。
    全局数据块的结构可以自由定义。在数据块的声明表中,声明要包含在全局数据块中的数据元素。
    实例数据块
    背景数据块直接分配给功能块 FB,无论该功能块是在 PLC 中内部定义的(如定时器和计数器)还是用户定义的功能块 FB。
    背景数据块的结构不能自由定义,而是由功能块的接口确定。背景数据块恰好包含在功能块接口中声明的那些块参数和标记。
    但是,您可以在实例数据块中定义特定于实例的值;例如,声明的标签的起始值。
    数组数据块
    ARRAY 数据块仅适用于 S7-1500 CPU,是由 ARRAY 组成的全局数据块。该数组可以基于任何数据类型。
    例如,PLC 数据类型 (UDT) 的 ARRAY 是可能的。除了 ARRAY 之外,DB 不包含其他元素。由于其扁平结构,ARRAY 数据块便于访问 ARRAY 元素并将其传输到被调用的块。
    “指令”任务卡的“移动操作”部分提供了用于寻址 ARRAY DB 的选项。
    在本文中,我们将讨论全局数据块,我们将在单独的文章中讨论其他两种类型。
    什么是全局数据块?
    数据块用于存储 PLC 程序数据。这意味着它们包含用户程序使用的变量数据。全局数据块存储可供所有其他块使用的数据。
    数据块的最大大小根据 CPU 的不同而变化。您可以用任何您喜欢的方式定义全局数据块的结构。
    您还可以选择使用 PLC 数据类型 (UDT) 作为创建全局数据块的模板。
    每个功能块 FB、功能 FC 或组织块 OB 都可以从全局数据块读取数据,或者本身可以将数据写入全局数据块。即使退出数据块后,该数据仍保留在数据块中。见图1。

    图 1 – 访问全局数据块
    从上图可以看出,全局数据块可以从 PLC 程序内的任何代码块访问,而背景数据块只能由关联的功能块访问。
    创建全局数据块
    创建全局数据块的方式与创建功能 FC 或功能块 FB 的方式相同。从将新块添加到项目树中。见图2。

    图 2 – 创建全局数据块
    让我们在全局数据块中声明一些变量。
    您可以通过单击名称下的“添加新”部分,写入所需的变量名称,然后选择变量数据类型来完成此操作。见图3。

    图 3 – 全局数据块中的变量声明
    使用全局数据块
    声明一个标签。 我们已经在图 3 中展示了如何声明标签/变量。
    定义起始值 标记的起始值是您定义的值,标记在 CPU 启动后采用该值。该值必须与标签的数据类型匹配,并且不应超出数据类型的范围。见图4。
    标签在启动时采用定义的值,前提是它没有声明为保持性。

    图 4 – 定义标签的起始值
    因此,如果我将 Tank1Level 起始值设置为零以外的任何值,则下次重新启动 PLC 时将应用该值。见图5。

    图 5 – 定义变量的起始值
    保留全局数据块中的变量 为了防止断电时数据丢失,您可以将数据标记为保持性。该数据存储在保持性存储区域中。
    设置保留的选项取决于数据块的类型和设置的块访问的类型。见图6。

    图 6 -. 全局数据块中保留选项
    如图 6 所示,Tank2Level 变量设置为保留值,这意味着即使 PLC 停止或断电,当 PLC 再次启动时,Tank2Level 也会存储相同的数据。它不会重置为起始值。
    与 HMI 的可访问性 在全局数据块中,您可以定义变量在 HMI 变量表中是否可见。您还可以定义是否可以从 HMI 读取或写入该变量。见图7。

    图 7 – HMI 的可访问性
    全局数据块中任何声明的变量的默认设置是可以从 HMI 访问、读取和写入。如果您想对某个变量禁用此功能,则必须取消选中该变量的辅助功能选项。
    模拟示例
    到目前为止我们创建了一个全局数据块并在里面声明了一些变量。
    现在我们将尝试运行该程序的模拟,看看我们是否可以更好地理解全局数据块是什么。
    下面提供了两个 PLC 仿真。
    测试变量的起始值
    检查以下动画,解释全局数据块内变量的起始值。

    动画1
    动画1说明:
    储罐液位参数的起始值为零,您可以在视频中看到它们正在通过模拟屏幕进行更改。 当 PLC 重新启动、断电然后再次上电时,您会看到这些值将重置为起始值为零。 之后,起始值分别更改为500、32654和-356,并且当PLC重新启动时,这些值更改为新的起始值。 请注意,当我们更改起始值时,我们必须再次将逻辑下载到 PLC;每次更改逻辑时都需要这样做。 测试全局 DB 中变量的保留选项
    检查以下动画,解释全局数据块内变量的保留选项。

    动画2
    动画2说明:
    首先,您会注意到 Tank2Level 的 Retain 属性现在处于活动状态。 您在视频中看到 3 个水箱的值正在改变。 当 PLC 停止然后再次启动时,Tank1Level 和 Tank3Level 重置回起始值 0,但 Tank2Level 保留其值 -22938 结论
    全局数据块可以由 PLC 程序中存在的任何块从任何地方访问。您可以在全局数据库中声明任意数量的变量。
    最佳实践技术是为逻辑的不同部分创建单独的数据块,以便非常容易地遵循您的逻辑。例如,需要由 HMI 读取或写入的所有变量的单独数据块。

    leigehong
    在上一篇文章中,我们讨论了数据块,我们讨论了两种不同类型的数据块,全局数据块和功能块FB的数据实例。
    在本文中,我们将讨论西门子 Tia Portal 中优化数据块访问和标准数据块访问的含义。
    内容:
    什么是优化数据块和标准数据块? 简单的程序示例。 什么是标准 DB? 偏移量是多少? 什么是优化的数据库? 使用优化数据库的优点。 结论。 什么是优化和标准数据块访问?
    首先,这些不是新类型的数据块;我们说过我们只有两种不同的类型:全局数据库和背景数据库。优化数据块访问是数据块的一项功能。您可以从已创建的数据块的属性中激活或禁用此功能。
    优化数据块功能仅适用于 S7-1200 和 S7-1500 PLC,不适用于 s7-300 或 s7-400
    使用 S7-1200 或 S7-1500 PLC 时数据块的标准设置是它们是经过优化的,如果您想要标准数据块,则必须自行设置。
    那么,什么是优化块和标准块? 为了理解其中的差异,我们将编写一个简单的程序并尝试展示优化块与标准块的不同之处。
    简单程序示例:
    在此示例中,我们不会创建任何 PLC 逻辑或编写任何指令,我们只会创建 2 个全局数据块,DB1 将称为 OptimizedDB,DB2 将称为 StandardDB。
    在这两个数据块中,我们将分别声明数据类型 Bool、Int、Real 和 Word 的 4 个变量。见图1。

    图 1 – 创建两个全局 DB
    首先你会注意到,两个数据块是完全相同的,那是因为正如我们所说,创建数据块时的默认设置是它会被优化,所以我们需要更改 DB2 的设置,使其成为 标准块,看看是否会发生变化。
    我们根据 DB2 的属性来做到这一点。您可以通过右键单击数据块并按属性来访问 DB2 的属性。见图2。

    图 2 – 将 DB2 更改为标准块访问
    取消选择图 2 中所示的优化块访问属性并按 “确定” 后,将弹出警告消息,见图 3。

    图 3 – 更改块访问弹出窗口
    一旦按下 OK,您的 DB2 将被转换为标准块访问。请参见图 4。看看这有何不同。

    图 4 – DB2 现在是一个标准块
    我们直接看到的是 DB1 和 DB2 不再一样了。DB2 中表示的标准块访问选项有一个称为偏移量的附加列。
    在偏移框中的每个变量前面,都有一个...写着,一旦你编译程序,这个就会改变。
    让我们编译一下,看看会发生什么,见图 5。

    图 5 – 编译程序以重新加载偏移量
    现在,偏移量已分别填充为 0.0、2.0、4.0 和 8.0。
    那么,这个偏移量是多少? 这是什么意思? 我们稍后会讨论这个问题,但现在,让我们创建另一个 STANDARD 块并声明相同的 4 个变量,但这次我们将更改变量数据类型的顺序,见图 6。

    图 6 – 创建另一个标准块 DB3
    从上图可以看出,DB2 和 DB3 的偏移量是不同的,为什么当我们改变数据类型的顺序时,偏移值会不同呢?它们是相同的数据类型,但顺序不同。
    让我们创建另一个标准DB,并声明相同的 4 个变量,但顺序不同。编译您的 PLC 代码,然后比较 3 个 DB 的偏移量。见图7。

    图 7 – 具有三个不同偏移量的三个不同 DB
    同样的事情又发生了。
    什么是标准 DB?偏移量是多少?
    标准访问的数据块具有固定的结构。当您在标准 DB 中声明变量时,该变量将被分配到该 DB 中的固定地址。
    该变量的地址显示在 “Offset” 列中。因此,我们在前面的图片中看到的偏移量是为每个变量分配的地址。
    因为标准 DB 的结构是固定的,所以只能在具有固定存储容量的 DB 中工作,即 16 位区域或 2 字节。这就是当我们改变声明顺序时,相同变量的寻址不同的原因。更多解释请参见图 8。

    图 8 – DB2 的简单表示
    图 8 显示了标准数据块 DB2 的简单表示。正如我们之前所说,标准DB具有固定的 16 位内存块,因此,当我们将 Variable_1 声明为 BOOL 数据类型时,该变量将占用全部 16 位,即使它只需要 1 位内存。这就是为什么您会看到其余区域标记为红色,因为它未使用但无法再使用。所以这是一段失去的记忆。
    对于 Variable_2,数据类型 INT 需要 16 位,因此它使用 2 个完整字节。与 Variable_4 相同,其数据类型为 WORD。
    对于 Variable_3,我们占用了 4 个字节,因为它是 REAL 数据类型。这就是为什么 DB2 的偏移量分别为 0.0、2.0、4.0 和 8.0。
    DB3 和 DB4 执行相同的概念。但由于变量的数据类型顺序不同,内存表示也会不同,因此偏移量也会不同。DB3 和 DB4 见图 9 和 10。看看根据前面的解释你是否能理解表示法。

    图 9 – DB3 的内存表示

    图 10 – DB4 的内存表示
    因此,当您使用标准数据库时,声明变量时必须小心,因为每次定义新的 BOOL 变量时都会造成内存损失。
    如果您在数据库列表的末尾声明新变量,则偏移量将扩展以包含您的新变量。但是,如果您在旧变量之间或在数据库的开头声明新变量,则会发生其他情况。见图11。

    图 11 – 声明一个新变量
    您会注意到的第一件事是您的偏移量现在丢失了,您必须编译代码才能重新建立新的偏移量。见图12。

    图 12 – 通过重新编译代码重新建立偏移量
    您是否注意到变量的寻址 (OFFSET) 现在发生了怎样的变化?
    例如,REAL 标签的偏移量为 2.0,但在添加新的 TestVariable 后,同一 REAL 标签的寻址 (OFFSET) 现在为 4.0,见图 13。

    图 13 – 添加 TestVariable 后的偏移变化
    因此,当添加新变量时,所有旧变量的寻址都发生了变化。这意味着程序中需要写入或读取某个变量值的任何指令现在都将查看指令中分配的地址,但现在该地址具有与预期不同的数据。
    简而言之,你的整个逻辑现在已经混乱了。这会带来很多麻烦。更不用说现在添加新变量后您会丢失额外的内存。见图 14。

    图 14 – 添加 MOVE 指令
    让我们添加一条 MOVE 指令,将值 1 移至 Variable_2 标签中。查看 MOVE 输出的地址如何为 %DB2.DBW2。
    现在,让我们向 DB2 添加一个 INT 类型的新变量。见图15。

    图 15 – 添加新的 INT 变量
    当您添加新变量时,偏移量将丢失,并且 PLC 不再知道 MOVE 指令的 OUT1 的目的地在哪里。
    我们需要编译程序来重新加载新的偏移量。见图16。

    图 16 – OUT1 的新地址
    您看到 OUT1 地址现在有何不同了吗?现在是 %DB2.DBW4 而不是 %DB2.DBW2。这是使用标准数据块的一个非常大的缺点。
    什么是优化数据库?
    优化数据块和标准数据块的区别在于,优化数据块内部的变量没有被分配到固定的地址,而是给变量赋予一个符号名称,而且数据块的结构也不像标准的那样固定。数据块,因此在声明新标签时不会丢失内存,也不会更改地址。 见图 17。

    图 17 – 在优化块中声明新标签
    因此,在优化数据块中声明新标签不会影响其余标签,因为它们是由符号名称而不是绝对寻址定义的。
    优化的数据块将不允许您在使用其中定义的标签时使用地址。见图18。

    图 18 – 使用优化块的绝对寻址
    正如您在最后一张图片中看到的,优化数据块不允许绝对寻址,只允许符号名称。见图19。

    图 19 – 使用带有优化 DB 的符号名称
    优化访问的数据块的优点
    具有优化访问的数据块没有固定定义的结构。数据元素(标签)仅分配一个符号名称,并且不使用块内的固定地址。
    元素会自动保存在块的可用存储区域中,以便内存中不存在间隙。与标准 DB 相比,这可以实现内存容量的最佳利用,并避免内存丢失。
    这具有以下优点:
    您可以创建任何结构的数据块,而无需注意各个标签的物理排列。 由于数据存储是由系统优化和管理的,因此始终可以快速访问优化的数据。 例如,间接寻址或来自 HMI 的访问错误是不可能的。因为现在有地址,每个标签只有唯一的符号名称。 您可以将特定的单个标签定义为保持性。在标准 DB 中,您只能将整个块定义为保持性。 结论
    与标准数据库相比,优化数据块有很多优点。在向块添加新变量时,使用符号名称有助于避免标签的任何地址更改。
    通过优化块,不会丢失任何内存区域。与使用标准数据库时发生的情况相反。

    leigehong
    在之前的文章中,我们讨论了什么是组织块,并讨论了主循环中断 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。

    leigehong
    在本文中,我们将继续讨论西门子 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 来识别错误并解决它。

    leizuofa
    本文介绍的是在 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 逻辑来控制交通逻辑,这也是方式之一。

    leizuofa
    可编程逻辑控制器 (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 用于具有复杂控制系统并需要先进算法和优化功能的过程控制应用。

    leizuofa
    西门子是一家著名的跨国公司,业务涉及能源、医疗保健、交通和工业自动化等多个行业。西门子成立于 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 数量、安全要求和通信选项。

    leizuofa
    在本文中,我们将学习如何阅读 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 型号的数据表,看看您是否能理解数据表中提供的基本信息。

    caixiaofeng
    在本文中,我们将介绍 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 行为如何随不同过程条件而变化。
    结论
    时钟存储器位以预定义的频率打开和关闭。 当您需要激活闪烁的指示灯或启动定期重复操作时,它们非常有用。 使用时钟存储器位可以节省您通过自己的逻辑获得相同功能所需的时间和精力。

    caixiaofeng
    在本文中,我们将讨论 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 指令之间的组合。

    caixiaofeng
    在本文中,我们将展示如何使用西门子 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 会向您显示此原因,一旦您解决问题,您就可以上传。

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

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

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

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

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

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

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

    caixiaofeng
    在此高级 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 程序


    caixiaofeng
    在此 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 梯形逻辑


    leikang
    在此高级 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 逻辑


    leikang
    在上一篇文章中,我们讨论了什么是 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 还可以更轻松地更改功能和功能块。

    leikang
    当您在 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 都有一个在线动画窗口,它显示当前的内存使用情况。它可以在线或离线查看。这有助于更好的内存规划。

    leigehong
    我们都知道 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 的各种端口有了一个基本的了解。

    leigehong
    只有使用变频驱动器才能控制感应电机的速度。基本上,我们可以通过三种不同的模式来控制感应电机的速度。
    使用数字信号 使用 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。要了解更多信息,请参阅系统块配置。

    leigehong
    由于多种原因,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 连接的极性。 将电线捆扎整齐并使用扎带。 通电前测试电线连续性和正确连接。 维护更新且详细的文档。 使用接线端子更方便维护。 定期进行接线检查。 使用应力消除机制来保护电线。 为了安全,请遵循上锁/挂牌程序。 接线完成后进行彻底的系统测试。

    leigehong
    每当 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 程序员在现场需要携带的必备工具。

    leigehong
    在工业自动化中,有时 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 模块的概念。

Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...