EPOS P Programming Reference
EPOS P Programming Reference
/
Programmable Positioning Controller
Programming Reference
maxon motor ag Brnigstrasse 220 P.O.Box 263 CH-6072 Sachseln Phone +41 (41) 666 15 00 Fax +41 (41) 666 15 50 www.maxonmotor.com
We have tried to provide you with all information necessary to install and commission the equipment in a secure, safe and time-saving manner. Our main focus is to familiarize you with all relevant technical aspects, to let you know the easiest way of doing, to alert you of any possibly dangerous situation you might encounter or that you might cause if you do not follow the description, to write as little and to say as much as possible and not to bore you with things you already know.
Likewise, we tried to skip repetitive information! Thus, you will find things mentioned just once. If, for example, an earlier mentioned action fits other occasions you then will be directed to that text passage with a respective reference. Follow any stated reference observe respective information then go back and continue with the task!
A-2
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
TABLE OF CONTENTS
1 2 About this Document Introduction
2.1 2.2 2.3 2.4
5 9
Important Notice: Prerequisites for Permission to commence Installation - - - 9 General Information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 9 Documentation Structure - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 9 Safety Precautions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 10
Programming
3.1
11
Programming Tool OpenPCS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11
3.1.1 Startup - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11 3.1.2 Licence Key Configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12
Connection Setup - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sample Project HelloWorld - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Creating New Project - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Program Code- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
13 15 16 17
3.5.1 Writing Program Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 17 3.5.2 Compiling and executing Program Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 18 3.5.3 Debugging Program Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 19
Project Settings
4.1 4.2 4.3
21
Resource Properties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21
4.1.1 Edit Resource Properties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21
Task Properties - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22
4.2.1 Edit Task Properties- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22
Network Configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 25
4.3.1 Overview- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 25 4.3.2 Master Configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 26 4.3.3 Slave Configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 30 4.3.4 Minimal Network Configuration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 37
Function Blocks
5.1
41
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
A-3
5.2
5.3
Markers
6.1 6.2 6.3 6.4 6.5 User Marker Area - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Marker Global Status Register - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Marker Global Axis Error Register - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Reserved Marker Area - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CANopen Slave Error Register Area - - - - - - - - - - - - - - - - - - - - - - - - - - - -
83
83 84 84 85 86
Process I/Os
7.1 7.2
87
Process Inputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 87 Process Outputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 88
Error Handling
8.1 8.2
89
Programming Environment Error Codes- - - - - - - - - - - - - - - - - - - - - - - - - - 89 Motion Control Function Blocks Error Codes - - - - - - - - - - - - - - - - - - - - - - 90
Example Projects
9.1 9.2 9.3 9.4 HelloWorld - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SimpleMotionSequence - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Best Practice Program Examples - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Application Program Examples - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
91
91 92 93 94
A-4
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
1
1.1
Use for other and/or additional purposes is not permitted. maxon motor, the manufacturer of the equipment described, does not assume any liability for loss or damage that may arise from any other and/or additional use than the intended purpose.
1.2
Target Audience
This document is meant for trained and skilled personnel working with the equipment described. It conveys information on how to understand and fulfill the respective work and duties. This document is a reference book. It does require particular knowledge and expertise specific to the equipment described.
1.3
How to use
Take note of the following notations and codes which will be used throughout the document. Notation Abcd Abcd (n) Table 1-1 Explanation indicating a title or a name (such as of document, product, mode, etc.) indicating an action to be performed using a software control element (such as folder, menu, drop-down menu, button, check box, etc.) or a hardware element (such as switch, DIP switch, etc.) referring to an item (such as order number, list item, etc.) denotes see, see also, take note of or go to Notations used in this Document
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
1-5
1.4
Take note of when and why the alerts will be used and what the consequences are if you should fail to observe them! Safety alerts are composed of a signal word, a description of type and/or source of the danger, the consequence if the alert is being ignored, and explanations on how to avoid the hazard.
Following types will be used: 1) DANGER Indicates an imminently hazardous situation. If not avoided, the situation will result in death or serious injury. 2) WARNING Indicates a potentially hazardous situation. If not avoided, the situation can result in death or serious injury. 3) CAUTION Indicates a probable hazardous situation and is also used to alert against unsafe practices. If not avoided, the situation may result in minor or moderate injury. Example: DANGER High Voltage and/or Electrical Shock Touching live wires causes death or serious injuries! Make sure that neither end of cable is connected to life power! Make sure that power source cannot be engaged while work is in process! Obey lock-out/tag-out procedures! Make sure to securely lock any power engaging equipment against unintentional engagement and tag with your name!
1.4.2
The signs define prohibitive actions. So, you must not! Examples: Do not touch! Do not operate!
The signs point out actions to avoid a hazard. So, you must! Examples: Unplug! Tag before work!
1-6
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
1.4.3
Informatory Signs
Requirement / Note / Remark Indicates an action you must perform prior continuing or refers to information on a particular item.
Best Practice Gives advice on the easiest and best way to proceed.
1.5
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
1-7
1.6
[6]
[7]
Table 1-3
1.7
Copyright
2010 maxon motor. All rights reserved. The present document including all parts thereof is protected by copyright. Any use (including reproduction, translation, microfilming and other means of electronic data processing) beyond the narrow restrictions of the copyright law without the prior approval of maxon motor ag, is not permitted and subject to persecution under the applicable law. maxon motor ag Brnigstrasse 220 P.O.Box 263 CH-6072 Sachseln Switzerland Phone +41 (41) 666 15 00 Fax +41 (41) 666 15 50 www.maxonmotor.com
1-8
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
2
2.1
Introduction
Important Notice: Prerequisites for Permission to commence Installation
EPOS P and MCD EPOS P are considered as partly completed machinery according to EUs directive 2006/42/EC, Article 2, Clause (g) and therefore is only intended to be incorporated into or assembled with other machinery or other partly completed machinery or equipment. WARNING Risk of Injury Operating the device without the full compliance of the surrounding system with the EU directive 2006/42/EC may cause serious injuries! Do not operate the device, unless you have made sure that the other machinery fulfills the requirements stated in EUs directive! Do not operate the device, unless the surrounding system fulfills all relevant health and safety aspects! Do not operate the device, unless all respective interfaces have been established and fulfill the stated requirements!
2.2
General Information
The present document provides you with information on programming the EPOS P and MCD EPOS P Programmable Positioning Controller. It describes the standard procedure to write and debug an IEC 61131 program based on an example and describes motion control function blocks. Find the latest edition of the present document, as well as additional documentation and software to the EPOS P and MCD EPOS P Programmable Positioning Controller also on the internet: www.maxonmotor.com category Service & Downloads shop.maxonmotor.com
2.3
Documentation Structure
The present document is part of a documentation set. Please find below an overview on the documentation hierarchy and the interrelationship of its individual parts:
Figure 2-1
Documentation Structure
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
2-9
2.4
Safety Precautions
Prior continuing make sure you have read and understood the section PLEASE READ THIS FIRST on page A2, do not engage with any work unless you possess the stated skills (chapter 1.2 Target Audience on page 1-5, refer to section Symbols and Signs on page 1-6 to understand the subsequently used indicators, you must observe any regulation applicable in the country and/or at the site of implementation with regard to health and safety/accident prevention and/or environmental protection, take note of the subsequently used indicators and follow them at all times.
DANGER High Voltage and/or Electrical Shock Touching live wires causes death or serious injuries! Consider any power cable as connected to life power, unless having proven the opposite! Make sure that neither end of cable is connected to life power! Make sure that power source cannot be engaged while work is in process! Obey lock-out/tag-out procedures! Make sure to securely lock any power engaging equipment against unintentional engagement and tag with your name!
Requirements Make sure that all associated devices and components are installed according to local regulations. Be aware that, by principle, an electronic apparatus can not be considered fail-safe. Therefore, you must make sure that any machine/apparatus has been fitted with independent monitoring and safety equipment. If the machine/apparatus should break down, if it is operated incorrectly, if the control unit breaks down or if the cables break or get disconnected, etc., the complete drive system must return and be kept in a safe operating mode. Be aware that you are not entitled to perform any repair on components supplied by maxon motor. Best Practice For initial operation, make sure that the motor is free running. If not the case, mechanically disconnect the motor from the load. Maximal permitted Supply Voltage Make sure that supply power is between 1124 VDC. Supply voltages above 27 VDC will destroy the unit. Wrong polarity will destroy the unit. Electrostatic Sensitive Device (ESD) Make sure to wear working cloth in compliance with ESD countermeasures. Handle device with extra care.
2-10
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
3
3.1
Programming
Programming Tool OpenPCS
3.1.1 Startup
1) Open EPOS Studio. 2) Load a project (*.pjm), containing a programmable controller (can be an EPOS P or MCD?EPOS?P) permitting you to open the programming tool. 3) Click page Tools in page navigator.
Figure 3-2
Page Navigator
4) Select desired device in device selection combo box. 5) Doubleclick IEC 61131 Programming. A list of sample projects will be displayed. Use this view as a control center to open projects and control program status (for details Table 3-4).
Figure 3-3
Area
Button / Command
Open Programming Tool
Effect
Launches external tool OpenPCS Opens an existing project Searches for/opens an existing IEC 61131 project (*.var) Starts the program from scratch by initializing variables to their default values Restarts the program and restores the values Restarts the program at the position it was stopped and restores values Interrupts the program Defines properties after download or reset of program
Project
Program Control
Bootup Behavior
Bootup Behavior
Table 3-4
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
3-11
3.1.2
In order to use the programming tool OpenPCS, a valid licence key must be configured. 1) Open menu Extras, then submenu Tools. 2) Click Info to check if valid license is available. If no license is registered, enter valid serial number and license key (ReadMe.txt in EPOS Studio directory).
Figure 3-4
If you find the license key out of date, download latest version of EPOS Studio from the internet (for URLs chapter 2 Introduction on page 2-9.
3-12
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
3.2
Connection Setup
1) Open menu PLC, then click menu item Connections.
Figure 3-5
Connection Setup
2) Look for entry ProxyEpos: a) If available, click Edit and continue with step 5. b) If not available, click New and continue with next step. 3) Enter ProxyEpos as name and add comments later on, this driver will enable parallel communication of EPOS Studio and programming tool OpenPCS. Then click OK.
Figure 3-6
Edit Connection
Figure 3-7
Select Driver
5) Click Settings and select baud rate of your RS232 interface. Then click OK. Please note: Default baud rate is 115200 Bd.
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
3-13
Figure 3-8
Connection Settings
6) The connection entry has been added to the list and is available for selection.
Figure 3-9
3-14
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
3.3
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
3-15
3.4
Figure 3-10
5) To view/edit resource specification, click menu PLC, then menu item Resource Properties.
Figure 3-11
3-16
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
3.5
Program Code
3.5.1 Writing Program Code a) Click menu File, then menu item New to open dialog. b) Select Create a new file.
Figure 3-12
2) Select file type Program from directory POU (Program Organization Unit): a) Choose preferred programming language for your program in following example Structured Text. b) Enter name Counter and click OK. 3) You will be asked whether or not you wish to add program item Counter to the active resource. Click Yes.
Figure 3-13
4) Configure configuration of program Counter: a) Open tab Resources, select task item Counter and open properties via context menu (right click). b) Select task type Timer and set time to 10 ms.
Figure 3-14
Task Specifications
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
3-17
5) Now, you are ready to start programming: a) Open program item Counter.ST.
Figure 3-15
Project HelloWorld
Figure 3-16
Variable Declaration
Figure 3-17
Program Code
6) Verify correct implementation: Click menu File, then select menu item Check Syntax.
3.5.2
1) After code implementation, the program must be compiled: Click menu PLC, then select menu item Build Active Resource. The following logging output will be displayed.
Figure 3-18
Output Window
3-18
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
2) In order to download the program code, an online connection must be established: a) Click menu PLC, then select menu item Online. b) If new code is detected, you will be asked whether or not you wish to download the current resource. Click Yes to update the program in EPOS P.
Figure 3-19
3) Click menu PLC, then select menu item Cold Start to start downloaded code.
Figure 3-20
Cold Start
3.5.3
Debugging Program Code a) Open tab Resources in the project window. b) Open tree view of task COUNTER and select variable COUNT. c) Select command Add To Watchlist from context menu. The variable COUNT will now be added to window Test And Commissioning.
Figure 3-21
2) Repeat above procedure for variables UPCOUNTING and COUNTMAX. 3) For a step-by-step program debugging add a breakpoint to the program code: a) Position mouse cursor to the line you wish to add the breakpoint. b) Click menu PLC, then submenu Breakpoint and select menu item Toggle. The program will then stop at the breakpoint.
Figure 3-22
Adding a Breakpoint
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
3-19
5) Continue program execution: a) Click menu PLC, then submenu Breakpoint. b) Select menu item Go.
Figure 3-23
3-20
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Project Settings
The following chapter will explain functions of some project-specific settings that need to be performed during the programming process.
4.1
Resource Properties
In general, a resource is equivalent to a PLC or a micro controller. A resource definition consists of name (for identification), hardware description (i.e. information on properties of your PLC used by OpenPCS), and a connection name (i.e. information on type of communication between OpenPCS and the control system).
A resource maintains a list of tasks which will be run on the control system.
Figure 4-24
Resource Pane
4.1.1
Right click to open context menu and select Properties. A dialog box will be displayed permitting you to change the following properties:
Figure 4-25
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4-21
Control Element
Description Select the configuration file corresponding to the controller you are using. When using maxon hardware, the modules maxon motor EPOS P 24/5 and maxon motor MCD EPOS P 60 W will be available. If you wish to use Windows SmartSIM simulation, use SmartSIM. Select the communication connection to your resource. To communicate with maxon EPOS P 24/5 or MCD EPOS P 60 W, choose ProxyEpos. To work with the PLC simulation of OpenPCS select Simulation. Enable Upload: not supported Download Symbol Table: no effect OpenPCS supports optimization settings speed, size and normal. size only: compiler option to optimize the generated code in respect to its size speed only: compiler option to optimize the generated code in respect to speed normal: mix between size only and speed only
Hardware Module
Network Connection
Options
Optimization
Table 4-5
Remark Bear in mind that full debugging is only possible with optimization option size only!
4.2
Task Properties
In general, a task is equivalent to a program. The definition of a task consists of 4.2.1 name, information on the execution of the task, and POU of type PROGRAM that will be executed in this task. Edit Task Properties
Right click to open context menu and select Properties. A dialog box will be displayed permitting you to change the following properties. 4.2.1.1 Task Type
Figure 4-26
Control Element
Description Will be executed when no timer or interrupt tasks are ready to run. The priority (may be specified in task properties) will be interpreted as a cycle interleave (e.g. priority = 3 will have this task executed only every third cycle). No particular execution order is defined by OpenPCS amongst multiple cyclic tasks. Will be executed every n milliseconds (n may be specified in task properties). Will be executed as soon as the interrupt occurs to which they are linked to.
Cyclic
Timer Interrupt
Table 4-6
4-22
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4.2.1.2
Optimization
Figure 4-27
Description Uses the optimization attributes of the resource. Compiler option to optimize the generated code in respect to its size. Compiler option to optimize the generated code in respect to speed. Mix between size only and speed only.
Table 4-7
Remark Bear in mind that full debugging is only possible with optimization option size only!
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4-23
4.2.1.3
Interrupt
This task type is only executed at particular interrupt events. The type of the event is selected with the option Interrupt.
Figure 4-28
Description Task with type interrupt is executed once upon startup. Task with type interrupt is executed once upon program stop. Task with type interrupt is executed once upon program error. Task with type interrupt is synchronized with CANopen SYNC. Task with type interrupt is synchronized with CANopen EMCY.
Table 4-8
Remark Function Blocks STARTUP, STOP and ERROR need typically more than one cycle to finish! Function Block CANSYNC: The interrupt source for this task is the CANopen SYNC Cycle, the task will never be called when the SYNC Master is not activated Function Block CANERR: The interrupt source for this task is the CANopen EMCY, this task is called once when a connected CANopen Slave reports a Error with CANopen EMCY.
4-24
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4.3
Network Configuration
Used to setup a multi axes network. Use this tool to configure the devices (master and slaves) that will be used in a multi axis IEC 61131 program. 4.3.1 Overview
Figure 4-29
Description Displays all available networks. Displays all available devices in the network selected. Selection of configuration views. Configuration view to change settings.
Table 4-9
Status
Icon OK
Description No error or warning in this network. No warnings in this network. Check devices. No errors in this network. Check devices. No error or warning in this device configuration. No warnings in this device configuration. Check configuration views. No errors in this device configuration. Check configuration views.
Network Status
Warning Error OK
Device Status
Warning Error
Table 4-10
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4-25
4.3.2
Master Configuration
For the master configuration, select the master item in the device selection. The master must be configured or all networks. 4.3.2.1 Configuration View Master
The configuration view Master allows definition of behavior of the master device.
Figure 4-30
Option NMT Master Start NMT Master Start NMT Slaves Boot Time NMT Slaves together
Description EPOS P is in master mode and is able to communicate with slaves. After bootup, the master is switching into NMT state operational. After bootup, the master is switching the slaves into NMT state operational. Time to wait before addressing slaves after reset. All slaves are starting at the same time using a broadcast service.
Table 4-11
4.3.2.2
Allows definition of behavior of the SYNC Master in the network. The SYNC Master must be active if any synchronous PDO is being configured.
Figure 4-31
4-26
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Option Sync Producer SYNC COB-ID Max Base Bus Load Cycle Time Window Length Max Counter Value
Description Checked Enable or Disable the SYNC Master. COB-ID of the SYNC CAN Frame. Recommended Maximum Base Bus Load. Cycle Time of the SYNC CAN Frame. Window for sending and receiving synchronous PDOs. Enable or disable sending a SYNC CAN Frame including data byte containing a counter value.
Table 4-12
Description Calculated bus load containing CAN frames that are cyclically transmitted. Following CAN frames are included in calculation: SYNC, PDO sync, Heartbeat. Calculated bus load containing all CAN frames that are transmitted. Following CAN frames are included: SYNC, PDO sync, Heartbeat, PDO async. Note: Asynchronous PDOs are a potential risk for bus overload. Use Inhibit Time to limit the transmission rate.
Table 4-13
Best Practice: How to reduce Bus Load If bus load exceeds the maximum bus load, the transmission of CAN frames must be limited. Use one of the following actions to reduce the bus load.
Action
Object
Description / Effect The CAN Bitrate can be increased up to 1Mbit/s. Consider the maximum allowed bitrate for your network length: Bitrate / Max. line length according to CiA DS-102: 1 Mbit/s / 25 m 800 kBit/s 50 m 500 kBit/s / 100 m 250 kBit/s / 250 m 125 kBit/s / 500 m 50 kBit/s / 1000 m 20 kBit/s / 2500 m The cycle time of the SYNC producer may be increased to reduce the bus load. Increasing the cycle time is reducing the update rate of network variables in your IEC 61131 program. Increase the producer time of the heartbeat CAN frames. Increasing the producer time is reducing the reaction time to a broken CAN bus. Increase the inhibit time of the asynchronous PDOs. Increasing the inhibit time is reducing the update rate of network variables in your IEC 61131 program.
all
Heartbeat
PDO async
Table 4-14
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4-27
Figure 4-32
Network Info
Parameter Cycle Time Min Cycle Time Window Length Min Window Length CAN Bitrate Base Bus Load Max Base Bus Load
Description Configured Cycle Time. Min Cycle Time calculated based on the maximum base bus load. Configured Window Length. Minimum Window Length calculated based on the maximum base bus load. Configured CAN Bitrate. Calculated bus load containing CAN frames, that are cyclically transmitted. Have a look at the detailed load table to see what types of CAN frames are included in calculation. Recommended Maximum Base Bus Load. Calculated bus load containing all CAN frames, that are transmitted. Have a look at the detailed load table to see what type of CAN frame is included in calculation. Remark: The asynchronous PDOs are a potential risk for a bus overload. Use the Inhibit Time to limit the transmission rate
Table 4-15
Description Base: Bus load of this object is added to the base and peak bus load. Peak: Bus load of this object is added only to the peak bus load. Type of CAN frame transmitted. Number of CAN frames transmitted. Time to transmit one CAN frame per cycle time. Remark: For the asynchronous PDOs a mean value is calculated based on the inhibit time of the asynchronous PDO. Total time to transmit all CAN frames. Bus load caused by all objects of this type.
Table 4-16
4-28
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Figure 4-33
Cycle Time
4.3.2.3
Allows definition of the error control behavior of the master. Activate the heartbeat producer to monitor a breakdown of the master by the slave devices. Activate the heartbeat consumer to monitor a breakdown of a slave device.
Figure 4-34
Description Enable or disable the heartbeat producer. Transmission rate of the heartbeat CAN frame. Tolerance time for the slave heartbeat consumer. The consumer time must always be higher than the producer time. A high bus load can delay the transmission of a heartbeat CAN frame. Device: In case of a breakdown of the master (heartbeat producer), this device is going to error state. Producer: Heartbeat producer time Consumer: Heartbeat consumer time
Consumed by
Disabled
Table 4-17
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4-29
Description Enable or disable the heartbeat consumer. Expected transmission rate of the heartbeat CAN frame. Tolerance time for the master heartbeat consumer. The consumer time must always be higher than the producer time. A high bus load can delay the transmission of a heartbeat CAN frame. Device: In case of a breakdown of the master (heartbeat consumer), this device is going to error state. Producer: Heartbeat producer time Consumer: Heartbeat consumer time
Tolerance
500 ms
Produced by
Disabled
Table 4-18
4.3.3
Slave Configuration
For slave configuration, select the network and one of the slave items in the device selection.
4.3.3.1
Figure 4-35
Description The slave is available in CAN network as a NMT slave. The slave will be booted at the program start. Error is reported if slave cant be booted. Axis Number is used by all motion control function blocks. The default value is defined by the Node ID. Note: If no axis number is defined, the motion control function blocks cant be used. Axis Type is used by all motion control function blocks. Note: If the axis type is not defined as Standard, the motion control function blocks cant be used.
Axis Number
Axis X
Axis Type
Standard
Table 4-19
4-30
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4.3.3.2
Figure 4-36
Network Variables: EPOS P [Node 1] EPOS [Internal] Displays all configured network variables sent from the master to the slave.
Column Network Variable Producer Object TxPDO Bus RxPDO Consumer Object Description Name of network variable to be used in IEC 61131 program. The network variables can be exported to a network variable file (*.poe). Object in object dictionary of the master. This object is mapped to the transmit PDO. Configured transmit PDO to send data to the slave. Direction of the data exchange. Configured receive PDO to receive data from the master. Object in object dictionary of the slave. This object is mapped to the receive PDO.
Table 4-20
Network Variables: EPOS P [Node 1] EPOS [Internal] Displays all configured network variables sent from the slave to the master.
Column Network Variable Consumer Object RxPDO Bus TxPDO Producer Object Description Name of network variable to be used in IEC 61131 program. The network variables can be exported to a network variable file (*.poe). Object in object dictionary of the master. This object is mapped to the receive PDO. Configured receive PDO to receive data from the slave. Direction of the data exchange. Configured transmit PDO to send data to the master. Object in object dictionary of the slave. This object is mapped to the transmit PDO.
Table 4-21
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4-31
Add Network Variable Either click Add Network Variable or right click .
Figure 4-37
Description Object to be written by network variable. Name of network variable to be used in IEC 61131 program. Process object of master. Object to be read by network variable. Name of network variable to be used in IEC 61131 program. Process object of master.
Slave Master
Table 4-22
Delete Network Variable Either click Delete Network Variable or right click Edit PDO Links PDO links are automatically created when adding a new network variable. Edit them using right click . The dialog Edit PDO Links shows all PDOs linked between the master and the slave device. The configuration of the PDO can be changed using this dialog. .
Figure 4-38
4-32
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Communication Parameter
Parameter COB-ID Transmission Type Description COB-ID of the linked PDOs. Synchronous: The PDO transmission is triggered by the Sync Master. Asynchronous: The PDO transmission is trigger by a value change or an event timer. Asynchronous RTR only: Do not use for network variables! Minimal transmission interval for asynchronous PDOs. Note: An inhibit time of zero is a potential risk for a bus overload! The asynchronous PDO transmission is triggered by an elapsed event timer.
Description Create a new PDO link between the master and slave devices. Delete an existing PDO link between the master and slave device. Only an empty PDO link can be deleted. Remove first the mapped objects. Lock or unlock a PDO link. A locked PDO can not be used by any other network variable.
Table 4-24
Mapped Objects
Control Element Move To Move Up Move Down Description Move the selected objects to another PDO link. Move the selected objects up in the list of mapped objects. Move the selected object down in the list of mapped objects.
Table 4-25
Lock or Unlock PDOs Any PDO of the master or slave devices can be locked or unlocked. A locked PDO cant be used by any other network variables. Right click
Figure 4-39
Lock/unlock PDOs
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4-33
Description Can not be used by any other network variables. Can be used by new network variables. Can be used by new network variables.
To create a good starting point for a network variable definition, the PDO configuration can be reset. Right click
Figure 4-40
Reset PDOs
Option Reset unlinked PDOs Reset linked PDOs between EPOS P and EPOS Reset all PDOs in network
Description All active PDOs not linked to any known devices in the network will be deactivated. Inactive PDOs are then available for new network variables. All active and linked PDOs between two devices are reset. Use this option to clear the PDO configuration of two devices. All network variables are deleted. All active PDOs in a network are reset.
Table 4-27
Show Network Variable File The declaration of the network variables for the IEC 61131 program are shown. Right click
Save Network Variable File The declarations of the network variables for the IEC 61131 program are saved to a file (*.poe). This file can be included in a IEC 61131 program. Right click
Print Network Variable File The declarations of the network variables for the IEC 61131 program are printed. Right click
4-34
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Figure 4-41
4.3.3.3
Allows definition of error control behavior of a slave device. Activate the heartbeat producer to monitor a breakdown of the slave by any other devices. Activate the heartbeat consumer to monitor a breakdown of any other device.
Figure 4-42
Description Enable or disable the heartbeat producer. Transmission rate of the heartbeat CAN frame. Tolerance time for the slave heartbeat consumer. The consumer time must always be higher than the producer time. A high bus load can delay the transmission of a heartbeat CAN frame. Device: In case of a breakdown of the master (heartbeat producer), this device is going to error state. Producer: Heartbeat producer time Consumer: Heartbeat consumer time
Consumed by
Disabled
Table 4-28
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4-35
Description Enable or disable the heartbeat consumer. Expected transmission rate of the heartbeat CAN frame. Tolerance time for the master heartbeat consumer. The consumer time must always be higher than the producer time. A high bus load can delay the transmission of a heartbeat CAN frame. Device: In case of a breakdown of the master (heartbeat consumer), this device is going to error state. Producer: Heartbeat producer time Consumer: Heartbeat consumer time
Tolerance
500 ms
Produced by
Disabled
Table 4-29
4.3.3.4
Allows definition of various bootup configuration checks. During configuration, the identification values of the slave device are stored in the master. During bootup procedure the master is checking if the correct slave device is connected to the CAN bus. If a bootup check fails the IEC 61131 program will not be started.
Figure 4-43
Bootup Check Device Type Vendor ID Product Code Revision Number Serial Number Configuration Date Time
Description Contains information about the device type. The lower 16-bit describes the CANopen device profile (i.e. 0x0192 = DSP 402). Contains a unique value allocated to each manufacturer (i.e. 0x000000FB = maxon motor ag). Contains a specific device version (i.e. 0x62100000 = Hardware Version EPOS 24/5). Contains a specific firmware version (i.e. 0x20320000 = Software Version EPOS 24/5). Contains a unique value allocated to each device (i.e. 0x62100000 = Hardware Version EPOS 24/5). Contains information about the last change of the configuration settings.
Table 4-30
4-36
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4.3.4
In order to use a motion control axis in a IEC 61131 program, the following configuration steps will be necessary. 1) Step 1: Create Project in EPOS Studio a) Select menu item New Project in menu File. b) Select an EPOS P project template and click Next. c) Enter project name, destination directory and click Finish. 2) Step 2: Scan the Network Topology a) Change to tab Communication in navigation window. b) Select icon for CAN network and execute command Scanning Devices in context menu. c) Enter scanning settings. d) Start Scanning. e) Click OK to close dialog Scanning Devices. f) Connect all new scanned devices. 3) Step 3: Open the Tool Network Configuration a) Change to tab Tools in navigation window. b) Select device EPOS P in device selection. c) Click item Network Configuration to open tool. 4) Step 4: Minimal Master Configuration a) Select master device EPOS P in device selection. b) Select configuration view Master and configure following options: NMT Master: Enabled Start NMT Master: Enabled Start NMT Slaves: Enabled Boot Time: 500 ms Start All NMT Slaves together: Enabled c) Select configuration view SYNC Master and disable Sync Producer. d) Select configuration view Heartbeat Control and disable Heartbeat Producer. 5) Step 5: Minimal Slave Configuration a) Select one of the slave devices in device selection. b) Select configuration view Slave and configure following options: NMT Slave: Enabled Boot Slave: Enabled Mandatory Slave: Enabled Axis Number: Select the axis number for example corresponding to the Node Id Axis Type: Standard c) Select configuration view Heartbeat Control and disable Heartbeat Producer. d) Select configuration view Booting and disable all bootup checks. e) Repeat slave configuration for all slaves in your system. 6) Step 6: Save Network Configuration Click OK to save network configuration. 7) Step 7: Start writing your IEC 61131 program Open programming tool and write your program addressing network devices.
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4-37
4.3.4.1
In order to address network devices using motion control function blocks, all devices need a unique axis number. Executing the minimal network configuration for all devices. The devices can be addressed without any further configuration steps. Motion Control Function Blocks
Function Block Parameter AXIS_REF.AxisNo = Axis Number Parameter Function Block Example Configuration Axis Number Configuration View Slave:
Table 4-31
Device Selection:
Table 4-32
4.3.4.2
In order to address network devices using network variables, some additional configuration steps are necessary. 1) Step 1: Open Configuration View Network Variables a) Open tool Network Configuration. b) Select one of the slave devices in device selection and activate configuration view Network Variables 2) Step 2: Define Output Network Variables Network Variables from the master to the slave can be used to control a slave device. a) Click Add Network Variable in the upper part of the view. b) Select a consumer object in selection combo box. c) Click OK to confirm selection. d) Repeat steps for each network variable
4-38
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Figure 4-44
3) Step 3: Define Input Network Variables Network Variables from the slave to the master can be used to monitor actual values. a) Click Add Network Variable in the lower part of the view. b) Select a producer object in selection combo box. c) Click OK to confirm selection. d) Repeat above steps for every network variable.
Figure 4-45
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
4-39
4) Step 4: Network Variable File (*.poe) a) Click browse button on the bottom of the view. b) Enter network variable file name for export and close dialog.
Figure 4-46
5) Step 5: Save Network Configuration and Export Network Variables Click OK to save network configuration. The network variables are exported to selected network variable file. 6) Step 6: Import Network Variables to IEC 61131 program a) Open your IEC 61131 program in the programming tool Open PCS. b) Select the menu item Import in the submenu File of the menu File. c) Click the context menu item Link to Active Resource to use the network variables.
Figure 4-47
4-40
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Function Blocks
For every function block, you will find a brief description, a block diagram, a table listing the available variables, remarks and explanations on the variables and their behavior, and the Function Block call in type.
Please observe below information prior engaging with functionalities of further describes function blocks. Generally applicable Parameters Function Block calls use programming language ST. Using the Network Configuration Tool, axis number of internal and external axes may be set as desired. Thereby, respect permitted value range. The input/output variable Axis defines the addressed axis. The output variable Error signals an error having occurred during execution of the function block. The output variable ErrorID allows to get more information on the error cause. The output variable Done signals the successful read operation. Important! Generally applicable Rules The execution of a function block instance might take longer than one PLC cycle. For a proper working system, a function block instance must be called (Execute or Enable) at every program cycle until its termination is signalled by the output Done, Error or Abort. Upon every call, the function block instance will continue at its actual internal state (at the position it stopped during the previous PLC program cycle). Breaking this rule will cause system errors, especially if the function block uses CAN communication services which might not have been finished fast enough.
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-41
5.1
Figure 5-48
MC_Power
Important MC_Power must be called until output Status has same value as input Enable.
5.1.1.1
Variable Input/Output Input
*I)
Variables
Data Type AXIS_REF BOOL BOOL DINT BOOL Value Default 0 FALSE FALSE 0 FALSE 031 TRUE, FALSE TRUE, FALSE For codes page 8-90 TRUE, FALSE Range Unit or Element [Type] AxisNo [USINT]
Output*O)
ErrorID Status
I) O)
As long as Enable is TRUE (positive state), the power stage of the axis is activated. Status shows state of power stage. MC_Power Variables
Table 5-33
5.1.1.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbPower : MC_Power; (* fbPower is instance of MC_Power *) END_VAR ------------------------------------------------------------------------------------(* Call function block instance *) fbPower(Axis := myAxis, Enable := TRUE);
5-42
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.1.2
MC_Reset
Figure 5-49
MC_Reset
Important MC_Reset has to be called until termination is signalled at the output (Done or Error).
5.1.2.1
Variable Input/Output Input
*I)
Variables
Data Type AXIS_REF BOOL BOOL BOOL DINT Value Default 0 FALSE FALSE FALSE 0 031 TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT]
Output
*O)
Error ErrorID
I) O)
At positive edge of Execute, axis status changes from Errorstop to StandStill. After execution of MC_Reset, the power stage must be re-enabled (MC_Power on page 5-42). Done signals successful reset of axis status. MC_Reset Variables
Table 5-34
5.1.2.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbReset : MC_Reset; (* fbReset is instance of MC_Reset *) END_VAR ------------------------------------------------------------------------------------(* Call function block instance *) fbReset(Axis := myAxis, Execute := TRUE);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-43
5.1.3
MC_ReadStatus
Returns the status of the axis with respect to the motion currently in progress.
Figure 5-50
MC_ReadStatus
5.1.3.1
Variable Input/Output Input*I) Name Axis Enable
Variables
Data Type AXIS_REF BOOL BOOL BOOL BOOL BOOL DINT BOOL BOOL BOOL BOOL BOOL Value Default 0 FALSE FALSE FALSE FALSE FALSE 0 FALSE FALSE FALSE FALSE FALSE 031 TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE Range Unit or Element [Type] AxisNo [USINT]
ContinuousMotion Disabled DiscreteMotio Error Output*O) ErrorID Errorstop Homing StandStill Stopping Valid
I) O)
As long as Enable is TRUE (positive state), status parameter is continuously being read. TRUE (positive state) of Valid signals successful update of axis status. MC_ReadStatus Variables
Table 5-35
5-44
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Notes: 1) In Errorstop or Stopping, all function blocks can be called, although they will not be executed, except MC_Reset and Error. They will generate the transition to StandStill or Errorstop, respectively. 2) Power.Enable = TRUE and no error present in the axis. 3) MC_Stop.Done 4) MC_Power.Enable = FALSE Figure 5-51 MC_ReadStatus States
5.1.3.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbRead : MC_ReadStatus; (* fbRead is instance of MC_ReadStatus *) END_VAR ------------------------------------------------------------------------------------(* Call function block instance *) fbRead(Axis := myAxis, Enable := TRUE); IF fbRead.Valid & fbRead.Errorstop THEN ... END_IF;
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-45
5.1.4
MC_MoveAbsolute
Commands a controlled motion to a specified absolute position using a trapezoidal or sinusoidal profile.
Figure 5-52
MC_MoveAbsolute
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.1.4.1
Variable Input/Output Name Axis Acceleration Deceleration Execute Input*I) Position Velocity Abort Output*O) Done Error ErrorID
Variables
Data Type AXIS_REF UDINT UDINT BOOL DINT UDINT BOOL BOOL BOOL DINT Value Default 0 0 0 FALSE 0 0 FALSE FALSE FALSE 0 031 04294967295 04294967295 TRUE, FALSE -2147483648 +2147483647 025000 TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT] rpm/s rpm/s qc rpm
I)
O)
A positive edge of Execute triggers a new absolute movement using a profile corresponding to Velocity, Acceleration and Deceleration. Position is defined in quad count (encoder increments) [qc]. Successful positioning is signalled with a positive value (TRUE) at Done. Execution of this instance is immediately stopped if another function block instance is executing movement using the same axis. In this case a positive state (TRUE) at Abort will be set. Done, Abort and Error can be reset by a negative state (FALSE) to Execute. If Execute is reset before completion of positioning, Done, Abort and Error show status of positioning during one cycle, then they are reset to negative state (FALSE). Velocity, Acceleration and Deceleration must only be defined upon first call repeated calls will use value of first call and do not require further definition. MC_MoveAbsolute Variables
Table 5-36
5-46
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Details on possible calling sequences (Figure 5-53). The first sequence shows two complete movements. The second instance will be initiated upon completion of the first movement. The second sequence shows an interrupted movement. Setting the variable Test will trigger the second instance while fist instance is being executed.
Figure 5-53
MC_MoveAbsolute Sequence
5.1.4.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbMove : MC_MoveAbsolute; (* fbMove is instance of MC_MoveAbsolute *) Start : BOOL := FALSE; Pos : DINT := 10000; END_VAR ------------------------------------------------------------------------------------(* Call function block instance *) fbMove(Axis:=myAxis,Execute:=Start,Position:=Pos,Velocity:=25,Acceleration:=50,Deceleration:=50);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-47
5.1.5
MC_MoveRelative
Commands a controlled motion of a specified distance relative to the actual position at the time of the execution using trapezoidal or sinusoidal profile. The new absolute target position is defined by the distance added to the actual position.
Figure 5-54
MC_MoveRelative
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.1.5.1
Variable Input/Output Name Axis Acceleration Deceleration Input*I) Distance Execute Velocity Abort Output*O) Done Error ErrorID
Variables
Data Type AXIS_REF UDINT UDINT DINT BOOL UDINT BOOL BOOL BOOL DINT Value Default 0 0 0 0 FALSE 0 FALSE FALSE FALSE 0 031 04294967295 04294967295 -2147483648 +2147483647 TRUE, FALSE 025000 TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT] rpm/s rpm/s qc rpm
I)
O)
A positive edge of Execute triggers a new absolute movement using a profile corresponding to Velocity, Acceleration and Deceleration. The defined distance is added to the actual position and commanded as a new absolute target position. Distance is defined in quadcount (encoder increments) [qc]. Successful positioning is signalled with a positive value (TRUE) at Done. Execution of this instance is immediately stopped if another function block instance is executing movement using the same axis. In this case a positive state (TRUE) at Abort will be set. Done, Abort and Error can be reset by a negative state (FALSE) to Execute. If Execute is reset before completion of positioning, Done, Abort and Error show status of positioning during one cycle, then they are reset to negative state (FALSE). Velocity, Acceleration and Deceleration must only be defined upon first call repeated calls will use value of first call and do not require further definition. MC_MoveRelative Variables
Table 5-37
5-48
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Details on possible calling sequences (Figure 5-55). The first sequence shows two complete movements. The second function block instance is started after the complete termination of the first movement. The second sequence shows an interrupted movement. Setting the variable Test triggers the start of the second function block instance during execution of the first one.
Figure 5-55
MC_MoveRelative Sequence
5.1.5.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbMoveR : MC_MoveRelative; (* fbMove is instance of MC_MoveRelative *) Start : BOOL := FALSE; Pos : DINT := 10000; END_VAR ------------------------------------------------------------------------------------(* Call function block instance *) fbMoveR(Axis := myAxis, Execute := Start, Distance := Pos, Velocity := 1000, Acceleration := 1000, Deceleration := 1000);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-49
5.1.6
MC_MoveVelocity
Commands a continuously controlled motion at a specified velocity using a trapezoidal or sinusoidal acceleration profile.
Figure 5-56
MC_MoveVelocity
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.1.6.1
Variable Input/Output Name Axis Acceleration Deceleration Input*I) Execute Direction Velocity Abort Output*O) Error ErrorID InVelocity
Variables
Data Type AXIS_REF UDINT UDINT BOOL Enum MC_Direction UDINT BOOL BOOL DINT BOOL Value Default 0 0 0 FALSE MCpositive 0 FALSE FALSE 0 FALSE 031 04294967295 04294967295 TRUE, FALSE MPpositive MPnegative 025000 TRUE, FALSE TRUE, FALSE For codes page 8-90 TRUE, FALSE Range Unit or Element [Type] AxisNo [USINT] rpm/s rpm/s qc rpm
I)
O)
A positive edge of Execute triggers a new absolute continues velocity movement defined by Velocity using values of Acceleration and Deceleration. MC_Stop will stop the movement. Another call changes the active velocity, thereby Velocity must be of positive value higher than 0. Direction defines the movement direction and is defined in quadcount (encoder increments) [qc]. InVelocity signals achievement of commanded velocity. Another call executing a movement using the same axis will immediately stop the movement. In this case a positive state (TRUE) at Abort will be set. InVelocity, Abort and Error can be reset by a negative state (FALSE) to Execute. If reset before completion of positioning, InVelocity, Abort and Error show status of positioning during one cycle, then they are reset to negative state (FALSE). Velocity, Acceleration and Deceleration must only be defined upon first call repeated calls will use value of first call and do not require further definition. MC_MoveVelocity Variables
Table 5-38
5-50
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Details on possible calling sequences (Figure 5-57). The first sequence shows two complete movements. The second function block instance is started after the complete termination of the first movement. The second sequence shows an interrupted movement. Setting the variable Test triggers the start of the second function block instance during execution of the first one.
Figure 5-57
MC_MoveVelocity Sequence
5.1.6.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbVelo : MC_MoveVelocity; (* fbVelo is instance of MC_MoveVelocity *) Start : BOOL := FALSE; END_VAR ------------------------------------------------------------------------------------(* Call function block instance *) fbVelo(Axis := myAxis, Execute := Start, Velocity := 2000, Acceleration := 1000, Deceleration := 1000, Direction := MCpositive);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-51
5.1.7
MC_Home
Commands the axis to perform the homing procedure. The absolute home position is determined using one of the available homing methods (for details separate document EPOS Firmware Specification).
Figure 5-58
MC_Home
5.1.7.1
Variable Input/Output Name Axis Execute Input*I) Position Abort Output*O) Done Error ErrorID
Variables
Data Type AXIS_REF BOOL DINT BOOL BOOL BOOL DINT Value Default 0 FALSE 0 FALSE FALSE FALSE 0 031 TRUE, FALSE -2147483648 +2147483647 TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT] qc
I)
O)
A positive edge of Execute triggers a new homing procedure. Position determines the new home position value after successful completion homing procedure and is defined in quadcount (encoder increments) [qc]. Position must only be defined upon first call repeated calls will use value of first call and do not require further definition. Additional parameters for a homing procedure must be configured using MC_WriteParameter (page 5-58), for detailed information separate document EPOS Firmware Specification. Done signals successful termination of the procedure. If another instance is starting a homing procedure using the same axis, the execution of the first instance is immediately being stopped, Abort is set to positive state (TRUE). Done, Abort and Error can be reset by a negative state (FALSE) to Execute. If Execute is reset before completion of positioning, Done, Abort and Error show status of positioning during one cycle, then they are reset to negative state (FALSE). MC_Home Variables
Table 5-39
5-52
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.1.7.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbHome : MC_Home; (* fbHome is instance of MC_Home *) Start : BOOL := FALSE; END_VAR ------------------------------------------------------------------------------------(* Call function block instance *) fbHome(Axis := myAxis, Execute := Start, Position := 0);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-53
5.1.8
MC_Stop
Commands a controlled motion stop of the axis using a trapezoidal or sinusoidal deceleration profile.
Figure 5-59
MC_Stop
5.1.8.1
Variable Input/Output Input*I) Name Axis Execute Deceleration Error Output
*O)
Variables
Data Type AXIS_REF BOOL UDINT BOOL DINT BOOL Value Default 0 FALSE 0 FALSE 0 FALSE 031 TRUE, FALSE 04294967295 TRUE, FALSE For codes page 8-90 TRUE, FALSE Range Unit or Element [Type] AxisNo [USINT] rpm/s
ErrorID InVelocity
I) O)
A positive edge of Execute stops the axis using a defined deceleration profile. Done and Error are reset by setting a negative state (FALSE) to Execute. If Execute is reset before completion of positioning, Done and Error will continue to signal the stoppage during one cycle, and are then reset to negative state (FALSE). MC_Stop Variables
Table 5-40
5.1.8.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbStop : MC_Stop; (* fbStop is instance of MC_Stop *) Start : BOOL := FALSE; END_VAR ------------------------------------------------------------------------------------(* Call function block instance *) fbStop(Axis := myAxis, Execute := Start, Deceleration := 1000);
5-54
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.1.9
MC_ReadParameter
Figure 5-60
MC_ReadParameter
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.1.9.1
Variable Input/Output Name Axis Enable
Variables
Data Type AXIS_REF BOOL Value Default 0 FALSE 031 TRUE, FALSE PLCopen parameter: 1 CommandedPosition 2 SWLimitPos 3 SWLimitNeg 7 MaxPositionLag 8 MaxVelocitySystem 9 MaxVelocityAppl 10 ActualVelocity 11 CommandedVelocity 13 MaxAccelerationAppl 15 MaxDecelerationAppl CANopen objects: 16#xxxxyyzz multiplexer (hex) xxxx: Object Index (hex) yy: Object Sub-index (hex) zz: Object Length (hex) TRUE, FALSE TRUE, FALSE For codes page 8-90 04294967295 Range Unit or Element [Type] AxisNo [USINT]
Input*I)
ParameterNumber
UDINT
FALSE FALSE 0 0
I)
O)
As long as Enable is TRUE (positive state), the value of a specified parameter will continuously be read. ParameterNumber is defining the parameter to be read. Besides the listed parameter, CANopen objects can be read using ParameterNumber as a multiplexer. Thus, allowing to read all EPOS objects from the object dictionary (separate document EPOS P Firmware Specification). The multiplexer (for details Multiplexer Example on page 5-56) is composed of 2 bytes object index (Byte 3 and 2), 1 byte object sub-index (Byte 1) and 1 byte object length (Byte 0). Value allows retrieval of the value. MC_ReadParameter Variables
Table 5-41
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-55
5.1.9.2
Multiplexer Example
ParameterNumber...............= 16#207C0102 Name...................................= Analog Input 1 of EPOS Object Index ........................= 16#207C Object Sub-index.................= 16#01 Object Length......................= 16#02
5.1.9.3
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbReadP : MC_ReadParameter; (* fbReadP is instance of MC_ReadParameter *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for updating the actual velocity *) fbReadP(Axis := myAxis, Enable := TRUE, ParameterNumber := 10); (* Function Block call for reading the CANopen object Analog Input 1*) fbReadP(Axis := myAxis, Enable := TRUE, ParameterNumber := 16#207C0102);
5-56
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.1.10
MC_ReadBoolParameter
Figure 5-61
MC_ReadBoolParameter
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.1.10.1
Variable Input/Output Name Axis Enable Input*I)
Variables
Data Type AXIS_REF BOOL UDINT BOOL BOOL DINT UDINT Value Default 0 FALSE 0 FALSE FALSE 0 0 031 TRUE, FALSE 4 EnableLimitPos 5 EnableLimitNeg 6 EnablePosLagMonitoring TRUE, FALSE TRUE, FALSE For codes page 8-90 04294967295 Range Unit or Element [Type] AxisNo [USINT]
ParameterNumber Done
Output*O)
I)
O)
As long as Enable is TRUE (positive state), the value of a specified boolean parameter will continuously be read. ParameterNumber is defining the parameter to be read. Value allows retrieval of the value. MC_ReadBoolParameter Variables
Table 5-42
5.1.10.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbReadB : MC_ReadBoolParameter; (* fbReadB is instance of MC_ReadBoolParameter *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for updating the actual velocity*) fbReadB(Axis := myAxis, Enable := TRUE, ParameterNumber := 4);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-57
5.1.11
MC_WriteParameter
Figure 5-62
MC_WriteParameter
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.1.11.1
Variable Input/Output Name Axis Enable
Variables
Data Type AXIS_REF BOOL Value Default 0 FALSE 031 TRUE, FALSE PLCopen parameter: 2 SWLimitPos 3 SWLimitNeg 7 MaxPositionLag 8 MaxVelocitySystem 9 MaxVelocityAppl 11 CommandedVelocity 13 MaxAccelerationAppl 15 MaxDecelerationAppl CANopen objects: 16#xxxxyyzz multiplexer (hex) xxxx: Object Index (hex) yy: Object Sub-index (hex) zz: Object Length (hex) 04294967295 TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT]
Input*I)
ParameterNumber
UDINT
0 FALSE FALSE 0
Error ErrorID
I)
O)
A positive edge at Execute triggers a write operation of the specified parameter. ParameterNumber is defining the parameter to be written. Besides the listed parameter, CANopen objects can be read using ParameterNumber as a multiplexer. Thus, allowing to read all EPOS objects from the object dictionary (separate document EPOS P Firmware Specification). The multiplexer (for details Multiplexer Example on page 5-59) is composed of 2 bytes object index (Byte 3 and 2), 1 byte object sub-index (Byte 1) and 1 byte object length (Byte 0). Successful write operation is signalled with a positive value (TRUE) at Done. MC_WriteParameter Variables
Table 5-43
5-58
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.1.11.2
Multiplexer Example
ParameterNumber .............. = 16#20780102 Name .................................. = Digital Outputs of EPOS Object Index........................ = 16#2078 Object Sub-index ................ = 16#01 Object Length ..................... = 16#02
5.1.11.3
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbReadB : MC_ReadBoolParameter; (* fbReadB is instance of MC_ReadBoolParameter *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for updating the actual velocity*) fbReadB(Axis := myAxis, Enable := TRUE, ParameterNumber := 4);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-59
5.1.12
MC_ReadActualPosition
Figure 5-63
MC_ReadActualPosition
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.1.12.1
Variable Input/Output Input
*I)
Variables
Data Type AXIS_REF BOOL BOOL BOOL DINT DINT Value Default 0 FALSE FALSE FALSE 0 0 031 TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 -2147483648 [min(DINT)] +2147483647 [max(DINT)] Range Unit or Element [Type] AxisNo [USINT] qc
Output*O)
I) O)
As long as Enable is TRUE (positive state), the actual position will continuously be read. The actual position can be retrieved from Position. Position is defined in quadcount (encoder increments) [qc]. MC_ReadActualPosition Variables
Table 5-44
5.1.12.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbPos : MC_ReadActualPosition; (* fbPos is instance of MC_ReadActualPosition *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading the actual position *) fbPos(Axis := myAxis, Enable := TRUE);
5-60
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.1.13
MC_ReadActualVelocity
Figure 5-64
MC_ReadActualVelocity
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.1.13.1
Variable Input/Output Input
*I)
Variables
Data Type AXIS_REF BOOL BOOL BOOL DINT DINT Value Default 0 FALSE FALSE FALSE 0 0 031 TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 -2147483648 [min(DINT)] +2147483647 [max(DINT)] Range Unit or Element [Type] AxisNo [USINT] rpm
Output*O)
I) O)
As long as Enable is TRUE (positive state), the actual velocity will continuously be read. The actual velocity can be retrieved from Velocity. MC_ReadActualVelocity Variables
Table 5-45
5.1.13.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbVel : MC_ReadActualVelocity; (* fbVel is instance of MC_ReadActualVelocity *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading the actual velocity *) fbVel(Axis := myAxis, Enable := TRUE);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-61
5.1.14
MC_ReadActualCurrent
Figure 5-65
MC_ReadActualCurrent
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.1.14.1
Variable Input/Output Input
*I)
Variables
Data Type AXIS_REF BOOL BOOL BOOL DINT INT Value Default 0 FALSE FALSE FALSE 0 0 031 TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 - 32768 [min(INT)] + 32767 [max(INT)] Range Unit or Element [Type] AxisNo [USINT] mA
Output*O)
I) O)
As long as Enable is TRUE (positive state), the actual current will continuously be read. The actual velocity can be retrieved from Current. MC_ReadActualCurrent Variables
Table 5-46
5.1.14.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbCur : MC_ReadActualCurrent; (* fbCur is instance of MC_ReadActualCurrent *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading the actual current *) fbCur(Axis := myAxis, Enable := TRUE);
5-62
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.1.15
MC_ReadAxisError
Returns the first entry in the error history of the EPOS device.
Figure 5-66
MC_ReadAxisError
5.1.15.1
Variable Input/Output Input
*I)
Variables
Data Type AXIS_REF BOOL BOOL BOOL DINT Value Default 0 FALSE FALSE FALSE 0 031 TRUE, FALSE TRUE, FALSE TRUE, FALSE EPOS device error item [ 7 ] on page 1-8 Range Unit or Element [Type] AxisNo [USINT]
Output*O)
Error ErrorID
I) O)
As long as Enable is TRUE (positive state), the value of the first entry in the error history of the EPOS will continuously be read. With successful operation (Error = FALSE), ErrorID contains the axis error (item [ 7 ] on page 1-8). MC_ReadAxisError Variables
Table 5-47
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-63
5.2
Figure 5-67
MU_GetAllDigitalInputs
5.2.1.1
Variable Input/Output Input
*I)
Variables
Data Type AXIS_REF BOOL BOOL BOOL BOOL DINT BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL BOOL Value Default 0 FALSE FALSE FALSE FALSE 0 FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE 031 TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE Range Unit or Element [Type] AxisNo [USINT]
Name Axis Enable Done Drive Enable Error ErrorID GenPurpA GenPurpB GenPurpB GenPurpD GenPurpE GenPurpF GenPurpG GenPurpH HomeSwitch NegLimitSwitch PositionMarker PosLimitSwitch
Output
I)
As long as Enable is TRUE (positive state), the status of all digital inputs will continuously be read. MU_GetAllDigitalInputs Variables
Table 5-48
5-64
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.2.1.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbGetAllDigitalInputs : MU_GetAllDigitalInputs; (* fbGetAllDigitalInputs is instance of MU_GetAllDigitalInputs *) END_VAR --------------------------------------------------------------------------------------------(* Function Block call for reading the status of all digital inputs *) fbGetAllDigitalInputs(Axis := myAxis, Enable := TRUE);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-65
5.2.2
MU_GetDigitalInput
Figure 5-68
MU_GetDigitalInput
5.2.2.1
Variable Input/Output Name Axis Enable
Variables
Data Type AXIS_REF BOOL Value Default 0 FALSE 031 TRUE, FALSE NegLimitSwitch = 0, PosLimitSwitch = 1, HomeSwitch = 2, PositionMarker = 3, Enable = 4, GenPurpH = 8, GenPurpG = 9, GenPurpF = 10, GenPurpE = 11, GenPurpD = 12, GenPurpC = 13, GenPurpB = 14, GenPurpA = 15 TRUE, FALSE TRUE, FALSE For codes page 8-90 TRUE, FALSE Range Unit or Element [Type] AxisNo [USINT]
Input*I)
Purpose
INT
I)
As long as Enable is TRUE (positive state), the status of a digital inputs will continuously be read. Purpose defines the digital input to be read. MU_GetDigitalInput Variables
Table 5-49
5.2.2.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbGetDigitalInput : MU_GetDigitalInput; (* fbGetDigitalInput is instance of MU_GetDigitalInput *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading the status of home switch *) fbGetDigitalInput(Axis := myAxis, Enable := TRUE, Purpose :=2);
5-66
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.2.3
MU_GetAnalogInput
Figure 5-69
MU_GetAnalogInput
5.2.3.1
Variable Input/Output Input*I) Name Axis Enable Number Done Output Error ErrorID Value
Variables
Data Type AXIS_REF BOOL USINT BOOL BOOL DINT DINT Value Default 0 FALSE 0 FALSE FALSE 0 0 031 TRUE, FALSE 1, 2 TRUE, FALSE TRUE, FALSE For codes page 8-90 05000 Range Unit or Element [Type] AxisNo [USINT] vV
I)
As long as Enable is TRUE (positive state), the status of a digital inputs will continuously be read. Purpose defines the digital input to be read. MU_GetAnalogInput Variables
Table 5-50
5.2.3.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbGetAnalogInput : MU_GetAnalogInput; (* fbGetAnalogInput is instance of MU_GetAnalogInput *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading the value of the analog input 2 *) fbGetAnalogInput(Axis := myAxis, Enable := TRUE, Number :=2);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-67
5.2.4
MU_SetAllDigitalOutputs
Figure 5-70
MU_SetAllDigitalOutputs
5.2.4.1
Variable Input/Output Name Axis Execute GenPurpA Input*I) GenPurpB GenPurpC GenPurpD Done Output Error ErrorID
Variables
Data Type AXIS_REF BOOL BOOL BOOL BOOL BOOL BOOL BOOL DINT Value Default 0 FALSE FALSE FALSE FALSE FALSE FALSE FALSE 0 031 TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT]
I)
A positive edge of Execute triggers a write operation of all digital outputs. MU_SetAllDigitalOutputs Variables
Table 5-51
5.2.4.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbSetAllDigitalOutputs : MU_SetAllDigitalOutputs; (* fbSetAllDigitalOutputs is instance of MU_SetAllDigitalOutputs *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for setting the value of all digital outputs to TRUE *) fbGetAnalogInput(Axis := myAxis, Execute := TRUE, GenPurpA := TRUE, GenPurpB := TRUE, GenPurpC := TRUE, GenPurpD := TRUE);
5-68
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.2.5
MU_GetDeviceErrorCount
Figure 5-71
MU_GetDeviceErrorCount
5.2.5.1
Variable Input/Output Input*I) Name Axis Enable Count Output*O) Done Error ErrorID
Variables
Data Type AXIS_REF BOOL USINT BOOL BOOL DINT Value Default 0 FALSE 0 FALSE FALSE 0 031 TRUE, FALSE 0255 TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT]
I) O)
As long as Enable is TRUE (positive state), the number of existing errors will continuously be read. The actual number of existing errors can be read from Count. MU_GetDeviceErrorCount Variables
Table 5-52
5.2.5.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbGetDeviceErrorCount : MU_GetDeviceErrorCount; (* fbGetDeviceErrorCount is instance of MU_GetDeviceErrorCount *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading the number of existing errors *) fbGetDeviceErrorCount(Axis := myAxis, Enable := TRUE);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-69
5.2.6
MU_GetDeviceError
Figure 5-72
MU_GetDeviceError
5.2.6.1
Variable Input/Output Input*I) Name Axis Enable Number DeviceError Output*O) Done Error ErrorID
Variables
Data Type AXIS_REF BOOL USINT UDINT BOOL BOOL DINT Value Default 0 FALSE 1 0 FALSE FALSE 0 031 TRUE, FALSE 1count (page 5-69) 04294967265 TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT]
I) O)
As long as Enable is TRUE (positive state), the error code of a specific entry in the error history will continuously be read. The error code can be read from DeviceError. MU_GetDeviceError Variables
Table 5-53
5.2.6.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbGetDeviceError : MU_GetDeviceError; (* fbGetDeviceError is instance of MU_GetDeviceError *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading the error code of the second entry in the error history *) fbGetDeviceErrorCount(Axis := myAxis, Enable := TRUE, Number := 2);
5-70
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.2.7
MU_GetObject
Figure 5-73
MU_GetObject
5.2.7.1
Variable Input/Output Input*I) Name Axis Execute Index SubIndex Done Output*O) Error ErrorID Value
Variables
Data Type AXIS_REF BOOL UINT USINT BOOL BOOL DINT UDINT Value Default 0 FALSE 0 0 FALSE FALSE 0 0 031 TRUE, FALSE 065535 0255 TRUE, FALSE TRUE, FALSE For codes page 8-90 04294967265 Range Unit or Element [Type] AxisNo [USINT]
I) O)
A positive edge of Execute triggers a read operation of a specific EPOS object. Index and SubIndex define the object to be read. The value of the object can be read from the Value. MU_GetObject Variables
Table 5-54
5.2.7.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbGetObject : MU_GetObject; (* fbGetObject is instance of MU_GetObject *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading the software number of the attached EPOS (object: 0x2003-01 *) fbGetObject(Axis := myAxis, Execute := TRUE, Index := 16#2003, SubIndex := 16#01);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-71
5.2.8
MU_SetObject
Figure 5-74
MU_SetObject
5.2.8.1
Variable Input/Output Name Axis Execute Input*I) Index SubIndex Value Done Output Error ErrorID
Variables
Data Type AXIS_REF BOOL UINT USINT UDINT BOOL BOOL DINT Value Default 0 FALSE 0 0 0 FALSE FALSE 0 031 TRUE, FALSE 065535 0255 04294967265 TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT]
I)
A positive edge of Execute triggers a write operation of a specific EPOS object. Index and SubIndex define the object to be modified. MU_SetObject Variables
Table 5-55
5.2.8.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbSetObject : MU_SetObject; (* fbSetObject is instance of MU_SetObject *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for writing the encoder pulse number of the attached EPOS (object: 0x2210-01 *) fbSetObject(Axis := myAxis, Execute := TRUE, Index := 16#2210, SubIndex := 16#01);
5-72
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.2.9
MU_GetHomingParameter
Figure 5-75
MU_GetHomingParameter
5.2.9.1
Variable Input/Output Input*I) Name Axis Enable Acceleration
Variables
Data Type AXIS_REF BOOL UDINT UINT BOOL BOOL DINT Value Default 0 FALSE 1000 500 FALSE FALSE 0 031 TRUE, FALSE 04294967295 0 and up (depending on hardware) TRUE, FALSE TRUE, FALSE For codes page 8-90 cNegLimitSwitchIndex = 1, cPosLimitSwitchIndex = 2, cHomeSwitchPosSpeedIndex = 7, cHomeSwitchNegSpeedIndex = 11, cNegLimitSwitch = 17, cPosLimitSwitch = 18, cHomeSwitchPosSpeed = 23, cHomeSwitchNegSpeed = 27, cIndexNegSpeed = 33, cIndexPosSpeed = 34, cActualPosition = 35, cCurThreshPosSpeedIndex = -1, cCurThreshNegSpeedIndex = -2, cCurThreshPosSpeed = -3, cCurThreshNegSpeed = -4 -2147483648 +2147483647 04294967295 04294967295 Range Unit or Element [Type] AxisNo [USINT] rpm/s mA
Output*O)
Method
SINT
0 10 100
qc rpm rpm
I) O)
As long as Enable is TRUE (positive state), the values of the EPOS homing objects are will continuously be read. The values of the objects can be read from Method, Offset, SpeedSwitch, SpeedIndex, Acceleration and CurrentThreshold. MU_GetHomingParameter Variables
Table 5-56
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-73
5.2.9.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbGetHomingParameter : MU_GetHomingParameter; (* fbGetHomingParameter is instance of MU_GetHomingParameter *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading the homing parameter *) fbGetHomingParameter(Axis := myAxis, Enable := TRUE);
5-74
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.2.10
MU_SetHomingParameter
Figure 5-76
MU_SetHomingParameter
5.2.10.1
Variable Input/Output Name Axis Acceleration
Variables
Data Type AXIS_REF UDINT UINT BOOL Value Default 0 1000 500 FALSE 031 04294967295 0 and up (depending on hardware) TRUE, FALSE cNegLimitSwitchIndex = 1, cPosLimitSwitchIndex = 2, cHomeSwitchPosSpeedIndex = 7, cHomeSwitchNegSpeedIndex = 11, cNegLimitSwitch = 17, cPosLimitSwitch = 18, cHomeSwitchPosSpeed = 23, cHomeSwitchNegSpeed = 27, cIndexNegSpeed = 33, cIndexPosSpeed = 34, cActualPosition = 35, cCurThreshPosSpeedIndex = -1, cCurThreshNegSpeedIndex = -2, cCurThreshPosSpeed = -3, cCurThreshNegSpeed = -4 -2147483648 +2147483647 04294967295 04294967295 TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT] rpm/s mA
CurrentThreshold Execute
Method Input*I)
SINT
qc rpm rpm
I)
A positive edge of Execute triggers a write operation of the EPOS homing objects. Method, Offset, SpeedSwitch, SpeedIndex, Acceleration and CurrentThreshold contain the value of the parameters to be written. MU_SetHomingParameter Variables
Table 5-57
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-75
5.2.10.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR myAxis : AXIS_REF := (AxisNo := 0); fbSetHomingParameter : MU_SetHomingParameter; (* fbSetHomingParameter is instance of MU_SetHomingParameter *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for writing the homing parameter *) fbSetHomingParameter(Axis := myAxis, Execute := TRUE, Method :=11, Offset:= 200, SpeedSwitch := 150, SpeedIndex := 20, Acceleration := 2000, CurrentThreshold := 500);
5-76
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.2.11
MU_Selection
Figure 5-77
MU_Selection
5.2.11.1
Variable Name In1 Value1 Input
*I)
Variables
Data Type BOOL DINT BOOL DINT BOOL DINT Value Default FALSE 0 FALSE 0 FALSE 0 TRUE, FALSE -2147483648 +2147483647 TRUE, FALSE -2147483648 +2147483647 TRUE, FALSE -2147483648 +2147483647 Range Unit or Element [Type] qc qc qc
Output*O)
ValueOut
I) O)
In1 selects Value1, In2 selects Value2. If In1 and In2 are TRUE, In1 is prioritized. Out indicates a valid value of ValueOut. MU_Selection Variables
Table 5-58
5.2.11.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR fbSelection : MU_Selection; (* fbSelection is instance of MU_Selection *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for selecting Value1 input *) fbSelection(In1 := TRUE, Value1 := 2000, In2 := FALSE, Value2 := 1000);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-77
5.2.12
MU_GetBitState
Figure 5-78
MU_GetBitState
5.2.12.1
Variable Name BitNumber Execute Input*I) Value Done Output Error ErrorID State
Variables
Data Type USINT BOOL DINT BOOL BOOL DINT BOOL Value Default 0 FALSE 0 FALSE FALSE 0 FALSE 0255 TRUE, FALSE -2147483648 +2147483647 TRUE, FALSE TRUE, FALSE For codes page 8-90 TRUE, FALSE Range Unit or Element [Type] qc
I)
A positive edge of Execute triggers a read operation of the state of a specific bit within Value. BitNumber defines the bit to be read. MU_GetBitState Variables
Table 5-59
5.2.12.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR fbGetBitState : MU_GetBitState; (* fbGetBitState is instance of MU_GetBitState *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading state of bit 2 of Value*) fbGetBitState(Execute := TRUE, Value := 2#10010000, BitNumber := 2); (* Return value of function block: State = 0*)
5-78
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.2.13
MU_SetBitState
Figure 5-79
MU_SetBitState
5.2.13.1
Variable Input/Output
*I)
Variables
Data Type AXIS_REF USINT BOOL BOOL BOOL BOOL DINT Value Default 0 0 FALSE FALSE FALSE FALSE 0 031 0255 TRUE, FALSE TRUE, FALSE TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type] AxisNo [USINT]
Input
Output
Error ErrorID
I)
A positive edge of Execute triggers a read operation of the state of a specific bit within Value. BitNumber defines the bit to be written with the value in State. MU_SetBitState Variables
Table 5-60
5.2.13.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR fbSetBitState : MU_SetBitState; (* fbSetBitState is instance of MU_SetBitState *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for writing bit 2 of Value with state = TRUE*) fbSetBitState(Execute := TRUE, Value := 2#10010000, BitNumber := 2, State := TRUE); (* Content of variable Value before Function Block call: 2#10010000*) (* Content of variable Value after Function Block call: 2#10010100*)
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-79
5.3
Figure 5-80
CAN_Nmt
5.3.1.1
Variable Name Device Execute Port Input*I) State
Variables
Data Type USINT BOOL USINT Value Default 0 FALSE 0 0127 TRUE, FALSE 0 = internal port 1 = external port 1 = Start Remote Node 2 = Stop Remote Node 128 = Enter Pre-Operational 129 = Reset Node 130 = Reset Communication TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type]
USINT
FALSE FALSE 0
I)
A positive edge of Execute triggers the NMT service operation. The network management state of the defined device is changed. Device corresponds to the CAN Node-ID. A Device value of 0 changes the NMT state of all devices in the network selected by the Port. Port distinguishes between internal and external CAN network. State is define by CANopen (CANopen specification). CAN_Nmt Variables
Table 5-61
5.3.1.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR fbNmt : CAN_Nmt; (* fbNmt is instance of CAN_Nmt *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for starting all nodes *) fbNmt(Execute := TRUE, Device := 0, Port := 0, State := 1);
5-80
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5.3.2
CAN_SdoRead
Figure 5-81
CAN_SdoRead
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.3.2.1
Variable Name Device Enable Input*I) Port Index SubIndex Data Output Done Error ErrorID
Variables
Data Type USINT BOOL USINT UINT USINT UDINT BOOL BOOL DINT Value Default 0 FALSE 0 0 0 0 FALSE FALSE 0 0127 TRUE, FALSE 0 = internal port 1 = external port UINT USINT 04294967295 TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type]
I)
As long as Enable is TRUE (positive state), the value of a specified CANopen object will continuously be read. The object is specified by Index and SubIndex. Device corresponds to the CAN Node-ID. Port distinguishes between internal and external CAN network. CAN_SdoRead Variables
Table 5-62
5.3.2.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR fbSdoRead : CAN_SdoRead; (* fbSdoRead is instance of CAN_SdoRead *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for reading the CANopen object DeviceType *) fbSdoRead (Enable := TRUE, Device := 0, Port := 0, Index := 16#1000, Sub-index := 16#00);
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
5-81
5.3.3
CAN_SdoWrite
Figure 5-82
CAN_SdoWrite
Important! Execution of the instance might take longer than one PLC cycle (page 5-41).
5.3.3.1
Variable Name Device Execute Input*I) Port Index SubIndex Data Done Output Error ErrorID
Variables
Data Type USINT BOOL USINT UINT USINT UDINT BOOL BOOL DINT Value Default 0 FALSE 0 0 0 0 FALSE FALSE 0 0127 TRUE, FALSE 0 = internal port 1 = external port UINT USINT UDINT TRUE, FALSE TRUE, FALSE For codes page 8-90 Range Unit or Element [Type]
I)
A positive edge of Execute triggers the write operation of a CANopen object. The object is specified by Index and SubIndex. Device corresponds to the CAN Node-ID. Port distinguishes between internal and external CAN network. CAN_SdoWrite Variables
Table 5-63
5.3.3.2
Call
------------------------------------------------------------------------------------(* Variable Declaration *) VAR fbSdoWrite : CAN_SdoWrite; (* fbSdoWrite is instance of CAN_SdoWrite *) END_VAR ------------------------------------------------------------------------------------(* Function Block call for writing the CANopen object GuardTime *) fbSdoWrite (Execute := TRUE, Device := 0, Port := 0, Index := 16#100C, Sub-index := 16#00, Data := 100);
5-82
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Markers
Markers are typically used to build intermediate results. They will be buffered in the PLC and do not have direct influence to the outputs. By using markers, extensive operations can be essentially simplified. Further, they act as transmitter between different modules. EPOS P and MCD EPOS P are using specific marker areas for error and warning information.
6.1
Table 6-64
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
6-83
6.2
Table 6-65
Table 6-66
6.3
6-84
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Bit n 31
Table 6-67
Table 6-68
6.4
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
6-85
6.5
Table 6-69
IEC 61131 declaration example with BOOL variables for EPOS slaves (sample internal EPOS):
ERR_mInternalEposGenericError ERR_mInternalEposCurrentError ERR_mInternalEposVoltageError ERR_mInternalEposTemperatureError ERR_mInternalEposCommunicationError AT AT AT AT AT %M200.0 : BOOL; %M200.1 : BOOL; %M200.2 : BOOL; %M200.3 : BOOL; %M200.4 : BOOL;
Table 6-70
6-86
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Process I/Os
Process inputs and outputs are used to read incoming or write outgoing CANopen PDOs. Nevertheless, before this communication method can be used, PDO configuration will be required. For details chapter 4.3 Network Configuration on page 4-25. Best Practice Use PDO communication for powerful and easy data exchange to read/write direct addressed variables. Use the Network Configuration Tool to setup PDO communication and to employ Functional Blocks (chapter 5 Function Blocks on page 5-41).
The Process Inputs Area provides 6 declaration types of 16 values with a length of 8-bit each. The variable holds the same value as the related CANopen object dictionary entry with its respective index. The following tables list the editable items that compose to the PDOs. Each table comes along with an example showing a variable containing colored marks on where to find respective elements and content.
7.1
InVar/ Subindex
Process Inputs
Example: InVar1 AT %IB0.0 : SINT; (*Object Index 0xA000, Subindex 1*)
SINT Decl. IB0.0 IB1.0 IB2.0 IB3.0 IB4.0 IB5.0 IB6.0 IB7.0 IB8.0 IB9.0 IB10.0 IB11.0 IB12.0 IB13.0 IB14.0 IB15.0 Index 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 0xA000 USINT Decl. IB16.0 IB17.0 IB18.0 IB19.0 IB20.0 IB21.0 IB22.0 IB23.0 IB24.0 IB25.0 IB26.0 IB27.0 IB28.0 IB29.0 IB31.0 IB31.0 Index 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 0xA040 Decl. IW32.0 IW34.0 IW36.0 IW38.0 IW40.0 IW42.0 IW44.0 IW46.0 IW48.0 IW50.0 IW52.0 IW54.0 IW56.0 IW58.0 IW60.0 IW62.0 INT Index 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 0xA0C0 UINT Decl. IW64.0 IW66.0 IW68.0 IW70.0 IW72.0 IW74.0 IW76.0 IW78.0 IW80.0 IW82.0 IW84.0 IW86.0 IW88.0 IW90.0 IW92.0 IW94.0 Index 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 0xA100 Decl. ID96.0 ID100.0 ID104.0 ID108.0 ID112.0 ID116.0 ID120.0 ID124.0 ID128.0 ID132.0 ID136.0 ID140.0 ID144.0 ID148.0 ID152.0 ID156.0 DINT Index 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 0xA1C0 UDINT Decl. ID160.0 ID164.0 ID168.0 ID172.0 ID174.0 ID180.0 ID184.0 ID188.0 ID192.0 ID196.0 ID200.0 ID204.0 ID208.0 ID212.0 ID216.0 ID220.0 Index 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200 0xA200
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Table 7-71
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
7-87
7.2
OutVar/ Subindex
Process Outputs
Example: OutVar16 AT %QD220.0 : UDINT; (*Object Index 0xA680, Subindex 16*)
SINT Decl. QB0.0 QB1.0 QB2.0 QB3.0 QB4.0 QB5.0 QB6.0 QB7.0 QB8.0 QB9.0 QB10.0 QB11.0 QB12.0 QB13.0 QB14.0 QB15.0 Index 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 0xA480 USINT Decl. QB16.0 QB17.0 QB18.0 QB19.0 QB20.0 QB21.0 QB22.0 QB23.0 QB24.0 QB25.0 QB26.0 QB27.0 QB28.0 QB29.0 QB31.0 QB31.0 Index 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 0xA4C0 Decl. QW32.0 QW34.0 QW36.0 QW38.0 QW40.0 QW42.0 QW44.0 QW46.0 QW48.0 QW50.0 QW52.0 QW54.0 QW56.0 QW58.0 QW60.0 QW62.0 INT Index 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 0xA540 Decl. QW64.0 QW66.0 QW68.0 QW70.0 QW72.0 QW74.0 QW76.0 QW78.0 QW80.0 QW82.0 QW84.0 QW86.0 QW88.0 QW90.0 QW92.0 QW94.0 UINT Index 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 0xA580 DINT Decl. QD96.0 QD100.0 QD104.0 QD108.0 QD112.0 QD116.0 QD120.0 QD124.0 QD128.0 QD132.0 QD136.0 QD140.0 QD144.0 QD148.0 QD152.0 QD156.0 Index 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 0xA640 UDINT Decl. QD160.0 QD164.0 QD168.0 QD172.0 QD174.0 QD180.0 QD184.0 QD188.0 QD192.0 QD196.0 QD200.0 QD204.0 QD208.0 QD212.0 QD216.0 QD220.0 Index 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680 0xA680
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Table 7-72
7-88
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
8
8.1
Error Handling
Programming Environment Error Codes
Programming environment errors (which also include warnings) will be displayed in a popup window, provided that the programming tool is active. They will have the following effects: An error will stop the application program. A warning will only be signalled, but does not stop the application program. Comment Program is to big try with size only
Error Code 1002 1004 1005 1006 1008 1009 1011 1012 1013 1014 1015 1016 1018 1020 1021 1900 1901 1903 1904 1905 1908 1909 1911 2001 2002 2003 2004
Description Out of program memory Program execution not possible No valid program Download of invalid data Configuration error / wrong program Invalid program number Invalid segment number Segment already on PLC No free watch ID available Invalid command received Action not valid. Switch to maintenance first General network error Accepted receipt too small Timer task error Error calling kernel Error calling native code Retain variable handling failed NMT boot up error, check CAN configuration One or more slave configuration wrong Problem with persistence memory CAN communication error System was reset by watchdog Interrupt Task error Execution error: data or program exception RUN TIME ERROR: division by zero RUN TIME ERROR: invalid array index RUN TIME ERROR: invalid opcode RUN TIME ERROR: opcode not supported
Operation not allowed in current mode Communication error on service interface Communication error on service interface Previous timer task processing was not already finished Error at call of interpreter Error at execution of native code Too many retain variables or hardware error See EPOS P error history for details Configuration date or time does not match Warning only See EPOS P error history for details Warning only*1) Previous interrupt processing was not already finished Fatal application processing error
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
8-89
Description RUN TIME ERROR: invalid extension RUN TIME ERROR: unknown command Invalid bit reference Error restoring data Invalid array element size Invalid struct size RUN TIME ERROR: modulo zero, result undefined Remark
Comment Unsupported command Unsupported command Runtime error Runtime error Runtime error Runtime error
1) EPOS Studio uses a watchdog reset also for resetting the Node. Therefore, this warning may also be triggered when EPOS Studio manipulates the EPOS P. Table 8-73 Error Codes Programming Environment
8.2
Error Code 0x0000 0000 0x0000 0001 || 0x0F00 FFC0 0x0FFF FFF0 0x0FFF FFF1 0x0FFF FFF2 0x0FFF FFF9 0x0FFF FFFA 0x0FFF FFFB 0x0FFF FFFC 0x0FFF FFFD 0x0FFF FFFE 0x0FFF FFFF
Description No error Internal function block sequence error Communication abort codes of the connected slave are inserted here (related to DS-301, DSP402, etc). The device is in wrong NMT state CAN communication sequence error Communication aborted by CAN driver Communication buffer overflow Segmented transfer communication error Wrong axis number Wrong device number Wrong CAN port Bad function calling parameters General CAN communication error CAN communication time out Table 8-74
Comment
8-90
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
9
9.1
Example Projects
HelloWorld
Project HelloWorld This example project provides a simple way to get used with the programming environment. Neither motion control functionality is used, nor must a motor be connected. The program may be used to Used Languages Task Files learn the handling of the programming environment and to check the online connection to the EPOS P.
Description
Structured Text Timer Task (10 ms) Project file Main program Additional information HelloWorld.VAR Counter.ST ReadMe.TXT
Table 9-75
HelloWorld in Brief
Table 9-76
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
9-91
9.2
SimpleMotionSequence
Project SimpleMotionSequence The example consists of two state machines: Description The first implements the application process. The second implements error handling.
The main state machine moves between two positions. For details separate document SimpleMotionSequence.pdf. Used Languages Task Files SFC (Sequential Function Chart) FBD (Function Block Diagram) Cyclic Project file Main program Additional information SimpleMotionSequence.VAR PROG_Main.SFC PROG_ErrorHandling.SFC
Table 9-77
SimpleMotionSequence in Brief
Table 9-78
9-92
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
9.3
Example
Description The example shows how to implement a state machine the basis and starting point of every EPOS P program including states and transitions. This implementation is the framework for all other examples. For details separate document StateMachineProject.pdf. The example demonstrates the usage of the error handling state machine. The state machine detects axis-related errors, communication errors and gathers error information on the individual error sources. The error information is shown in separate variables on the debug screen. For details separate document ErrorHandlingProject.pdf. The example demonstrates how to read digital and analog inputs and how to write digital outputs. For details separate document InputOutputHandlingProject.pdf. The example demonstrates how to configure, start and stop a homing procedure. For details separate document HomingProject.pdf. The example demonstrates how to execute positioning operations. Presented are three different kinds: two sequential relative positioning an interrupted positioning stopping relative positioning
State Machine
Error Handling
Positioning
For details separate document PositioningProject.pdf. The example demonstrates how to execute continuous motions. Presented are three different kinds: Continuous Motion two sequential continuous motions an interrupted continuous motion stopping the continuous motion
For details separate document ContinuousMotionProject.pdf. Actual Value Reading Object Dictionary Access Data Handling The example demonstrates how to read the actual position, the actual velocity and the actual current of the EPOS. For details separate document ActualValueReadingProject.pdf. The example shows how to read or write an object from the object dictionary. For details separate document ObjectDictAccessProject.pdf. The example demonstrates how to process data. The example is used to read and write bits and to convert data types. For details separate document DataHandlingProject.pdf. Table 9-79 Best Practice Program Examples
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
9-93
9.4
Description The example demonstrates typical motion sequences with one axis. It features homing, continuous motion and positioning. For details separate document CyclicMotionProject.pdf. The example demonstrates I/O triggered motions with one axis. For details separate document IO_ModeProject.pdf. The example demonstrates how to implement coordinated motions with two axes. For details separate document MultiaxisMotionProject.pdf. Table 9-80 Application Program Examples
9-94
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
LIST OF FIGURES
Figure 2-1 Figure 3-2 Figure 3-3 Figure 3-4 Figure 3-5 Figure 3-6 Figure 3-7 Figure 3-8 Figure 3-9 Figure 3-10 Figure 3-11 Figure 3-12 Figure 3-13 Figure 3-14 Figure 3-15 Figure 3-16 Figure 3-17 Figure 3-18 Figure 3-19 Figure 3-20 Figure 3-21 Figure 3-22 Figure 3-23 Figure 4-24 Figure 4-25 Figure 4-26 Figure 4-27 Figure 4-28 Figure 4-29 Figure 4-30 Figure 4-31 Figure 4-32 Figure 4-33 Figure 4-34 Figure 4-35 Figure 4-36 Figure 4-37 Figure 4-38 Figure 4-39 Figure 4-40 Figure 4-41 Figure 4-42 Documentation Structure - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 9 Page Navigator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11 EC 61131 Programming Window- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 11 OpenPCS License Registration - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 12 Connection Setup - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 13 Edit Connection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 13 Select Driver - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 13 Connection Settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 14 Connection Entry ProxyEpos - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 14 Create New Project - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16 Edit Resource Specifications- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 16 Create Program File- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 17 Add to active Resource - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 17 Task Specifications - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 17 Project HelloWorld - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 18 Variable Declaration- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 18 Program Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 18 Output Window - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 18 Download new Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 19 Cold Start - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 19 Test And Commissioning Window - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 19 Adding a Breakpoint- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 19 Continue Program Execution - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 20 Resource Pane - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21 Resource Specifications Window- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21 Task Type Window - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22 Edit Task Specification Optimization - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 23 Edit Task Specification Interrupt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 24 Network Configuration Overview - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 25 Configuration View Master - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 26 Configuration View SYNC Master - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 26 Network Info - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 28 Cycle Time - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 29 Configuration View Heartbeat Control - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 29 Configuration View Slave - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 30 Tab Network Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 31 Add Network Variable- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32 Edit PDO Links - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32 Lock/unlock PDOs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 33 Reset PDOs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 34 Declaration of Network Variables- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 35 Configuration View Heartbeat Control - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 35
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Z-95
Figure 4-43 Figure 4-44 Figure 4-45 Figure 4-46 Figure 4-47 Figure 5-48 Figure 5-49 Figure 5-50 Figure 5-51 Figure 5-52 Figure 5-53 Figure 5-54 Figure 5-55 Figure 5-56 Figure 5-57 Figure 5-58 Figure 5-59 Figure 5-60 Figure 5-61 Figure 5-62 Figure 5-63 Figure 5-64 Figure 5-65 Figure 5-66 Figure 5-67 Figure 5-68 Figure 5-69 Figure 5-70 Figure 5-71 Figure 5-72 Figure 5-73 Figure 5-74 Figure 5-75 Figure 5-76 Figure 5-77 Figure 5-78 Figure 5-79 Figure 5-80 Figure 5-81 Figure 5-82
Configuration View Bootup - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 36 Output Network Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 39 Input Network Variables- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 39 Network Variable File - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 40 Project Browser in Programming Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 40 MC_Power - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 42 MC_Reset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 43 MC_ReadStatus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 44 MC_ReadStatus States - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 45 MC_MoveAbsolute - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 46 MC_MoveAbsolute Sequence - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 47 MC_MoveRelative- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 48 MC_MoveRelative Sequence - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 49 MC_MoveVelocity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 50 MC_MoveVelocity Sequence- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 51 MC_Home - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 52 MC_Stop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 54 MC_ReadParameter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 55 MC_ReadBoolParameter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 57 MC_WriteParameter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 58 MC_ReadActualPosition - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 60 MC_ReadActualVelocity - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 61 MC_ReadActualCurrent- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 62 MC_ReadAxisError - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 63 MU_GetAllDigitalInputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 64 MU_GetDigitalInput - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 66 MU_GetAnalogInput - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 67 MU_SetAllDigitalOutputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 68 MU_GetDeviceErrorCount - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 69 MU_GetDeviceError - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 70 MU_GetObject - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 71 MU_SetObject - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 72 MU_GetHomingParameter- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 73 MU_SetHomingParameter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 75 MU_Selection - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 77 MU_GetBitState - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 78 MU_SetBitState - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 79 CAN_Nmt- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 80 CAN_SdoRead - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 81 CAN_SdoWrite - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 82
Z-96
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
LIST OF TABLES
Table 1-1 Table 1-2 Table 1-3 Table 3-4 Table 4-5 Table 4-6 Table 4-7 Table 4-8 Table 4-9 Table 4-10 Table 4-11 Table 4-12 Table 4-13 Table 4-14 Table 4-15 Table 4-16 Table 4-17 Table 4-18 Table 4-19 Table 4-20 Table 4-21 Table 4-22 Table 4-23 Table 4-24 Table 4-25 Table 4-26 Table 4-27 Table 4-28 Table 4-29 Table 4-30 Table 4-31 Table 4-32 Table 5-33 Table 5-34 Table 5-35 Table 5-36 Table 5-37 Table 5-38 Table 5-39 Table 5-40 Table 5-41 Table 5-42 Notations used in this Document - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 Brand Names and Trademark Owners - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 7 Sources for additional Information - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 8 EC 61131 Programming Window Commands and their Effect - - - - - - - - - - - - - - - - - 11 Resource Specifications Window Control Elements - - - - - - - - - - - - - - - - - - - - - - - - 22 Task Type Window Control Elements - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22 Edit Task Specification Control Elements - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 23 Edit Task Specification Control Elements - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 24 Network Configuration Overview Control Elements- - - - - - - - - - - - - - - - - - - - - - - - - 25 Network Configuration Overview Status & Icons- - - - - - - - - - - - - - - - - - - - - - - - - - - 25 Configuration View Master Options and Defaults - - - - - - - - - - - - - - - - - - - - - - - - - 26 Configuration View SYNC Master Options and Defaults - - - - - - - - - - - - - - - - - - - - 27 Configuration View SYNC Master Calculations - - - - - - - - - - - - - - - - - - - - - - - - - - 27 Configuration View SYNC Master Best Practice- - - - - - - - - - - - - - - - - - - - - - - - - - 27 Network Info Parameters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 28 Network Info Table Columns - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 28 Configuration View Heartbeat Control Options and Defaults Producer - - - - - - - - - - 29 Configuration View Heartbeat Control Options and Defaults Consumer - - - - - - - - - 30 Configuration View Slave Options and Defaults - - - - - - - - - - - - - - - - - - - - - - - - - - 30 Network Variables: EPOS P [Node 1] to EPOS [Internal] - - - - - - - - - - - - - - - - - - - - - - 31 Network Variables: EPOS P [Node 1] from EPOS [Internal] - - - - - - - - - - - - - - - - - - - - 31 Add Network Variable Parameters - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 32 Edit PDO Links Communication Parameter - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 33 Edit PDO Links PDO Link - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 33 Edit PDO Links Mapped Objects- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 33 Lock or Unlock PDOs Icons - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 34 Reset PDOs Options - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 34 Configuration View Heartbeat Control Options and Defaults Producer - - - - - - - - - - 35 Configuration View Heartbeat Control Options and Defaults Consumer - - - - - - - - - 36 Configuration View Bootup Options and Defaults Consumer - - - - - - - - - - - - - - - - - 36 Motion Control Function Block: Configuration of Axis Number - - - - - - - - - - - - - - - - - - 38 CANopen DS-301 Function Block: Configuration of Node ID - - - - - - - - - - - - - - - - - - - 38 MC_Power Variables- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 42 MC_Reset Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 43 MC_ReadStatus Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 44 MC_MoveAbsolute Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 46 MC_MoveRelative Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 48 MC_MoveVelocity Variables- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 50 MC_Home Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 52 MC_Stop Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 54 MC_ReadParameter Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 55 MC_ReadBoolParameter Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 57
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Z-97
Table 5-43 Table 5-44 Table 5-45 Table 5-46 Table 5-47 Table 5-48 Table 5-49 Table 5-50 Table 5-51 Table 5-52 Table 5-53 Table 5-54 Table 5-55 Table 5-56 Table 5-57 Table 5-58 Table 5-59 Table 5-60 Table 5-61 Table 5-62 Table 5-63 Table 6-64 Table 6-65 Table 6-66 Table 6-67 Table 6-68 Table 6-69 Table 6-70 Table 7-71 Table 7-72 Table 8-73 Table 8-74 Table 9-75 Table 9-76 Table 9-77 Table 9-78 Table 9-79 Table 9-80
MC_WriteParameter Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 58 MC_ReadActualPosition Variables- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 60 MC_ReadActualVelocity Variables- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 61 MC_ReadActualCurrent Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 62 MC_ReadAxisError Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 63 MU_GetAllDigitalInputs Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 64 MU_GetDigitalInput Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 66 MU_GetAnalogInput Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 67 MU_SetAllDigitalOutputs Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 68 MU_GetDeviceErrorCount Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 69 MU_GetDeviceError Variables- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 70 MU_GetObject Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 71 MU_SetObject Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 72 MU_GetHomingParameter Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 73 MU_SetHomingParameter Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 75 MU_Selection Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 77 MU_GetBitState Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 78 MU_SetBitState Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 79 CAN_Nmt Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 80 CAN_SdoRead Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 81 CAN_SdoWrite Variables - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 82 User Marker Variables Examples- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 83 Global Status Register Markers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 84 Global Status Register Markers Examples - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 84 Global Axis Error Register Markers - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 85 Global Axis Error Register Markers Examples- - - - - - - - - - - - - - - - - - - - - - - - - - - - 85 CANopen Slave Error Register Markers Examples 1 - - - - - - - - - - - - - - - - - - - - - - - 86 CANopen Slave Error Register Markers Examples 2 - - - - - - - - - - - - - - - - - - - - - - - 86 Process Inputs IEC 61131 Declaration Examples with Variables- - - - - - - - - - - - - - - 87 Process Outputs IEC 61131 Declaration Examples with Variables - - - - - - - - - - - - - 88 Error Codes Programming Environment - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 90 Error Codes Motion Control Function Blocks- - - - - - - - - - - - - - - - - - - - - - - - - - - - - 90 HelloWorld in Brief- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 91 HelloWorld Project Screen- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 91 SimpleMotionSequence in Brief - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 92 SimpleMotionSequence Project Screen - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 92 Best Practice Program Examples - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 93 Application Program Examples- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 94
Z-98
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
INDEX
find OpenPCS license key 12 find serial number and license key of OpenPCS Programming Tool 12 get used with the programming environment 91 interpret icons (and signs) used in the document 6 read this document 2 set resource properties 21 set task properties 22
A
additionally applicable regulations 10 alerts 6 applicable EU directive 2, 9 application examples 94
B
baud rate 13 Best Practice (Program Examples) 93 bitrate (maximum permitted) 27
I
incorporation into surrounding system 2, 9 informatory signs 7 InVar 87
C
CAN (CANopen DS-301 Function Blocks) 80 CAN_Nmt 80 CAN_SdoRead 81 CAN_SdoWrite 82 configuration OpenPCS license key 12 master 26 network 37 slave 30 country-specific regulations 10
M
mandatory action signs 6 Marker ERR_mAxis 84 ERR_mEpos 84 ERR_mErrorRegister 86 ERR_mInternalEpos 86 UserMarkerVariable 83 MC (Motion Control Function Blocks) 42 MC_Home 52 MC_MoveAbsolute 46 MC_MoveRelative 48 MC_MoveVelocity 50 MC_Power 42 MC_ReadActualCurrent 62 MC_ReadActualPosition 60 MC_ReadActualVelocity 61 MC_ReadAxisError 63 MC_ReadBoolParameter 57 MC_ReadParameter 55 MC_ReadStatus 44 MC_Reset 43 MC_Stop 54 MC_WriteParameter 58 MU (Maxon Utility Function Blocks) 64 MU_GetAllDigitalInputs 64 MU_GetAnalogInput 67 MU_GetBitState 78 MU_GetDeviceError 70 MU_GetDeviceErrorCount 69 MU_GetDigitalInput 66 MU_GetHomingParameter 73 MU_GetObject 71 MU_Selection 77 MU_SetAllDigitalOutputs 68 MU_SetBitState 79 MU_SetHomingParameter 75 MU_SetObject 72
D
declaration types 87
E
edit resource specification 16 Error Codes motion control function blocks 90 programming environment 89 ESD 10 EU directive, applicable 2, 9
F
Function Blocks CANopen DS-301 80 Maxon Utility 64 Motion Control 42
G
generally applicable parameters for Function Blocks 41 generally applicable rules for Function Blocks 41
H
how to build intermediate results 83 check online connection 91 configure the network 25 create a new project 16 enter program code 17
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Z-99
N
network length 27 network variables 31 non-compliance of surrounding system 2
O
OpenPCS Programming Tool 11 operating license 2, 9 other machinery (incorporation into) 2, 9 OutVar 88
P
parameters, generally applicable 41 precautions 10 prerequisites prior installation 2, 9 process inputs 87 process outputs 87 programming examples 93 programming with OpenPCS 12 prohibitive signs 6 purpose of this document 5
R
regulations, additionally applicable 10 resource definition 21 rules, generally applicable 41
S
safety alerts 6 safety first! 10 signs informative 7 mandatory 6 prohibitive 6 signs used 6 surrounding system (incorporation into) 2 symbols used 6
T
task 22
V
variables for Process Inputs 87 variables for Process Outputs 88 view resource specification 16
Z-100
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference
Z-101
2010 maxon motor. All rights reserved. The present document including all parts thereof is protected by copyright. Any use (including reproduction, translation, microfilming and other means of electronic data processing) beyond the narrow restrictions of the copyright law without the prior approval of maxon motor ag, is not permitted and subject to persecution under the applicable law. maxon motor ag Brnigstrasse 220 P.O.Box 263 CH-6072 Sachseln Switzerland Phone +41 (41) 666 15 00 Fax +41 (41) 666 15 50 www.maxonmotor.com
Z-102
maxon motor control EPOS P Programmable Positioning Controller EPOS P Programming Reference