Simotion Example For Beginners d435 en
Simotion Example For Beginners d435 en
Simotion Example For Beginners d435 en
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
The application examples and the associated documentation contained on this DVD are made available without cost. The customer receives for the software the non-exclusive, non transferable, free right to use the software; this includes the right to change the software, to copy it changed or unchanged, and to combine it with the customer's own software. Siemens AG has not subjected the software to the normal system test otherwise usual for software. Any liability irrespective of the legal reason in particular because of software errors or the associated documentation or damages resulting from consulting is excluded, unless, for example, because of premeditation, gross negligence, risk to life, injury or health, acceptance of suitability guarantee, malicious concealment of a fault or a violation of significant contractual obligations, would force liability. A reversal of the burden of proof to the customer's disadvantage is thus not included. German legal right applies. Place of jurisdiction is Erlangen.
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Before processing the Example for Beginners, it is advisable to study Getting Started with SIMOTION SCOUT" (Menu Help Getting Started). In the example, some elements have been extended more than necessary in order to demonstrate as many different aspects of SIMOTION as possible (e.g. a virtual axis as master). Menu- and context menu commands are shown in italic type as well as the names of dialogs and tabs etc.. Menu Sub menu are separated by an arrow. The screenshots were created with SIMOTION Version 4.2 (05/2011). Under some circumstances there may be minor changes for future versions. The firmware version on the SIMOTION D435 should agree with the SIMOTION SCOUT version.
Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Sensor
Task:
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Packages with a protruding machine part are used on a conveyor belt (drive 1). An empty package is detected by a sensor and should be removed with an extractor (drive 2). The removal itself is performed pneumatically. When an emergency off switch is pressed, all drives should be stopped immediately. The current position of the conveyor belt should be displayed on the operator panel. The machine diagrams show a machine part, the implementation in SIMOTION is shown in the following slides. The solution concept shows only one of many possible solutions. This particular solution was selected to use as many different SIMOTION functions as possible: Cam with CamTool Gearbox synchronism Camming Output cams Virtual master axis etc.
Siemens AG 2011. All Rights Reserved. Industry Sector
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Profibus DP Carton erector * Feed * ET 200 * MICROMASTER 420 * 1 FK7 Transport Extractor
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Stop
Run
Startup Task
1
Motion Task 20
Motion Tasks
Motion Task 1
Motion Task 2
Synchronous Tasks
2
Task 5
Task 2
3
Shutdown Task
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Central topic for SIMOTION: Which job do I solve in which task or which tasks are particularly suitable for specific jobs. In the example, the background task is used to start sequential tasks (MotionTasks). The sequential tasks are used to implement processes and to start movements. The UserInterruptTask initiates an incorrect part handling depending on an external signal. The IPOsynchronousTask task monitors a protective door. Another central question in SIMOTION: Which program sections are programmed cyclically and which are programmed sequentially. The same result can often be achieved in both ways. For motion commands, SIMOTION supports the programming in the cyclical context. The monitoring of the status of a motion command is performed by the system when sequential programming is used (nextCommand:=WHEN_MOTION_DONE).
Siemens AG 2011. All Rights Reserved. Industry Sector
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
To simplify the understanding, the comparison on a sample task follows: Pos should move to Target; the Finished variable is set to TRUE when the position is reached.
Sequential Task:
_pos ( axis:= Pos, position:= Ziel, nextCommand:= WHEN_MOTION_DONE)
Cyclical Task:
Query status pos. command
Advance command Program processing stops until the target position is reached
Fertig:= TRUE;
IF (Pos_status <> ACTIVE AND Pos. command Fertig = FALSE ) THEN Advance _pos ( axis:= Pos, command position:= Ziel, nextCommand:= IMMEDIATELY, commandID:= PosCommandID); END_IF IF Pos.motionstatedata.motioncommand = MOTION_DONE THEN Query position Fertig:= TRUE; END_IF
SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Global user variables I/O variables Device global variables Unit variables Local user variables Program variables FC variables FB variables
Siemens AG 2011. All Rights Reserved. Industry Sector
Global user variables are defined by the user and have a wide scope: device global, project global or unit global.
Local user variables have a limited scope. They are always valid only within the defining program unit (program, function or function block).
Variable is assigned to a TO (e.g. actual position of an axis) Variable is assigned to the SIMOTION device (e.g. system clock)
SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Global user variables I/O variables Device global variables Unit variables Local user variables Program variables FC variables FB variables
Variable can only be used within the declaring program Variable can only be used within the declaring function (FC) Variable can only be used in the declaring function block (FB) Variable indicates an input/output area (e.g. Startpos -> P10.1) Variable can be accessed from anywhere on the device 1. A variable can only be used in programs, functions and function blocks. 2. A specially exported variable can also be used in other units.
Current situation
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Drives Parameterization SINAMICS Axis configuration Master axis Conveyorbelt Extractor Output cam configuration Cam configuration Form Parameterization Programming, parameterization and test WinCC flexible connection
Task (machine diagram) Topology concept with SIMOTION Program concept Technology objects Task structure Task relationships Variables System environment Create device Specification of the possible DP cycle clock Creation of a hardware configuration
Positioning axis Rotary axis (modulo) Real axis - conveyorbelt Following axis Rotary axis (modulo) Gearbox synchronism Real axis - pusher Following axis Linear axis Camming Cam - extractor Not cyclical
Startup Task
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Initialization - ST Background Task Execution control - FUP Call the homing task / initial setting travel - FBD Call the automatic operation FBD Motion Task 2 (Homing) Homing (incremental encoder) and possibly initial setting travel of the associated axes MCC Motion Task 3 (Automatic operation) Start the master axis - MCC
Synchronize the conveyorbelt MCC Trigger the pneumatic valve MCC Motion Task 4 Call the extractor task - MCC User Interrupt Task 1 (stock outage detection) Call the extractor task - MCC IPO sync Task (Emergency stop monitoring) Test protective door - MCC Tech Fault / Peripheral Fault Task (fault handling) Acknowledge error - MCC
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Startup
Motion Task 2
User Interrupt
Device-global variables
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
I/O-variables (symbol browser) Onboard inputs (CU) ib16DigCU (all inputs) WORD (DI_0_15) iboEject (Sensor) BOOL (DI_2) iboProtDoor BOOL (DI_0) iboStartBelt BOOL (DI_1) Onboard outputs (output cam object) Onboard outputs (CU) Extractor active output cam (DO_8)
None Unit-global variables Velocity of the leading axis Open protective door Program end Operating mode Local variables None
Variables are named in accordance with the instructions from the applications style guide V1.01 for SIMOTION
3. Set the interface for PG to IE2/NET The networking for PG in NetPro will be created automatically
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Set system clock for integrated drive interface Context menu SINAMICS_INTEGRATED Object Properties... The value of Tdp determines the basic cycle of the SIMOTION task system Via each factors the settings can be fine tuned
Use the properties of the PG (Object properties) to change the access address of the logical PG interface (e.g. IP-address) (Tab Interfaces) or change the physical mapping of the logical PG interface (Tab Assignment)
Siemens AG 2011. All Rights Reserved. Industry Sector
The configuration assistant (wizard) obtained all necessary information No option module
Note: The drive parameter p0864 at power units with DRIVE-CLiQ have to be wired to the operation signal of the infeed. In all other cases the operating signal have to be wired to a digital input (e.g. CU). The chosen DI is now linked with p0864 via BICO.
Drive 1 to Connection X1
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Drive with DRIVE-CLiQ interface No further details for motor type required
Summary
Insert drive
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
After entering the name of the extractor (eject) the configuration wizard has to be repeated for drive 2. Shown below are just the dialogs that differ in comparison to drive 1.
motor type and speed in accordance with rating plate Encoder in accordance with rating plate
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
For the SIMOTION D training case (single phase connection) the drive parameter p0210 has to be set from 600V to 345V. Access via expert list. This must be carried out for both drives.
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
The ratio of bus data cycle clock to servo cycle clock to interpolator cycle clock (IPO) should be 1 : 1 : 1. The bus data cycle clock is given by HW config. (here: DP cycle Tdp).
Note for the offline configuration: Encoder type (incremental or absolute) by motors with DRIVE-CLiQ interface have to be determined from the motor order number.
By real leading axis (e.g. conveyorbelt) you can choose the setpoint or the actual value as the set value.
MasterAxis
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
No modifications
Conveyorbelt
Position control Speed precontrol activated DSC activated; Kv = 50
Ejector
Position control Speed precontrol activated DSC activated; Kv = 50
Conveyorbelt
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Ejector
Homing mode: Encoder zero mark only
Before an output cam can be insert, an I/O of the control unit has to be configured as output. (DO 8)
Output cam and track will be added in the directory Output Cam under the relevant axis (Ejector). One output cam were created by Insert output cam. Set name of the output cam and activate Open editor automatically.
Activate output Set Cam output to: Fast digital output Set digital output DO 8 at the control unit. This output won't be added to the symbol browser.
Proc. cycle clock: IPO Output cam type: Position based cam (related to the axis Ejector) Type of output cam values: Setpoints
protection door contact (input 0 on the switch box of the training case) start conveyorbelt (input 1) sensor detect bad part (input 2) Image of the onboard-inputs of the control unit
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
When you insert a source a properties dialog displays. In this you can set the name and if necessary the compiler settings. Later this settings can be changed by the properties of the existing source.
Programming
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Function Definition of all unit global variables in the INTERFACE field only in one ST-unit. Ensures easy exportability of global variables. Prevent confusing cross-references (links or USES). Retain variables and HMI variables are also declared on a separate source.
Siemens AG 2011. All Rights Reserved. Industry Sector
Programming
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Insert keywords PROGRAM pInit and END_PROGRAM Initialization of the variables at STOP RUN transition Save and compile
Function With the program pInit in the ST-unit pDefInit the variables will be set to a defined value at startup. The ST-unit pInit is to assign to the StartupTask. The StartupTask is executed at every change of the operating state of the SIMOTION control from STOP to RUN.
Basic Procedure
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Always when variables from pDefInit are used in an other source (e.g. pAuto), pDefInit have to be assign to this source. This connection can be configured in the tab Connections.
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Function
For fault handling of technological objects (e.g. axis). In principle, an empty program can be used. Thus, the SIMOTION control wont STOP if errors occurs. Note: During the commissioning and troubleshooting, it is advisable to acknowledge as few alarms directly. These alarms often give clues of misconduct.
Siemens AG 2011. All Rights Reserved. Industry Sector
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Access to I/Os of the drives only when the drive components have also been ramped up (after Power On)
e.g. onboard inputs of the CU Test in the program for valid accesses of the I/O variables Is to be done in all cyclic tasks (e.g. via the variable gboDriveActive) Alternatively, you can work directly with replacement values of the I/O variables
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
This occurs only when The protection door is closed and MotionTask_1 or MotionTask_2 Stopped (performed), Waiting and has been suspended (emergency stop) Suspended (emergency stop) In a LAD/FBD-program you can always switch between the views LAD and FBD. This is done via the menu or the toolbar.
Siemens AG 2011. All Rights Reserved. Industry Sector
b32TaskState : State of MotionTask_2 or MotionTask_3 b32RetStart : Return value of the function _startTaskID boResult : Resultbit of the LAD/FBD-Networks b32ResAnd : Result of the task state evaluation boGo: Taskstartbit (TRUE if MotionTask_2 or MotionTask_3 have to be restarted) sTaskSel : Structure that can contain TaskIDs (e.g. MotionTask_2 or MotionTask_3)
You can query the task state with the system function _GetStateOfTaskId (command library task system). The reported state is always clearly and consistently. This is a significant advantage over an application-locking by using boolean variables. The variable sTaskSel contains the task whose state is to be queried. The return value is a DWORD (b32TaskState) that can be processed bitwise. In Network 6 is a bitwise AND link of the return value with the value 16#0022. This corresponds to the OR link of the two states TASK_STATE_STOPPED and TASK_STATE_SUSPENDED.
Note: The different task state information can be found in the manual SIMOTION SCOUT basic functions.
The result of the bit AND logical operation is evaluated in this network. If the return value is larger than 16#0000, the associated task must be restarted (boGo = TRUE). If the return value matches 16#0000, boGo becomes FALSE. This bypasses restarting the task. Jump label is end (network 9).
This network becomes active as soon as a task needs to be restarted. To start the task the system function _restartTaskId (command library task system) is used. This function can only be used to MotionTasks. The return value is a DWORD (b32RetStart), which reports about success or failure. In Network 10 is a jump label end. This jump label is at the end of the block, so that jumps to this position will end the block. A jump label can be switched on or off. To do this you have to select the label and switch it on or off via the toolbar or the menu.
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
The status of the FBD program can be monitored in this snapshot (monitor online).
Aktueller Wert zur Laufzeit
Network 2: The protection door is closed. Network 3 and 4: The operating mode is automatic (gi16Mode = 1). Consequently, Motiontask_3 is stored in the sTaskSel variable.
Connect with pDefInit Declare a local variable i32RetResetAxis (Variable type VAR, Data type DINT) Reset axes in the ST-Zoom (after emergency stop):
i32RetResetAxis := _resetAxis (Axis := MasterAxis); i32RetResetAxis := _resetAxis (Axis := Conveyorbelt); i32RetResetAxis := _resetAxis (Axis := Ejector);
Alternatively, the axis enable can also be removed and reapplied. Set gboProtDoorOpen to false Set gr64VMasterAxisOld to 0
Siemens AG 2011. All Rights Reserved. Industry Sector
Homing:
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Zeros on the MasterAxis Enable Conveyorbelt Enable Ejector Deactivate Valve output cam If necessary: active homing conveyorbelt (if an incremental encoder is used). Command can be displayed in case of need again. Active homing ejector Use default settings Optionally, an initial position motion can also be connected here Set variable gi16Mode to 1
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Open executing system with a double click Use the arrow buttons to assign previously created programs to the execution levels
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Open the Homing program (SCOUT must be online) and start monitoring Switch SIMOTION D435 to RUN Depending on the configuration either both or only one of these axes perform homing Optionally, the program can also be run in single-step mode The axes are homed after passage through the program
Note for the execution: The pBckFBD program in the background task starts the automatic operation as soon as the gi16Mode variable is set to 1. Note: There are additional comments on the FAQ slide Siemens AG 2011. All Rights Reserved. Industry Sector
Connect with pDefInit Enable MasterAxis The conveyor belt starts with the positive edge of the iboStartBelt signal Synchronize the conveyorbelt see parameterization (following slides) Activate the Valve output cam see parameterization (following slides) If the set velocity changes, switch continue gr64VMasterAxis <> gr64VMasterAxisOld Start master axis position-controlled with gr64VMasterAxis velocity For comparison, save the current velocity in gr64VMasterAxisOld := gr64VMasterAxis Until-loop with gboProgEnd condition
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Activate the Valve output cam Switch-on position 0.1 mm Switch-off position 0.4 mm
Siemens AG 2011. All Rights Reserved. Industry Sector
As previously, the monitoring is now activated Operation: Once the axes have been homed, the Conveyorbelt starts to turn as soon as a positive edge of iboStartBelt is detected The gr64VMasterAxis set velocity can be controlled in the symbol browser or in a watch table (control immediately) The automatic program responds only to a change of the set velocity
Variables from the program and from technological objects (e.g. axes) can be recorded in the trace Procedure: Select trace D435 Select variables Load Trace in the D435 Start D435 Start trace iboStartBelt from 0 to 1
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Segment 3
Segment 1
Segment 2
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Insert MCC Chart pEject Synchronize the cam This motion task is started with a user interrupt The cam is processed acyclically
Siemens AG 2011. All Rights Reserved. Industry Sector
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Stock outage detection: Insert program pEject Specify condition for user interrupt in the execution system Sensor at DI 2 (iboEject) at TRUE means eject is coming (Input 2 on the switch box of the D435 training case)
Siemens AG 2011. All Rights Reserved. Industry Sector
Insert MCC Chart pProtDoor Connect with pDefInit Query whether protection door is closed (true = closed) If open , set gboProtDoorOpen bit, because axes must be explicitly reset after an emergency stop (see automatic operation (MotionTask 3 in MCC) 1/2) Query all MotionTasks using _GetStateOfTask (MotionTask_x) <> 16#0002 (where x = 1 to 3) (test whether task stopped) All running tasks will be interrupted
Query the axes for stoppage using MasterAxis.motionstatedata. motionstate <> standstill Conveyorbelt.motionstatedata. motionstate <> standstill Ejector.motionstatedata. motionstate <> standstill
If the axes are moving Deactivate Valve output cam Stop axes using Fast stop with maximum deceleration
Create a watch table. The variable can be moved with a right click in the symbol browser.
Recording object variables such as actual position and actual velocity of an axis using Trace
Test the program execution of a Motion Task using Monitor and Single Step
Have the tasks been correctly added to the execution system? Is the protective door (DI 0) closed? The extractor output cam does not come! An output cam must be activated. Are the limits correctly parameterized in the Switch on SW output cam mask ? The homing task hangs on the axis enable of the real axes. Why is this? The axis enable does not arrive. Possible causes: In the HW configuration, the Master application cycle in the slave properties does not agree with the position control cycle in the SCOUT under Execution system Expert settings. They must be identical! The axes homing is not correct. What can be the error cause? Check the settings in the Homing Axes mask
Global user variables HMI (WinCC flexible) D435 I/O-variables Device global variables Unit variables Ethernet Data exchange
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming
IP address: 169.254.11.1 Subnet mask: 255.255.0.0 Save and compile Close HW Config
Siemens AG 2011. All Rights Reserved. Industry Sector
At this point you can edit the WinCC flexible project. Hereafter the user interface of the sample project is shown.
Siemens AG 2011. All Rights Reserved. Industry Sector
Introductory Information Task SIMOTION - Basic Information Program Conception Create Project SINAMICS Configuration SIMOTION Configuration SIMOTION Programming