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

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 13 results

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

    西门子 Tia Portal – OB100 启动组织块

    在之前的文章中,我们开始讨论 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 来初始化参数、校准传感器,甚至在允许流程运行之前检查安全条件。
  3. 在之前的文章中,我们讨论了不同类型的组织块,例如主 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 的偏移设置 结论 循环中断对于不应该面临任何延迟的时间关键任务非常有用。 您的逻辑中可以有多个循环中断。 使用循环中断的偏移设置来避免同时启动时间。 使用优先级设置来控制不同循环中断的执行顺序。
  4. 在之前的文章中,我们讨论了什么是组织块,并讨论了主循环中断 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。
  5. 在之前的文章中,我们讨论了 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 次所用的时间。
  6. 在上一篇文章中,我们讨论了什么是组织块,并且谈到了一个非常重要的组织块,它就是主 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,因为这取决于您的流程和逻辑。是的,您可以使用您的个人代码实现相同的功能,但它是一个可用且易于使用的内置函数。而且你知道如何使用它。
  7. 在上一篇文章中,我们讨论了数据块,我们讨论了两种不同类型的数据块,全局数据块和功能块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 中,您只能将整个块定义为保持性。 结论 与标准数据库相比,优化数据块有很多优点。在向块添加新变量时,使用符号名称有助于避免标签的任何地址更改。 通过优化块,不会丢失任何内存区域。与使用标准数据库时发生的情况相反。
  8. 在上一篇文章中,我们讨论了什么是功能块 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 中。
  9. caixiaofeng

    西门子 PLC 固件版本是什么?

    在这篇文章中,我们将讨论当您开始对 PLC 进行编程时经常出现的一个主要问题,即固件版本的常见错误以及如何处理它们。 内容: PLC 的固件版本是多少? 为什么固件版本会引起问题? 如何知道硬件 PLC 的固件版本? 如何处理固件版本错误? 结论。 PLC 的固件版本是多少? PLC 或 PLC 模块(IO、通信模块等)的固件只是安装在 PLC 中的内部软件,负责硬件的实际功能。 固件版本将决定您的 PLC 具有哪些内部功能,例如安全协议、内部优化功能、更好的时间处理以及其他不同的特性和功能。 具有旧固件版本的 PLC 将比新固件版本的 PLC 具有更少的功能和内部功能。 图 1 和图 2 向您展示了相同的硬件 PLC 在安装不同固件版本时如何具有不同的功能和性能。 图 1 – 固件版本 V4.0 图 2 – 固件版本 V4.4 您是否注意到,现在只需更新到更高的固件版本,同一 CPU 就可以添加更多功能?借助更高版本的固件 V4.4,CPU 现在在其性能能力中添加了 OPC UA 等功能。 为什么固件版本会引起问题? 看,您通常通过选择 PLC 来启动 PLC 项目,然后开始编程。 您将根据以下两点之一在 TIA Portal 中选择 PLC: 您已经购买了硬件 PLC,因此您将选择与 TIA Portal 项目中实际拥有的相同的 PLC。 您还没有购买 PLC,因此您将在 TIA Portal 中选择符合您要求的 PLC,然后再购买。 在这两种情况下,如果 TIA Portal 项目中选择的 PLC 固件版本与实际硬件的固件版本不同,则会出现问题。而且您的程序甚至不会下载到硬件 PLC 中。 因此,您应始终确保实际 PLC 的固件版本与 TIA Portal 中选择的 PLC 相匹配。 值得一提的是,如果 TIA Portal 中选择的固件版本比实际 PLC 旧,您的程序不会遇到任何问题,您将失去一些 PLC 特性和功能,但您的程序将正常工作 。 如果相反,就会出现问题,如果 TIA Portal 中选择的固件版本比实际 PLC 更新,那么就会出现问题。 因此,如果您不知道硬件的固件版本,则应在 TIA Portal 项目中选择旧版本。 如何知道硬件 PLC 的固件版本? 我们可以通过以下两种方法之一了解我们拥有的硬件 PLC 的固件版本: 从 PLC 本身 任何 PLC 模块的固件版本始终写入硬件设备上的某个位置。请参阅接下来的图片。 图 3 – 固件版本 FS:04 图 4 – 固件版本为 V7.0.5 从 TIA Portal 软件 使用 TIA Portal 软件,您可以将 PLC 连接到 TIA Portal 并搜索设备,然后您可以找到硬件设备的固件版本,请参阅以下步骤。 您甚至不必创建一个新项目;只需 TIA Portal 的项目视图就足够了,见图 5。 图 5 – 未创建项目的 TIA Portal 的项目视图。 通过在线访问搜索您的 PLC。由于 TIA Portal 和 PLC 之间是通过以太网电缆连接的,因此我们将使用以太网连接选项。双击更新可访问设备开始搜索您的 PLC。见图6。 图 6 – 更新可访问设备以搜索您的 PLC。 如果 PLC 和 TIA Portal 之间存在连接,则软件应找到您的 PLC。见图7。 图 7 – 软件已找到您的 PLC。 现在,双击在线和诊断以显示 PLC 的信息。见图8。 图 8 - PLC 在线信息。 从常规属性中,您可以找到 PLC 的固件版本,如上图所示。 您还可以从“功能”属性中找到固件版本。见图9。 图 9 – 功能属性中的固件版本。 如何处理固件版本错误? 首先,让我们创建一个固件版本错误场景,然后我们将了解如何处理和修复此错误。 我们将首先创建一个新项目,然后添加一个新设备,在此 PLC 示例中,我们将有意选择比实际硬件 PLC 更新的固件版本。我们知道我们的 plc 固件是 V4.0,但是在 TIA Portal 中我们将选择 V4.4 固件版本。见图10。 图 10 – 添加具有更高固件版本的新 PLC。 按“确定”添加您的设备,就这样,您已经创建了一个会导致固件错误的情况。为了看到这一点,让我们尝试将项目下载到我们的 PLC 中。 请注意,我们甚至还没有编写任何代码。只需下载到 PLC 即可。见图11。 图 11 – 下载到 PLC 失败,固件不兼容。 从上图可以看出,一旦尝试将项目下载到PLC,就会出现错误,指出 PLC 和 TIA Portal 的固件版本不匹配。 如果您尝试上网,甚至可以看到它。见图12。 图 12 – PLC 处于错误状态。 要解决此错误,我们只需将 TIA Portal 项目中选择的 PLC 的固件版本更改为旧版本或与实际硬件 PLC 相同的固件即可。 为此,我们转到 PLC 的属性页面,然后从常规属性中选择更改固件版本。见图13。 图 13 – 更改固件版本选项。 按下更改固件版本按钮后,将出现更改设备窗口;在此窗口中,您将能够更改固件版本。见图 14。 图 14 – 更改设备窗口。 在更改设备窗口中,您将看到您之前选择的当前设备以及您需要将其固件与您实际拥有的设备进行匹配的新设备。 请注意,当选择较低的固件(例如 V4.3)时,窗口底部的信息将向您显示在降级到较低固件时丢失的功能,如上图所示。 现在,将新设备的固件更改为 V4.0 版本的硬件 PLC。请注意,仅仅选择较低的固件,PLC 就失去了多少特性和功能。见图 15。 图 15 – 匹配硬件 PLC 和软件之间的固件。 按“确定”确认更改,然后尝试再次将项目下载到 PLC。您会注意到,现在项目将被加载到 PLC,没有任何错误。见图16。 图 16 – 项目被加载到 PLC 中。 将项目成功加载到 PLC 表明固件版本错误现已修复。您还可以在线查看 PLC 项目的在线视图。见图17。 图 17 – 该项目的在线视图。 您在上图中看到的绿色勾号和圆圈表示软件和硬件的所有配置都匹配并且彼此兼容。 结论 在 TIA Portal 中创建新项目时,固件版本错误是非常常见的问题。 最佳实践是了解您所拥有的硬件设备的固件版本,并将其固件与 TIA Portal 中选定的设备进行匹配。 如果您不知道硬件设备的固件,则应选择 TIA Portal 中所选模块的最旧版本。避免您的项目出现任何固件问题。
  10. 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)。
  11. 西门子是一家著名的跨国公司,业务涉及能源、医疗保健、交通和工业自动化等多个行业。西门子成立于 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 数量、安全要求和通信选项。
  12. 在本文中,我们将介绍 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 行为如何随不同过程条件而变化。 结论 时钟存储器位以预定义的频率打开和关闭。 当您需要激活闪烁的指示灯或启动定期重复操作时,它们非常有用。 使用时钟存储器位可以节省您通过自己的逻辑获得相同功能所需的时间和精力。
  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 会向您显示此原因,一旦您解决问题,您就可以上传。
×
×
  • Create New...