Simotion应用指南(一) 如何快速的搭建一个Simotion项目

Simotion应用指南(一) 如何快速的搭建一个Simotion项目Simotion 是由西门子 Siemens 公司开发的一个高级运动控制系统 它结合了工业自动化领域的运动控制和工艺控制功能 旨在为复杂的运动控制应用提供全面的解决方案

大家好,欢迎来到IT知识分享网。

引言

Simotion作为西门子高端运动控制器在网上的资料比较少,大部分的资料也是英文的。自从从事C#后端开发之后,有项目的时候修改一下Simotion,调试Simotion的机会越来越少了,但是我无法忘记Simotion ST结构化语言的优雅。要是把Simotion全部的功能介绍完,估计没有个四五十篇文章下不来。我也不知道自己能不能坚持写完😂。本期就先不讲解理论,先快速的搭建一个Simotion项目,并通过仿真运行起来。(先货真价实的看见一个轴能动起来,至于什么是工艺包,什么是工艺对象,齿轮比配置等等理论之后的文章讲解。)

目录

引言

一、Simotion简介

Simotion系统概述

Simotion的应用领域

Simotion系统架构

Simotion与竞争产品的比较

二、如何快速的搭建一个Simotion项目 

1.打开SIMOTION SCOUT软件

2.添加一个Simotion站点

3.打开HardWare进行组态

4.打开NetWork进行网络配置

5.编译保存 

6. 添加一个电源模块

7.添加一个驱动模块

8.添加一个AXES 

9.修改报文 

三、仿真Simotion

1.打开仿真,项目下载

2.添加一个ST_Fault的ST空程序

3.EXECUTION SYSTEM中添加FaultTask

4.Control panel测试运行轴

四、使用点动程序的Simotion仿真

1.添加一个ST_Axis_Control的ST程序

2.添加一个ST_Global的ST程序

3.添加一个ST_Axis_Test的ST程序

4.ST程序设置可以监控

5.EXECUTION SYSTEM中添加BackgroundTask

6.监控程序


一、Simotion简介

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

Simotion是由西门子(Siemens)公司开发的一个高级运动控制系统,它结合了工业自动化领域的运动控制和工艺控制功能,旨在为复杂的运动控制应用提供全面的解决方案。Simotion系统集成了先进的硬件和软件技术,适用于各种需要精确控制和高性能的工业自动化应用,如机床、包装机械、印刷设备等。本文将深入探讨Simotion系统的核心特性、应用领域、技术架构以及与竞争产品的比较,以帮助读者更全面地了解这一先进的运动控制平台。

Simotion系统概述

Simotion系统是西门子公司专门为复杂运动控制应用而设计的,它融合了PLC(可编程逻辑控制器)的功能与CNC(计算机数控)系统的特点,形成了一种高度灵活、功能强大的解决方案。Simotion系统的核心特点包括:

  1. 集成的运动控制和工艺控制:Simotion系统不仅能够精确控制运动轨迹、速度和加速度,还可以同时管理复杂的工艺参数,如温度、压力等,以满足多种工业应用的需求。
  2. 开放的软件架构:Simotion系统基于西门子的TIA(Totally Integrated Automation)平台,支持多种编程语言和开发环境,如STEP 7、TIA Portal等,使得开发人员可以根据具体需求进行定制开发和集成。
  3. 高性能的硬件平台:Simotion系统采用先进的多核处理器和专用的运动控制芯片,具备强大的实时计算能力和高速通信接口,能够处理复杂的运动算法和大规模数据交换。
  4. 灵活的配置和扩展性:Simotion系统支持模块化设计,用户可以根据需要选择不同的模块(如运动控制、I/O接口、通信模块等)进行灵活组合和扩展,以满足不同规模和复杂度的应用场景。
  5. 全面的诊断和监控功能:Simotion系统集成了先进的诊断工具和监控功能,能够实时检测设备状态和运行参数,帮助用户快速定位和解决问题,提高生产效率和设备可用性。

Simotion的应用领域

Simotion系统广泛应用于需要高精度和高性能运动控制的行业和应用领域,包括但不限于:

  • 机床制造:用于数控机床和复合加工中心,能够实现高速、高精度的轨迹控制和加工过程优化。
  • 包装和填充设备:用于食品和饮料行业的包装机械,能够精确控制包装材料的输送、填充量和封口过程。
  • 印刷设备:用于印刷机械的卷取、定位和印刷控制,支持复杂的多轴同步运动和图像定位功能。
  • 材料处理和装配:用于各种材料处理设备和自动装配线,如焊接机器人、涂覆设备等,能够精确控制操作过程和产品质量。
  • 测试和检测设备:用于自动化测试和检测系统,能够实现精确的测量和数据采集,支持复杂的测试程序和数据分析。

Simotion系统架构

Simotion系统的核心架构包括硬件和软件两个方面,它们共同构成了这一高级运动控制平台的基础。

  1. 硬件架构
    • 主控制单元(CPU):Simotion系统的核心控制单元,通常由多核处理器组成,负责执行运动控制算法和数据处理任务。
    • 运动控制模块(Motion Control Unit):专用的运动控制芯片或模块,负责实时控制运动轨迹、速度和加速度,保证高精度的运动控制。
    • I/O模块:用于与外部设备和传感器进行数据交换和信号处理,支持多种数字和模拟接口。
    • 通信接口:支持各种工业通信协议和网络,如PROFIBUS、PROFINET等,实现Simotion系统与其他设备和上位系统的数据交换和集成。
    • 电源模块和冷却系统:确保Simotion系统稳定运行的电源供应和散热管理。
  2. 软件架构
    • 工程开发环境:Simotion系统通常使用TIA Portal或SCOUT作为工程开发环境,集成了运动控制编程、图形化编程语言(如STL、SCL)、参数配置和在线监控等功能。
    • 运动控制软件:包括运动控制算法、插补算法、轨迹规划和同步控制等软件模块,用于实现复杂的多轴同步运动控制。
    • 诊断和监控工具:提供实时的设备状态监控、诊断报告和事件记录功能,帮助用户快速定位和解决问题。

Simotion与竞争产品的比较

Simotion系统作为一个高级运动控制平台,在市场上与其他类似产品进行竞争。以下是Simotion系统相对于竞争产品的优势和特点:

  • 集成度高:Simotion系统集成了运动控制、工艺控制和诊断功能,能够满足复杂应用的多重需求,减少系统集成和维护成本。
  • 灵活的软件架构:Simotion系统支持多种编程语言和开发环境,使得开发人员能够根据具体需求进行定制开发和集成,提高系统的灵活性和可扩展性。
  • 高性能的硬件平台:Simotion系统采用先进的多核处理器和专用的运动控制芯片,具备出色的实时计算能力和高速数据交换能力,能够处理复杂的运动算法和大规模数据处理。
  • 全面的支持和服务:作为西门子公司的产品,Simotion系统拥有全球范围内的技术支持和服务网络,能够及时响应用户需求并提供定制化的解决方案。

二、如何快速的搭建一个Simotion项目 

1.打开SIMOTION SCOUT软件

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

2.添加一个Simotion站点

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

3.打开HardWare进行组态

添加站点之后HardWare会自动打开,或右键D4x5 选择Open HW Configuration进入HardWare界面。因为我们是要进行仿真测试,所以设置127编程口的网络。

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

4.打开NetWork进行网络配置

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

添加一个pg/pc

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

设置 pg/pc的ip

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

设置  pg/pc的接口

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

5.编译保存 

NetWork编译保存

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

HardWare编译保存

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

6. 添加一个电源模块

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

7.添加一个驱动模块

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

8.添加一个AXES 

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

9.修改报文 

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

三、仿真Simotion

1.打开仿真,项目下载

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

2.添加一个ST_Fault的ST空程序

INTERFACE PROGRAM Falut; END_INTERFACE IMPLEMENTATION PROGRAM Falut //未调用故障处理任务,导致SIMOTION D4x5 CPU无法进入RUN状态。 //在EXCUTION SYSTEM中的 //SystemInterruptTasks内的所有FaultTask中调用空程序。 //必须调用,否侧CPU无法run。 ; END_PROGRAM END_IMPLEMENTATION 

3.EXECUTION SYSTEM中添加FaultTask

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

添加之后再次下载。

4.Control panel测试运行轴

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

点动测试 

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

四、使用点动程序的Simotion仿真

刚才我们已经通过Control panel进行了点动,现在我们开始通过程序进行点动测试。

1.添加一个ST_Axis_Control的ST程序

INTERFACE USEPACKAGE cam_ext; FUNCTION_BLOCK FB_JOG; FUNCTION_BLOCK FB_Axis_Enable; END_INTERFACE IMPLEMENTATION FUNCTION_BLOCK FB_JOG VAR_INPUT axisName : posaxis; jogForward : BOOL; jogBackward : BOOL; speedsetpoint : LREAL; Axis_AutoAccel : LREAL:=3000; Axis_AutoDecel : LREAL:=3000; mymovingmode : EnumMovingMode; END_VAR VAR myDINT : DINT; forwardton : TON; backwardton : TON; END_VAR VAR_OUTPUT ActualSpeed : REAL; ActualPosition : REAL; END_VAR IF axisname.control=ACTIVE THEN forwardton(in:=jogForward AND NOT jogBackward, pt:=t#3000ms); backwardton(in:=NOT jogForward AND jogBackward, pt:=t#3000ms); END_IF; ActualSpeed:=LREAL_TO_REAL(axisName.motionStateData.actualVelocity); ActualPosition:=LREAL_TO_REAL(axisName.positioningState.actualPosition); IF forwardton.q THEN myDINT :=_move( axis:= axisName, direction:= POSITIVE, velocitytype:= DIRECT, velocity:= speedsetpoint, positiveacceltype:=Direct , positiveaccel:=Axis_AutoAccel, negativeacceltype:=Direct , negativeaccel:=Axis_AutoDecel, velocityprofile:=SMOOTH, mergemode:=IMMEDIATELY, nextcommand:=IMMEDIATELY, movingmode:=mymovingmode ); END_IF; IF backwardton.q THEN myDINT :=_move( axis:= axisName, direction:= NEGATIVE, velocitytype:= DIRECT, velocity:= speedsetpoint, positiveacceltype:=Direct , positiveaccel:=Axis_AutoAccel, negativeacceltype:=Direct , negativeaccel:=Axis_AutoDecel, velocityprofile:=SMOOTH, mergemode:=IMMEDIATELY, nextcommand:=IMMEDIATELY, movingmode:=mymovingmode ); END_IF; IF forwardton.q = FALSE AND backwardton.q = FALSE THEN myDINT :=_stop( axis:=axisName, stopmode:=STOP_WITHOUT_ABORT, stopspecification:=ALL_AXIS_MOTION, positiveacceltype:=Direct , positiveaccel:=Axis_AutoAccel, negativeacceltype:=Direct , negativeaccel:=Axis_AutoDecel, velocityprofile:=SMOOTH, mergemode:=IMMEDIATELY, nextcommand:=IMMEDIATELY, movingmode:=CURRENT_MODE ); END_IF; END_FUNCTION_BLOCK FUNCTION_BLOCK FB_Axis_Enable VAR_INPUT axisName : driveaxis; axis_enable : BOOL; END_VAR VAR myDINT : DINT; END_VAR VAR_OUTPUT axis_enabled : BOOL; END_VAR IF axis_enable THEN myDINT :=_enableAxis(axis :=axisName); ELSE myDINT :=_disableAxis(axis :=axisName); END_IF; //axis_enabled:=axisName.control=active; //这里可以这样写,其实 ":= " 是赋值的意思,符号右侧可以是值或者是一个表达式,不管是什么必须与右侧的类型相同。下面是使用if写的,通俗易懂点。 IF axisName.control=inactive THEN axis_enabled:=FALSE; ELSE axis_enabled:=TRUE; END_IF; END_FUNCTION_BLOCK END_IMPLEMENTATION 

2.添加一个ST_Global的ST程序

INTERFACE USES ST_Axis_Control; VAR_GLOBAL myfbaxisen : FB_Axis_Enable; myfbaxisjog : FB_JOG; END_VAR END_INTERFACE IMPLEMENTATION END_IMPLEMENTATION 

3.添加一个ST_Axis_Test的ST程序

INTERFACE USES ST_Global; PROGRAM Axis_Test; END_INTERFACE IMPLEMENTATION PROGRAM Axis_Test VAR axisen : BOOL; END_VAR myfbaxisen( axisName := Axis_1 ,axis_enable := TRUE ,axis_enabled => axisen); myfbaxisjog( axisName := Axis_1 ,jogForward := TRUE ,jogBackward := FALSE ,speedsetpoint := 10 ,Axis_AutoAccel := 3000 ,Axis_AutoDecel := 3000 ,mymovingmode := POSITION_CONTROLLED); END_PROGRAM END_IMPLEMENTATION 

4.ST程序设置可以监控

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

5.EXECUTION SYSTEM中添加BackgroundTask

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

添加之后下载至仿真cpu中

6.监控程序

Simotion应用指南(一) 如何快速的搭建一个Simotion项目

此时我们可以看到轴已经运行起来。 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/133829.html

(0)
上一篇 2025-07-17 16:45
下一篇 2025-07-17 17:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信