Jump to content

Search the Community

Showing results for tags '简体中文'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


PLC & HMI product application technology forum!

  • Commonly used PLC brand product application technology discussion area!
    • Siemens PLC Forum
    • Allen Bradley PLC Forum
    • Mitsubishi PLC Forum
    • Schneider PLC Forum
    • Omron PLC Forum
    • B&R PLC Forum
    • ABB PLC Forum
    • Honeywell PLC Forum
    • Emerson PLC Forum
    • Hitachi PLC Forum
    • Rexroth PLC Forum
    • IDEC PLC Forum
    • Koyo PLC Forum
    • Delta PLC Forum
    • Eaton PLC Forum
    • Keyence PLC Forum
    • LS PLC Forum
    • Panasonic PLC Forum
    • Phoenix PLC Forum
    • Pilz PLC Forum
    • WAGO PLC Forum
    • Yokogawa PLC Forum
    • Toshiba PLC Forum
    • PEPPERL+FUCHS PLC Forum
  • Commonly used HMI brand product application technology discussion area!
    • Siemens HMI Forum
    • Fatek HMI Forum
    • Advantech HMI Forum
    • Weintek HMI Forum
    • Mitsubishi HMI Forum
    • Fuji HMI Forum
    • Pro-face HMI Forum
    • B&R HMI Forum
    • IDEC HMI Forum
    • Schneider HMI Forum
    • Weinview HMI Forum
    • LS HMI Forum
    • Omron HMI Forum
    • Panasonic HMI Forum
    • Delta HMI Forum
    • MCGS HMI Forum
    • beijer HMI Forum
    • Kinco HMI Forum
    • Redlion HMI Forum
    • XINJE HMI Forum
    • Samkoon HMI Forum
  • European PLC brand product application technology discussion area!
  • Americas PLC brand product application technology discussion area!
  • Asian PLC brand product application technology discussion forum!
  • European HMI brand product application technology discussion forum!
  • Americas HMI brand product application technology discussion forum!
  • Asian HMI brand product application technology discussion forum!
  • Industrial automation SCADA & HMI configuration software!
  • Technical discussion area related to industrial automation control
  • Commercial service area for PLC&HMI products of various brands!

Categories

  • PLC programming learning
  • HMI interface design
  • DCS control system
  • SCADA technology

Categories

  • European PLC & HMI brand
  • Americas PLC & HMI brand
  • Asian PLC & HMI Brands

Categories

  • PLC programming learning
  • HMI interface design
  • DCS control system
  • SCADA technology

Categories

  • PLC programming learning
  • HMI interface design
  • DCS control system
  • SCADA technology

Categories

  • PLC programming learning
  • HMI interface design
  • DCS control system
  • SCADA technology

Categories

  • PLC programming learning
  • HMI interface design
  • DCS control system
  • SCADA technology

Categories

  • PLC product technical files
  • HMI product technical files
  • DCS product technical files
  • PAC product technical files
  • SCADA product technical files

Product Groups

  • PLC products
  • PLC accessories
    • PLC lithium battery
    • PLC memory card
    • PLC programmer
    • PLC data line
  • HMI products
  • HMI accessories
    • HMI protection installation box
    • HMI self-made assembly accessories
    • HMI communication cable
    • HMI circuit board card components
  • Advertising for rent

Blogs

There are no results to display.

There are no results to display.

Categories

  • PLC Programming Technology Videos
  • HMI Design and Configuration Video
  • DCS Control System Video
  • PAC Automation Control Video
  • SCADA acquisition monitoring Vides

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


date of birth

Between and

gender


Education degree


About Me


Mobile phone


website


address


WhatsApp


Messenger


Telegram


Line


Skype


Instagram


VK Messenger


Viber


Snapchat


Zalo


Kakao Talk


ICQ


QQ


WeChat


Taobao WangWang


Ali DingTalk

Found 155 results

  1. 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 编程传送带正反转控制
  2. 舞台控制的 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 编程
  3. 在此高级 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 逻辑
  4. 在此 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 梯形逻辑
  5. 在此高级 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 程序
  6. leizuofa

    水位控制逻辑的 PLC 程序

    设计一个 PLC 程序,通过根据低水位和高水位打开和关闭排水泵来控制储水箱的水位。 水位控制 PLC 程序 逻辑描述 自动:如果在本地控制面板中选择自动模式,则泵将根据低液位开关和高液位开关进行逻辑控制 手动:如果在本地控制面板中选择手动模式,则无论低液位开关和高液位开关状态如何,都将使用本地控制面板中的开/关按钮手动控制泵。 当水位达到低水位时,泵将停止。 如果水位达到高点,水泵就会启动,将水排出,从而降低水位。 指示面板:该面板包含 LED,用于显示水位控制的状态。 它具有泵运行、低电平和高电平信号 如果泵正在运行,则泵运行状态灯将亮起。 然后,如果低液位开关激活,则低液位状态灯将亮起。 如果高液位开关激活,则高液位状态灯将亮起。 PLC 梯形图逻辑 选择手动模式,关闭位置且水位低 选择手动模式且水位在低水位和高水位之间 选择自动模式并激活高级开关
  7. 在上一篇文章中,我们讨论了如何使用 TCON 和 TDISCON 块在两个 PLC 之间建立连接,以及如何使用 TSEND 和 TRCV 块在它们之间移动数据。 跨 PLC 系统传输数据 在本文中,我们将学习一条新指令,可用于使用 TSEND_C 和 TRCV_C 块跨 PLC 系统进行通信和传输数据。 TSEND_C TSEND_C 指令是 TIA Portal 指令,用于在两个 PLC 之间建立连接。 连接建立后,PLC 将自动维护和监控。 TSEND_C 指令是异步执行的,具有以下功能: 与 TCON 块类似,建立通信连接。 通过类似于 TSEND 块的现有通信连接发送数据。 与 TDISCON 类似,终止或重置通信连接。 因此,TSEND_C 被称为“紧凑”,因为它同时充当 3 个以上的块。 TRCV_C TRCV_C 指令也是一条 TIA Portal 指令,用于在两个 PLC 之间建立连接。 连接建立后,PLC 将自动维护和监控。 “TRCV_C” 指令异步执行,依次实现以下功能: 建立和建立类似于 TCON 的通信连接。 通过类似于 TRCV 的现有通信连接接收数据。 与 TDISCON 类似,终止或重置通信连接。 因此,TRCV_C 被命名为“紧凑”,因为它同时充当 3 个以上的块。 在我们的 PLC 项目中使用 TSEND_C 和 TRCV_C 在上一篇文章中,当我们需要建立并将数据从 PLC_1 发送到 PLC_2 时,我们必须在每个 PLC 中使用三个不同的块。 见图1。 图 1. PLC_1内部逻辑 如您所见,我们使用 TCON 和 TDISCON 块来建立和重置连接,并使用 TSEND 从 PLC_1 发送数据。 PLC_2 也是如此。 见图 2。 图 2 PLC_2 逻辑 我们再次使用 TCON 和 TDISCON 块来建立和重置连接,并使用 TRCV 接收来自 PLC_1 的数据。 现在,我们想要替换所有这些块并尝试使用 TSEND_C 和 TRCV_C 来实现相同的功能。 首先,在需要发送数据的 PLC_1 中,我们将使用 TSEND_C 块,只需将该块拖放到主 OB1 内即可。 见图 3。 图 3. 添加 TSEND_C 块。 由于 TSEND_C 本质上是一个功能块,因此系统会要求您创建一个数据实例。 见图 4。 图 4. 为 TSEND_C 创建实例 TSEND_C 看起来与 TSEND 块类似,因为您需要进行一些配置并添加一些信号。 见图 5。 图 5. TSEND_C 块 现在,我们需要一个信号来发送 REQ 和数据并配置连接。 对于 REQ 信号,我们创建了一个 SendData 标签。 另外,我们可以拖放上一篇文章创建的数据块,我们需要将其发送到 PLC_2,我们可以将其拖放到块的 DATA 输入处。 见图 6。 图 6. TSEND_C 块的配置。 要配置块的连接参数,我们可以按块顶部的小配置图标打开配置视图。 配置视图看起来与 TCON 块的配置视图非常相似。 见图 7。 图 7. TSEND_C 的连接参数 我们已经在之前的文章中展示了如何配置连接参数,因此我们可以像使用 TCON 块一样进行操作,见图 8。 图 8 连接参数配置 通过这个连接配置,我们就完成了 TSEND_C 的所有配置。 请注意,与配置 TCON、TDISCON 和 TSEND 块相比,它快了多少。 现在,我们需要将 TRCV_C 添加到 PLC_2,以便它可以接收从 PLC_1 发送的数据。 在 PLC_1 的主 OB1 中,只需将 TRCV_C 拖放到您的逻辑中即可。 请参见图 9。请记住为 TRCV_C 块创建一个数据实例。 图 9. 添加 TRCV_C 将 TRCV_C 添加到您的逻辑后,我们需要对其进行配置。 正如我们对 TSEND_C 所做的那样,我们需要添加一个信号来启用数据接收,并且我们还需要添加将在其中保存数据的数据块。 见图 10。 图 10.TRCV_C 我们将 RecieveData 标签定义为 EN_R 信号。 见图 11。 图 11.定义 EN_R 标签 请记住取消选中数据块的 “优化块访问” 选项,否则该块将无法像我们在上一篇文章中展示的那样工作。 接下来,我们需要配置 TRCV_C 块的连接参数,就像我们对 TSEND_C 所做的那样,请记住,未指定的伙伴 PLC 现在是 PLC_1,见图 12。 图 12 TRCV_C 连接参数 PLC 项目模拟 现在我们已经配置了 TSEND_C 和 TRCV_ C 块,我们想要模拟我们的项目并看看它们将如何工作,但首先,我们将创建一个简单的逻辑来自动更新将发送到 PLC_2 的 PLC_1 的数据。 见图 13。 图 13. 自动更新数据的简单逻辑。 现在让我们编译并开始我们的项目的模拟。 您会注意到的第一件事是 PLC_1 和 PLC_2 将立即尝试建立连接,因为我们设置了 TSEND_C 和 TRCV_C,它们会自动尝试建立连接。 这就是两个 PLC 之间存在连接的原因。 见图 14。 图14. 直接建立连接。 可以看到,PLC 之间的连接是直接建立的,因为 TSEND_C 和 TRCV_C 中的 CONT 参数设置为 TRUE,这意味着该块将自动尝试与伙伴 PLC 建立连接。 我们可以在这里放置任何控制信号来控制连接的建立。 您可以看到的另一件事是 TSEND_C 的 REQ 和 TRCV_C 的 EN_R 设置为 FALSE,这就是为什么 PLC 之间不会有任何数据移动。 见图 15。 图 15. PLC 之间无数据传输。 如果 TSEND_C 的 REQ 信号设置为 true,则 PLC_1 将尝试发送数据,但会等待其他 PLC 允许接收数据,见图 16。 图 16. REQ 为真。 正如您所看到的,SendData 为 TRUE,但没有发送任何数据,因为 RecieveData 仍然为 false。 仅当 ReceiveData 设置为 true 时,PLC_2 才会从 PLC_1 接收数据。 见图 17。 图 17. 数据发送至 PLC_2 正如您所看到的,RecieveData 何时为 true。 数据将从 PLC_1 发送到 PLC_2,但是,您可以看到两个 PLC 内部的数据是不同的,因为 PLC_1 的数据按照我们之前所做的简单逻辑自动变化。 这意味着 EN_R 信号允许传输数据一次,当我需要再次传输数据时,该信号必须变为 false,然后再次变为 true。 查看随附的 TIA Portal 项目并查看 PLC 之间的数据传输。
  8. leizuofa

    西门子 S7-1200 PLC 硬件配置

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

    停车场进出控制 PLC 程序

    这是一个用于地下室或地下停车场的出入控制的 PLC 程序。 PLC 停车场 问题描述 由于区域拥挤,我们在商场、酒店、综合体等场所面临着许多车辆在地下室或地下停车的问题。这是由于城市中商场、商店和综合体的车辆数量迅速增长与有限的停车位之间的矛盾而发生的。 造成“停车难、乱停车”的现象。当前停车问题严重影响人们的生活质量和道路运行。 问题图 问题方案 通过简单的自动化,我们可以减少商场、酒店、综合体等地下室或地下的停车问题。地下室的出入口是单车道通道,需要红绿灯来控制汽车。这里我们考虑两个灯指示 汽车控制。 红灯禁止车辆进出,绿灯允许车辆进出。当汽车从底层入口进入通道时,红灯(底层和地下室)都会亮起。禁止其他车辆进出 在此过程中,直到汽车通过单一通道。当通道畅通时,两个绿灯(底层和地下室)都会亮起,并允许其他车辆从底层或地下室进入。 最初我们将保持绿灯亮,红灯灭 输入和输出列表 输入列表 主开关:I0.0 底层入口/出口传感器 S1:I0.1 地下室入口/出口传感器 S2:I0.2 输出列表 绿灯(入口/出口底层):Q0.0 绿灯(地下室入口/出口):Q0.1 红灯(底层入口/出口):Q0.2 红灯(地下室入口/出口):Q0.3 M记忆线圈列表 M10.0 : 当汽车经过传感器 S1 时亮起 M10.3 : 当汽车经过传感器 S2 时亮起 M0.0:系统ON上升沿 M0.1 & M11.0:传感器 S1 的上升沿 M0.3 & M11.1:传感器 S2 的上升沿 M11.2:传感器S2的下降沿 M11.3:传感器S1的下降沿 停车场进出控制 PLC 梯形图 计划说明 在本应用中,我们使用西门子S7-300 PLC和TIA Portal软件进行编程。 网络1: 根据上述第一个网络中的说明,当系统开启 (I0.0) 时,最初两个绿灯(底层 (Q0.0) 和地下室 (Q0.1))都会亮起。 执行 SET 指令后,将设置输出 Q0.0 和 Q0.1。 网络2: 根据上面在第二个网络中的解释,当系统打开(I0.0)时,最初两个红灯(底层(Q0.2)和地下室(Q0.3))将关闭。)执行RESET指令并将重置 均输出 Q0.2 和 Q0.3。 网络3: 当轿厢从底层进入空通道时,传感器S1(I0.1)将被触发,并且通过该触发,记忆线圈M10.0将被置位。 网络4: 当汽车从地下室进入空通道时,传感器S2(I0.2)将被触发,并且通过该触发,记忆线圈M10.3将被置位。 网络5: 两个红灯将由传感器 S1 或传感器 S2 的正触发设置。因为当汽车进入空通道时,两个红灯(Q0.2 和 Q0.3)将禁止汽车从两侧进出。 网络6: 这里我们对传感器 S1 (I0.1) 和 S2 (I0.2) 进行负触发。 因此,当它们触发红灯(Q0.2和Q0.3)时,红灯(Q0.2和Q0.3)将关闭。当汽车完全通过空通道时,红灯(Q0.2和Q0.3)应该关闭。 网络7: 在该网络中,当红灯熄灭时,绿灯(Q0.0&Q0.1)将亮起。绿灯(Q0.0&Q0.1)允许其他车辆进入或退出。 网络8: 如果红灯(Q0.2 & Q0.3)亮起,此时绿灯(Q0.0 & Q0.1)应该关闭。因此,在该网络中,当红灯(Q0.2 & Q0.3)亮起时 此时将执行复位指令,绿灯(Q0.0 & Q0.1)将熄灭 网络9: 如果系统ON(I0.0)开关关闭,则所有存储器都应为0。这里我们采用MOVE指令在所有存储器(MB0、QB0和MB10)中移动零。 本示例仅用于概念解释,本示例并未考虑所有参数(例如门开/关系统、警报等) 结果 注:以上PLC逻辑提供了PLC在停车场出入口控制中应用的基本思路。 逻辑是有限的,不完整的应用。
  11. 这是一个 PLC 程序,用于实现对移动传送带上的物体进行计数的程序。 计数传送带上的移动物体 物体在传送带上移动。我们需要计算输送机末尾收集的对象的总数,并将其显示在本地控制面板上。 为此应用编写一个 PLC 程序。 问题图 问题方案 这里我们使用 PLC 梯形图程序来实现这个逻辑。 大多数接近传感器用于检测物体。在这里,我们安装接近传感器来检测传送带上移动的零件或物体。 电感传感器主要用于检测金属物体。对于其他类型的对象,我们使用电容接近传感器来检测传送带上移动的对象。我们将该传感器连接到 PLC,并通过使用计数器逻辑,我们将计算物体的数量并在本地控制面板显示屏上显示总数。 这里我们使用 UP 计数器来对传送带末端收集的物体进行计数。 注意: -在这里,我们考虑了计数对象的简单应用。我们考虑使用接近传感器来检测物体。接近传感器将感测物体,PLC UP计数器将对收集到的物体进行计数。 输入和输出列表 数字输入 开始:- I0.0 停止:-I0.1 接近度:- I0.2(物体检测) 计数器复位 PB:- I0.3 数字输出 循环开启:- Q0.0 内存 计数器重置:-M0.1 收集的物品总数:- MW10 用于对传送带上的物体进行计数的 PLC 梯形逻辑 梯形图逻辑解释 对于该应用,我们使用 S7-300 PLC 和 TIA Portal 软件进行编程。我们也可以使用其他PLC来实现这个逻辑。 网络1: 在第一个网络中,我们使用锁存电路来实现周期 ON。在这里,我们使用 Start PB(I0.0)开始周期并停止 PB(I0.1)停止周期。 网络2: PLC 计数器指令用于计算对象的数量。接近传感器安装在输送机附近。 当物体接近接近传感器(I0.2)时,它会检测到物体,并且传感器的输出变为通电或变为ON状态。 当接近传感器附近没有物体时,传感器的输出将断电或变为关闭状态。 PLC 计数器以增量方式计数。总计数对象编号将存储在存储单词或寄存器(MW10)中。 注意: -上面的应用程序可能与实际应用不同。该示例仅用于解释目的。我们也可以在其他 PLC 中实现此逻辑。这是 UP计数器的简单概念。通过使用此概念,我们可以计算在输送机或任何其他计数应用程序上移动的对象。此逻辑只是部分或仅针对特定应用程序的逻辑。 示例中考虑的所有参数仅供说明之用,实际应用中参数可能有所不同。 结果
  12. leigehong

    PLC 逻辑功能

    有许多控制情况需要在 PLC 中实现某种逻辑功能条件组合时启动动作。 PLC 逻辑功能 例如,对于自动钻孔机,可能存在这样的情况:当限位开关被激活时,指示工件的存在以及钻孔位置位于工件的表面处,钻孔电机将被激活。 这种情况涉及 AND 逻辑功能,条件 A和 条件 B 都必须实现才能发生输出。本节是对此类逻辑函数的考虑。 PLC 和逻辑 图 1.7a 显示了一种情况,除非两个常开开关都闭合,否则输出不会通电。开关 A 和开关 B 都必须闭合,从而给出 AND 逻辑情况。 我们可以将其视为具有两个输入 A 和 B 的控制系统(图 1.7b)。只有当A和 B都导通时才有输出。因此,如果我们使用 1 表示开启信号,使用 0 表示关闭信号,那么为了得到 1 输出,我们必须让 A 和 B 都为 1。 这种操作据说是由逻辑门控制的,并且逻辑门的输入和输出之间的关系以称为真值表的形式列出。因此对于与门我们有: 与门的一个例子是机床的联锁控制系统,因此只有在安全防护装置就位并且电源打开时才能操作。 图 1.8a 显示了梯形图上的与门系统。梯形图以 jj 开始,jj 是一组常开触点,标记为输入 A,代表开关 A,并与其串联 jj,另一组常开触点,标记为输入 B,代表开关 B。 然后该行以 O 结尾以表示输出。为了有输出,输入 A 和输入 B 都必须发生,即输入 A 和输入 B 触点必须闭合(图 1.8b)。一般来说: 在梯形图上,水平梯级中的触点(即串联触点)表示逻辑“与”运算。 PLC 或逻辑 图 1.9a 显示了一个电路,当开关 A 或 B(均为常开)闭合时,输出通电。 这描述了“或”逻辑门(图 1.9b),其中输入 A 或输入 B 必须打开才能有输出。 真值表为: 图 1.10a 在梯形图上显示了 OR 逻辑门系统,图 1.10b 显示了绘制同一图的等效替代方法。 梯形图以 jj 开始,常开触点标记为输入 A,代表开关 A,与它并联的是 jj,常开触点标记为输入 B,代表开关 B。 输入 A 或输入 B 必须闭合才能使输出通电 (图 1.10c)。然后该行以 O 结尾以表示输出。一般来说: 由梯形图主梯级的垂直路径提供的替代路径,即并行路径表示逻辑“或”运算。 或门控制系统的一个示例是将瓶装产品运输到包装的传送带,如果重量不在一定的公差范围内或瓶子上没有盖子,则激活偏转板将瓶子偏转到废品箱中。 PLC 非逻辑 图 1.11a 显示了由常闭开关控制的电路。当开关有输入时,它打开,电路中就没有电流。 这说明了非门,没有输入时有输出,有输入时没有输出(图 1.11c)。门有时被称为反相器。 真值表为: 图 11.11b 显示了梯形图上的非门系统。输入 A 触点显示为常闭。 它与输出 ( ) 串联。由于输入 A 没有输入,触点闭合,因此有输出。当输入 A 有输入时,它打开,然后没有输出。 非门控制系统的一个例子是当天黑时亮起的灯,即当没有光输入到光传感器时有输出。 PLC 与非逻辑 假设我们在 AND 门后面跟随一个 NOT 门(图 1.12a)。使用非门的结果是反转与门的所有输出。 另一种方法是在每个输入上放置一个“非”门,然后使用“或”(图 1.12b),它可以给出完全相同的结果。 出现相同的真值表,即: 输入 A 和 B 都必须为 0,输出才会为 1。 当输入A和输入B不为1时有输出。 这些门的组合称为“与非”门(图 1.13)。 与非门控制系统的一个例子是,如果机床的安全防护开关尚未激活并且发出工件存在信号的限位开关尚未激活,则警告灯就会亮起。 PLC 或非逻辑 假设我们在“或”门之后跟随一个“非”门(图 1.14a)。 使用非门的结果是反转或门的输出。 另一种方法可以给出完全相同的结果,即在每个输入上放置一个“非”门,然后为结果反转的输入放置一个“与”门(图 1.14b)。 下面是得到的真值表: 或非门的组合称为或非门。当输入 A 或输入 B 都不为 1 时,就有输出。 图 1.15 显示了 NOR 系统的梯形图。 当输入 A 和输入 B 均未激活时,输出为 1。当 X400 或 X401 为 1 时,输出为 0。 PLC 异或 (XOR) 逻辑 当一个或两个输入均为 1 时,或门给出输出。 然而,有时需要一个门,当其中一个输入为 1 时给出输出,但当两个输入均为 1 时则不给出输出,即具有真值表: 这样的门称为“异或”门或“异或”门。 获得这种门的一种方法是使用 NOT、AND 和 OR 门,如图 1.16 所示。 图 1.17 显示了异或门系统的梯形图。当输入 A 和输入 B 未激活时,输出为 0。 当仅激活输入 A 时,上分支导致输出为 1。当仅激活输入 B 时,下分支导致输出为 1。 当输入A和输入B同时激活时,没有输出。 在此逻辑门示例中,输入 A 和输入 B 在电路中具有两组触点,一组常开,另一组常闭。 通过 PLC 编程,每个输入可以根据需要拥有任意多组触点。 PLC 专用或非 (XNOR) 逻辑
  13. 在本文中,我们将展示如何使用西门子 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 会向您显示此原因,一旦您解决问题,您就可以上传。
  14. 在本文中,我们将介绍 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 行为如何随不同过程条件而变化。 结论 时钟存储器位以预定义的频率打开和关闭。 当您需要激活闪烁的指示灯或启动定期重复操作时,它们非常有用。 使用时钟存储器位可以节省您通过自己的逻辑获得相同功能所需的时间和精力。
  15. 在这篇文章中,我们将讨论当您开始对 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 中所选模块的最旧版本。避免您的项目出现任何固件问题。
  16. 西门子是一家著名的跨国公司,业务涉及能源、医疗保健、交通和工业自动化等多个行业。西门子成立于 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 数量、安全要求和通信选项。
  17. 在本文中,我们将继续讨论西门子 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 来识别错误并解决它。
  18. 在之前的文章中,我们开始讨论 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 来初始化参数、校准传感器,甚至在允许流程运行之前检查安全条件。
  19. 在之前的文章中,我们讨论了不同类型的组织块,例如主 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 的偏移设置 结论 循环中断对于不应该面临任何延迟的时间关键任务非常有用。 您的逻辑中可以有多个循环中断。 使用循环中断的偏移设置来避免同时启动时间。 使用优先级设置来控制不同循环中断的执行顺序。
  20. 在之前的文章中,我们讨论了什么是组织块,并讨论了主循环中断 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。
  21. 在上一篇文章中,我们讨论了什么是组织块,并且谈到了一个非常重要的组织块,它就是主 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,因为这取决于您的流程和逻辑。是的,您可以使用您的个人代码实现相同的功能,但它是一个可用且易于使用的内置函数。而且你知道如何使用它。
  22. 在之前的文章中,我们讨论了 SIEMENS TIA Portal 中的不同类型的块,其中讨论了功能块 FB、功能 FC 和数据块 DB。 在本文中,我们将讨论西门子 PLC 中的另一种类型的块,这些是组织块,在本文中,我们将讨论其中最重要的组织块,即主组织块或 OB1。 内容: 什么是组织块? 不同类型的 OB。 什么是 OB1? 周期时间监控。 简单的程序示例。 结论。 什么是组织块 (OB)? 组织块,您可以将它们视为功能 FC 或功能块 FB。但不同的是,你不调用它们,PLC 的操作系统调用这些组织块,无论操作系统将 OB 作为 OB1 循环调用还是在某个事件发生时调用,无论哪种方式,操作系统 照顾它。您只需要创建块并在块内添加您想要的任何逻辑。有时,您甚至不需要在 OB 中添加任何代码,只需创建 OB 本身就可以提供许多好处,我们将在讨论其中一些 OB 时看到这些好处。 组织块是 PLC 操作系统和用户程序之间的接口。任何 PLC 都会有两个不同的程序,运行程序是 PLC 的操作系统,用户程序是 PLC 程序员编写的用于控制某个过程的逻辑或代码。这两个不同的软件需要相互通信,而组织块 OB 就是如何完成此操作的。 组织块 OB 用于执行许多任务,下面列出了其中一些任务: 自动化系统的启动特性 循环程序处理 中断驱动程序执行 错误处理。 不同类型的组织块 因为组织块基本上是操作系统执行许多任务的工具。 不同的任务需要不同的 OB,这就是为什么 PLC 内部有许多不同的 OB,有多少不同的 OB 将取决于您使用的 PLC 类型,但以下是您几乎可以在所有 PLC 中找到的一些最常见的 OB。西门子 PLC: 主循环 OB1。 时间会中断 OB。 一天中的时间 OB。 软件错误 OB。 硬件错误 OB 还有更多的组织块可用于您的逻辑。见图1。 图 1 – TIA Portal 中提供的不同组织块 在本文中,我们将讨论其中最重要的组织块,即主循环中断 OB1。 主循环中断 OB1 主循环 OB1 是负责由 PLC 循环执行逻辑的组织块。每当您创建新项目并添加 PLC 时,软件都会自动创建主 OB1。这些是 PLC 代码所需的最少块。见图2。 图 2 – 主OB1自动创建 在此主 OB1 中,如果项目很小,您可以编写整个 PLC 程序。如果您的项目相当大,那么您可能需要执行一些功能块 FB 的功能 FC。在这种情况下,您将使用主 OB1 来调用它们。 当然,您不必通过 OB1 调用每个 FC 或 FB,但如果您的 OB1 不是嵌套调用的第一个块,则它将不会被执行。见图3。 图 3 – 通过 OB1 调用您的块 PLC 代码的基本基础是循环行为,这意味着您需要连续执行代码。当逻辑处理完成后,操作系统将再次开始处理它。这是通过使用主 OB1 来完成的,您可以在该 OB1 中放置和调用所有逻辑和代码,操作系统将确保连续执行它。 您应该知道,即使您无法创建 OB1 块(因为添加新 PLC 时会自动创建 OB1 块),您也可以创建多个循环中断块。 OB1 是一个循环中断,操作系统会自动连续调用并执行里面的任何逻辑。然而,对于大型 PLC 项目,您的 PLC 逻辑中有如此多的功能和功能块,您可以使用多个循环中断 OB 来更好地构建代码,使其易于阅读和理解。 在这种情况下,您将创建另一个循环中断,见图 4。 图 4 – 创建多个循环 OB 当创建了多个程序循环 OB 时,将按照 OB 编号的顺序依次调用这些 OB。 首先调用具有最低 OB 编号的程序循环 OB。见图5。 图 5 – 具有多个循环 OB 的程序循环 循环程序完成后,操作系统按如下方式更新过程映像: 它将过程映像输出中的值写入输出模块。 它读取输入模块的输入并将这些输入传输到过程映像输入。 前两步加上 PLC 程序的执行称为一个扫描周期。见图6。 图 6 – 西门子 PLC 的扫描周期 周期时间监控 循环时间是指循环程序的运行时间,包括所有嵌套程序部分(例如 FC、FB 和更高优先级 OB)的运行时间。如果创建了多个程序循环 OB,则每个程序循环 OB 都会影响循环时间。 操作系统监视循环时间是否仍然小于配置的最大循环时间。如果超过最大循环时间,PLC 将根据您的编程进入 STOP 模式或调用 OB80。 除了监控最大循环时间之外,还可以保证最小循环时间。为此,操作系统会延迟新周期的开始,直到达到最小周期时间。 您可以在 PLC 的配置属性中配置最小和最大循环时间。见图7。 图 7 – 配置最小和最大循环时间 PLC 中的简单程序示例 图 8 – PLC 程序示例 为了更好地理解 PLC 程序周期和 OB1 执行,让我们创建一个简单的程序。该程序将使用一条加法指令,每 1 个扫描周期将值 1 累加到存储区域中。请参阅以下模拟。 从动画中可以看出,add 指令的执行速度非常快;这就是扫描周期的速度。这将取决于您的 PLC 的功能有多强大。但主要扫描周期在毫秒范围内。 结论 组织块是 PLC 操作系统和控制程序之间的接口。 主循环 OB1 由操作系统循环执行。 您可以通过将逻辑包含在一个或多个循环 OB 中来执行该逻辑。 扫描周期时间是执行逻辑 1 次所用的时间。
  23. 在上一篇文章中,我们讨论了数据块,我们讨论了两种不同类型的数据块,全局数据块和功能块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 中,您只能将整个块定义为保持性。 结论 与标准数据库相比,优化数据块有很多优点。在向块添加新变量时,使用符号名称有助于避免标签的任何地址更改。 通过优化块,不会丢失任何内存区域。与使用标准数据库时发生的情况相反。
  24. caixiaofeng

    自动门操作 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 编程
  25. 在上一篇文章中,我们讨论了什么是功能块 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 中。
Apply for friendship links:WhatsApp or E-mail: admin@plchmis.com
×
×
  • Create New...