当前位置: 首页 > news >正文

工赋开发者社区 | 工业数字孪生:西门子工业网络与设备虚拟调试案例(TIA+MCD+SINETPLAN)

PART1

案例背景及基本情况

新生产系统的设计和实施通常是耗时且高成本的过程,完成设计、采购、安装后,在移交生产运行之前还需要一个阶段,即调试阶段。如果在开发过程中的任何地方出现了错误而没有被发现,那么每个开发阶段的错误成本将大大增加,未检测到的错误可能会在调试期间造成设备重大的损坏。

数字孪生对实施过程的前中后进行容错冲销,将大部分的操作-除了最后安装之外全部移到虚拟层,设计、开发、调试等工作都是虚拟层进行,得到最优和最确定的方案后有相当的把握再上线使用。

随着工艺要求和控制复杂度的增加,使得本来就很棘手的设备调试变得更加棘手,脱离了现场运行环境,机械、电气部件和自动化软件就得不到充分的调试,设备设计的正确性和有效性等得不到有效的保障。在调试阶段,工程师会发现错误,修改设计,编写和优化程序,以及对操作人员进行新设备、新操作流程培训。

工艺设计和虚拟调试,特别适合一些禁止远程调试的业务场景。其实这些事情很多供应商也干过,只不过未必是数字孪生罢了:模拟安装环境啊,而且还不是局部模拟,是全局模拟。当然有条件的设备供应商可以自己模拟一个小型环境,如果成本太高,也可以用数字孪生来模拟一个虚拟的调试和安装环境。通过现实的运行机理导入数据和流程到数字孪生,这里我们再超前一点:数字孪生能不能搞用户化和通用化呢,当然也可以。

这个阶段是难以计划,会延迟生产,也会造成成本超支,并可能导致延迟发货,影响客户满意度。由于数字孪生是物理资产的准确表征,可以用于对新网络或设备设计的虚拟调试。

在虚拟调试时,如果发现问题需要进行设计优化,则可以在计算机上对虚拟的系统模型进行更改,虚拟调试允许重新更改网络规划、重新编程机器人或更改变频驱动器、PLC 编程等操作。一旦重新编程,系统会再次进行测试,如果通过,则可以进行下一阶段的物理部署。

通过虚拟调试实现对设备的设计进行仿真验证,缩短从设计到物理实现的时间;

使用虚拟调试来提前测试设备运动部件以发现机械干涉以及提前验证自动化 PLC 编程和上位软件,这样可以使现场的调试速度更快,风险更低。

PART2

系统框架

网络规划和仿真验证系统

在设计阶段,通过 SINETPLAN 实现对工业网络 PROFINET 的规划设计和仿真,识别潜在的问题并避免发生。

新建、组态 PROFINET 网络,或导入现有项目,进行网络负载仿真,流量整形保证网络运行安全可靠,优化网络资源和透明化网络利用率;也可以对已安装 PROFINET 网络进行在线扫描和验证。

网络架构让真正网络工程师去搞,我不懂。知道它是啥就行,不用什么都通,面面俱到:知道需要什么,输出什么,标准是什么,流程是什么差不多了,再配合配合嘛。

设备的数字孪生

在设备开发中应用虚拟调试,首先要创建一个设备的数字孪生即虚拟设备,虚拟设备构成主要有三部分,即物理和运动系统模型电气和行为模型自动化模型

其中:

物理和运动系统模型主要是机械组件,比如设备主体、执行机构、输送带、工装夹具等;

电气和行为模型主要是一些活动组件例如驱动器、阀门和外设行为;

自动化模型是 DCS,PLC 程序和上位机软件。

这三种模型都需要数字孪生仿真

虚拟调试系统(这个东西是核心,其他都是辅助)

虚拟调试系统分软件在环(SiL: Software in Loop)和硬件在环 (HiL:Hardware in Loop),根据不同的仿真环境可以选择软件在环或硬件在环。

软件在环是把整体设备完全虚拟化,即由虚拟控制器 CPU、虚拟 HMI、虚拟信号及模型算法、虚拟机械模型组成;

(软件在环就是软件虚拟化,仿真化,不仅仿真软件模型,贴张图说这个就是HMI视图也可以,还要仿真的软件的功能)

硬件在环是把设备主要的硬件放在仿真环境中,使用真实 HMI、真实控制器 CPU、现场 IO 设备与虚拟机械模型组成虚拟设备模型。

(硬件在环是将现实的硬件设备和虚拟硬件设备仿真模型连接起来,共同组成一个硬件仿真环境,无论是软件也好,硬件也好,最终都是仿真实体的模型和机理,就这两件事,看清楚了就不觉得复杂了。)

通过搭建虚拟调试平台,对包含多物理场以及通常存在于机电一体化产品中的自动化相关行为进行 3D 建模和仿真,使机械、电气和自动化设计能够同时工作,并行协同设计一个项目:

a)对工业网络 PROFINET 进行高效规划、布局、仿真和验证。(网络规划)

b)机械工程师可以根据三维形状和运动学创建数字模型。(实体数字模型,前面的基础知识篇中有这些概念,感兴趣的小伙伴可以去看一下)

c)电气工程师可以选择并定位传感器和驱动器等行为模型。(行为模型仿真,别忘了还有上一篇里面提及的动作控制柜,什么原理呢,所有相关的物理性操作的集成封装到一个控制系统中)

d)自动化编程人员可以设计设备的控制逻辑和 HMI 程序,然后与机械模型、电气模型连接,实现基于事件或命令的控制和运动模型。

(视图交互模型,没有这个称不上数字孪生,最多算个仿真分析程序)

PART3

案例特点

虚拟调试不同于在物理世界中调试新网络或设备,而是通过在虚拟世界中创建数字孪生,然后模拟新网络或设备的功能测试和模型验证,这样可以实现:

a)规划-仿真-测试

b)虚拟环境中的程序代码测试和调试

c)设备运行仿真,可以发现设计问题以及对解决方案的快速评估

d)机器人单元操作的仿真

e)仿真新设备的产能,识别空间限制和对现有操作的影响,以便在安装前解决这些问题

f)对设备操作人员的培训

PART4

实施步骤

对PFOFINET工业网络的规划、仿真与测试,通过三步即可达到目的,包括创建/加载项目、调整、分析并输出报告。

对设备的虚拟调试,需要以下几个主要步骤:

1.建立虚拟设备模型

首先要了解设备的真实控制机理,分析每个运动的真实物理场景中

所对应的控制信号,在 NX MCD 建立虚拟设备模型,创建及匹配相应的信号,并使用信号来控制运动模型的动作,仿真实际机械部件的运动情况,

为后续使用 PLC 的虚拟调试做基础。

2.建立虚拟控制系统

在 TIA Portal 中编写 PLC 控制程序和 HMI 画面,编程和 HMI 工作完成后,启动 PLCSIM Advanced 建立虚拟 PLC,与真实 PLC 具有相同的功能,将 PLC 控制程序下载到虚拟 PLC 中;并启动 HMI 人机界面仿真器建立虚拟 HMI 人机界面。

3.建立虚拟模型与虚拟控制系统的映射关系

将 PLC 中的输入、输出变量与 NX MCD 中输入、输出信号建立联系,从而达到 PLC 中的输出信号作为 NX MCD 的输入信号,反之 PLC 中输入信号作为 NX MCD 的输出信号。

4.通过虚拟调试试验验证设计的可用性

启动虚拟 PLC,在线监控 PLC 控制程序的运行情况;在 NX MCD 中运行虚拟设备模型,查看程序控制的运动情况。通过虚拟设备模型的运动和控制逻辑仿真,优化改进自动化模型、电气和行为模型,以及物料和运动模型,而不会造成硬件资源的浪费。

这个流程说明我们昨天扯的还是比较正确的,数字孪生怎么实现:先用传统的方式把流程走出来,然后用数字孪生的技术进行赋能。这也是个人比较建议的一种方式。MES的系统怎么实现,先用数据采集去完成数据完整性效验,在此基础上对着需求和MES的框架或核心功能去构建。说白了,就是在数据的基础上用MES的理论和框架进行赋能。ERP也是一样的道理。什么意思呢?先用传统的方式把整个业务流程理清楚了,把数据准备好了,最后再此基础上用数字化进行赋能。什么是系统:主体就是数据和业务流程,其他都是服务。这20%搞定了也就平衡了80%的系统需求。为什么要搞用户化和通用化,就是这个原因。

PART5

核心技术

软件在环仿真技术

软件在环(SiL: Software in Loop)仿真是采用虚拟控制器模型和虚拟对象模型连接起形成闭环,以运行仿真对象来模拟其运行行为和状态,可以完成一些实际中难于实现的场景测试。

(因为软件本身就是半虚拟的,其实说白了就是在数字孪生的场景中把软件的功能集成进来,就这么个事情。比如网络监测软件,是检测网络通信本身的状态,或者网络电缆的检测软件-探伤功能,这些都可以集成进来)

硬件在环 (HiL: Hardware in Loop) 仿真是将实时处理器和虚拟对象结合起来运行仿真模型来模拟仿真对象的运行行为和状态,通过 I/O、OPCUA 及网络等接口与被测对象相连接。也称为半实物仿真,是将需要仿真的部分系统硬件直接放到仿真回路中的仿真系统,仿真时,实际系统的一部分设备与计算机通过各种信息通道相连,计算机和实际硬件共同完成仿真工作,并将仿真结果在电脑中进行分析,从而判断硬件的运行情况。

(硬件的仿真就是虚实结合,实现实际设备和虚拟模型的敛收速率同步,其实就是状态和运行机理同步。数字孪生搞什么?模型状态和运行机理啊。)

硬件在环仿真不仅弥补了纯数字仿真中的许多缺陷,提高了整个模型的置信度,而且可以大大减轻编程的工作量。这种仿真的另一个优势在于它实现了仿真模型和实际系统间的实时数据交互,使仿真结果的验证过程非常直观,大大缩短了产品开发周期。

PART6

案例成效和意义

工业网络和设备的设计过程很难预测到生产和使用过程会不会出现问题,而虚拟调试带来许多好处之一就是验证工业网络和设备设计的可行性。

虚拟调试允许设计者在物理设备生产之前进行任何修改和优化,因为用户在测试过程中可以修复错误,及时对自动化系统或机械设计进行改进优化,可以节省时间。虚拟调试将每个设计细节都验证好之后,就可以把这台设备做出来,然后只要在物理设备上再做 15%或者 20%这样少量的软件优化,设备就可以正常运行。

通过数字孪生技术的应用,帮助企业在实际投入物理对象(如设备、生产线)之前即能在虚拟环境中进行设计、规划、优化、仿真、测试、维护与预测等,在实际的生产运营过程中同步优化整个生产流程,以明珞装备为例,通过虚拟调试系统在规划、设计和调试阶段与客户交换数据和协调,将项目周期缩短了 20%-30%,减少 50% 以上的工程现场调试时间,最终实现高效的柔性生产,提高企业核心竞争力。通过对 PROFINET 的规划与仿真,实现调试前的透明化,节约成本,变被动为主动。

· E小萌 ·

添加小助手微信

相关文章:

工赋开发者社区 | 工业数字孪生:西门子工业网络与设备虚拟调试案例(TIA+MCD+SINETPLAN)

PART1案例背景及基本情况新生产系统的设计和实施通常是耗时且高成本的过程,完成设计、采购、安装后,在移交生产运行之前还需要一个阶段,即调试阶段。如果在开发过程中的任何地方出现了错误而没有被发现,那么每个开发阶段的错误成本…...

将闲置的Ipad作为Windows的副屏(Twomon SE)

目录一、前言二、方法第一步 安装软件第二步 使用步骤三、注意一、前言 在看网课的时候,总有种不得劲的感觉,来来回回的切换就很糟心~~无意间看见闲置的板砖(Ipad),计上心来-- _ – 期间也尝试过免费的软件&#xff…...

浮点数在内存中的存储——“C”

各位CSDN的uu们你们好呀,今天,小雅兰的内容是浮点数在内存中的存储,昨天我们已经写过了整型在内存中的存储,那么,浮点数在内存中是怎样存储的呢?现在,就让我们进入浮点数在内存中的存储的世界吧…...

华为OD机试 C++ 实现 - 租车骑绿岛

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…...

Spring Cloud Nacos源码讲解(三)- Nacos客户端实例注册源码分析

Nacos客户端实例注册源码分析 实例客户端注册入口 流程图&#xff1a; 实际上我们在真实的生产环境中&#xff0c;我们要让某一个服务注册到Nacos中&#xff0c;我们首先要引入一个依赖&#xff1a; <dependency><groupId>com.alibaba.cloud</groupId><…...

位运算(C/C++)

1. 基础知识 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。比如&#xff0c;and运算本来是一个逻辑运算符&#xff0c;但整数与整数之间也可以进行and运算。举个例子&#xff0c;6的二进制是110&#xff0c;11的二…...

哈希表题目:设计哈希映射

文章目录题目标题和出处难度题目描述要求示例数据范围前言解法一思路和算法代码复杂度分析解法二思路和算法代码复杂度分析题目 标题和出处 标题&#xff1a;设计哈希映射 出处&#xff1a;706. 设计哈希映射 难度 3 级 题目描述 要求 不使用任何内建的哈希表库设计一个…...

​力扣解法汇总1238. 循环码排列

目录链接&#xff1a; 力扣编程题-解法汇总_分享记录-CSDN博客 GitHub同步刷题项目&#xff1a; https://github.com/September26/java-algorithms 原题链接&#xff1a; 力扣 描述&#xff1a; 给你两个整数 n 和 start。你的任务是返回任意 (0,1,2,,...,2^n-1) 的排列 p&…...

[数据结构]时间复杂度与空间复杂度

[数据结构]时间复杂度与空间复杂度 如何衡量一个算法的好坏 long long Fib(int N) {if(N < 3)return 1;return Fib(N-1) Fib(N-2); } 这是一个求斐波那契数列的函数&#xff0c;使用递归的方法求得&#xff0c;虽然代码看起来很简洁&#xff0c;但是简洁真的就好吗&#…...

Codeforces Round #848 (Div. 2)(A~D)

A. Flip Flop Sum给出一个只有1和-1的数组&#xff0c;修改一对相邻的数&#xff0c;将它们变为对应的相反数&#xff0c;修改完后数组的和最大是多少。思路&#xff1a;最优的情况是修改一对-1&#xff0c;其次是一个1一个-1&#xff0c;否则修改两个1。AC Code&#xff1a;#i…...

第十三届蓝桥杯Java B 组国赛 C 题——左移右移(AC)

目录1.左移右移1.题目描述2.输入格式3.输出格式4.样例输入5.样例输出6.数据范围6.原题链接2.解题思路3.Ac_code1.左移右移 1.题目描述 小蓝有一个长度为 NNN 的数组, 初始时从左到右依次是 1,2,3,…N1,2,3, \ldots N1,2,3,…N 。 之后小蓝对这个数组进行了 MMM 次操作, 每次…...

第14篇:系列二—Java抽象类/接口/枚举

目录 1、继承的定义(Inheritance) 2、继承的优点 2.1 易维护性 2.2 复用性 2.3 条理性...

深入浅出C++ ——哈希

文章目录前言一、unordered系列关联式容器1. unordered_map2. unordered_set二、哈希1. 哈希概念2. 哈希冲突3. 哈希函数4. 哈希冲突解决方法三、模拟实现unordered系列容器1. 哈希表的改造2. 模拟实现 unordered_set3. 模拟实现 unordered_map前言 在C11中&#xff0c;STL又提…...

Tina_Linux_系统裁剪_开发指南

文章目录Tina_Linux_系统裁剪_开发指南1 概述2 Tina系统裁剪简介2.1 boot0裁剪2.2 uboot裁剪2.3 内核裁剪2.3.1 删除不使用的功能2.3.2 删除不使用的驱动2.3.3 修改内核源代码2.3.3.1 size工具.2.3.3.2 ksize.py脚本2.3.3.3 nm命令2.3.3.4 kernel压缩方式.2.4 文件系统裁剪.2.4…...

算法刷题打卡第99天:至少在两个数组中出现的值

至少在两个数组中出现的值 难度&#xff1a;简单 给你三个整数数组 nums1、nums2 和 nums3 &#xff0c;请你构造并返回一个 元素各不相同的 数组&#xff0c;且由 至少 在 两个 数组中出现的所有值组成。数组中的元素可以按 任意 顺序排列。 示例 1&#xff1a; 输入&…...

线程池面试题

1. 什么是线程池&#xff1f;为什么要使用线程池&#xff1f; 线程池是一种用于管理线程的技术&#xff0c;它可以在应用程序中重复使用一组线程来执行多个任务。线程池的优点包括提高应用程序的性能和可伸缩性、避免线程创建和销毁的开销、避免线程过多导致系统负担过重等。线…...

【学习笔记】NOIP爆零赛5

说实话是不想补题的。因为每一道题都贼难写&#xff0c;题解又通篇写着显然&#xff0c;然后自己天天搞竞赛又把注意力搞差了&#xff0c;调一道题又调半天&#xff0c;考试的题又难的要死 不会正解 &#xff0c;部分分又写挂了 可能心态崩了就是从那场t1t1t1签到题考高精度数位…...

【数据结构】时间复杂度

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…...

vector的基本使用

目录 介绍&#xff1a; vector iterator 的使用 增删查改 增&#xff08;push_back insert&#xff09;&#xff1a; 删(pop_back erase)&#xff1a; swap&#xff1a; vector的容量和扩容&#xff1a; 排序&#xff08;sort&#xff09;&#xff1a; 介绍&#xff…...

剑指 Offer 55 - I. 二叉树的深度

摘要 剑指 Offer 55 - I. 二叉树的深度 一、深度优先搜索 如果我们知道了左子树和右子树的最大深度l和r&#xff0c;那么该二叉树的最大深度即为&#xff1a;max(l,r)1。 而左子树和右子树的最大深度又可以以同样的方式进行计算。因此我们可以用「深度优先搜索」的方法来计…...

Bean的生命周期和作用域

Bean的生命周期Bean的执行流程&#xff1a;Bean 执行流程&#xff1a;启动Spring 容器 -> 实例化 Bean&#xff08;分配内存空间&#xff0c;从无到有&#xff09;-> Bean 注册到 Spring 中&#xff08;存操作&#xff09; -> 将 Bean 装配到需要的类中&#xff08;取…...

TestNG和Junit的区别,测试框架该如何选择?

要想知道两个框架的区别&#xff0c;首先分别介绍一下两个框架。 TestNG是一个java中的开源自动化测试框架&#xff0c;其灵感来自JUnit和NUnit&#xff0c;TestNG还涵盖了JUnit4整个核心的功能&#xff0c;但引入了一些新的功能&#xff0c;使其功能更强大&#xff0c;使用更…...

MySQL安全登录策略

MySQL密码复杂度策略设置 MySQL 系统自带有 validate_password 插件&#xff0c;此插件可以验证密码强度&#xff0c;未达到规定强度的密码则不允许被设置。MySQL 5.7 及 8.0 版本默认情况下貌似都不启用该插件&#xff0c;这也使得我们可以随意设置密码&#xff0c;比如设置为…...

优化模型验证23:带无人机停靠站的卡车无人机协同配送车辆路径问题、模型、gurobipy验证及结果可视化

带中转hub的卡车无人机车辆路径问题 模型来源为:Wang Z , Sheu J B . Vehicle routing problem with drones[J]. Transportation Research Part B: Methodological, 2019, 122(APR.):350-364. 问题描述: 这篇问题研究了一个带停靠站的卡车无人机路径问题,无人机仅能从起点…...

mongoTemplate Aggregation 多表联查 排序失效问题解决

目录说明说明 接着上一个文章的例子来说&#xff1a;mongoTemplate支持多表联查 排序 条件筛选 分页 去重分组 在按照上一个demo的代码执行后&#xff0c;可能会发生排序失效的问题&#xff0c;为什么说可能呢&#xff1f;每个人负责业务不同&#xff0c;不可能是最简单的dem…...

什么是智慧实验室?

智慧实验室是利用现代信息技术和先进设备将实验室实现智能化和智慧化的概念。通过将各种数据、信息和资源整合在一起&#xff0c;实现实验室设备的互联互通&#xff0c;数据的实时采集、传输、处理和分析&#xff0c;从而提高实验室的效率、精度和可靠性。一、智慧实验室包含多…...

Python abs() 函数

Python abs() 函数Python 数字描述abs() 函数返回数字的绝对值。语法以下是 abs() 方法的语法:abs( x )参数x -- 数值表达式。返回值函数返回x&#xff08;数字&#xff09;的绝对值。实例以下展示了使用 abs() 方法的实例&#xff1a;#!/usr/bin/python print "abs(-45) …...

裸辞了,面试了几十家软件测试公司,终于找到想要的工作

上半年裁员&#xff0c;下半年裸辞&#xff0c;有不少人高呼裸辞后躺平真的好快乐&#xff01;但也有很多人&#xff0c;裸辞后的生活五味杂陈。 面试了几十家终于找到心仪工作 因为工作压力大、领导PUA等各种原因&#xff0c;今年2月下旬我从一家互联网小厂裸辞&#xff0c;没…...

ShardingSphere

1.简介 1.开源的分布式数据生态项目 ShardingSphere-JDBC&#xff1a;轻量级Java框架ShardingSphere-Proxy&#xff1a;数据库代理ShardingSphere-Sidecar(规划中)&#xff1a;Kubernetes的云原生数据库代理 2.使用版本&#xff1a;ShardingSphere5.1.1 1.数据库集群架构 1.出现…...

配置Maven

对于刚开始认识的Maven的初学者超级有用的哦&#xff01;项目统一共享使用一套jar包&#xff0c;由maven统一管理。节省了jar空间&#xff0c;统一jar包版本首先将maven安装完毕测试有没有配置完成&#xff0c;在命令框里面打 mvn -version进行测试maven安装完&#xff0c;第一…...