从系列:用西门子SIMATIC Target 1500S对Simulink进行虚拟调试万博1manbetx
西门子公司(Siemens AG)、MathWorks
由于软件在现代生产机器和系统中的份额不断增加,在现场调试期间无法保持成本、项目持续时间和质量的风险也在增加。物理机器或设备的晚可用性使得测试机器软件更加困难。
虚拟调试能够使用机器的数字模型对软件进行早期测试和验证。在仿真模型中,在物理机器可用之前,可以在各种场景下测试、优化和验证力学、机器软件和待制造产品之间的交互。这种方法降低了成本,确保了高产品质量,并加快了调试速度。
学习如何创建您的机器的数字孪生和模拟它的控制算法。然后看看如何使用自动代码生成和Siemens将应用程序集成到TIA Portal项目中®硅镁质®Simulink的目标1500S™万博1manbetx®.最后,使用SIMATIC S7-PLCSIM Advanced模拟控制器进行虚拟调试。
你好,欢迎来到这个视频与西门子SIMATIC目标1500S的Simulink虚拟调试。万博1manbetx我叫延斯·勒什。我是德国MathWorks的应用工程师。今天,我将做这个视频的第一部分涵盖在Simulink环境中的建模路径。万博1manbetx对于第二部分,我们得到了来自西门子的Felipe Ravazzi先万博1manbetx生的支持,他稍后将接手代码生成、集成和联合模拟的主题。
菲利佩,也许你可以自己做个简短的介绍?
是的。你好,。我叫Felipe Ravazzi。我在西门子公司做售前支持工作。万博1manbetx我负责自动化和虚拟调试课题。
在这里,您可以看到我们的议程。首先,我将向您展示一种快速和简单的方法来创建CAD图纸的仿真模型。然后,我们将看到如何在Simulink中建模控制器逻辑以运行闭环桌面仿真。万博1manbetx之后,Felipe将接管并介绍使用Simulink的SIMATIC Target 1500S进行代码生成,然后将其集成到STEP 7 TIA Portal项目中。万博1manbetx
最后,我们将在仿真的西门子PLC上运行数字孪生和Simulink的联合仿真和控制算法,PLCSIM Advanced。万博1manbetx让我们开始吧。
在这个模型中,你可以清楚地看到一个闭环系统,它有一个被表示为机器人手臂的部件,或者更一般地说,作为一个机械组件,和在前面的控制部件控制机械组件的运动。您可以对这个模型做的第一件事是在Simulink中进行模型在循环仿真。万博1manbetx在动画窗口中,您可以看到植物部分的行为。在第二个窗口中,你还可以看到控制机器人手臂的状态图的动画。
控制软件的算法被划分为四个单状态机,它们通过事件相互交互。外部状态机用于传送带。内部的两个是机器人的手臂和抓手。
它变得很明显,马上,你可以运行你的系统没有制造一个单一的机械部分,连接一根电线,或转移任何一行代码到PLC。这允许对整个系统或单个组件进行大量测试、设计迭代和优化,而无需在原型、制造、测试工作台和旅行等方面花费数千美元。当然,这样的模型不会从天而降。但是我们看到,在大多数情况下,模型已经存在了,只是在不同的开发工具中。
这是CAD工具。几乎所有的行业公司都将他们的机器投入到CAD工具中。因此,建立核电站模型的大部分工作已经完成。
这里,你可以在CAD工具中看到机器人的模型。每个身体元素都与它的伴侣用代表自由度的关节相连。通过几次单击,您可以在Simulink中导入该模型。万博1manbetx只需一个命令,你的模型就会根据CAD组装自动生成。这个模型已经可以模拟了。现在唯一要做的就是激活激活输入和感应输出。当然,还可以添加电动机、液压缸等。但这不是这次演讲的主题。
从现在开始,我们将专注于控制器。让我们假设我们在循环模型模拟中反复测试整个算法。我们发现了一些错误并添加了被遗忘的需求。但是我们没有使用PLC编程语言从头开始编写代码,而是使用自动代码生成在PLC上实现算法。
我觉得现在是时候交给你了,菲利普。
是的。谢谢你,延斯。我要切换到屏幕。
我们已经为机械臂创建了这个流程图,就像我们在这里看到的。我们想在我们的领域层面上重复使用它而不需要手动重新编程任何东西,比如ATL或其他的PLC代码,因为——专有技术——它就在这里,已经可用了。我们想利用这一点。
因此,为了达到这个目的,我们可以使用Target 1500S,这是Simulink的一个附加组件,由西门子提供。万博1manbetx
作为系统目标文件,安装后,我们可以简单地在这里选择target 1500S。这意味着我们可以用目标进行代码生成。让我们快速浏览目标1500S的设置。
可以在这里找到,目标1500S选项下。我们可以做的第一件事是选择我们的TIA门户项目。然后通过TIA的开放,识别出我们的项目中有哪些设备可用。它还可以看到我们连接的PROFINET接口和我们使用的IP地址。
如果我们想将SCL文件直接导入TIA Portal项目,可以使用下面的这个选项。例如,我们可以选择在软件单元中导入,或者在组织块中导入。
看一下下一步,在这里,我们可以选择激活外部模式,该模式用于Simulink的在线数据访问。万博1manbetx此外,我们还有更多的选择。在这里,例如,在步骤7中启用外围访问,这意味着,例如,对于PID控制器,我可以在TIA Portal中操作P、I和D参数。还有一个选项,在下面这里,是启用第7步访问内部模型信号,以更透明地了解模型中正在发生的事情,或者,例如,启用对statflow状态的访问。
下面这个选项是一个非常好的功能,它将Simulink模型导出为HTML网页,然后可以在PLC web服务器上显示。万博1manbetx进一步看看选项,这里我们有可能自动传输生成的共享目标文件,这是我们的二进制文件,直接到PLC。
好了,关于设置讲得够多了。让我们看看它是怎么运作的。我的目标是生成包含statflow逻辑的块。我可以用鼠标右键,C/ c++代码,构建这个子系统。将弹出一个新窗口,请求变量的存储类。在本例中,我将为所有变量选择ExportedGlobal,然后按Build。
如果我们继续并选择底部的View Diagnostics,我们可以检查代码生成的进度。SCL源将自动导入TIA Portal项目。并将二进制文件传输到PLC。这意味着我们有一个完全自动化的集成工作流。
好的。现在,看看TA Portal项目,我们可以看到我们的SCL源被导入了,这也是为什么它在这里,在外部源文件下可见。这个源代码在我们的PLC中生成了一些功能块和udt。
我们可以说,我们有三个基本功能块:Load、Unload和One Step。在西门子PLC上运行目标模型时,总是需要这些模块。Load用于将共享对象文件加载到RAM内存中。卸货是为了卸货。一步块是用来执行我们的模型的。
这就是为什么它具有与我们在Simulink中编译的块完全相同的接口。万博1manbetx这基本上意味着我们拥有与我们的模块和Simulink相同的输入和输出。万博1manbetx我们可以在这里看到它们。
由于我们正在讨论虚拟调试——我们想实现一个完整的软渲染循环解决方案——Simmons提供了一个叫做PLCSIM Advanced的工具,它使我们能够模拟PLC。在本例中,我们在S7-1518 MFP中进行模拟,这是一个具有ODK功能的PLC,这意味着它可以运行c++代码。
我在这里做的是创建一个新的PLC实例,然后将我的TIA Portal项目加载到模拟的PLC。我的PLC已经处于运行模式,这意味着我生成的statflow逻辑已经在PLC上运行了。
为了使它形象化,我也可以,在这里,联机到PLC上。然后我可以在线检查输入和输出的值。
现在来看看虚拟调试的下一步,如果我们没有记错的话,我们的Simulink模型不仅包含状态流逻辑。万博1manbetx我们还模拟了这个机械臂。因此,对于一个虚拟调试,在这种情况下,我们希望有一个PLCSIM Advanced和MATLAB Simulink之间的联合仿真。万博1manbetx因此,这意味着我们必须找到一种方法,将两个软件工具之间的值结合起来。
耦合这两个工具之间值的一种方法是使用S-function块。我们所做的是实现这个价值耦合,添加了一点Simulink模型。万博1manbetx现在——在这里的控制部分——我们没有使用我们以前拥有的statflow模型,我们添加了这个s函数,它用于与PLCSIM Advanced耦合值。
这个s函数实际上是在处理PLCSIM Advanced API,并在共享内存上交换值。现在我们已经在PLC上运行了逻辑,机器人模型还在Simulink中,我们可以通过在Simulink中按下Play按钮来开始一个仿真。万博1manbetx正如我们所看到的,这个机器人正在做与我们在回路模型模拟中做的完全相同的动作,这意味着PLC上的逻辑按照预期运行。这是验证字段级别上的执行实际上显示相同行为的好方法。
好的。现在,如果您还记得的话,我还将Simulink模型导出为一个网页。万博1manbetx如果我们转到PLC网络服务器,在这里,我可以显示模型。
这是我之前生成的statflow逻辑。它现在正在PLC web服务器上显示。如果我执行模拟,我还可以看到statflow状态在这里模拟模型时发生了变化。
最后,让我们快速浏览一下本次网络研讨会中使用过的产品。s manbetx 845
在MathWorks方面,我们有MATLAB作为基本工具,Simulink作为仿真平台。万博1manbetx为了描述机械臂的力学行为,使用了Simscape和Simscape Multibody工具箱。状态机逻辑显示在statflow工具框中。使用MATLAB Coder和Simulink Coder万博1manbetx进行C/ c++代码生成。
从西门子方面来说,我们有SIMATIC STEP 7 Professional,因此TIA Portal用于创建我们的PLC项目。我们还使用SIMATIC ODK 1500S作为c++代码的交叉编译器,PLCSIM Advanced Version 3.0用于模拟我们的PLC, SIMATIC Target 1500S作为促进工作流的整体工具,因此从编译c++代码,创建ODK项目,将SCL源代码传输到TIA Portal项目中,并将二进制文件传输到控制器中。
今天关于SIMATIC Target 1500s虚拟调试的网络研讨会就到这里。非常感谢大家的关注。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。