This document provides details on a master's project involving communication between a PC and KUKA robot via Ethernet. It describes the settings required in both the PC and robot controller, the interface for signals sent between the two, and the programs used - a KUKA program running on the robot and a C# program on the PC. The KUKA program handles initialization, communication with the PC via Ethernet, and robot movement. It sends the robot's position and receives commands from the PC. The C# program on the PC allows controlling the robot and receives feedback on its position. The document also covers the design of an electrical control cabinet to operate lighting sequences governed by the PC program.
To take online courses, students need a computer with internet access. Online education offers flexibility in schedule and location, allowing students to learn from anywhere and maintain a flexible schedule. Classes are technologically advanced with multimedia learning aids. However, online degrees may not be acknowledged by all employers and oral communication skills cannot be developed without in-person discussions. Teachers also have less control over students in an online environment.
Roland Berger Industrial Automation Perspective 2019SvenSiepen
The document provides a short market report on industrial automation for stakeholders interested in the segment. It contains 6 sections: market segmentation, company landscape, selected M&A activities, end customer industry examples, trends & outlook, and references & contact. The market is estimated to be around EUR 185 billion, with the top companies accounting for around 50% of the market. Leading players include Siemens, ABB, GE, and Fanuc. Recent M&A activity has seen deals across various segments, with the acquisition of Kuka by Midea Group standing out due to the large deal value of approximately EUR 4.2 billion.
The document discusses the components, control system, and programming of KUKA robots, including the control panel, robot controller, mechanical construction with 6 axes of movement, coordinate systems, setup procedures like mastering and tool calibration, applications for welding and milling, and programming motion using linear and circular paths.
The document discusses optimization of tool path for robots in an assembly environment. It aims to develop new algorithms and techniques to optimize the tool path for increased productivity and efficiency with lower energy costs. This includes formulating the tool path optimization problem as a traveling salesman problem (TSP) and developing insertion and reordering algorithms to find optimal non-intersecting paths between target points visited by the robot tool. The document also covers inverse kinematics techniques to determine robot joint parameters required to reach specified target points.
This document discusses robot programming methods. It describes different types of robot programming including joint-level, robot-level, and high-level programming. It also covers various robot programming methods such as manual, walkthrough, leadthrough, and offline programming. Specific programming languages and their applications are also summarized.
This document lists various industrial robots and welding cells available in stock. It includes robots from manufacturers KUKA, ABB, and FANUC ranging from 6-axis robots with payloads between 6-210kg and reach between 1500-2696mm. Control cabinets and accessories like teach pendants, cables, and manuals are included. Weights for robots and controllers range from 600-2300kg. Two complete welding cells are also listed, including ABB and KUKA robots, welding machines, wire feeders, fencing and other safety components installed on metal structures.
Multilingual search requires the developer to address challenges that don’t exist in the monolingual case. In Solr, a robust multilingual search engine requires different analysis chains for each language because each language has its own logic for tokenization, lemmatization, stemming, synonyms, and stop words. To make multilingual search even harder, query strings are typically no longer than a handful of words, making language identification of query strings more difficult, or at worst ambiguous even to a human (“pie” could be an English or Spanish query). We’ll explore the breadth of Solr schema and configuration options available to a multilingual search application developer to balance functionality, performance, and complexity. We’ll dive deep into specific experiments with a practical application.
Speaker Bio: David Troiano
David Troiano is a Principal Software Engineer at Basis Technology who develops the services and applications that consume the core natural language processing products that Basis delivers. Over the past five years, he has worked on content search, discovery, and recommendation systems built on Lucene / Solr, with an eye toward scalability and performance. He also has professional experience with machine learning and predictive analytics tools in the quantitative finance industry. David holds a bachelor’s degree in Computer Science from Harvard College.
OSDF 2013 - Autopsy 3: Extensible Desktop Forensics by Brian CarrierBasis Technology
Autopsy 3 is an easy to use digital forensics tool. Its development started after discussions at the first OSDF conference, with the goal of being a platform for which other developers will write modules. Autopsy allows you to perform a digital forensics exam on Windows using a free tool. This talk will cover the basic features of Autopsy, including timeline analysis, registry analysis, web artifact analysis, keyword search, and hash sets. There will also be discussion about future modules, and how to get involved as a user or developer.
To take online courses, students need a computer with internet access. Online education offers flexibility in schedule and location, allowing students to learn from anywhere and maintain a flexible schedule. Classes are technologically advanced with multimedia learning aids. However, online degrees may not be acknowledged by all employers and oral communication skills cannot be developed without in-person discussions. Teachers also have less control over students in an online environment.
Roland Berger Industrial Automation Perspective 2019SvenSiepen
The document provides a short market report on industrial automation for stakeholders interested in the segment. It contains 6 sections: market segmentation, company landscape, selected M&A activities, end customer industry examples, trends & outlook, and references & contact. The market is estimated to be around EUR 185 billion, with the top companies accounting for around 50% of the market. Leading players include Siemens, ABB, GE, and Fanuc. Recent M&A activity has seen deals across various segments, with the acquisition of Kuka by Midea Group standing out due to the large deal value of approximately EUR 4.2 billion.
The document discusses the components, control system, and programming of KUKA robots, including the control panel, robot controller, mechanical construction with 6 axes of movement, coordinate systems, setup procedures like mastering and tool calibration, applications for welding and milling, and programming motion using linear and circular paths.
The document discusses optimization of tool path for robots in an assembly environment. It aims to develop new algorithms and techniques to optimize the tool path for increased productivity and efficiency with lower energy costs. This includes formulating the tool path optimization problem as a traveling salesman problem (TSP) and developing insertion and reordering algorithms to find optimal non-intersecting paths between target points visited by the robot tool. The document also covers inverse kinematics techniques to determine robot joint parameters required to reach specified target points.
This document discusses robot programming methods. It describes different types of robot programming including joint-level, robot-level, and high-level programming. It also covers various robot programming methods such as manual, walkthrough, leadthrough, and offline programming. Specific programming languages and their applications are also summarized.
This document lists various industrial robots and welding cells available in stock. It includes robots from manufacturers KUKA, ABB, and FANUC ranging from 6-axis robots with payloads between 6-210kg and reach between 1500-2696mm. Control cabinets and accessories like teach pendants, cables, and manuals are included. Weights for robots and controllers range from 600-2300kg. Two complete welding cells are also listed, including ABB and KUKA robots, welding machines, wire feeders, fencing and other safety components installed on metal structures.
Multilingual search requires the developer to address challenges that don’t exist in the monolingual case. In Solr, a robust multilingual search engine requires different analysis chains for each language because each language has its own logic for tokenization, lemmatization, stemming, synonyms, and stop words. To make multilingual search even harder, query strings are typically no longer than a handful of words, making language identification of query strings more difficult, or at worst ambiguous even to a human (“pie” could be an English or Spanish query). We’ll explore the breadth of Solr schema and configuration options available to a multilingual search application developer to balance functionality, performance, and complexity. We’ll dive deep into specific experiments with a practical application.
Speaker Bio: David Troiano
David Troiano is a Principal Software Engineer at Basis Technology who develops the services and applications that consume the core natural language processing products that Basis delivers. Over the past five years, he has worked on content search, discovery, and recommendation systems built on Lucene / Solr, with an eye toward scalability and performance. He also has professional experience with machine learning and predictive analytics tools in the quantitative finance industry. David holds a bachelor’s degree in Computer Science from Harvard College.
OSDF 2013 - Autopsy 3: Extensible Desktop Forensics by Brian CarrierBasis Technology
Autopsy 3 is an easy to use digital forensics tool. Its development started after discussions at the first OSDF conference, with the goal of being a platform for which other developers will write modules. Autopsy allows you to perform a digital forensics exam on Windows using a free tool. This talk will cover the basic features of Autopsy, including timeline analysis, registry analysis, web artifact analysis, keyword search, and hash sets. There will also be discussion about future modules, and how to get involved as a user or developer.
The document summarizes presentations on advanced robot control and automation. It discusses Giovanni Indiveri's work on robot control and path following using kinematic models and Lyapunov stability analysis with no sensors. It also covers implementing the inverse kinematics of a KUKA KR6 industrial robot using DH parameters in a simulator to move the end effector vertically and horizontally. References for the control and inverse kinematics methods are provided.
Rosette Search Essentials is a multilingual text analytics plugin that offers a wealth of powerful text analytics functionality, including tokenization, lemmatization, decompounding and POS tagging, along with entity extraction and entity resolution in Asian, European and Middle Eastern languages.
Moving Beyond Entity Extraction to Entity Resolution - Human Language Technol...Basis Technology
Entity extraction finds names in documents, providing important raw material for big decisions. But finding all mentions of the name “George Bush” is very different than finding all mentions of the 43rd US President.
Making big decisions from big data is hopeless unless analytics advance from providing snippets of text to providing statements of truth. Such advances present challenges both of accuracy and of usability. We’ll explore these challenges and demonstrate ways of addressing them.
View more slides from the Human Language Technology Conference 2012 here: http://info.basistech.com/hlt-2012-slides
Simple fuzzy Name Matching in Elasticsearch - Graham MoreheadBasis Technology
The document describes how Elasticsearch can be used for name matching through custom analyzers, mappings, and rescoring queries. Key points extracted:
- Names are indexed using a custom NameMapper that generates keys for name parts using different analyzers and stores them in separate fields.
- Queries generate analogous keys to find candidate matches. A rescore query then scores how well the query name matches names in candidate documents to reorder results.
- The rescore query uses a custom name_score function that retrieves the indexed name from a document and scores it against the query name using a cached scorer, returning a similarity score. This allows computationally expensive but high precision name matching.
The document provides an overview of the business intelligence industry and competitive landscape, focusing on open source BI solutions. It discusses the increasing adoption of open source technologies in commercial software. It then analyzes several open source BI platforms, including Pentaho, Jaspersoft, and SpagoBI, comparing their features and capabilities. The document concludes with a discussion of proprietary vendors like SAP Business Objects and their acquisitions in the BI space.
How can iceland produce so many professional players sept 2010Robin.Russell
Talent Development in one of Europe's smallest countries with a population of 320,000 who have qualified as one of 8 countries for the 2011 UEFA Under 21 Championship beating Scotland at home and away in the play-offs.France,Germany,Holland,Russia,Portugal and 42 other countries did not qualify but Icleand did- why ?
The Next Generation SharePoint: Powered by Text AnalyticsAlyona Medelyan
This document discusses how text analytics can power the next generation of SharePoint. It begins by outlining common information tasks and how much time they take. It then discusses what text analytics is, how it works, and how it can save time on tasks like search, metadata extraction, and sentiment analysis. It provides examples of text analytics APIs and open source tools. It concludes by demonstrating how text analytics can be integrated into SharePoint using APIs.
Building Data Integration and Transformations using PentahoAshnikbiz
This presentation will showcase the Data Integration capabilities of Pentaho which helps in building data transformations, through two demonstrations:
- How to build your first transformation to extract, transform and blend the data from various data sources
- How to add additional steps and filters to your transformation
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)Roland Bouman
This document introduces Pentaho Data Integration (KETL), an open source extract-transform-load (ETL) tool. It is part of Pentaho's full stack business intelligence platform. The document discusses KETL's capabilities for extracting, transforming and loading data from various sources through jobs and transformations. It also provides an overview of Pentaho's community and resources for using and contributing to its open source software.
Business Intelligence and Big Data Analytics with Pentaho Uday Kothari
This webinar gives an overview of the Pentaho technology stack and then delves deep into its features like ETL, Reporting, Dashboards, Analytics and Big Data. The webinar also facilitates a cross industry perspective and how Pentaho can be leveraged effectively for decision making. In the end, it also highlights how apart from strong technological features, low TCO is central to Pentaho’s value proposition. For BI technology enthusiasts, this webinar presents easiest ways to learn an end to end analytics tool. For those who are interested in developing a BI / Analytics toolset for their organization, this webinar presents an interesting option of leveraging low cost technology. For big data enthusiasts, this webinar presents overview of how Pentaho has come out as a leader in data integration space for Big data.
Pentaho is one of the leading niche players in Business Intelligence and Big Data Analytics. It offers a comprehensive, end-to-end open source platform for Data Integration and Business Analytics. Pentaho’s leading product: Pentaho Business Analytics is a data integration, BI and analytics platform composed of ETL, OLAP, reporting, interactive dashboards, ad hoc analysis, data mining and predictive analytics.
The document describes the KUKA KR 360-3 six-axis industrial robot used in a wheel assembly system. It has 6 axes of movement and is controlled by the KR C4 controller. Two robots work simultaneously with a Matrox Iris GT smart camera each to locate wheel bolts and rims, calculate their positions, and assemble the rims to the wheel hubs in 54 seconds. The system provides advantages over the ABB IRB 6600 such as a larger working range and payload for the KUKA robot. Ongoing research and development continues to improve robot welding, assembly, and human-robot collaboration capabilities.
Introduction to Solr, presented at Bangkok meetup in April 2014:
http://www.meetup.com/bkk-web/events/172090992/
Covers high-level use-cases for Solr. Demos include support for Thai language (with GitHub link for source).
Has slides showcasing Solr-ecosystem as well as couple of ideas for possible Solr-specific learning projects.
This document provides an introduction to the Pentaho business intelligence (BI) platform. It discusses what BI is and why organizations need it. It then describes Pentaho's suite of open source BI tools, including Pentaho Data Integration for ETL, the Pentaho Report Designer for reporting, and the Pentaho BA Server for analytics, dashboards, and administration. The document also presents a case study of how Lufthansa used Pentaho to create real-time dashboards for monitoring airline operations. Finally, it outlines the course curriculum for an Edureka training on Pentaho.
Pentaho provides open source business analytics tools including Kettle for extraction, transformation and loading (ETL) of data, and Weka for machine learning and data mining. Kettle allows users to run ETL jobs directly on Hadoop clusters and its JDBC layer enables SQL queries to be pushed down to databases for better performance. While bringing Weka analytics to Hadoop data provides gains, challenges include ensuring true parallel machine learning algorithms and keeping clients notified of database updates.
The document provides a history of robotics, describing how robots were first depicted in fiction in the 1920s play R.U.R. and Isaac Asimov devised robot laws of behavior in 1950. It discusses the first successful programmable robot developed by George Devol in 1954. The document also summarizes the main types of industrial robots including manipulators, loading devices, and freely programmable robots. It provides examples of early industrial robots like Unimate and describes key components and processes of industrial robot systems.
This document summarizes Pentaho Data Integration (Kettle), an open source data integration tool. It discusses Kettle's capabilities for extracting, transforming, and loading data from various sources. Key features include its graphical user interface, support for over 35 database types, flexible transformation capabilities, and large community of users. The document also notes Kettle's use in big data and Hadoop environments and its adoption in small, medium, and large enterprises.
KUKA Software
Your ideas are what shapes our programs. And your daily challenges are what drives us. Whether it’s routine processes or new, tailored system solutions, KUKA supports you with the right software: from expandable system software and ready-made robotic applications, through integrated Soft PLC and wide-ranging simulation tools, right up to intelligent robot networking and safe human-machine interaction. With a familiar Windows user interface, adapted to your automation solution and 100% compatible. You can rest assured: with software from KUKA, your robots and systems are always programmed for productivity.
To make it serve itself for performing useful functions like approaching to work piece, automatic motion in workspace, robot programming is very important. Robot programming is important to coordinate various tasks & activities that needed in workspace. Coordination of robot is done by using various sensors & end effectors which can be coordinated by programs and simulation software’s.
This document describes an Arduino-based home automation project using Bluetooth. The project aims to develop a system that allows household appliances to be remotely controlled from an Android smartphone via Bluetooth. The system interfaces a Bluetooth module to an Arduino board which is connected to various loads. An Android app sends ON/OFF commands to the Arduino via Bluetooth, allowing the loads to be controlled remotely. The loads are operated by the Arduino using opto-isolators and thyristors. The system provides a low-cost and modern solution for remote home automation control from a smartphone.
Project report on home automation using Arduino AMIT SANPUI
This document describes an Arduino-based home automation project using Bluetooth. The project aims to develop a system that allows household appliances to be remotely controlled from an Android smartphone. An Arduino board is interfaced with a Bluetooth module to receive ON/OFF commands sent from an Android app. Relays connected to the Arduino can then switch loads such as lights and fans. The system provides a low-cost way to remotely control appliances, especially benefiting elderly or disabled users.
Android Operated Wireless Robot Using 8051 MCUKamal Pradhan
This document is a certificate certifying that Kamal Pradhan completed a project report entitled "Android Controlled Wireless Robot Using 8051(AT89S52) Micro controller" under the guidance of Mr. Santanu Kumar Dash for the 2013-2014 session. The project report fulfills the necessary requirements and regulations for submission. Kamal Pradhan thanks various people who helped with the project including his guide Mr. Dash and director Prof. S.S. Pujari.
The document provides specifications for communication between a DCS system and various third party subsystems using MODBUS RTU protocol over RS485 links. It describes the communication philosophy, functions, capacities, interfaces, cable specifications, transmission details, subsystem addressing, time synchronization, alarm handling, and I/O mapping between the DCS and subsystems. A list of subsystems for the project and the required subsystem mapping format are also included.
The document summarizes presentations on advanced robot control and automation. It discusses Giovanni Indiveri's work on robot control and path following using kinematic models and Lyapunov stability analysis with no sensors. It also covers implementing the inverse kinematics of a KUKA KR6 industrial robot using DH parameters in a simulator to move the end effector vertically and horizontally. References for the control and inverse kinematics methods are provided.
Rosette Search Essentials is a multilingual text analytics plugin that offers a wealth of powerful text analytics functionality, including tokenization, lemmatization, decompounding and POS tagging, along with entity extraction and entity resolution in Asian, European and Middle Eastern languages.
Moving Beyond Entity Extraction to Entity Resolution - Human Language Technol...Basis Technology
Entity extraction finds names in documents, providing important raw material for big decisions. But finding all mentions of the name “George Bush” is very different than finding all mentions of the 43rd US President.
Making big decisions from big data is hopeless unless analytics advance from providing snippets of text to providing statements of truth. Such advances present challenges both of accuracy and of usability. We’ll explore these challenges and demonstrate ways of addressing them.
View more slides from the Human Language Technology Conference 2012 here: http://info.basistech.com/hlt-2012-slides
Simple fuzzy Name Matching in Elasticsearch - Graham MoreheadBasis Technology
The document describes how Elasticsearch can be used for name matching through custom analyzers, mappings, and rescoring queries. Key points extracted:
- Names are indexed using a custom NameMapper that generates keys for name parts using different analyzers and stores them in separate fields.
- Queries generate analogous keys to find candidate matches. A rescore query then scores how well the query name matches names in candidate documents to reorder results.
- The rescore query uses a custom name_score function that retrieves the indexed name from a document and scores it against the query name using a cached scorer, returning a similarity score. This allows computationally expensive but high precision name matching.
The document provides an overview of the business intelligence industry and competitive landscape, focusing on open source BI solutions. It discusses the increasing adoption of open source technologies in commercial software. It then analyzes several open source BI platforms, including Pentaho, Jaspersoft, and SpagoBI, comparing their features and capabilities. The document concludes with a discussion of proprietary vendors like SAP Business Objects and their acquisitions in the BI space.
How can iceland produce so many professional players sept 2010Robin.Russell
Talent Development in one of Europe's smallest countries with a population of 320,000 who have qualified as one of 8 countries for the 2011 UEFA Under 21 Championship beating Scotland at home and away in the play-offs.France,Germany,Holland,Russia,Portugal and 42 other countries did not qualify but Icleand did- why ?
The Next Generation SharePoint: Powered by Text AnalyticsAlyona Medelyan
This document discusses how text analytics can power the next generation of SharePoint. It begins by outlining common information tasks and how much time they take. It then discusses what text analytics is, how it works, and how it can save time on tasks like search, metadata extraction, and sentiment analysis. It provides examples of text analytics APIs and open source tools. It concludes by demonstrating how text analytics can be integrated into SharePoint using APIs.
Building Data Integration and Transformations using PentahoAshnikbiz
This presentation will showcase the Data Integration capabilities of Pentaho which helps in building data transformations, through two demonstrations:
- How to build your first transformation to extract, transform and blend the data from various data sources
- How to add additional steps and filters to your transformation
Moving and Transforming Data with Pentaho Data Integration 5.0 CE (aka Kettle)Roland Bouman
This document introduces Pentaho Data Integration (KETL), an open source extract-transform-load (ETL) tool. It is part of Pentaho's full stack business intelligence platform. The document discusses KETL's capabilities for extracting, transforming and loading data from various sources through jobs and transformations. It also provides an overview of Pentaho's community and resources for using and contributing to its open source software.
Business Intelligence and Big Data Analytics with Pentaho Uday Kothari
This webinar gives an overview of the Pentaho technology stack and then delves deep into its features like ETL, Reporting, Dashboards, Analytics and Big Data. The webinar also facilitates a cross industry perspective and how Pentaho can be leveraged effectively for decision making. In the end, it also highlights how apart from strong technological features, low TCO is central to Pentaho’s value proposition. For BI technology enthusiasts, this webinar presents easiest ways to learn an end to end analytics tool. For those who are interested in developing a BI / Analytics toolset for their organization, this webinar presents an interesting option of leveraging low cost technology. For big data enthusiasts, this webinar presents overview of how Pentaho has come out as a leader in data integration space for Big data.
Pentaho is one of the leading niche players in Business Intelligence and Big Data Analytics. It offers a comprehensive, end-to-end open source platform for Data Integration and Business Analytics. Pentaho’s leading product: Pentaho Business Analytics is a data integration, BI and analytics platform composed of ETL, OLAP, reporting, interactive dashboards, ad hoc analysis, data mining and predictive analytics.
The document describes the KUKA KR 360-3 six-axis industrial robot used in a wheel assembly system. It has 6 axes of movement and is controlled by the KR C4 controller. Two robots work simultaneously with a Matrox Iris GT smart camera each to locate wheel bolts and rims, calculate their positions, and assemble the rims to the wheel hubs in 54 seconds. The system provides advantages over the ABB IRB 6600 such as a larger working range and payload for the KUKA robot. Ongoing research and development continues to improve robot welding, assembly, and human-robot collaboration capabilities.
Introduction to Solr, presented at Bangkok meetup in April 2014:
http://www.meetup.com/bkk-web/events/172090992/
Covers high-level use-cases for Solr. Demos include support for Thai language (with GitHub link for source).
Has slides showcasing Solr-ecosystem as well as couple of ideas for possible Solr-specific learning projects.
This document provides an introduction to the Pentaho business intelligence (BI) platform. It discusses what BI is and why organizations need it. It then describes Pentaho's suite of open source BI tools, including Pentaho Data Integration for ETL, the Pentaho Report Designer for reporting, and the Pentaho BA Server for analytics, dashboards, and administration. The document also presents a case study of how Lufthansa used Pentaho to create real-time dashboards for monitoring airline operations. Finally, it outlines the course curriculum for an Edureka training on Pentaho.
Pentaho provides open source business analytics tools including Kettle for extraction, transformation and loading (ETL) of data, and Weka for machine learning and data mining. Kettle allows users to run ETL jobs directly on Hadoop clusters and its JDBC layer enables SQL queries to be pushed down to databases for better performance. While bringing Weka analytics to Hadoop data provides gains, challenges include ensuring true parallel machine learning algorithms and keeping clients notified of database updates.
The document provides a history of robotics, describing how robots were first depicted in fiction in the 1920s play R.U.R. and Isaac Asimov devised robot laws of behavior in 1950. It discusses the first successful programmable robot developed by George Devol in 1954. The document also summarizes the main types of industrial robots including manipulators, loading devices, and freely programmable robots. It provides examples of early industrial robots like Unimate and describes key components and processes of industrial robot systems.
This document summarizes Pentaho Data Integration (Kettle), an open source data integration tool. It discusses Kettle's capabilities for extracting, transforming, and loading data from various sources. Key features include its graphical user interface, support for over 35 database types, flexible transformation capabilities, and large community of users. The document also notes Kettle's use in big data and Hadoop environments and its adoption in small, medium, and large enterprises.
KUKA Software
Your ideas are what shapes our programs. And your daily challenges are what drives us. Whether it’s routine processes or new, tailored system solutions, KUKA supports you with the right software: from expandable system software and ready-made robotic applications, through integrated Soft PLC and wide-ranging simulation tools, right up to intelligent robot networking and safe human-machine interaction. With a familiar Windows user interface, adapted to your automation solution and 100% compatible. You can rest assured: with software from KUKA, your robots and systems are always programmed for productivity.
To make it serve itself for performing useful functions like approaching to work piece, automatic motion in workspace, robot programming is very important. Robot programming is important to coordinate various tasks & activities that needed in workspace. Coordination of robot is done by using various sensors & end effectors which can be coordinated by programs and simulation software’s.
This document describes an Arduino-based home automation project using Bluetooth. The project aims to develop a system that allows household appliances to be remotely controlled from an Android smartphone via Bluetooth. The system interfaces a Bluetooth module to an Arduino board which is connected to various loads. An Android app sends ON/OFF commands to the Arduino via Bluetooth, allowing the loads to be controlled remotely. The loads are operated by the Arduino using opto-isolators and thyristors. The system provides a low-cost and modern solution for remote home automation control from a smartphone.
Project report on home automation using Arduino AMIT SANPUI
This document describes an Arduino-based home automation project using Bluetooth. The project aims to develop a system that allows household appliances to be remotely controlled from an Android smartphone. An Arduino board is interfaced with a Bluetooth module to receive ON/OFF commands sent from an Android app. Relays connected to the Arduino can then switch loads such as lights and fans. The system provides a low-cost way to remotely control appliances, especially benefiting elderly or disabled users.
Android Operated Wireless Robot Using 8051 MCUKamal Pradhan
This document is a certificate certifying that Kamal Pradhan completed a project report entitled "Android Controlled Wireless Robot Using 8051(AT89S52) Micro controller" under the guidance of Mr. Santanu Kumar Dash for the 2013-2014 session. The project report fulfills the necessary requirements and regulations for submission. Kamal Pradhan thanks various people who helped with the project including his guide Mr. Dash and director Prof. S.S. Pujari.
The document provides specifications for communication between a DCS system and various third party subsystems using MODBUS RTU protocol over RS485 links. It describes the communication philosophy, functions, capacities, interfaces, cable specifications, transmission details, subsystem addressing, time synchronization, alarm handling, and I/O mapping between the DCS and subsystems. A list of subsystems for the project and the required subsystem mapping format are also included.
1) The document describes the design and implementation of an IP (Inter-Integrated Circuit) 2PC protocol. 2) IP2PC protocol allows multiple devices to communicate over a serial data bus without data or address loss and enables faster devices to communicate with slower ones. 3) The design of an IP2PC protocol controller in Verilog is presented along with its simulation on an FPGA platform to allow communication between multiple masters and slaves.
PocketPORT is the world’s smallest 3G/4G Cellular Modem to Ethernet Bridge. The PocketPORT instantly connects virtually any cellular (3G/4G) USB modem to any Ethernet device simply by plugging both devices into the PocketPORT. Any device that can be connected to a cable, DSL or satellite modem, Ethernet switch or hub can use the PocketPORT to get Internet service via an inexpensive USB modem from cellular service providers. The PocketPORT is the highly portable, simple and low-cost alternative to large, complex and expensive cellular Ethernet modems.
Use a PocketPORT wherever wired Internet service is unavailable, difficult, costly or time-consuming to install. Plug a PocketPORT into the Ethernet port of devices such as IP cameras (web cams) for security applications, programmable logic controllers (PLC) for industrial processes, digital & network video recorders (DVR/NVR) or any other equipment that needs Internet service for remote access. Have field service technicians keep a PocketPORT in their “pocket” for instant Internet access for remote equipment when they are on site visits.
This document provides an overview of the robot car project for an embedded microprocessors systems course. It discusses the main systems and subsystems that will be developed, including the power supply, visual sensors, motors, and potential wireless enhancements. It also outlines the basic operation of the robotic car, describing how it will follow a 1-inch wide black centerline track using infrared proximity sensors to detect the line and motors controlled by a microcontroller to steer itself along the track. Testing plans are presented for each subsystem as well as overall system operation.
The document provides instructions for a Packet Tracer skills exam to practice IP routing concepts. Students are asked to:
1) Connect various networking devices like routers, switches and PCs according to a topology diagram.
2) Design an IP addressing scheme to meet requirements of providing a certain number of host addresses for two subnets, and fill in an addressing table.
3) Configure the routers and switches with IP addresses, passwords, and descriptions according to the addressing table.
4) Verify connectivity within the network by pinging devices and their default gateways.
The SmartLock uses a microcontroller, Bluetooth module, and servo to automate a door lock. It connects to a mobile app via Bluetooth to unlock/lock with buttons. When a command is received, the SmartLock activates LEDs and a speaker, then uses a servo to rotate the lock mechanism. It provides status updates and can also be manually unlocked/locked. It was designed and prototyped using 3D printing to test electromechanical actuation, power management, and Bluetooth control.
This document summarizes a project report on establishing wireless and serial communication for robot control. The project aims to program a microcontroller on a robot and base station to enable wireless control of the robot using a radio packet controller module. It also aims to program a GUI application for serial control of the base station. The report discusses the radio packet controller design, microcontroller board, wireless and serial communication protocols, and evaluation of the packet transmission performance and error rate. The project achieves wireless communication between the robot and base station, and serial communication between the base station and GUI application.
High speed customized serial protocol for IP integration on FPGA based SOC ap...IJMER
International Journal of Modern Engineering Research (IJMER) is Peer reviewed, online Journal. It serves as an international archival forum of scholarly research related to engineering and science education.
International Journal of Modern Engineering Research (IJMER) covers all the fields of engineering and science: Electrical Engineering, Mechanical Engineering, Civil Engineering, Chemical Engineering, Computer Engineering, Agricultural Engineering, Aerospace Engineering, Thermodynamics, Structural Engineering, Control Engineering, Robotics, Mechatronics, Fluid Mechanics, Nanotechnology, Simulators, Web-based Learning, Remote Laboratories, Engineering Design Methods, Education Research, Students' Satisfaction and Motivation, Global Projects, and Assessment…. And many more.
The document provides instructions for configuring routing on a partially completed network to establish connectivity between different regions and the internet. Key steps include:
1. Configuring device basics like hostnames, passwords, and interfaces on routers.
2. Configuring static and default routes between different regions.
3. Configuring EIGRP routing with an AS number between routers, advertising networks and disabling automatic summarization.
4. Modifying EIGRP settings like bandwidth usage and configuring summary routes between routers.
5. Verifying full connectivity between all networks is established.
4 Channel Relay Board 5V-Bluetooth Compatible for ArduinoRaghav Shetty
Bluetooth technology is a short distance communication technology used by almost all phones
including smart phones and all laptops. This technology find very wide uses including that of Home &
Industrial automation.
The Relay shield is capable of controlling 4 relays. The max switching power could be
12A/250VAC or 15A/24VDC. It could be directly controlled by Arduino through digital IOs.
This document provides an overview of the hardware components used in programmable logic controllers (PLCs). It describes the basic PLC components such as the CPU module, power supply module, and input/output modules. It also covers number addressing schemes for inputs and outputs. Specialized modules are discussed, including analog, temperature control, counter, positioning, and communication modules. An overview of programming software is also provided.
Abstract With the increasing interest in nano, micro and small satellites, need arises for miniaturization of satellite systems for small size, low weight, low cost designs and short development periods. For the operation and maintenance of a satellite in the designated orbit, a reliable commanding system is mandatory. This paper presents the work carried out in designing and developing a telecommand modem for use with student satellites. To transmit low bit rate command data, PSK/PM a two level modulation scheme is adopted. The architecture and the simulation and test results of the hardware realized on an FPGA are provided. Keywords –Phase Shift Keying, Phase Modulation, PSK/PM Modem, bit error rate, satellite commanding.
This document describes a project to control electrical appliances from a PC using a microcontroller. A mouse is used to control relays connected to appliances via the microcontroller. The microcontroller communicates with the PC over RS-232 using a MAX232 level shifter. The project allows centralized control of appliances like stage lighting from a PC. It could be improved with a GUI control panel and intensity control.
Cognitive Radio Network simulation is available from v7 of NetSim. Cognitive Radio Networks
allows you to connect, if required, with Ethernet, Wireless LAN, IP Routing, TCP / UDP and
allows users to log packet and event traces.
This document provides instructions for cabling a network with two routers and two PCs. It includes tasks to cable Ethernet links between devices, establish a console connection to a router, erase and reload the routers' configurations, and learn basic router command line operations. The objectives are to cable devices, perform basic router configurations, and verify configurations using show commands.
Routers R1 and R2 were configured with OSPF routing and subnets were created for different departments on each router. Router R0 was configured as the central router to connect R1 and R2 along with providing DHCP and DNS services. Ping tests verified connectivity between devices on different subnets routing through the OSPF configured routers.
The document provides an overview of a Bluetooth based home automation system project. It includes a block diagram of the system which uses an ATmega8 microcontroller and HC-05 Bluetooth module to allow wireless control of home appliances like lights and fans from an Android mobile phone. The hardware and software components are described, including the microcontroller, Bluetooth module, driver IC, switches, power supply. It also discusses the serial communication between the microcontroller and Bluetooth module for transmitting commands from the phone to control the appliances.
1. Department of Electrical Engineering
& Information Technology
Master’s Project
Winter Semester 2015/2016
KUKA robot
Aditya Deshmukh
Florian Schnitzer
Puneeth Sridhar
Supervisor:
Prof. Dr.-Michael Wagner
2. Master project KUKA robot
2
Table of Contents
1 Introduction....................................................................................................... 4
2 Communication PC – KUKA Robot via Ethernet ............................................ 5
2.1 Settings............................................................................................................................5
1.2.1 Settings in PC.............................................................................................................5
1.2.1 Settings in KUKA Robot ..........................................................................................5
1.3 Interface description.....................................................................................................5
1.3.1 Signals from robot to PC.........................................................................................5
1.3.2 Signals from PC to robot.........................................................................................6
1.4 KUKA-Program...............................................................................................................7
1.4.1 Data file ........................................................................................................................7
1.4.2 Way of working ..........................................................................................................7
1.4.2.1 Initialization.............................................................................................................8
1.4.2.2 Communication......................................................................................................9
1.4.2.3 Robot movement .................................................................................................12
1.5 C#-Program...................................................................................................................13
1.5.1 Way of working ........................................................................................................13
1.5.1.1 Non-cyclic program ............................................................................................13
1.5.1.2 Cyclic program.....................................................................................................16
1.5.1.3 Conversion functions.........................................................................................17
1.5.2 Using of Robot-Class .............................................................................................19
1.5.3 Using User-Interface...............................................................................................20
3 Control Cabinet for Lighting .......................................................................... 21
3.1 Operational Sequence................................................................................................21
3.2 Control Cabinet Details..............................................................................................22
3.2.1 Optimum surface protection ................................................................................23
3.2.2 PU foam seal.............................................................................................................23
3.2.3 Earthing......................................................................................................................24
3.2.4 Lock ............................................................................................................................24
3.2.5 Dimensional Details........................................................................................ 25
3.3 Interconnecting the Component..............................................................................26
3.3.1 Mounting the Components ...................................................................................26
3. Master project KUKA robot
3
3.3.2 Introduction to the components..........................................................................27
3.3.2.1 Siemens SITOP POWER 5.................................................................................27
3.3.2.2 Fuse Case..............................................................................................................28
3.3.2.3 Double-through terminal 5.2mm......................................................................29
3.3.2.4 SIEMENS SIRUS Contactor...............................................................................30
3.3.2.5 QUANCOM OPTOCOUPLER DETAILS...........................................................31
3.3.3 Wiring Diagram ........................................................................................................32
4 Safety............................................................................................................... 35
4.1 Safety fence ..................................................................................................................35
4.2 Cabinet for safety switches ......................................................................................35
4.3 Emergency-Stop..........................................................................................................42
4.4 Door switch...................................................................................................................43
List of Figures............................................................................................................... 46
List of Tables................................................................................................................. 47
Bibliography.................................................................................................................. 48
4. Master project KUKA robot
4
1 Introduction
The objective of Control Cabinet is to actuate the operational sequence governed
by IcoNet in PC. It is basically an electrical cabinet, which is in compliance with the
International Protection 66 (the first digit ‘6’ indicates that it is totally dust tight and
the second digit ‘6’ indicates the Protection against string water jets and waves).
The Control Cabinet interconnects the components such as USB Opto-Coupler,
power supply, relays, and fuses which was designed in TinyCad and implemented.
5. Master project KUKA robot
5
2 Communication PC – KUKA Robot via
Ethernet
2.1 Settings
1.2.1 Settings in PC
On the PC only the IP address and the subnetmask must be set:
IP-Address: 172.31.1.145
Subnetmask: 255.255.0.0
1.2.1 Settings in KUKA Robot
All necessary settings can be found in the following file at the KUKA-Robot:
C:KRCROBOTERConfigUserCommonEthernetKRLBinaryFixed.xml
1 <ETHERNETKRL>
2 <CONFIGURATION>
3 <EXTERNAL>
4 <IP>172.31.1.145</IP>
5 <PORT>1000</PORT>
6 </EXTERNAL>
7 </CONFIGURATION>
8 <RECEIVE>
9 <RAW>
10 <ELEMENT Tag="Buffer" Type="BYTE" Set_Flag="1" Size="200"/>
11 </RAW>
12 </RECEIVE>
13 ; <SEND/>
14 </ETHERNETKRL>
The IP address of the PC must be entered in line 4. In our case this is 172.31.1.145. In
line 5 the port number, here 1000, must be entered. In line 10, the size of the data range
that is transferred to the PC, be can be configured. 200 Bytes are here enough.
1.3 Interface description
1.3.1 Signals from robot to PC
The following signals are sent from the KUKA robot to the PC:
Type Name
BOOL lifebit
BOOL robot_at_home
BOOL reserve
BOOL reserve
FLOAT actual_position.x
FLOAT actual_position.y
FLOAT actual_position.z
FLOAT actual_position.a
6. Master project KUKA robot
6
FLOAT actual_position.b
FLOAT actual_position.c
INT reserve
INT reserve
INT reserve
INT reserve
Table 1: Signals from robot to PC
Description of the signals:
lifebit: This Boolean variable changes every cycle its value. The variable is
used for monitoring the communication between the robot controller
and PC
robot_at_home: This Boolean variable has the value 1, if the robot stays in its home
position
actual_position.x: This float value gives the current x-coordinate of the robot
actual_position.y: This float value gives the current y-coordinate of the robot
actual_position.z: This float value gives the current z-coordinate of the robot
actual_position.a: This float value gives the current a-coordinate of the robot
actual_position.b: This float value gives the current b-coordinate of the robot
actual_position.c: This float value gives the current c-coordinate of the robot
reserve: These variables are currently not used.
1.3.2 Signals from PC to robot
The following signals are sent from the PC to the KUKA robot:
Type Name
BOOL lifebit
BOOL move_to_position
BOOL move_to_home
BOOL reserve
FLOAT new_pos.x
FLOAT new_pos.y
FLOAT new_pos.z
FLOAT new_pos.a
FLOAT new_pos.b
FLOAT new_pos.c
INT new_pos.type
INT reserve
INT reserve
INT reserve
Table 2: Signals from PC to robot
Description of the signals:
7. Master project KUKA robot
7
lifebit: This Boolean variable changes every cycle its value. The variable is
used for monitoring the communication between the robot controller
and PC
move_to_position: This Boolean variable is set to 1, if the robot should move to a new
position, given in the variable new_pos.
move_to_home: This Boolean variable is set to 1, if the robot should move to its
home position
new_pos.x: This float variable sets the x-coordinate of the new position.
new_pos.y: This float variable sets the y-coordinate of the new position.
new_pos.z: This float variable sets the z-coordinate of the new position.
new_pos.a: This float variable sets the a-coordinate of the new position.
new_pos.b: This float variable sets the b-coordinate of the new position.
new_pos.c: This float variable sets the c-coordinate of the new position.
new_pos.type: This integer variable sets the type of the new position. The values of
new_pos.type can be 1 (new pick position), 2 (new home position)
or 3 (new place position). At the values 2 and 3 is no movement of
the robot is performed. Only the new coordinates are stored
reserve: These variables are currently not used.
1.4 KUKA-Program
The KUKA-Program can be found at: KRC:R1Programbinaryfixed.src.
The corresponding data file can be found at: KRC:R1Programbinaryfixed.dat.
1.4.1 Data file
In the data file all main variables are stored. They are declared global to allow a
monitoring in the KUKA teach panel:
1 DEFDAT binaryfixed PUBLIC
2 DECL GLOBAL REAL x
3 DECL GLOBAL REAL y
4 DECL GLOBAL REAL z
5 DECL GLOBAL REAL a
6 DECL GLOBAL REAL b
7 DECL GLOBAL REAL c
8 DECL GLOBAL POS pickpos
9 DECL GLOBAL POS homepos
10 DECL GLOBAL POS dispos
11 DECL GLOBAL BOOL lifebit
12 DECL GLOBAL BOOL athome
13 DECL GLOBAL BOOL movetopos
14 DECL GLOBAL BOOL movetohome
15 DECL GLOBAL REAL offsetwithproduct
16 DECL GLOBAL REAL offsetwithoutproduct
17 DECL GLOBAL INT type
18 ENDDAT
1.4.2 Way of working
8. Master project KUKA robot
8
The program can be divided in three parts. The first part is the initialization of the
communication and of variables. This part is only executed at the start of execution. In
the second section the communication with the PC is handled. The last section
executes the movement of the robot. The second and the third part of the program are
executed cyclic.
1.4.2.1 Initialization
This part can be found in the lines 1 to 53. First the declaration of auxiliary variables
like loop counters and buffers is done:
1 DEF binaryfixed( )
2 ;FOLD Declaration
3 INT i
4 INT OFFSET
5 DECL EKI_STATUS RET
6 CHAR Bytes[200]
7 BOOL spare
8 ;ENDFOLD
After the declaration of the variables the initialization of the robot and the default setting of
variables takes place. The x, y and z-coordinates and offsetwithproduct and
offsetwithoutproduct are measured in mm. The a, b and c-coordinates are measured in
degrees.
9 ;FOLD INI
10 ;FOLD BASISTECH INI
11 BAS (#INITMOV, 0 )
12 ;ENDFOLD (BASISTECH INI)
13 ;FOLD USER INI
14 ;Make your modifications here
15 offsetwithproduct = 300
16 offsetwithoutproduct = 30
17 homepos.x = 497
18 homepos.y = 40
19 homepos.z = 380
20 homepos.a = -44
21 homepos.b = 87
22 homepos.c = -170
23 homepos.s = 6
24 homepos.t = 27
25 pickpos.s = 6
26 pickpos.t = 27
27 dispos.x = 1025
28 dispos.y = 600
29 dispos.z = 335
30 dispos.a = 56
31 dispos.b = 87
32 dispos.c = 180
33 dispos.s = 6
34 dispos.t = 27
35 athome = FALSE
36 lifebit = TRUE
37 type = 0
38 ;movetohome = FALSE
39 ;movetopos = FALSE
40 ;ENDFOLD (USER INI)
41 ;ENDFOLD (INI)
42 ;FOLD Initialize sample data
43
44 FOR i = 1 TO 200
45 Bytes[i] = 0
46 ENDFOR
47
48 OFFSET = 0
49 ;ENDFOLD
50
9. Master project KUKA robot
9
After that the initialization of the Ethernet connection is done. The function EKI_INIT()
Initializes a channel for Ethernet communication. The following actions are performed:
The configuration is read in, the data memories are created and the Ethernet connection
is prepared. [1]. The parameter of the function is name of the corresponding xml-file,
which is stored in: C:KRCROBOTERConfigUserCommonEthernetKRL
The function EKI_Open() opens an initialized channel. If the Ethernet KRL interface is
configured as a client, the interface connects to the server. If the Ethernet KRL interface is
configured as a server, the interface waits for the connection. [1] The parameter of the
function is name of the corresponding xml-file, which is stored in:
C:KRCROBOTERConfigUserCommonEthernetKRL
51 RET = EKI_Init("BinaryFixed")
52 RET = EKI_Open("BinaryFixed")
53
1.4.2.2 Communication
This part can be found in the lines 54 to 118.
Fist the data sending part is executed. Therefor the values of the variables must be
written to a Byte-buffer. This can be done with the function “CAST_TO”.
CAST_TO makes it possible to process up to 4 KB of data. CAST_TO groups individual
variables together as a single buffer. Maximum buffer size is 4 KB (= 4096 bytes). If the
quantity of data is so great that the maximum buffer size is insufficient, several statements
must be used.
CAST_TO does not trigger an advance run stop. If, however, variables are processed that
do trigger an advance run stop, then an advance run stop is triggered indirectly. The
parameters of CAST_TO are “Buffer”, “OFFSET” and “Var”. Buffer must be a char array to
which the Var variables are written. The parameter “OFFSET” gives the position within
the buffer (in bytes) after which data are to be written to the buffer. The offset starts with
0. If OFFSET = 0 writing commences at the first position.
If OFFSET = 2 writing commences at the third position, the positions 1 and 2 are ignored.
Var contains the variables that are written to the buffer. A maximum of 10 variables per
statement are possible.
In the case of non-initialized variables or array elements, random values are written to the
buffer. Since random values can cause problems for the buffer receiver, it is
recommended that all variables and array elements should be initialized. The number of
bytes written to the buffer by each variable is determined by the data type of the variable
and can be seen in Table 3. [2]
Permissible data type Size
INT 4 bytes
REAL 4 bytes
BOOL 1 bytes
CHAR 1 bytes
ENUM 4 bytes
10. Master project KUKA robot
10
SIGNAL 1 bytes
Table 3: Permissible data type in CAST statements [2]
In this case three CAST_TO calls are used. The first one converts all boolean variables.
The second one converts all real variables and the third one converts all integer variables.
After the first call the offset must be set to 4 because 4 boolean variables were converted:
OFFSET = 4 x 1 byte = 4
After the second call the offset must be set to 28 because 6 real variables were
converted:
OFFSET = 4 x 1 byte + 6 x 4 byte = 28
After converting the data they can be sent with the function EKI_Send. The two
parameters of this function are the name of the open channel and name of the data row.
[1]
54 LOOP
55
56 ;FOLD Datasending
57 OFFSET = 0
58
59 CAST_TO(Bytes[], OFFSET, lifebit, athome, FALSE, TRUE)
60 OFFSET = 4
61 CAST_TO(Bytes[], OFFSET, $POS_ACT.X, $POS_ACT.Y, $POS_ACT.Z, $POS_ACT.A,
$POS_ACT.B, $POS_ACT.C)
62 OFFSET = 28
63 CAST_TO(Bytes[], OFFSET, 1, 2, 3, 4)
64 RET = EKI_Send("BinaryFixed", Bytes[])
65 ;ENDFOLD
66
At data receiving the controller waits for FLAT[1]. This is set if new data are available.
Then the new values are written out with the function EKI_GetString(). The three
parameters of this function are the name of the open channel, the name of the element in
the raw data and the string, in which the data are written. [1]
After this the new values of the variables must be extracted from the string. This can be
done using the function “CAST_FROM”.
This function makes it possible to process up to 4 KB of data. If the quantity of data is so
great that the maximum buffer size is insufficient, several statements must be used.
CAST_FROM does not trigger an advance run stop If, however, variables are processed
that do trigger an advance run stop, then an advance run stop is triggered indirectly. This
function has the parameters “BUFFER”, “OFFSET” and “Var”. “BUFFER” is the string
whose data are used to fill the variables. “OFFSET” is the position within the buffer (in
bytes) after which the data are used to fill “VAR”. The offset starts with 0. If “OFFSET” = 0
the buffer is used from the first position. If “OFFSET” = 2 the buffer is used from the third
position. Positions 1 and 2 are ignored.
“VAR” contains the variables that are filled with the data from the buffer. A maximum of 10
variables per statement are possible. The number of bytes each variable receives from
the buffer is determined by its data type and can be seen in Table 3. [2]
In this case three CAST_FROM calls are used. The first one converts all boolean
variables. The second one converts all real variables and the third one converts all integer
11. Master project KUKA robot
11
variables. After the first call the offset must be set to 4 because 4 boolean variables were
converted:
OFFSET = 4 x 1 byte = 4
After the second call the offset must be set to 28 because 6 real variables were
converted:
OFFSET = 4 x 1 byte + 6 x 4 byte = 28
67 ;FOLD Data receive
68
69 WAIT FOR $FLAG[1]
70 RET = EKI_GetString("BinaryFixed", "Buffer", Bytes[])
71 $FLAG[1] = FALSE
72
73 OFFSET = 0
74 CAST_FROM(Bytes[], OFFSET, lifebit, movetopos, movetohome, spare)
75
76 OFFSET = 4
77 CAST_FROM(Bytes[], OFFSET, X, Y, Z, A, B, C)
78
79
80 OFFSET = 28
81 CAST_FROM(Bytes[], OFFSET, type)
82 ;ENDFOLD
83
After converting the data the new values are set to the corresponding variables.
Depending on the variable type the new values are stored to the variables pickpos,
homepos or dispos:
84 ;FOLD Setparameter
85 SWITCH type
86 CASE 1
87 pickpos.x = X
88 pickpos.y = Y
89 pickpos.z = Z
90 pickpos.a = A
91 pickpos.b = B
92 pickpos.c = C
93 pickpos.s = 6
94 pickpos.t = 27
95
96 CASE 2
97 homepos.x = X
98 homepos.y = Y
99 homepos.z = Z
100 homepos.a = A
101 homepos.b = B
102 homepos.c = C
103 homepos.s = 6
104 homepos.t = 27
105
106 CASE 3
107 dispos.x = X
108 dispos.y = Y
109 dispos.z = Z
110 dispos.a = A
111 dispos.b = B
112 dispos.c = C
113 dispos.s = 6
114 dispos.t = 27
12. Master project KUKA robot
12
115
116 DEFAULT
117 ENDSWITCH
118 ;ENDFOLD
1.4.2.3 Robot movement
This part can be found in the lines 119 to 161.
119
120 IF (movetopos == TRUE) THEN
121
122 BAS(#INITMOV, 0)
123 pickpos.z = pickpos.z + offsetwithoutproduct
124 PTP pickpos
125
126 pickpos.z=pickpos.z - offsetwithoutproduct
127 PTP pickpos
128
129 ;vacuum on
130 WAIT SEC 1
131
132 dispos.z=dispos.z+offsetwithproduct
133 PTP dispos
134
135 dispos.z=dispos.z-offsetwithproduct
136 PTP dispos
137
138 ;vacuum off
139 WAIT SEC 1
140
141 dispos.z=dispos.z+offsetwithoutproduct
142 PTP dispos
143
144 dispos.z=dispos.z-offsetwithoutproduct
145 athome = FALSE
146
147 ELSE
148 ENDIF
149 athome = FALSE
150 IF (movetohome) THEN
151 PTP homepos
152 athome = TRUE
153 ENDIF
154 WAIT SEC 1
155
156 ENDLOOP
157
158 RET = EKI_Close("BinaryFixed")
159 RET = EKI_Clear("BinaryFixed")
160
161 END
The movements of the robot are performed by point-to-point movements. The call of a
point to point movement is made by the command PTP. Then the coordinates of the
destination of the movement must be entered. Here, this is done by using the variables
pickpos, dispos or homepos.
Modifying the z-coordinates during movement is necessary because otherwise a collision
can occur with a neighbouring product. First the robot moves over the target point and
then moves down. After gripping the product the robot moves first vertically up and then
moves to the next position.
In the lines 130, 139 and 154 the robot waits for one second. This is necessary to grip the
object.
13. Master project KUKA robot
13
To close the connection to the PC the functions EKI_Close() and EKI_Clear(). The
function EKI_Close() closes an open channel. The parameter of this function is the name
of the channel. The function EKI_Clear() deletes a channel and terminates the
connection. The parameter of this function is also the name of the channel. [1]
In the lines 129 and 138 the commands for switching on or off of the vacuum have to be
inserted after installation of the gripper.
1.5 C#-Program
1.5.1 Way of working
Just like the KUKA program the C#-program can also divided into an non-cyclic
initialization part and a cyclic part. In addition, functions for converting the data which are
exchanged with the robot, are necessary.
1.5.1.1 Non-cyclic program
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6 using System.Net.Sockets;
7 using System.Net;
8 using System.Threading;
9 using System.IO;
10
11 using System.Windows.Forms;
12
13
14 namespace KUKA_Communication
15 {
16 class KUKA_Robot
17 {
The first important definitions are the definitions of the datasets which are sent to the
robot and received from the robot. In these six constants the number of variables must be
defined. The numbers must be the same as in the KUKA robot.
18 //Definition data sets, must be equal in KUKA-Robot
19 const int NUMBER_BOOL_VALUES_FROM_KUKA = 4;
20 const int NUMBER_FLOAT_VALUES_FROM_KUKA = 6;
21 const int NUMBER_INT_VALUES_FROM_KUKA = 4;
22 const int NUMBER_BOOL_VALUES_TO_KUKA = 4;
23 const int NUMBER_FLOAT_VALUES_TO_KUKA = 6;
24 const int NUMBER_INT_VALUES_TO_KUKA = 4;
25
The second main declaration is the declaration of the data structures. Two structures are
defined. “values_from_kuka_type” is used for the receiving data, “values_to_kuka_type” is
used for the sending data.
26 //Deklaration
27 public struct values_from_kuka_type
28 {
29 public bool[] boolvalues;
30 public float[] floatvalues;
31 public int[] intvalues;
32
33 public values_from_kuka_type(bool[] _boolvalues, float[] _floatvalues,
int[] _intvalues)
34 {
35 boolvalues = new bool[NUMBER_BOOL_VALUES_FROM_KUKA];
14. Master project KUKA robot
14
36 floatvalues = new float[NUMBER_FLOAT_VALUES_FROM_KUKA];
37 intvalues = new int[NUMBER_INT_VALUES_FROM_KUKA];
38
39 }
40 };
41
42 public struct values_to_kuka_type
43 {
44 public bool[] boolvalues;
45 public float[] floatvalues;
46 public int[] intvalues;
47
48 public values_to_kuka_type(bool[] _boolvalues, float[] _floatvalues, int[]
_intvalues)
49 {
50 boolvalues = new bool[NUMBER_BOOL_VALUES_TO_KUKA];
51 floatvalues = new float[NUMBER_FLOAT_VALUES_TO_KUKA];
52 intvalues = new int[NUMBER_INT_VALUES_TO_KUKA];
53 }
54 };
55
For new coordinates the structure “kuka_pos_Type” is used. In addition to the coordinates
the type of the new position is set in this structure.
56 public struct kuka_pos_Type
57 {
58 public float x;
59 public float y;
60 public float z;
61 public float a;
62 public float b;
63 public float c;
64 public int type;
65
66 public kuka_pos_Type(float _x, float _y, float _z, float _a, float _b,
float _c, int _type)
67 {
68 x = _x;
69 y = _y;
70 z = _z;
71 a = _a;
72 b = _b;
73 c = _c;
74 type = _type;
75 }
76 };
77
After the definition of the structures all necessary variables are declared:
78 private volatile IPAddress ipadress;
79 private Thread Connection_Thread = null;
80 private volatile TcpListener listener;
81 private volatile TcpClient c;
82 private volatile BinaryReader r;
83 private volatile BinaryWriter w;
84 private values_from_kuka_type data_from_kuka = new values_from_kuka_type(new
bool[NUMBER_BOOL_VALUES_FROM_KUKA], new float[NUMBER_FLOAT_VALUES_FROM_KUKA], new
int[NUMBER_INT_VALUES_FROM_KUKA]);
85 private values_to_kuka_type data_to_kuka = new values_to_kuka_type(new
bool[NUMBER_BOOL_VALUES_FROM_KUKA], new float[NUMBER_FLOAT_VALUES_TO_KUKA], new
int[NUMBER_INT_VALUES_TO_KUKA]);
86 private volatile bool kuka_connected = false;
87 private volatile bool move_to_home = true;
88 private volatile bool move_to_position = false;
89 private volatile bool robot_at_home = false;
90 private volatile bool lifebit = false;
91 public volatile bool enable_robot_to_home = false;
92 private kuka_pos_Type actual_position;
93 private volatile Queue<kuka_pos_Type> buffer = new Queue<kuka_pos_Type>();
94
95
15. Master project KUKA robot
15
The function “initCommunication” initialize the communication to the KUKA robot. In line
103 a ping command is executed. This checks if the connection to the robot controller is
available. If the connection is successful a TCP-listener is started. The listener waits until
the client is accepted. Finally in lines 114 and 115 a binary reader and a binary writer are
initialized.
96
97 public bool initCommunication(IPAddress _ipadress)
98 {
99 ipadress = _ipadress;
100
101 //check connection
102
103 System.Net.NetworkInformation.Ping ping = new
System.Net.NetworkInformation.Ping();
104 System.Net.NetworkInformation.PingReply reply = ping.Send(ipadress);
105 if (reply.Status == System.Net.NetworkInformation.IPStatus.Success)
106 {
107 // connect to port 1000
108 listener = new TcpListener(ipadress, 1000);
109 // start listener
110 listener.Start();
111 // wait for client request
112 c = listener.AcceptTcpClient();
113
114 r = new BinaryReader(c.GetStream(), Encoding.Unicode);
115 w = new BinaryWriter(c.GetStream(), Encoding.Unicode);
116 kuka_connected = true;
117 return true;
118 }
119 else
120 {
121 //kuka_connected = false;
122 return false;
123 }
124 }
125
The function “disconnectCommunication” can closes the connection to the KUKA robot.
The binary writer clears all buffers, the TCP-client is closed and the listener stops also:
126 public void disconnectCommunication()
127 {
128 w.Flush();
129 c.Close();
130 listener.Stop();
131 }
132
The function startCommunication starts the communication with the robot controller. The
cyclic function “communication” is called in a separate thread.
133 public bool startCommunication()
134 {
135 communication();
136 if (true)//(kuka_connected == false)
137 {
138 //Check ethernet-connection
139 Thread communicationThread = new Thread(communication);
140 this.Connection_Thread =
141 new Thread(new ThreadStart(this.communication));
142
143 this.Connection_Thread.Start();
144 // Start the connection thread.
145 communicationThread.Start();
146 return true;
147 }
148 else
149 {
150 return false;
16. Master project KUKA robot
16
151 }
152 //return true;
153 }
154
1.5.1.2 Cyclic program
The cyclic program is executed in an endless loop. First the buffer for the sending data
and the receiving data are initialized. Then .the binary reader reads the data from the
KUKA robot (line 168). The function parameters are the name of the buffer into which the
data of the robot are written, the start index for reading (0) and the number bytes which
are written to the buffer (200). In the next step the incoming data must be converted. The
conversion is done by the function “convert_value_from_kuka”. The detailed description of
this function can be seen in 1.5.1.3. The last step is to write the converted values to the
real variables of the C#-program. This is done in the lines 173 to 186.
155 private void communication()
156 {
157 byte[] recebuf;
158 byte[] sendbuf;
159
160 while (true)
161 {
162 if (kuka_connected == true)
163 {
164 recebuf = new byte[200];
165 sendbuf = new byte[200];
166
167 //Read data
168 r.Read(recebuf, 0, 200);
169
170 //Convert data
171 data_from_kuka = convert_values_from_kuka(recebuf);
172
173 lifebit = data_from_kuka.boolvalues[0];
174 robot_at_home = data_from_kuka.boolvalues[1];
175 // = data_from_kuka.boolvalues[2];
176 // = data_from_kuka.boolvalues[3];
177 actual_position.x = data_from_kuka.floatvalues[0];
178 actual_position.y = data_from_kuka.floatvalues[1];
179 actual_position.z = data_from_kuka.floatvalues[2];
180 actual_position.a = data_from_kuka.floatvalues[3];
181 actual_position.b = data_from_kuka.floatvalues[4];
182 actual_position.c = data_from_kuka.floatvalues[5];
183 // = data_from_kuka.intvalues[0];
184 // = data_from_kuka.intvalues[1];
185 // = data_from_kuka.intvalues[2];
186 // = data_from_kuka.intvalues[3];
187
188
If there are entries in the FIFO buffer, the next entry is read out and the coordinates of the
new point is written to the data structure for the data to the robot. If no entries are
available the variable move_to_home is set to 1, if the user enables this function.
189 //Create data for KUKA
190 if (buffer.Count() > 0)
191 {
192 try
193 {
194 move_to_position = true;
195 move_to_home = false;
196 kuka_pos_Type new_pos = buffer.First();
197 buffer.Dequeue();
198 data_to_kuka.floatvalues[0] = new_pos.x; //x
199 data_to_kuka.floatvalues[1] = new_pos.y; //y
17. Master project KUKA robot
17
200 data_to_kuka.floatvalues[2] = new_pos.z; //z
201 data_to_kuka.floatvalues[3] = new_pos.a; //a
202 data_to_kuka.floatvalues[4] = new_pos.b; //b
203 data_to_kuka.floatvalues[5] = new_pos.c; //c
204 data_to_kuka.intvalues[0] = new_pos.type;
//Position type 1: Normal, 2: Home-Position, 3: Discharge-Position
205 }
206 catch
207 {
208 //move_to_position = false;
209 }
210 }
211 else
212 {
213 move_to_position = false;
214 if ((robot_at_home == false) & (enable_robot_to_home == true))
215 {
216 move_to_home = true;
217 }
218 else
219 {
220 move_to_home = false;
221 }
222 }
223
In the next step all other necessary variables are written to the data structure. The 4th
boolean variable and the 2nd, 3rd and 4th integer variable are currently not used, but they
can be used in future.
224 data_to_kuka.boolvalues[0] = !lifebit;
//Lifebit
225 data_to_kuka.boolvalues[1] = move_to_position;
//Move to Position
226 data_to_kuka.boolvalues[2] = move_to_home;
//Move to Home if no Job available
227 data_to_kuka.boolvalues[3] = false;
//Spare
228
229
230
231 data_to_kuka.intvalues[1] = 10;
//Spare
232 data_to_kuka.intvalues[2] = 11;
//Spare
233 data_to_kuka.intvalues[3] = 12;
//Spare
234
Before sending the data to the robot the data must be converted again. This is done by
the function “convert_values_to_kuka”. The detailed description of this function can be
seen in 1.5.1.3. In the last step the binary writer writes the sending buffer to the KUKA
robot. After a waiting time of one second the cyclic program starts from the beginning.
235 ////Convert data
236 sendbuf = convert_values_to_kuka(data_to_kuka);
237
238 w.Write(sendbuf);
239 Thread.Sleep(1000);
240 }
241 }
242 }
243
1.5.1.3 Conversion functions
To add new coordinates to the FIFO-buffer the function “Enqueue” is used:
18. Master project KUKA robot
18
244
245 public void newDataSet(float x, float y, float z, float a, float b, float c,
int type)
246 {
247 buffer.Enqueue(new kuka_pos_Type(x, y, z, a, b, c, type));
248 }
249
For converting the data two functions are necessary, one for the data from the robot and
one for the data to the robot. The conversion of the file depends on the data type.
Therefore, the conversion of boolean values must, float values and integer values must
be performed separately.
Boolean values can be converted using the function “Convert.ToBoolean” (Line 260). The
conversion of float values and integer values is more complex, because these values
consist of four bytes. So in the first step the corresponding four byte must be stored in an
array. Then this array can be converted with the functions „BitConverter.ToSingle" or
"BitConverter.ToInt32" to the corresponding data types.
250 private values_from_kuka_type convert_values_from_kuka(byte[] recebuf)
251 {
252 byte[] bytenumber = new byte[4];
253 byte[] boolnumber = new byte[1];
254 values_from_kuka_type values = new values_from_kuka_type(new
bool[NUMBER_BOOL_VALUES_FROM_KUKA], new float[NUMBER_FLOAT_VALUES_FROM_KUKA], new
Int32[NUMBER_INT_VALUES_FROM_KUKA]);
255 int booloffset = 0, floatoffset = 0;
256
257 //Converting Bool-Values
258 for (int i = 0; i < NUMBER_BOOL_VALUES_FROM_KUKA; i++)
259 {
260 values.boolvalues[i] = Convert.ToBoolean(recebuf[i]);
261 booloffset = i + 1;
262 }
263
264 //Converting Float-Values
265 for (int i = 0; i < NUMBER_FLOAT_VALUES_FROM_KUKA; i++)
266 {
267 bytenumber[0] = recebuf[booloffset + i * 4];
268 bytenumber[1] = recebuf[booloffset + i * 4 + 1];
269 bytenumber[2] = recebuf[booloffset + i * 4 + 2];
270 bytenumber[3] = recebuf[booloffset + i * 4 + 3];
271 values.floatvalues[i] = BitConverter.ToSingle(bytenumber, 0);
272 floatoffset = (i + 1) * 4;
273 }
274
275 //Converting Int-Values
276 for (int i = 0; i < NUMBER_INT_VALUES_FROM_KUKA; i++)
277 {
278 bytenumber[0] = Convert.ToByte(recebuf[booloffset + floatoffset + i *
4]);
279 bytenumber[1] = Convert.ToByte(recebuf[booloffset + floatoffset + i * 4
+ 1]);
280 bytenumber[2] = Convert.ToByte(recebuf[booloffset + floatoffset + i * 4
+ 2]);
281 bytenumber[3] = Convert.ToByte(recebuf[booloffset + floatoffset + i * 4
+ 3]);
282 values.intvalues[i] = BitConverter.ToInt32(bytenumber, 0);
283 }
284
285 return values;
286 }
287
The conversion of the values which are sent to the robot is a little easier. The values can
be converted by using the function “BitConverter.GetBytes”. To convert float values or
integer values this function must be called 4 times (see lines 305 to 308)
288 private byte[] convert_values_to_kuka(values_to_kuka_type values)
289 {
19. Master project KUKA robot
19
290
291 byte[] sendbuf = new byte[200];
292 int booloffset = 0, floatoffset = 0;
293
294 //Convert Bool values:
295 for (int i = 0; i < NUMBER_BOOL_VALUES_TO_KUKA; i++)
296 {
297 sendbuf[i] = BitConverter.GetBytes(values.boolvalues[i])[0];
298
299 booloffset = i + 1;
300 }
301
302 //Convert Float values:
303 for (int i = 0; i < NUMBER_FLOAT_VALUES_TO_KUKA; i++)
304 {
305 sendbuf[booloffset + i * 4] =
BitConverter.GetBytes(values.floatvalues[i])[0];
306 sendbuf[booloffset + i * 4 + 1] =
BitConverter.GetBytes(values.floatvalues[i])[1];
307 sendbuf[booloffset + i * 4 + 2] =
BitConverter.GetBytes(values.floatvalues[i])[2];
308 sendbuf[booloffset + i * 4 + 3] =
BitConverter.GetBytes(values.floatvalues[i])[3];
309 floatoffset = (i + 1) * 4;
310 }
311
312 //Convert Int values:
313 for (int i = 0; i < NUMBER_INT_VALUES_TO_KUKA; i++)
314 {
315 sendbuf[booloffset + floatoffset + i * 4] =
BitConverter.GetBytes(values.intvalues[i])[0];
316 sendbuf[booloffset + floatoffset + i * 4 + 1] =
BitConverter.GetBytes(values.intvalues[i])[1];
317 sendbuf[booloffset + floatoffset + i * 4 + 2] =
BitConverter.GetBytes(values.intvalues[i])[2];
318 sendbuf[booloffset + floatoffset + i * 4 + 3] =
BitConverter.GetBytes(values.intvalues[i])[3];
319 }
320
321 return sendbuf;
322 }
323 }
324 }
1.5.2 Using of Robot-Class
The complete communication between robot controller and PC is included into a C#-
class. So the using of the communication is very simple to handle.
First step is to create a new object of this class:
KUKA_Robot robot = new KUKA_Robot();
Then the function “initCommunication” must be called to initialize the communication with
the robot controller. The argument of this function is the IP address of the PC. This
function return the value “TRUE” if the connection could be successfully set up. Otherwise
the value “FALSE” is returned.
robot.initCommunication(IPAddress.Parse("172.31.1.145"))
To start the cyclic communication with the robot controller the function
“startCommunication” must be called:
20. Master project KUKA robot
20
robot.startCommunication()
To enter net Points to the robot the function “newDataSet” must be called. Arguments of
this function are the coordinates of the new point and the type of the new point. The type
can be type can be 1 (new pick position), 2 (new home position) or 3 (new place position).
At the values 2 and 3 is no movement of the robot is performed. Only the new coordinates
are stored:
robot.newDataSet(x, y, z, a, b, c, type)
To move the robot to home position if the robot has no jobs the variable
enable_robot_to_home must be set to 1:
robot.enable_robot_to_home
1.5.3 Using User-Interface
The user interface allows the user to set up the connection to the robot controller and
enter new target coordinates of the robot. To start the connection the user has to press
the button “Init Robot”. If the connection has been successfully set up the button “Start
Robot” is enabled. With pressing this button the cyclic communication with the robot
controller will start. The robot starts with the movement after coordinates are entered. To
enter new coordinates the values of these coordinates has to be entered into the input
fields. Then the type of the new point must be set. This can be a normal pick-up point
(“Normal Position”), a new place-point (“Discharge Position”) or a new home position
(“Home Position”). A movement of the robot is only performed at pick-up points. To store
the new point the user has to press the button “Add Position”. Then the new positon is
inserted into the listbox. If the user selects the checkbox “Move robot to home” the robot
moves to its home positon, if the robot has no new jobs.
Figure 1: User-Interface
21. Master project KUKA robot
21
3 Control Cabinet for Lighting
3.1 Operational Sequence
The operational sequence is as follows:
1. The carton box is being carried on conveyor belt.
2. LED illumination sequence is triggered manually via IcoNet.
3. The image is snapped during each of the illumination sequence step by a camera.
4. These four captured images are then processed in IcoNet to extract the
coordinates.
5. KUKA robot uses these coordinates for Pick n Place operation.
Figure 2: Rittal Control Cabinet
22. Master project KUKA robot
22
3.2 Control Cabinet Details
1. Optimum corrosion protection due to triple treated housing surfaces.
2. Permanently high protection category due to seamlessly foamed-in PU seal.
3. Perfect protection from multi-folded enclosure protection channel preventing the
ingress of dirt and water when the door is opened.
4. Effortless wall-mounting thanks to rear panel with holes, prepared for wall
mounting bracket or direct wall mounting.
5. Maximum flexibility for cable entry with sheet steel gland plates for self-population
or option to exchange for prepuce plates.
6. Individual depth population with rails for interior installation.
7. Quick-swap door hinge with no need for machining in single-door enclosures.
8. Perforated mounting strips on the door enable quick and easy mounting of
accessories such as support strips or cable conduit holders.
Figure 3: Control Cabinet Description
23. Master project KUKA robot
23
3.2.1 Optimum surface protection
Maximum quality of surface protection is achieved in three stages:
1st phase: Nanoceramic primer
2nd phase: Electrophoretic dipcoat-priming
3rd phase: Textured powder-coating
Advantages are:
1. Plate with triple surface treatment (Rittal Standard) after a 180-hour salt spray mist
test
2. Metal powder-coated only following a 180-hour salt spray mist test
3.2.2 PU foam seal
1. Seamlessly foamed-in Temperature resistant from -20°C to +80°C.
2. May be over-painted and briefly stove-enamelled at up to 180°C.
Figure 4: Optimum surface protection
Figure 5: PU foam seal
24. Master project KUKA robot
24
3.2.3 Earthing
1. Easily accessible earthing bolt on the body.
2. Door earthing via perforated door strip.
3. Earth straps in various cross-sections and lengths available as accessories.
3.2.4 Lock
1. Large range of different lock systems.
Figure 6: Earthing
Figure 7: Lock
25. Master project KUKA robot
25
3.2.5 Dimensional Details
Dimensions: Width: 600 mm
Height: 800 mm
Depth: 250 mm
Material thickness: Enclosure: 1.5 mm
Door: 2 mm
Mounting plate: 3 mm
Mounting plate: Width: 549 mm
Height: 770 mm
Number of doors: 1
Door hinged on
the right, may be
swapped to the
left:
yes
Number of cam
locks:
2
Lock version: Cam
Number of locks: 2
Lock insert: 3 mm double-bit
Gland plate, size: 5
Gland plates, qty.: 1
Weight/pack: 33.6 kg
26. Master project KUKA robot
26
3.3 Interconnecting the Component
3.3.1 Mounting the Components
1. Power Incomer 2. Main Switch
3. Fuse : 16 Amp 4. Distribution : 220 V
5. Siemens SITOP POWER 5 6. Fuse : 6 Amp
7. Distribution : 24 V 8. Quancom
USBOPTO16IO
9. CONTACTOR,AC-3,
3KW/400V
10. Fuse : 6 Amp
11. External Connection to LED
light
12. Ground Distribution
Figure 8: Mounting the Components
27. Master project KUKA robot
27
3.3.2 Introduction to the components
3.3.2.1 Siemens SITOP POWER 5
Figure 9: Siemens SITOP POWER 5
Specification:
Input : Single-phase AC
Rated voltage Vin rated : 120/230 V AC (Settable using wire jumper)
Voltage range : 85 to 132 V/170 to 264 V AC
Rated line frequency; range : 50/60 Hz; 47 to 63 Hz
Rated current Iin rated : 2.1/1.3 A
Output
Rated voltage Vout rated : 24 V DC
Total tolerance : ± 3%
Residual ripple : < 150 mVpp (typ. 40 mVpp)
Rated current Iout rated : 5A
Uses:
• Used to convert AC power to DC power which further drives the USB OptoCoupler
Box & relays.
28. Master project KUKA robot
28
3.3.2.2 Fuse Case
Specifications:
Rated current : 16 Amp
Contacts : 1
Mounting : DIN rail
Size : D01
Rated voltage : 400 V
Uses:
Acts as a housing for fuses of various ratings.
Figure 10: Fuse Case
29. Master project KUKA robot
29
3.3.2.3 Double-through terminal 5.2mm
Specifications:
Number of poles per row: 2
content : 1 St.
Max. Cross section solid: 4 sq. mm
Input Current: max 24 mA
No. of positions: 4
Uses:
Acts as a point of contact for the connection to external world.
Figure 11: Schematic of Double-through terminal Figure 12: Double-through terminal in real
30. Master project KUKA robot
30
3.3.2.4 SIEMENS SIRUS Contactor
Specifications:
• maximum permissible voltage for safe isolation : 400 V
Insulation voltage: 690 V
• Operating voltage : 690 V
• Operating current : 0.6 A @ 220 V rated value
• Protection class IP : IP20
• Ambient temperature : -25 ... +60 °C during operation
Uses:
Used to switch the power supply to the LED lights for illumination
Figure 13: SIEMENS SIRUS
Contactor
31. Master project KUKA robot
31
3.3.2.5 QUANCOM OPTOCOUPLER DETAILS
Specifications :
• Dimensions: 254*105*57 mm
Power Supply: 5V USB or 12V-24V external.
• Input Quantity: 16 galvanically isolated Opto-coupler Inputs
Input Current: max. 20mA
Input Voltage: 12V-30V opt. 5V-12V
• Output Quantity: 16 galvanically isolated Opto-coupler Outputs
Switching Current: max 100mA
Switching Voltage: max 30V
Uses:
Used to trigger the outputs which further switches the LED lights for illumination
via IcoNet.
Figure 14: QUANCOM OPTOCOUPLER
32. Master project KUKA robot
32
3.3.3 Wiring Diagram
Figure 15: Connection of SIEMENS SITOP to the Main input Supply & further Distribution of 24 V supply
33. Master project KUKA robot
33
Figure 16: Connection of Opto-Coupler box to power supply & Siemens Relays
34. Master project KUKA robot
34
Figure 17: Connection to the external LED Illuminating lamps through Siemens Relays
35. Master project KUKA robot
35
4 Safety
To be able to operate the robot in automatic mode, the workspace of the robot must be
separated. This is done by a safety fence. Additionally an emergency stop button and a
safety switch for the door in the safety fence are necessary. For the connection of these
elements to the robot controller control cabinet is required.
4.1 Safety fence
To separate the workspace of the robot a fence is constructed. The fence has a height of
2,0m. To get into the security area a door is included in the fence.
Figure 18: Safety fence
For ordering the protective fence offers from three manufacturers were collected:
RK Rose+Krieger GmbH: 1.620,00 €
Hans Georg Brühl GmbH: 1.235,50 €
KTH-Aluminiumtechnik: 911,66 €
All prices are without sales tax.
The fence has been ordered from the company “KTH-Aluminiumtechnik”
4.2 Cabinet for safety switches
The robot controller has already a safety interface board (SIB) integrated. This SIB
contains 5 safe inputs and 3 safe outputs. The inputs and outputs can be used via the
interface X11 of the controller. The technical data of the SIB can be seen in Table 4. [3]
36. Master project KUKA robot
36
SIB outputs
Operating voltage, power contacts ≤ 30 V
Current via power contact min. 10 mA
< 750 mA
Cable lengths (connection of actuators) < 50 m cable lengths
< 100 m wire length (outgoing and
incoming lines)
Cable cross-section (connection of
actuators)
≥ 1 mm2
Switching cycles, Standard SIB Service life: 20 years
< 100,000 (corresponds to 13 switching
cycles per day)
Switching cycles, Extended SIB Service life: 20 years
< 780,000 (corresponds to 106 switching
cycles per day)
SIB inputs
Switching level of the inputs The inputs supply either the ON or OFF
state for the voltage range from 5 V to 11 V
(transition range). OFF state for the voltage
range from -3 V to 5 V (OFF range). ON
state for the voltage range from 11 V to 30
V (ON range).
Load current with 24 V supply voltage > 10 mA
Load current with 18 V supply voltage > 6.5 mA
Max. load current < 15 mA
Cable length, terminal - sensor < 50 m, or < 100 m wire length (out-going
and incoming lines)
Cable cross-section, test output - input
connection
> 0.5 mm2
Capacitive load for the test outputs per
channel
< 200 nF
Resistive load for the test outputs per
channel
< 33 Ω
Table 4: Technical data of Safety Interface Board [3]
The pin allocation and the description of the signals can be seen in Figure 19 and Table 5
38. Master project KUKA robot
38
Signal Pin Description Comments
Test output A (test
signal)
1
3
5
7
9
Makes the pulsed
voltage available for
the individual
interface inputs of
channel A.
Test output B (test
signal)
19
21
23
25
27
Makes the pulsed
voltage available for
the individual
interface inputs of
channel b.
Safe operational
stop, channel A
8 Safe operational
stop input for all
axes
Activation of
standstill monitoring
Stop 0 is initiated if
the activated
monitoring is
violated.
Safe operational
stop, channel B
26
Safety stop (Stop 2),
channel A
10 Safety stop (Stop 2)
input for all axes
Triggering of Stop 2
and activation of
standstill monitoring
at standstill of all
axes. Stop 0 is
initiated if the
activated monitoring
is violated.
Safety stop (Stop 2),
channel B
28
Local E-STOP,
channel A
37/38 Output, floating
contacts from
internal E-STOP
The contacts are
closed if the
following conditions
are met:
- EMERGENCY
STOP on smartPAD
not actuated
- Controller switched
on and
operational
The contacts open if
any condition is not
met.
Local E-STOP,
channel B
55/56
External E-STOP,
channel A
2 Dual-channel
EMERGENCY
STOP input
Triggering of the E-
STOP function in
the robot controller.External E-STOP,
channel B
20
Acknowledge
operator safety,
channel A
6 For connection of a
dual-channel input
for acknowledging
operator safety with
floating contacts
After closing the
safety gate
(operator safety),
manipulator motion
can be enabled in
the automatic
modes using an
acknowledge button
outside the safety
fence. This function
is deactivated on
delivery.
Acknowledge
operator safety,
channel B
24
39. Master project KUKA robot
39
Operator safety,
channel A
4 For 2-channel
connection of a
safety gate locking
mechanism
As long as the
signal is active, the
drives can be
switched on. Only
effective in the
AUTO-MATIC
modes.
Operator safety,
channel B
22
Enabling switch
center position,
channel A
41
42
Output, floating
contact for enabling
switch in center
position, connection
1
Output, floating
contact for enabling
switch in center
position, connection
2
Contacts are closed
if the enabling
switch on the smart-
PAD is in the center
position and the
drives are thus
activated in the test
modes.
Enabling switch
center position,
channel B
59 Output, floating
contact for enabling
switch in center
position, connection
1
60 Output, floating
contact for enabling
switch in center
position, connection
2
Acknowledge
operator safety,
channel A
39 Output, floating
contact for operator
safety
acknowledgement,
connection 1
Relaying of the
acknowledge
operator safety input
signal to other robot
controllers at the
same safety fencing40 Output, floating
contact for operator
safety
acknowledgement,
connection 2
Acknowledge
operator safety,
channel B
57 Output, floating
contact for operator
safety
acknowledgement,
connection 1
58 Output, floating
contact for operator
safety
acknowledgement,
connection 2
Table 5: Signal description SIB [3]
40. Master project KUKA robot
40
Figure 20: Load voltage [3]
To a 24V load voltage to the X11 interface the connector X301 and X6 from the CCU can
be used. In our case only the load voltage US1 is used.
Signal Pin Description Comments
Load voltage US1 91 27 V internal / 5 A
non-switched
The voltage is
switched on as long
as the controller is
supplied with
voltage.
92 0 V internal
Load voltage US2 93 27 V internal / 7 A
switched
The voltage is
switched on as long
as the drives are
active and the
brakes are released.
94 0 V internal
Table 6: Signal description load voltage [3]
To connect all switches to the X11-interface a switch cabinet is necessary because the
X11-interface can handle only one cable. So all switches are connected to the cabinet
and one big cable connects the cabinet and the X11-interface. For connecting the
switches to the cabinet the following cables are used:
Name Number of wires Length Comments
5W1 20 x 1 mm² 4m Connection Cabinet
X11-interface
5W2 5 x 1 mm² 5 m Connection
Emergency stop
5W3 7 x 1 mm² 5 m Connection door
switch
5W4 3 x 1 mm² 5 m Connection push
button
Table 7: Used wires
The wiring diagram can be seen in Figure 21, the complete switch cabinet in Figure 22
42. Master project KUKA robot
42
Figure 22: Cabinet for safety
4.3 Emergency-Stop
For emergency stop an emergency stop button from EATON is used. This button has two
normally closed contacts. Both are connected to the cabinet.
43. Master project KUKA robot
43
Figure 23: Emergency Stop
4.4 Door switch
For locking the door on a safety fence the safety switch PILZ 570000 is used. This door
switch has two normally closed und two normally opened contacts. To unlock the switch,
a solenoid is available.
Electrical Data
Version PSEN me1
Rated isolation voltage Ui 250 V
Rated impulse withstand voltage
Uimp 2,5 kV
Conventional thermal current Ithe 5 A
Max. making current (4 contacts) / 10 A
Utilization category АС-15, Ue /Ie 230 V / 2,5 А
Direct opening action acc. to IEC/EN 60947-5-1, Annex K
Rated conditional short-circuit current / 1000 A
Short circuit protection 4 A gl
Protection class II
Solenoid
Actuating cycles permanent 600 / h
ON period 100% ED (to E1, E2)
Operating voltage 24V AC/DC
Temperature class F (155°C)
44. Master project KUKA robot
44
Inrush power consumption 12 VA (0,2 s)
Permanent power consumption 4,4 VA
Mechanical Data
Enclosure Thermoplastic GV (UL94-V0)
Cover Thermoplastic GV (UL94-V0)
Actuator head Thermoplastic GV (UL94-V0) / Zn-GD
Separate actuator St/PA / Zn-GD
Ambient air temperature -25 °C bis +70 °C
Locking force FZh max. 1500 N acc. to GS-ET-19
Drawing force min. 27 N
Approach speed max. V = 0,5 m/s
Operating principle 4 slow-action contacts max.
Mechanical life max. 1 x 106 switching cycles at max.
600 cycles/h
Assembly 4 х М5
Tightening torque (max.) M= 2 Nm
Connection
Conductor cross-sections
Spring-clamp connection
0,5 – 1,5 mm2 flexible
Cable entrance 3 х M20x1,5
Weight ≈ 0,34 kg (without actuator)
Installation position operator definable
Protection type IP67 acc. to IEC/EN 60529
Table 8: Technical data [4]
Figure 24: Safety switch
45. Master project KUKA robot
45
To unlock the door a push button from EATON is used. This button has one normally
opened and one normally closed contact. In our application, only the normally opened
contact is connected.
Figure 25: Button for unlocking the door
46. Master project KUKA robot
46
List of Figures
Figure 1: User-Interface................................................................................................................20
Figure 2: Rittal Control Cabinet..................................................................................................21
Figure 3: Control Cabinet Description........................................................................................22
Figure 4: Optimum surface protection........................................................................................23
Figure 5: PU foam seal.................................................................................................................23
Figure 6: Earthing..........................................................................................................................24
Figure 7: Lock ................................................................................................................................24
Figure 8: Mounting the Components..........................................................................................26
Figure 9: Siemens SITOP POWER 5.........................................................................................27
Figure 10: Fuse Case ...................................................................................................................28
Figure 11: Schematic of Double-through terminal....................................................................29
Figure 12: Double-through terminal in real................................................................................29
Figure 13: SIEMENS SIRUS Contactor.....................................................................................30
Figure 14: QUANCOM OPTOCOUPLER ..................................................................................31
Figure 15: Connection of SIEMENS SITOP to the Main input Supply & further Distribution
of 24 V supply ................................................................................................................................32
Figure 16: Connection of Opto-Coupler box to power supply & Siemens Relays...............33
Figure 17: Connection to the external LED Illuminating lamps through Siemens Relays..34
Figure 18: Safety fence ................................................................................................................35
Figure 19: Interface X11, connector pin allocation...................................................................37
Figure 20: Load voltage................................................................................................................40
Figure 21: Wiring diagram safety cabinet ..................................................................................41
Figure 22: Cabinet for safety .......................................................................................................42
Figure 23: Emergency Stop .........................................................................................................43
Figure 24: Safety switch ...............................................................................................................44
Figure 25: Button for unlocking the door....................................................................................45
47. Master project KUKA robot
47
List of Tables
Table 1: Signals from robot to PC.................................................................................................6
Table 2: Signals from PC to robot.................................................................................................6
Table 3: Permissible data type in CAST statements [2]..........................................................10
Table 4: Technical data of Safety Interface Board...................................................................36
Table 5: Signal description SIB ...................................................................................................39
Table 6: Signal description load voltage....................................................................................40
Table 7: Used wires ......................................................................................................................40
Table 9: Technical data [1]...........................................................................................................44
48. Master project KUKA robot
48
Bibliography
[1] K. S. Technology, “KUKA.Ethernet KRL 2.1,” 2011.
[2] K. R. Group, “CREAD/CWRITE: Programming CREAD/CWRITE and related statements,” 2007.
[3] K. R. GmbH, “KR C4 With Interface X11 Operating Instructions,” 2011.
[4] PILZ, “Installation and Operating Instructions,” [Online]. Available:
https://www.pilz.com/download/open/0800000624.pdf. [Accessed 30 December 2015].
[5] Siemens Power Supply . Details available on :
http://www.siemens.fi/pool/lithuania/pramone/documents/pdf/maitinimo-saltiniai-
sitop_kt10-1.pdf
[6] Quancom USB optpcoupler box :
http://www.quancom.de/quancom/quancom01.nsf/home_prod_deu.htm?OpenFrameSet&Fram
e=unten&Src=http://www.quancom.de/qprod01/deu/pb/usbopto16io.htm
[7] Siemens Contactor details available on :
https://mall.industry.siemens.com/tedservices/DatasheetService/DatasheetService?control=%3C
%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-
8%22%3F%3E%3Cpdf_generator_control%3E%3Cmode%3EPDF%3C%2Fmode%3E%3Cpdmsystem
%3EPMD%3C%2Fpdmsystem%3E%3Ctemplate_selection+mlfb%3D%223RT2015-
1BB42%22+system%3D%22PRODIS%22%2F%3E%3Clanguage%3Een%3C%2Flanguage%3E%3Ccall
er%3EMall%3C%2Fcaller%3E%3C%2Fpdf_generator_control%3E