EcoStruxureTM Cobot Expert Configuration Training V1.2.0 Public ii DISCLAIMER Schneider Electric™ makes no representations or warranties with respect to this manual and, to the maximum extent permitted by law, expressly limits its liability for breach of any warranty that may be implied to the replacement of this manual with another. Furthermore, Schneider Electric reserves the right to revise this publication at any time without incurring an obligation to notify any person of the revision. The information provided in this documentation contains general descriptions and/or technical characteristics of the performance of the products contained herein. This documentation is not intended as a substitute for and is not to be used for determining suitability or reliability of these products for specific user applications. It is the duty of any such user or integrator to perform the appropriate and complete risk analysis, evaluation and testing of the products with respect to the relevant specific application or use thereof. Neither Schneider Electric nor any of its affiliates or subsidiaries shall be responsible or liable for misuse of the information that is contained herein. If you have any suggestions for improvements or amendments or have found errors in this publication, please notify us. All pertinent state, regional, and local safety regulations must be observed when installing and using this product. For reasons of safety and to help ensure compliance with documented system data, only the manufacturer should perform repairs to components. When devices are used for applications with technical safety requirements, the relevant instructions must be followed. Failure to use Schneider Electric software or approved software with our hardware products may result in injury, harm, or improper operating results. Failure to observe this information can result in injury or equipment damage. © 2023 Schneider Electric. All rights reserved. Schneider Electric is a trademark and the property of Schneider Electric SE, its subsidiaries, and affiliated companies. All other trademarks are the property of their respective owners. The contents of this manual are proprietary to Schneider Electric and all rights, including copyright, are reserved by Schneider Electric. No part of this document may be reproduced in any form or by any means, electronic or mechanical, including photocopying, without express written permission of Schneider Electric. EcoStruxureTM Cobot Expert Configuration Training Manual INTRODUCTION AND LEGAL NOTICE Satisfactory completion of the course evaluation is mandatory for you to obtain a Schneider Electric certificate of completion of the training course. Schneider Electric will not accept any liability for action taken in reliance on this training manual. TRADEMARKS Schneider Electric has made every effort to supply trademark information about company names, products and services mentioned in this manual. Trademarks shown below were derived from various sources. Modicon, Altivar, and EcoStruxure are registered trademarks of Schneider Electric. Microsoft is a registered trademark of Microsoft Corporation. Some product names used in this manual are used for identification purposes only and may be trademarks of their respective companies. Validity Note The present documentation is intended for qualified technical personnel responsible for the implementation, operation and maintenance of the products described. It contains information necessary for the proper use of the products. About Us Members of Schneider Electric’s team of Instructional Designers have tertiary qualifications in Education, Educational Course Development and are also experienced Instructors. Currently, the team is supporting a range of Schneider Electric courses in multiple languages and multiple software environments. Authors Original Material: Stefan Winkler Updates: Contributors Creation Date: 30 November 2023 EcoStruxure Cobot Expert Configuration Public iii DOCUMENT MODIFICATION HISTORY Date Version Description 30 November 2023 1.0.0 Updated version for development Step 2B, Modbus reworked (TWIN knob) 12 December 2023 1.0.1 Activity update (Message renamed to Information), note on frames added 2nd February 2024 1.1.0 Added Activity 16 for Socket Communication 9th February 2024 1.1.1 Corrected Socket Read Instruction blocking Controller 9th September 2024 1.2.0 Reorganization of chapters The information contained in this document is proprietary to Schneider Electric. This document contains proprietary information of Schneider Electric, and neither the document nor said proprietary information shall be published, reproduced, copied, disclosed or used, in whole or in part, for any purpose other than consideration of this document without the express written permission of a duly authorized representative of the said company. EcoStruxure Cobot Expert Configuration Public iv Contents CHAPTER 1 - LEXIUM COBOT OFFER ..........................................................................................9 CHAPTER 2 - COBOT EXPERT - GETTING STARTED ...............................................................16 CHAPTER 3 - MANUAL OPERATION ..........................................................................................23 CHAPTER 4 - PROGRAMMING – BLOCKLY ...............................................................................30 CHAPTER 5 - IO .............................................................................................................................55 CHAPTER 6 - SCRIPT SUBROUTINE ..........................................................................................70 CHAPTER 7 - SAFETY SETTINGS ...............................................................................................82 APPENDIX ......................................................................................................................................96 EcoStruxure Cobot Expert Configuration Public v SAFETY INFORMATION Read these instructions carefully and look at the equipment to become familiar with the device before trying to install, operate, service, or maintain it. The following special messages may appear throughout this documentation or on the equipment to warn of potential hazards or to call attention to information that clarifies or simplifies a procedure. The addition of this symbol to a "Danger" or "Warning" safety label indicates that an electrical hazard exists which will result in personal injury if the instructions are not followed. This is the safety alert symbol. It is used to alert you to potential personal injury hazards. Obey all safety alert messages that follow this symbol to avoid possible injury or death. DANGER indicates a hazardous situation which, if not avoided, will result in death or serious injury. WARNING indicates a hazardous situation which, if not avoided, could result in death or serious injury. CAUTION indicates a hazardous situation which, if not avoided, could result in minor or moderate injury. NOTICE is used to address practices not related to physical injury. PLEASE NOTE Electrical equipment should be installed, operated, serviced, and maintained only by qualified personnel. No responsibility is assumed by Schneider Electric for any consequences arising out of the use of this material. A qualified person is one who has skills and knowledge related to the construction and operation of electrical equipment and its installation and has received safety training to recognize and avoid the hazards involved. EcoStruxure Cobot Expert Configuration Public vi COURSE OBJECTIVES By the completion of this training course participants will: • Be able to explain the Lexium Cobot architecture (Cobot Expert App – Control Cabinet – Robot Arm) • Understand the Cobot setup parameters • Know how to move the robot manually and via application program TARGET AUDIENCE This course is designed for: • Users who are new to Lexium Cobot • Users who wish to know more about Lexium Cobot configuration • Project consultation and execution teams • Support teams including L3 and ESx Competency centre • Alliance SIs & OEMs (final version) PREREQUISITE KNOWLEDGE This training course assumes the following prior knowledge: • Basic understanding of robot movements • Fundamental programming operators and instructions Knowledge of EcoStruxure Machine Expert would also be an advantage, but is not mandatory. SCOPE This training manual is provided for authorised training and is a supplement to the documentation. To make proper use of the software, refer to the information provided for the product such as the Help Files, User Guides or Knowledge Base. The graphics displaying screen captures were taken using the Windows 10 operating system. When running a different version of Windows, screen images may differ slightly from those shown in the training manual. Some screen captures may have been taken from beta or earlier versions of the software and may vary slightly from release screen captures EcoStruxure Cobot Expert Configuration Public vii COURSE PROGRAM The training course will take SEVERAL days to complete. The following program outlines the topics that will be covered on each day: Day 1 Introduction to Lexium Cobot Offer Getting Started Manual Operation Programming - Blockly Day 2 Safety Settings I/O Functions Programming – Script Day 3 Socket Communication Fieldbus Lexium Cobot Communication Library COURSE ASSETS tbd EcoStruxure Cobot Expert Configuration Public viii NOTES ON THE MANUAL The manual consists of background information to explain the concepts for the chapter. This information is shown in normal text. In addition to this, there are activities to be carried out to reinforce these concepts. These step-by-step activities are shown in italics to make them easy to distinguish from the concepts. There are also many notes and tips included in the activities to provide additional information. Often there is also a description of the concept explaining how the final result works. Look out for the boxes and header shown below. Note: Tip: Concept: ICONOGRAPHY The activities contain a mix of written instructions and graphic illustrations of the required steps. The following icons are used in these activities. Left Click Right Click Double Click Type Highlight Important Item Schneider1! Information Drag and Drop EcoStruxure Cobot Expert Configuration Public Chapter 1 - Lexium Cobot Offer Chapter 1 - LEXIUM COBOT OFFER This chapter gives an overview to the Lexium Cobot offer. Contents: What is Lexium Cobot? .............................................................................................................. 10 Offer Overview ............................................................................................................................ 11 Lexium Cobot Architecture ......................................................................................................... 12 EcoStruxure Cobot Expert App .................................................................................................. 13 Control Stick ............................................................................................................................... 15 Public 9 10 Chapter 1 - Lexium Cobot Offer WHAT IS LEXIUM COBOT? Lexium Cobot is a collaborative robot designed to work safely alongside human workers in a shared, collaborative workspace. Programming is done with the free available software EcoStruxure Cobot Expert which is using an intuitive graphical programming language. Lexium Cobot is able to learn by teaching and hand guiding functions, where the user can teach points or paths to use in the application. The collaborative robot does not require advanced skills, but the common sense and judgment of a human being. Click the Image to see the RoboBar video! Public Chapter 1 - Lexium Cobot Offer OFFER OVERVIEW The offer includes the Cobots (robot arms), Controllers and the software app Cobot Expert. The standard Cobot controller cabinet (16 DI/DO, 2 AI/AO) is designed for a standalone solution, working as autonomous system: With the Cobot Compact controller (6 DI/DO) mounted in a machines control cabinet it typically aims for a control integration with Machine PLCs and other equipment via fieldbus (e.g. ModbusTCP, Ethernet/IP or PROFINET): Public 11 12 Chapter 1 - Lexium Cobot Offer LEXIUM COBOT ARCHITECTURE The complete setup includes: • Cobot (robot arm) (1) • Cobot controller (3) • Control Stick, for local operator commands (5) • Cobot Expert, the software app for programming, commissioning and maintenance, available for Android and Windows (6/7) Public Chapter 1 - Lexium Cobot Offer ECOSTRUXURE COBOT EXPERT APP EcoStruxure Lexium Cobot Expert is the software app used for programming, commissioning and maintenance. It’s available for free on Google Play Store (Android) or with Schneider Electric EcoStruxure Machine Expert Installer. Cobot Expert is the user interface to the Cobot controller, where the storage location of settings, programs and parameters is the Cobot controller: Programming is possible with the graphical programming language Blockly: Within subprograms it is possible to implement scripts for programming: Public 13 14 Chapter 1 - Lexium Cobot Offer Public Chapter 1 - Lexium Cobot Offer CONTROL STICK The control stick is used for local operator control after commissioning is completed to control the robot arm. Necessary steps to get a commissioned Cobot running via the stick would be: • Power on the Controller (“On/Off”) • Unlock the Control Stick (press and hold “Lock/Funtion” (3s), LED switches off) • Power on the Cobot (“Power/Enable”) • Enable the Cobot (“Lock/Funktion” + “Power/Enable”) • Run the program (“Start/Stop”) If the Control Stick is unlocked the control via EcoStruxure Cobot Expert is locked and local control allowed only. Independent of the locked state the Emergency Stop is always active. Public 15 16 Chapter 2 - Cobot Expert - Getting Started Chapter 2 - COBOT EXPERT - GETTING STARTED This chapter is intended to show the complete process, from creating a new application to using the app for debugging. It can be used as a reference for most of the steps required to get a EcoStruxure Cobot Expert application running. It can also be used as a reference for the rest of the manual. If for example, the activity says connect to the robot, and you are unsure how to do this, simply refer to the section in this chapter. Contents: Connect the Robot ......................................................................................................................17 Activity 1 - Connect the Control Cabinet .............................................................................. 18 Power On and Enable .................................................................................................................20 Activity 2 - Activate the Robot .............................................................................................. 21 Public Chapter 2 - Cobot Expert - Getting Started CONNECT THE ROBOT As the Control cabinet is the data storage for the robot application the Cobot Expert app must be connected to the cabinet for programming. Start the EcoStruxure Cobot Expert application from start menu or double-click the shortcut. Note: The app will start in reduced mode. You should maximize the view for better usability: The robot arm icon will lead to the connection screen where the default is the normal connection, where the local subnet is scanned for robots available. Click the one you want to connect. To connect a robot from a remote subnet or using the virtual experience click the “Offline connection” to enter the robot address manually. Public 17 18 Chapter 2 - Cobot Expert - Getting Started Activity 1 - Connect the Control Cabinet In this activity: • Start the app and connect the robot 1. Start the EcoStruxure Cobot Expert application and maximize the view. 2. Connect and login i. Open the connection screen by left-click on the robot arm icon and select the robot assigned to you. ii. Click it to connect. The login window will open. iii. Login with the password: Schneider1! Schneider1! iv. Close the connection screen pressing X: Public Chapter 2 - Cobot Expert - Getting Started v. The robot is connected and its identification displayed next to the robot arm icon: Public 19 20 Chapter 2 - Cobot Expert - Getting Started POWER ON AND ENABLE In order to use the robot the servo drives need to be powered and the brakes must be released. Both commands can be send from the HOME screen using the appropriate buttons. After Power On the robot indicator light and the robot arm status icon will turn blue. By enabling the robot indicator light and status icon turn green. In the green status the robot can be move in hand guided mode or controlled by the app. The blue status (disabled) is often to be set in order to configure IO. Public Chapter 2 - Cobot Expert - Getting Started Activity 2 - Activate the Robot In this activity: • Activate the robot and check the software versions. 1. Power on the robot and check software versions. i. Push button “Power on the robot” on HOME screen to activate the servo drives. ii. Click the information icon in lower right corner to access the software information. The information displayed is: • App version → Current version of Cobot Expert • Servo version → Firmware of servo drives • SCB version → Firmware of Safety Control Board • Controller version → Firmware of Control Cabinet Remark: In order to enable connection the App version and Controller version must match. On mismatch it might show “login failed”. Public 21 22 Chapter 2 - Cobot Expert - Getting Started iii. Close the about screen and press “Enable robot”. An additional popup will ask for confirmation of safety, installation and initial load settings whenever the user enables the robot. iv. Confirm the prompt to get back to HOME. The robot is enabled and ready for operation. Public Chapter 3 - Manual Operation Chapter 3 - MANUAL OPERATION The MANUAL Operation screen is intended for jogging. But similar screens will be used whenever point teaching is needed from other operations. Therefore, the usage of this screen is essential to understand. Contents: Usage of Manual Operation ........................................................................................................ 24 Activity 3 - Move the Robot Manually ................................................................................... 26 Activity 4 - Information Log ................................................................................................... 28 Public 23 24 Chapter 3 - Manual Operation USAGE OF MANUAL OPERATION To reach MANUAL screen you can open the function menu using the arrow and press “Manual Operation”: The screen is divided into 2 areas to control the motion. On the left the jog sliders for spatial movement in cartesian space are available. The right offers sliders for joint movement. The movement speed can be defined at the bottom. Current values are displayed on the bottom in cartesian space and next to the joint sliders for each joint value. At the top of the screen the coordinate system of the movement is defined. Use the arrow to switch between User and TCP coordinates and the pull-down menus to select the proper frame: Public Chapter 3 - Manual Operation Pressing any value field will lead to the Position Movement screen. Use this screen to enter target joint values or cartesian coordinates (need to be translated into joint values via calculate button) directly. After defining a new position (displayed in blue) you need to move to this position via joint movement or linear movement selected by the icon next to the movement button: After selecting the movement, press and hold the button to reach the point. A popup will inform about the end of the movement and you can confirm the position: Public 25 26 Chapter 3 - Manual Operation Activity 3 - MOVE THE ROBOT MANUALLY In this activity: • Move the robot manually and investigate the possibilities 1. Open the MANUAL screen and move joint 6. i.Select the slider for Joint 6 and increase/decrease the value of it to jog joint motion: ii.The active joint is displayed in yellow and the coordinate system will rotate. 2. Open the POINT MOTION screen, edit and move. i. Click the edit field for the value of Joint 6. Fill the joint values as displayed below: ii. Move the robot in joint motion to this position and confirm: Public Chapter 3 - Manual Operation iii. Back to MANUAL screen the robot is in factory pose now. Reassure the frame selected is the World coordinate system: iv. Move the robot in positive Z direction pushing the slider up: But what’s this? Due to the positioning of joint 4 and joint 6, which are parallel, the robot could move 2 different ways to reach the desired position. This singularity cannot be resolved. The move command must be adapted or the robot moved beforehand into a slight different position. v. Move joint 5 to slightly higher values and try to move along Z again afterwards: vi. Switch to End Flange Center frame and move to higher X values. Investigate the different movement: Public 27 28 Chapter 3 - Manual Operation Activity 4 - INFORMATION LOG In this activity: • Investigate the information logged during usage 1. Open the Log Information. i.Click on the Log Information icon in the menu: ii.The Log window will open showing all available information: 2. Define the information filter. i.Selecting “Information” will show typical activities of the operator or commands of the IO interface: Public Chapter 3 - Manual Operation ii.Switching to “Error” you should be able to identify the protective stop triggered while reaching the singularity in a previous activity: Public 29 30 Chapter 4 - Programming – Blockly Chapter 4 - PROGRAMMING – BLOCKLY Programming with Cobot Expert can be done via 2 different programming languages: • Blockly • Script The main program is to be done in Blockly always. Internally you can create subroutines either with Blockly or script. Additionally it is possible to call and execute other programs. This chapter will introduce the usage of Blockly and the main aspects of teaching. Contents: Programming Control ..................................................................................................................31 Activity 5 - Create a Program ............................................................................................... 32 Instruction Library ........................................................................................................................34 Activity 6 - Insert Movement Instruction ............................................................................... 35 Activity 7 - Control Instructions ............................................................................................ 46 Program Settings ........................................................................................................................49 Pause/Resume Program ..................................................................................................... 49 Program Backup .................................................................................................................. 49 Default Program ................................................................................................................... 50 Activity 8 - Select Default Program ...................................................................................... 51 Trajectory Record ........................................................................................................................52 Activity 9 - Trajectory ........................................................................................................... 53 Public Chapter 4 - Programming – Blockly PROGRAMMING CONTROL To reach PROGRAM screen you can open the function menu using the arrow and press “Programming Control”: The PROGRAM screen: • Shows the program editor in the center. • On the left the library elements (instructions) are ordered in groups. • With the buttons on the right management, debugging and monitoring of programs is possible. The instructions are colored, to ease identification of the different groups. Depending on the instruction there are pull-down menus or edit fields to define detailed functionality. Comments are offered to describe instructions and provide additional information. Public 31 32 Chapter 4 - Programming – Blockly Activity 5 - CREATE A PROGRAM In this activity: • Create a program and handle the storage 1. Create a new program file. i.Click “Plus” button in PROGRAM menu to create a new application file: ii.Click on “New Program” and enter the name “Prg1” and press Confirm: Public Chapter 4 - Programming – Blockly 2. Save the file and investigate management options i. Save the program pressing the “Disk” button: ii.Open the program list pressing “Folder” button and note the function on top of this window. Within this view you can Import, Export, Delete and Share programs: IMPORTANT: The storage of all settings and programs is the robot control cabinet itself. Latest after commissioning a proper backup is to be saved externally to ensure availability in case of unavailability of the cabinet. iii. Close the project list via “X” to come back to the Blockly editor. Public 33 34 Chapter 4 - Programming – Blockly INSTRUCTION LIBRARY Blockly instructions are organized in several groups differentiated by color. Clicking one of the groups opens the section and allows scrolling via mouse wheel of mouse movement while left key is pressed. Selecting the desired instruction press and hold the left mouse button and drag it into the program. A shadow will indicate a location to snap the instruction: The library offers an online help which is opened with the “?” icon. Select the group and instruction to get details on its usage: Deselecting the library will collapse it to the left. To keep it open you can pin it to the screen. Public Chapter 4 - Programming – Blockly Activity 6 - INSERT MOVEMENT INSTRUCTION In this activity: • Insert and configure a movement instruction • Use Jog for manual teaching • Debug the program 1. Insert Motion instruction to the program. i.Open the “Move” instructions, select “Joint motion” and snap it to “Prg1”: ii.Investigate the 3 areas of customization. Clicking into the edit field “NEWPOINT1” offers to rename it. Enter “ptHOME” and press ENTER. iii.In the center you have the possibility to switch the motion command to linear motion, but for now we stay with Joint motion: Public 35 36 Chapter 4 - Programming – Blockly iv.Last but not least clicking the frame of the instruction (easiest the left part with the snapping area) the edit window allows detailed customization of the command: 2. Teach position manually i.Our teach position shall be near to the stretched (open) position. Therefore, we’ll use the settings to easily and fast reach this. Open the SETTINGS with the gear icon: ii.Browse to “Safety setting” – “Robot Pose” and press the edit pen for the “Open Pose”: Public Chapter 4 - Programming – Blockly iii.The movement screen does show the current position of the robot and the target position in blue in parallel. On the top, next to the move command button, you can switch the value view between Realtime and Target using the slider. Adapt the speed to 100% and press and hold “Move to this point by joint”: iv.A popup will inform the position is reached, which you confirm: Public 37 38 Chapter 4 - Programming – Blockly v.Confirm the Open pose to come back to Robot Pose screen and use the arrow on the bottom to open the FEATURE menu and get back to PROGRAM screen: vi.Open the move command to edit its details and press “Edit” to enter the TEACH screen: vii.Set the step value of the joint motion to 10°: viii.Move Joint 3 in 3 steps to 30° pushing the slider to the right: Public Chapter 4 - Programming – Blockly ix.Click the edit field of Joint 4 to enter POINT MOTION screen. Set Joint 4 to 150° and Joint 5 to 270°. Move to this position pressing “Move to this point by joint” and confirm when position is reached. x.Press confirm in the TEACH screen and once again confirm in the “Edit motion” window, to accept all changes and come back to PROGRAM. xi.Save the changes with the disk button. 3. Run the Program i.Open SETTINGS and move the robot to factory position: ii.Go back to programming and run the program with “Play” button: iii.As the position is different than the initial position of your program you’re requested to move the robot to the initial point first. Press confirm to enter the movement screen: Public 39 40 Chapter 4 - Programming – Blockly iv.The current position is shown and the initial program position displayed in blue. Press and hold the command button to reach the position. Confirm the prompt if the position is reached and confirm the position itself to get back to the program screen: v.Running the program again will immediately show “Execution completed” as the position is already reached. Public Chapter 4 - Programming – Blockly 4. Modify the Program i.Drag “Relative linear motion” instruction into your program and place it as second instruction. ii.Rename the point to “ptLower1”: iii.Open the “Edit motion” screen by clicking on the instruction frame. Select “Tool coordinate system” as reference coordinate system and define 200mm for Z: Confirm your changes. Public 41 42 Chapter 4 - Programming – Blockly iv.Run the program again to monitor if your changes work as expected: ptHOME ptLower1 v.To process the program stepwise, activate debugging mode pressing the “Bug” button. On top of the screen the controls are displayed and an arrow indicates the next instruction: vi.Press “Next step” to debug your program. Public Chapter 4 - Programming – Blockly 5. Create a Position Variable i.Whenever the current program is started while the robot is not in position ptHOME you’re asked to move to initial position first. Creating a position variable this can be skipped using a position variable. ii.As we want to save the position ptHOME ensure the robot is in this position (e.g. by starting the program and being asked to go to initial position or open TEACH for ptHOME and move to this position). Open the “Variable” group and add a variable pressing “+” button: Public 43 44 Chapter 4 - Programming – Blockly iii.Select to define a “Position variable” and name it “ptHOME”: Press “Edit” to enter the TEACH screen. iv.As you move to ptHOME already you just need to confirm this position to save it for the variable: Public Chapter 4 - Programming – Blockly v.Confirm the changes to come back to PROGRAM: vi.Drag the variable from instructions into the first movement command to overwrite the position used: vii.Start the program and observe the different behavior. An additional popup will now inform that the initial position is defined via a variable and requests the operator to confirm to go to initial position automatically. Confirm pressing “Yes” to start your program: Public 45 46 Chapter 4 - Programming – Blockly Activity 7 - CONTROL INSTRUCTIONS In this activity: • Insert and configure control instructions • Logging information for the operator • Controlling program flow 1. Insert Control instructions to the program. i.Open the “Control” instructions, select “Wait”, “Log” and “Program”. Drag all to the program and snap them to “Prg1” accordingly: NOTE: Dragging instructions above others will offer to snap them between existing instructions indicated by a grey shape. Public Chapter 4 - Programming – Blockly ii.Modify the control istructions: • 1st message “HOME position reached.” • Wait 2s • 2nd message “Press Resume to proceed.” • Program “Pause” iii.Run the program and observe the red arrow step indicator. Why does it not proceed after the “Relative linear motion”? Observing the robot status you can see that processing is paused (yellow indication): Public 47 48 Chapter 4 - Programming – Blockly iv.Open the LOG to see the messages recorded (filter for Information): v.Press “Play” button to resume the program and complete execution: The program is created based on the default coordinate systems (World / End Flange Center). This can be reviewed within the position variable “ptHOME”: Your program should always set the required frames by: Public Chapter 4 - Programming – Blockly PROGRAM SETTINGS For the management and operation of programs several settings are available. PAUSE/RESUME PROGRAM In the previous activity the program was paused by a control instruction. Using Cobot Expert the “Play” button is pressed to resume the program. On the robot resume command could be send via Play/Pause button in the illuminated light ring at Cobot head or DI. Within the settings the functionality of the button can be defined. By default the button allows to pause/start the program and activate drag mode while pressed. Select the setting which fits best to you application and operator interaction: PROGRAM BACKUP While programming one might forget to save changes. Even though the program is saved whenever started it might happen during programming to forget saving. Within the system settings an automatic backup can be used to prevent losing work progress: Public 49 50 Chapter 4 - Programming – Blockly If the automatic backup is active the active application will be saved with the defined cycle. To access the backups open the program folder and activate the display of hidden backup files: DEFAULT PROGRAM To ease and automate startup of the application a default program can be selected and optionally loaded and started: Public Chapter 4 - Programming – Blockly Activity 8 - SELECT DEFAULT PROGRAM In this activity: • Define default program and load it on startup 1. Open Program Settings i.Open the settings from the menu: ii.Browse to “Program setting” and “Default Program” and select your Prg1 as current default program. Activate to load it at startup: The additional 2 settings allow to: - enable the robot automatically when it is powered - start the program as soon as the robot is enabled. Activating both, the robot will start to run as soon as the operator powers on the robot. Use these settings with care as it might not be obvious for the operator that the machine will start without an additional command. Public 51 52 Chapter 4 - Programming – Blockly TRAJECTORY RECORD Recording a trajectory is a way to move the robot manually, via manual screen or drag mode, and while moving record its path. This path can afterwards be used to be replayed whenever necessary. This method of teaching allows to perform complex movements, e.g. maneuvering around other machine installations, without the need of programming. Once recorded the instruction “Trajectory” allows to select from recorded paths and replays it: Public Chapter 4 - Programming – Blockly Activity 9 - TRAJECTORY In this activity: • Record a trajectory • Add trajectory replay to the application 1. Record Trajectory i. Run the program “Prg1” so the robot pauses in the second position after the linear movement and stop program execution. ii. Open settings and browse for “Program setting – Trajectory Record”. Press the “+” button to initiate a new recording. Confirm the popup to start the recording: The status bar will indicate the running record: iii. Switch to “Safety settings – Robot Pose” and press the “Move to Target Point” button for “Factory Pose” till the robot monitors “position reached”. Stop the recording pressing the icon in the status bar: Public 53 54 Chapter 4 - Programming – Blockly iv. Browse back to “Program setting – Trajectory Record” and click the “Pen” to change the trajectory name to “goSleep”: 2. Implement Trajectory in Program i. Switch to PROGRAM screen and from “Move” instructions select “Trajectory”. Place it at the end of your application and verify the trajectory record “goSleep” is selected: ii. Start the program and monitor the robot movement. With pressing resume after the linear movements pause the robot will move back to factory position, based on the trajectory. Opening the “Trajectory” instruction via edit (clicking the area of the connectors) allows you to modify speed and acceleration for the movement: Public Chapter 5 - IO Chapter 5 - IO The Lexium Cobot supports various IO depending on the control cabinet used and communication available. Management is done in the IO screen (“I/O Panel”), accessed via the feature menu on the bottom. Each set of configurable IO is available with a dedicated tab, which are visible depending on the controller configuration. Tabs you might find are: • Cabinet → IO embedded in control cabinet • Tool end → Tool IO (TIO) connected at end flange M8 connector • Modbus → Modbus IO according fieldbus communication table • Profinet → PROFINET IO according fieldbus communication table • EtherNet/IP → EtherNet/IP IO according fieldbus communication table • Extended IO → additional Modbus IO (external IO module) Contents: General IO Configuration ............................................................................................................ 57 Modbus IO .................................................................................................................................. 58 Activity 10 - Use Modbus IO ................................................................................................. 59 Activity 11 - Process IO Data in Program ............................................................................. 63 Tool IO ........................................................................................................................................ 66 Send Modbus Command...................................................................................................... 66 Read Modbus Data .............................................................................................................. 67 Public 55 56 Chapter 5 - IO Torque Sensor ..................................................................................................................... 68 Extended IO ................................................................................................................................69 Public Chapter 5 - IO GENERAL IO CONFIGURATION To access the IO configuration open the bottom feature menu and select the IO screen (1). On top of the screen several tabs will offer configurable IO. Within the tabs IOs are grouped as e.g. “Digital input”. Expanding the groups offers selection of dedicated IO (3). 2 3 1 Clicking on the IO (e.g. DI1) will open its settings and offer to rename it and select the function to be assigned. As result the name and function icon is displayed in the overview: Independent of any function assigned IO can be used in the program directly: Public 57 58 Chapter 5 - IO MODBUS IO In order to support virtual commissioning your Cobot controller can connect with EcoStruxure Machine Expert Twin. The Twin can be used to provide an online view of the robot, but additionally will offer to test e.g. load handling without real gripper or real loads involved. For the initial setup Modbus/RTU or Modbus/TCP must be configured in settings: The communication protocol used between Cobot and Twin is Modbus/TCP. Opening the IO configuration for Modbus you can see DI1 used to start the program and DI2 to resume. DO1 will activate the gripper, DO2 monitor the paused state and DO3 will feed a load: Within the user manual the Modbus communication table will show you which inputs/coils to read/write to be linked in Machine Expert Twin: Public Chapter 5 - IO Activity 10 - USE MODBUS IO In this activity: • Connect Machine Expert Twin via Modbus/TCP • Test functionality • Add additional IO 1. Load Twin Model i. Switch to the Desktop and open the Cobot training model file. While loading you’re asked to select catalogs. Ensure to have “Accessories, BeltsAndConveyors, Cobot and FieldEquipment” selected: Public 59 60 Chapter 5 - IO ii. For the training you have been assigned a robot IP address (the IP address you used to connect the Cobot control cabinet simulation VM). Open the connections in Machine Expert Twin, select the available connection CON1 and in its properties adapt the IP address to fit your Cobot simulation: iii. Double-Click (or right-click - Connect) CON1 in the “Connections” window to start communication. If the robot is powered and enabled pressing the green START button below the table should start the program: iv. Did it start? What might have gone wrong? View I/O panel while pressing start to monitor if the signal is communicated correctly: Run (DI 1) gets activated. So what else might be missing? Public Chapter 5 - IO 2. Delegate Control i. All external signals (physical IO, Modbus, Fieldbus) are defined as “Remote” commands. Lexium Cobot has 3 control sources for “Local” (Control Stick), “App” (Cobot Expert) and “Remote”. To activate remote control you need to delegate control. ii. Switch to HOME screen and delegate control via the menu button: iii. Re-test the start command from Machine Expert Twin. Your program will start now. 3. Analog Input for relative Movement i. Disconnect communication (from Connections window): ii.The control panel of the Twin holds a knob for the relative movement. Select it and go to its properties. iii. Configure its PLC Input for Holding Register 100: Public 61 62 Chapter 5 - IO iv. Re-connect the Modbus communication and modify the “relMove” know value while monitoring AI 1 of the Modbus inputs in I/O panel: v. Public Chapter 5 - IO Activity 11 - PROCESS IO DATA IN PROGRAM In this activity: • Using Modbus IO in application program • Calculate Positions 1. Prepare Array Variable i. To be able to use Modbus data for positioning we will create two variables in the application. Switch to PROGRAM screen and create a variable of type “Program variable” in group “Variables”, pressing “+”. Select type “Array”, call it “aPos” and initialize with “0, 0, 200, 0, 0, 0”: ii. Use the new variable instead of the fixed position “ptLower1” in the “Relative linear motion” (drag from variables and drop above “ptLower1”): iii. Run the program. It should do exactly the same as before. Public 63 64 Chapter 5 - IO 2. Create and Use Read Variable i. Create another program variable of type “Number”, with name “rdZ” and the initial value 200: ii. Place the “Set” instruction from “Variable” group above the Relative linear motion instruction and select the new variable “rdZ” to be modified: iii. From “IO” group drag and drop “Get analog input” instruction into the set instruction. Select you “Modbus” IO and “AI1”: iv. From “Character” group place instruction “Set array elements” between set and relative linear motion. As variable to modify place “aPos” in the first element. Select 2 for “Subscript” (to modify array element 3) and place “rdZ” into the “Value”: We read the value from AI1 of Modbus and save it in rdZ. This value is then used to update the Z component of the position array. Public Chapter 5 - IO 3. Test modified Application i. Start the program and test different values for the “relMove” knob: ii. Switch to PROGRAM screen and open “Variable observation” via the “Plotter” icon. From the observation screen use the “Gear” icon to open the settings and select “rdZ” and “aPos” for observation: iii. Run the program, which should have the same result as before. If the observation screen does not show the complete content of the array “aPos” click the variable to see its details: iv. Modify the value of AI1 in the simulator to 400 and run the program again. It should now lower the TCP by 400mm: 200mm 400mm Public 65 66 Chapter 5 - IO TOOL IO The Tool IO (end effector IO) is available via a M8 connector at the end flange. It supports 2 digital inputs, 2 digital outputs and 2 analog inputs. Configuration of the IO is similar to the cabinet and Modbus IO, where in difference additionally the polarity can be switched SEND MODBUS COMMAND The digital outputs and analog inputs can be configured as RS485 to run as 2 independent multiplexed serial line communication ports (DO1/DO2 run as high speed RS482 Channel 1 and the AI1/AI2 as low speed RS485 Channel 2). With the instruction “Modbus command sending” the channel to use (DO or AI) is selected and the Modbus command array defined (e.g. write value 0x0012 to register 0x2300 via function code 6): Public Chapter 5 - IO READ MODBUS DATA To read data from the device attached to the TIO semaphores need to be addressed. With these variables for communication are declared and assigned to the communication channel: To read the value from the application you need to update the value with the instruction “Get semaphore status” where you select the identifier of the semaphore. The value read can be saved in e.g. a system variable and processed further: Public 67 68 Chapter 5 - IO TORQUE SENSOR Switching the TIO RS485 to “Torque sensor” it supports dedicated sensors configured by “End Sensor” parameters: Public Chapter 5 - IO EXTENDED IO If an application does need additional IO to be collected from field where cabinet IO is exceeded extended IO can be addressed from IO screen. Customization is done via the buttons on the upper right corner of the IO screen. With “Pen” and “Play” button you can switch between operation and edit mode. If in edit mode the “+” button can be used to create up to 8 modules. Selecting the extended IO tab using the “Pen” button will allow to reconfigure the module. The “Play” button puts the configured modules operational and starts communication. Note: Maximum number of extended IO: 32x AIO and 64x DIO with max. 8 modules. Please find an optional activity explaining extended IO in Appendix 3. Public 69 70 Chapter 6 - Script Subroutine Chapter 6 - SCRIPT SUBROUTINE Within the Blockly programming subroutines can be established to encapsulate functionality. While creating a subroutine the type of language to be used can be selected: Script editing will offer possibilities to ease implementation of e.g. mathematical calculations. Contents: Activity 12 - Script Implementation ...................................................................................... 71 Socket Communication ...............................................................................................................75 Activity 13 - Socket Communication .................................................................................... 76 Public Chapter 6 - Script Subroutine Activity 12 - SCRIPT IMPLEMENTATION In this activity: • Create script subroutine • Implement move instructions in script language 1. Create Subroutine i. From the instruction groups select “Sub” and press “+” to create a new subprogram: ii. As implementation language choose “Script editing” and press confirm: Public 71 72 Chapter 6 - Script Subroutine iii.With the open script window enter comment “#My first script” into the first line. Change the name of the subroutine to “Sub1” and press “Save” iv. Press “Close” to get back to PROGRAM screen. 2. Use subroutine i. The subprogram “Sub1” shall substitute the relative linear movement. Select “Program advanced operations” to activate additional editing options: ii. Tick the relative movement press “Copy” to save it for later and “Delete” to clear it from the instruction flow and finally “Cancel” to deactivate the additional options: Public Chapter 6 - Script Subroutine iii. Place “Sub1” where the relative movement was placed before: 3. Edit Subroutine i. Click on “Sub1” to open it for editing. Implement the two cartesian position variables midPosR and lowPos and use these in two linear movement commands: Public 73 74 Chapter 6 - Script Subroutine ii. Save and close “Sub1”, save “Prg1” and test the movement running the program. The TCP should follow two linear movements forming a triangle. 4. Add circular upwards movement i. Reopen “Sub1”, create two additional points and use them in the “movc” instruction: ii. Save and close “Sub1”, save “Prg1” and run the program to test the changes. Public Chapter 6 - Script Subroutine SOCKET COMMUNICATION Socket communication instructions allow data exchange based on TCP messages. This communication option is often used with accessories (e.g. vision systems) or can be used to create an interface to a PC application or a PLC. In difference to the fieldbus setup it allows an open request / response implementation where the application does not rely on fixed communication table addresses. A detailed introduction to the socket communication usage can be found within a knowledge base article on in Industrial Automation Knowledge Base on community.se.com (Lexium Cobot – Socket Communication). Public 75 76 Chapter 6 - Script Subroutine Activity 13 - SOCKET COMMUNICATION In this activity: • Establish a socket communication • Interpret socket response • Implement move instructions in script language 1. Your Cobot is attacked i. Since you finished the last activity evil entered the scene and PacMan is trying to eat your Cobot (your trainer will show you how to display PacMan in Machine Expert Twin): ii. In order to get away without damage your task is to follow the edges of PacMan before it’s too late. To get started you should create a User Frame representing center position and orientation of PacMan: iii. The shape of PacMan is identified by a vision system (try to use your imagination on that) which provides you with the offsets necessary to follow the shape in an array: [ X2,4 = 100, Y2,4 = 170, Y3 = 190, Z = 60 ] Public Chapter 6 - Script Subroutine 2. Prepare the vision system response in Herkules i. Start the communication test tool Herkules provided on your Desktop and switch to “TCP Server” tab: ii. Enter “Port” 666 and press “Listen”: iii. You’re now ready to connect from clients and send responses. The Cobot will request an array with 4 elements. Prepare the array content in the “Send” field: iv. Later you can copy the response from “Send” and paste it (CTRL + V) into “Sent data”. Public 77 78 Chapter 6 - Script Subroutine 3. Create Script Subroutine for Socket Communication i.Create a new script subroutine called “PacMan”: ii. Prepare the socket commands to establish a communication and close the socket again: Use the IP address of your VM, where the last Byte is visible in the browser tab of SkyTap. iii. Place the PacMan subroutine behind the movement to you home position. Run the program with “PacMan” subroutine and investigate Herkules if the socket is established: Public Chapter 6 - Script Subroutine iv. Enter the “Socket_Read_Real” instruction (between open and close) and run the program again to see if it is received (the response “res” is later to be substituted with an array): Important: For socket read requests use the response with a variable always! In the example above “res” is used to save the response. Public 79 80 Chapter 6 - Script Subroutine 4. Interpret Socket Response and fill Position Variables i. As the vision system provides an array with the 4 offsets we need to prepare this array and the 4 positions we need to draw PacMan. Create the variables and their assembly: ii. Once the positions are defined the movement can be implemented. First we move to the center (point 1), from there to point 2, in a circle via point 3 to point 4 and back to point 1: iii. If you initialize “arOffsets” with the values that should be received via socket later, you can run the program already to test the movements: iv. Run the program and investigate if you can win against PacMan. Does it work? Any issues? Why is it not moving? Did PacMan beat the Cobot already? Public Chapter 6 - Script Subroutine v. Do you remember that initially we created a User Frame “PacMan”? Who did tell the Cobot to move insight this frame? Define to use the frame before running the movement instructions: It assumes that the “PacMan” frame is the first possible User Frame. If you defined it differently take care to select the proper ID. vi. Run the program again and check if it is running properly now. 5. Use Socket Response Data for the Movement i. In order to use the vision system response reset the initialization of the receive array to 0, place the read request after it and assign the response to the array: ii. Copy the prepared response from “Send” in Herkules. Run your Cobot application and when the request is received in “Received data”, paste the response into “Sent data”: iii. Your Cobot should follow the edges of PacMan and by this beat it and win. Public 81 82 Chapter 7 - Safety Settings Chapter 7 - SAFETY SETTINGS The Lexium Cobot is designed to act as collaborative robot. In order to fulfill legal requirements and safety regulations it must support means to limit the impact hitting humans. Supporting these safety features does not make a Cobot safe by design! In order to reach the defined safety level the machine implementation the Cobot is used in must be validated. During the risk assessment and risk reduction the necessary safety settings must be specified. Only if these safety settings are applied and validated the Cobot is “safe”. This chapter will give an overview to the different safety settings and explain their usage. Within the safety settings you’ll find: • Robot Pose → defining dedicated positions to be used, e.g. home position • Joint Limit → implementing physical limits for each joint • Collision Protection → Force, Momentum and Speed limitation • Security Zone → safety planes the TCP must not violate • Tool Orientation Limit → Cone area the tool must stay in • Special Safety IO → redundant In- and Outputs Contents: Joint Limits ..................................................................................................................................84 Activity 14 - Modify Joint Limits ............................................................................................ 85 Collision Protection .....................................................................................................................86 Public Chapter 7 - Safety Settings Security Zone (SF11) ................................................................................................................. 88 Activity 15 - Define Safety Plane .......................................................................................... 89 Tool Direction (SF10) ................................................................................................................. 92 Activity 16 - Setup Tool Orientation Limit ............................................................................. 93 Public 83 84 Chapter 7 - Safety Settings JOINT LIMITS By default the 6 joints offer the maximum possible range for operation. If necessary for the application these can be reduced. Public Chapter 7 - Safety Settings Activity 14 - MODIFY JOINT LIMITS In this activity: • Modify joint limits and test changes 1. Modify Limits i.Open the settings from the menu and browse for “Safety setting – Joint Limit”. Modify the limits for Joint 1: 2. Test Changes i.From function menu open MANUAL screen and increase value of joint 1: ii.The movement will stop at 90° with an error: iii.Decrease the value to see it stopping at 0° as well. Public 85 86 Chapter 7 - Safety Settings Collision Protection Lexium Cobot collision protection is based on a set of configuration parameters defining limits: • Force (Torque) • Momentum • TCP Speed • Power With the quick settings “Strict, Relaxed, General and Unlimited” a defined set of values is used. Additionally, the user can switch to custom settings and define each limit individually. Quick Setup Custom Setup Attention: The settings in “Custom” are one set of parameters and must be saved with “Confirm”. Whenever you switch between “Custom” and “Quick Setup” ensure to have proper values defined when staying with custom settings. Public Chapter 7 - Safety Settings The force (torque) limitation is using levels 1-5, where each level defines a torque limit for each joint. The lower the level the higher the sensitivity is: Taking the 3kg Cobot as example joint 1 does have +/-5Nm torque limit in level 1 and 10Nm in level 2. The 18kg Cobot in difference limits joint 1 with 24Nm in level 1 and 32Nm in level 2. With the “Collision Processing Settings” the behavior on detected collisions can be customized: Remark: Using setting “Program pause” requires and external ACK command (via DI or communication). Public 87 88 Chapter 7 - Safety Settings SECURITY ZONE (SF11) Security zone safety settings allow to define 6 safety planes the TCP of the robot must not violate: Each plane has a unique name and can be enabled separately. The plane is defined by 3 plane points and an additional safety point. The safety point defines which side of the plane is the safe side. Two additional settings define the operation modes the planes shall be active: • Power on enabled → active when robot powered (for drag, manual and program mode) • Run enabled → active with running program only (inactive for drag/manual mode) Public Chapter 7 - Safety Settings Activity 15 - DEFINE SAFETY PLANE In this activity: • Define and test Safety Plane 1. Prepare first point i.The plane to be defined shall be horizontal and parallel to the floor, slightly lower than the TCP after the linear movement in Prg1. Run the program so the robot pauses in the second position after the linear movement. ii.Stop the program. iii.Open the settings and browse for “Safety setting – Security Zone” and expand plane 1. iv.Click the “Gear” icon do enter TEACH mode for point 1 and immediately “Confirm”: 2. Modify additional points i.Open point 2, move joint 1 and confirm. Do the same for point 3 with a different value for joint 1. ii. Open security point and move the TCP up decreasing Z (take care to select “End flange center” frame first) and confirm. Public 89 90 Chapter 7 - Safety Settings iii. Enable the plane and save the changes: iv. Define the Safety Plane reaction The settings allow to define the reaction when the Safety Planes are triggered. With the dropdown menu select “Protective Stop” which will pause the robot movement via Cat. 2 stop (“Stop” in difference triggers Cat. 1 stop which will disable the robot and activate the brakes): 3. Test the Plane i. Run the program. The Cobot will pause in position 2. If the plane is already triggered in the lower position adapt the relative linear movement to 190mm instead of 200mm. ii. Switch to MANUAL screen and try to move in positive Z direction (TCP frame!). The plane error should be triggered: iii. Confirm the error message and switch to the safety zone settings. Activate the zone monitoring while a program is running “Run enabled” and deactivate “Power on enabled”: Public Chapter 7 - Safety Settings iv. Switch to PROGRAM screen, modify the relative linear movement to 220mm and start the program. The plane should be triggered now as well. v. Switch to MANUAL screen and try to lower the TCP. This should work now as “Power on enabled” is OFF. Public 91 92 Chapter 7 - Safety Settings TOOL DIRECTION (SF10) Thanks to the tool orientation limit it is possible to define a cone the tool is allowed to move in, e.g. a pointed or sharp tool is monitored to always point downwards and will never be moved with an orientation that might increase the risk: The settings allow to define the tool direction (1) based on a TCP frame (e.g. the default “End flange center” frame). With the lower part of the settings interface [2] a cone is defined which sets the allowed orientation of the tool. The cone is defined in respect to the World coordinate system: 1 2 1 Public Chapter 7 - Safety Settings Activity 16 - SETUP TOOL ORIENTATION LIMIT In this activity: • Setup a tool orientation limit and test limitation 1. Define Tool Limit i.Move the robot to the initial position “ptHome” of your program. ii.Open settings and browse to “Safety Setting – Tool Direction”. Edit the settings according to the screenshot: iii.The safety monitoring will now limit the tool to deviate maximum +/-30° from the vertical orientation. Public 93 94 Chapter 7 - Safety Settings 2. Test Tool Limitation i.Switch to manual operation screen and jog the robot (while “End flange center” is selected) with the “RY” slider. At RY= -20° or RY= +20° you’ll get a notification because of the “Safe Distance” monitoring: ii.Acknowledge the message and proceed to rotate with RY till the limit is reached at +/- 30°. And additional prompt will inform about the violation and disable the robot. Switch back to HOME screen and enable the robot again: Public Chapter 7 - Safety Settings 3. Modify Tool Orientation i.Rotate the robot back to RY = 0°. Open the “Tool Direction” settings and modify “Tool Direction” X direction = 20° and Z direction = -90°: As the tool is now oriented at +20° within the same cone the rotation RY can vary between -40° to +10°. ii.Switch to MANUAL screen and test rotation via RY. It should be limited at -40° and +10°: Public 95 96 Chapter 7 - Safety Settings Appendix Terminology ...........................................................................................................97 Backup and Restore ..............................................................................................98 Part 1 – Controller (System) Settings .................................................................................. 98 Part 2 – Application .............................................................................................................. 98 Extended (Dynamic) IO .......................................................................................100 Ensure Server IP Address ................................................................................................. 100 Add module and run simulator ......................................................................................... 100 Fieldbus ...............................................................................................................102 Public Chapter 7 - Safety Settings Terminology Cobot Collaborative Robot Hand Guided Mode Operator moves robot manually (also FREE or DRAG mode) Reduced Mode Safety Function where e.g. TCP will move 250mm/s maximum TCP Tool Center Point Quasi-Static Force Collision impact with clamping Transient Force Collision impact with bumping Public 97 98 Chapter 7 - Safety Settings Backup and Restore PART 1 – CONTROLLER (SYSTEM) SETTINGS Within the controller and while creating an application several settings will be customized. For the controller customized settings are all the limits, coordinate systems and safety settings. Additionally handled in separate files you can export: • IO names (alias names assigned in IO panel) • Dynamic IO (extended IO modules) • System variables • Security Zones All selected information will be exported into “lxmcsettings.tar.gz” file. PART 2 – APPLICATION For the application a separate export of the program file(s) is to be performed. From PROGRAM screen open the project list pressing the “Folder” button and after activating the export select the programs to be exported and confirm: Public Chapter 7 - Safety Settings Each program will be exported to a separate ZIP file. Public 99 100 Chapter 7 - Safety Settings Extended (Dynamic) IO ENSURE SERVER IP ADDRESS For this activity the Cobot shall connect to you PC running the Modbus simulator ModRSim2. Lookup the IP address of the PC you’re running EcoStruxure Cobot Expert and ModRSim2 on (screenshot serves as example): As the simulator is running on your Win10 VM you have to use IP 10.0.0.x, where x is the number shown in your browser tab. Add module and run SIMULATOR Open the IO screen and add a module pressing “+” (To have access to “+” you might need to activate editing mode by pressing the “Pen” first). Define the settings shown but take care to specify the IP address looked up in the previous step of this activity: Public Chapter 7 - Safety Settings Start Modbus server simulator “ModRSim2” and select Analog Inputs in its I/O register view: Set values 10 - 30 for the first 3 input registers: Switch the I/O configuration in Cobot Expert I/O screen to run mode pressing “Play” and investigate the 3 analog inputs assigned to your extended IO module: Public 101 102 Chapter 7 - Safety Settings Fieldbus tbd Public Chapter 7 - Safety Settings Lexium Cobot Communication Library tbd Public 103 104 Chapter 7 - Safety Settings Solution Activity 16 – Socket Communication #Activity 16 - Socket Communication socketID = 0; socketID = socket_open("192.168.169.1", 666, 0) arOffsets = [0, 0, 0, 0] arOffsets = socket_read_real(socketID, 4) rX = arOffsets[0] rY1 = arOffsets[1] rY2 = arOffsets[2] rZ = arOffsets[3] pt1 = [0, 0, rZ, 180, 0, 90] pt2 = [rX, -rY1, rZ, 180, 0, 90] pt3 = [0, rY2, rZ, 180, 0, 90] pt4 = [-rX, -rY1, rZ, 180, 0, 90] set_user_frame_id(1) movl(pt1, 0, 250, 250, 0) movl(pt2, 0, 250, 250, 0) movc(pt3, pt4, 0, 250, 250, 0) movl(pt1, 0, 250, 250, 0) socket_close(socketID) Public