Release Notes - Robot Application Builder 5.10

 

 Contents

 

            Introduction     

            Installation       

            Hardware and software requirements

            Compatibility   

            Licensing

            PC SDK

                        Compatibility

                        Updates

FlexPendant SDK

            Compatibility

                        Updates

Known limitations        

            Product Support

 

Introduction

This file contains release notes for Robot Application Builder (RAB) 5.10. The information should be considered as last minutes information and most up-to-date.

 

RAB 5.10 is included on the RobotWare 5.10 CD. It can be used by anyone who wants to develop a customized operator interface for IRC 5 controller. From 5.10 no license is required to use Robot Application Builder. The RobotWare options PC Interface/FlexPendant Interface are however still required on the targeted robot controller, just as before. To install Robot Application Builder you click the RAB button of the RW Install Shield application. This installs both PC and FlexPendant SDK. The result is an upgrade of any existing PC SDK to 5.10 and a side-by-side installation of FlexPendant SDK 5.08, 5.09 and 5.10. The User's Guide in PDF format is available from the CD before installation. See chapter 2, Installation and Setup, for installation details.

 

The installation includes software, documentation and tools as specified below:

 

Software

PC SDK (5.10) and FlexPendant SDK (5.08, 5.09 and 5.10)

 

Documentation

User's Guide: Application manual - Robot Application Builder, Rev B (5.10).

PC SDK Reference (5.10), the complete documentation of the class libraries with method signatures in C# and Visual Basic (Html Help)

FP SDK Reference (5.10), the complete documentation of the class libraries method signatures in C# and Visual Basic (Html Help)

FlexPendant Style Guide (Html Help)

 

Tools

ABB Compliance Tool - can be used to download a FlexPendant application to a robot controller

ABBControllerAPI.msm - merge module with the PS SDK dlls to be used when a PC SDK application is deployed to a customer’s PC

ABB Industrial Robot Communication Runtime.msi - to be used when a PC SDK application is deployed to a PC without RobotStudio Online (required for the Netscan functionality)

 

After installation the documentation can be launched from Windows Start Menu\Programs\ABB Industrial IT\Robotics IT\Robot Application Builder.

 

In no event shall ABB be liable for incidental or consequential damages arising from use of this product, of the software and hardware described in relating product documentation.

 

Visit our web site at http://www.abb.com/robotics for information and updates. Via the Software Products / Software Support Portal links, try out the User Forum at http://213.115.162.163/supportportal/ , where RAB developers discuss software problems and solutions online. Code samples will be published continuously on the portal.

 

Installation

RAB 5.10 requires Visual Studio 2005 to be installed on the computer. Upgrading the development environment to VS 2005 is necessary before using RAB 5.10.

 

From RAB 5.08 the installation includes both PC and FlexPendant SDK. It is recommended to uninstall PC SDK 5.07 (or earlier) before installing RAB 5.10.

FlexPendant SDK 5.07 (or earlier) should NOT be uninstalled if they are still needed. (To develop FP SDK applications for RW 5.07 for example, FP SDK 5.07 is necessary.)

 

It is not necessary to uninstall RAB 5.08 before installing RAB 5.10. The result whether 5.08 is uninstalled or not, is an upgrade of PC SDK to 5.10 and a side-by-side installation of FlexPendant SDK 5.08, 5.09 and 5.10. Windows Control Panel: Add/Remove Programs will show only one RAB installation: RAB 5.10.

 

Note! There will be only ONE PC SDK folder at the installation path after the upgrade to RAB 5.10. This means that the PC SDK 5.09 dlls are no longer available at the installation path after an upgrade to RAB 5.10. If you want to continue working with PC SDK 5.09 applications you need to store the PC SDK dlls elsewhere BEFORE you upgrade to RAB 5.10. As there is no incompatibility between PC SDK 5.09 and 5.10, however, you may prefer converting the existing application to PC SDK 5.10. Between PC SDK 5.08 and 5.09 there are some breaking changes, which means that existing 5.08 applications require some modifications to compile when moved to PC SDK 5.10. All incompatibilities are on the PC side, however, and converted applications will still work with RW 5.08.

 

One way of keeping several versions at the original installation path is following these steps:

 

1. Copy the 'redistributable' folder (C:\Program Files\ABB Industrial IT\Robotics IT\Robot Application Builder\redistributable) into the PC SDK folder (C:\Program Files\ABB Industrial IT\Robotics IT\Robot Application Builder\PC SDK). (The redistributable folder is needed if you need to deploy the application to a customer.)

2. Rename the PC SDK folder (e.g. C:\Program Files\ABB Industrial IT\Robotics IT\Robot Application Builder\PC SDK 5.09.)

3. Register the PC SDK 5.09 dlls in the Global Assembly Cache (GAC). This is necessary, as the GAC is used for the run-time (and if the 5.09 dlls are not available the 5.10 dlls will be used when the application executes). To do this you open the VS 2005 command prompt and use the gacutil command, e.g. gacutil -i "C:\Program Files\ABB Industrial IT\Robotics IT\Robot Application Builder\PC SDK 5.09\ABB.Robotics.dll". You should do the same for all PC SDK assemblies.

4. Install the new RAB version.

5. Update the references for your 5.09 application so that they point to the directory where you keep the 5.09 PC SDK installation (use the Browse tab in the Add Reference dialog ). The Reference Property Specific Version must explicitly be set to True.

 

The installation path is C:\Program Files\ABB Industrial IT\Robotics IT\Robot Application Builder.

Before you start the installation you may want to read chapter 2, Installation and Setup, in the User’s Guide which is available on the CD.

Also make sure that you have administrator permissions on the computer that you are using.

 

Hardware and software requirements

Software requirements 

 

Note! As far as we know Windows Vista should present no problem for Robot Application Builder users. Be aware however, that RAB 5.10 has not been fully tested on Windows Vista.

 

Note! The NetScan component of the PC SDK requires that either RobotStudio Online or Robot Communications Runtime is installed on your PC. The latter can be installed from C:\Program Files\ABB Industrial IT\Robotics IT\Robot Application Builder\redistributable\RobotCommunicationRuntime after you have installed RAB.

 

Note! The FlexPendant SDK requires VS 2005 Standard edition or better, whereas PC SDK application developers can manage with VS 2005 Express edition for C# or VB. No separate installation of .NET Framework 2.0 is needed.

 

Note!  Service Pack 1 or 2 for .NET Compact Framework 2.0 (.NET CF 2.0 SP1 or SP2) is required for setting up and using the Visual Studio debugger on the FlexPendant device. It can be downloaded from http://www.microsoft.com/downloads. We recommend SP2, as it will also enable the use of Remote Performance Monitor.

 

Note! Service Pack 1 for VS 2005 is not necessary, but if you have not installed it you need to do a little workaround to be able to use  debugging on the real FlexPendant. See “Degugging the FlexPendant device” in User’s Guide for detailed information.

Recommended hardware 

 

Supported FlexPendant device versions

SxTPU-1 (executes with .NET CF 2.0 and WinCE 4.2)

SxTPU-2 (executes with .NET CF 2.0 and WinCE 5.0)

IRC5 requirements

 

Running PC applications developed with RAB 5.10 requires RobotWare version 5.07 or higher on the IRC5 controller.

Running FlexPendant applications developed with RAB 5.10 requires RobotWare version 5.08 or higher on the IRC5 controller.

 

Compatibility

RAB 5.10 and 5.09 are compatible, there are no breaking changes.

FlexPendant debugging, however, involves a minor change, which is detailed in the section Compatibility FlexPendant SDK 5.10 vs 5.09 further down.

 

The RAB product is under development and compatibility between RobotWare releases cannot be absolutely guaranteed. The goal is to be 100% compatible and the development team tries hard to achieve this. Due to necessary upgrades of the Microsoft platforms, new demands or bug corrections, however, breaking changes sometimes cannot be avoided.

 

The introduction of the Design Support in the FlexPendant SDK 5.08 and the environment change from .NET CF 1.0 to .NET CF 2.0 enforced such breaking changes between FP SDK 5.07 and 5.08, requiring old FlexPendant applications to be modified and recompiled. Likewise, applications built with PC SDK 5.08 need some code changes to be moved to PC SDK 5.10. FP SDK 5.10, however, is fully compatible with FP SDK 5.09 and 5.08. There is more specific information on compatibility issues further down in this document.

 

Note! Robot Application Builder is under development and can be changed without any further notice. No guarantee is given for backward compatibility. Compatibility between RobotWare revisions is however guaranteed (RAB 5.10 will be compatible with RW 5.10.01 etc).

Compatibility with other products:

 

Licensing

1.      Robot Application Builder NO LONGER requires a design time license.

 

2.      You NO LONGER need to add a Licenses.licx file to your PC SDK development projects.

 

Note!  Earlier releases, e. g. FP SDK 5.08 and 5.09 still require a license.

PC SDK

 
Compatibility PC SDK 5.10 vs 5.09:

PC SDK 5.10 is compatible with PC SDK 5.09. There are no breaking changes.

 

Compatibility PC SDK 5.09 vs 5.08:

The following breaking changes exist between PC SDK 5.09 and PC SDK 5.08.

 

EventHandlers and events

 

For 5.09 the internal event architecture was completely redesigned.

 

  1. All previous event handlers are [Obsolete] and existing events are changed to the EventHandler<TEventArgs> generic delegate.

 

Ex:  This example shows how to change from the old to the new event handler type.

 

// This old line will fail…

myEventLog.MessageWritten += new MessageWrittenEventHandler( OnMessage );        

 

// and should be replaced like this… 

myEventLog.MessageWritten += new EventHandler<MessageWrittenEventArgs>( OnMessage ); 

 

//or preferably…

myEventLog.MessageWritten += OnMessage;

 

  1. Previous versions of PC SDK used the Windows Thread Pool internally to raise events. From 5.09 a single thread is used to dispatch all events. This reduces the risk of race conditions in client code. However, it makes it even more important to use the Control.BeginInvoke( ... )/Control.EndInvoke( ... ) pattern to avoid event starvation.  Additionally, we now raise all events internally prior to any external subscribers, as this will reduce the risk of race conditions between inner and external subscribers.

 

If your application is based on Control.Invoke( ... ) and not on Control.BeginInvoke( ... ) all events will be serialized, both internally and externally. However in previous PC SDK versions you may encounter "out-of-order" events and thread pool starvation through the use of Control.Invoke( ... ).

 

Some public events raise an initial event immediately when the subscription is activated; however this is not consistent or by design and should therefore be avoided. Later versions of PC SDK will remove all initial events.

 

  1. Mastership.Request( ... ) throws an InvalidOperationException if the user is not authenticated against the controller, previous versions raised an ArgumentException

 

Updates PC SDK

 

- 5.10 vs 5.09

 

New features:

New domains:

Messaging (Together with RAPID Message Queue this functionality represents a new, flexible way for a RAB application to interact with a RAPID task. It makes use of the IPC mechanism provided by Microsoft Windows OS for facilitating communications and data sharing between applications.)

Miscellaneous (new classes, events and methods):

High priority event subscriptions. (To speed up event notification you can set up subscription priorities. This applies to I/O signals and persistent RAPID data.)

            MechUnit.DriveModule (Gets the drive module of the mechanical unit.)

            Controller. ReleaseUnmanagedResources(Should be called periodically by the application developer to release unmanaged resources.)

- 5.09 vs 5.08

 

New features:

    Development environment:

            Improvement of PC SDK Reference. Method signatures in C# and Visual Basic.

 

Resource Monitoring:

To enable system wide monitoring of PC SDK based applications support for resource monitoring through Windows Performance Counters has been added. All counters are part of the ABB Robotics PC SDK category:

·        Connected Controllers - the number of connected controllers (simple counter).

·        Controller Events - the number of events raised by the controller (events / second).

·        Controller Requests - the number of controller calls (events / second).

 

These counters are available as global and process counters. The instance name of the process counters corresponds to the name of the current process. To start resource monitoring you must install the counters; this is most easily done through the InstallUtil.exe tool (administrator privileges required).

c:\> Installutil.exe ABB.PCSdk.install.dll

 

Except for the presence of the performance counter categories and counters the [HKEY_LOCAL_MACHINE\SOFTWARE\ABB\Robotics IT\Applications\Robot Application Builder] registry key is checked for the EnableLocalCounters value. If EnableLocalCounters is set to "True" the performance monitoring code will be enabled.

 

To uninstall the performance counters, apply the '/u' argument to installutil.exe.

c:\> Installutil.exe /u ABB.PCSdk.install.dll

 

The ABB.PCSdk.Install.dll uses standard .NET installer classes and therefore it can be included in any Windows Installer project as a custom action.

 

New domains:

ConfigurationDomain. This previously internal API is now public without any additional license requirement.

 

Miscellaneous (new classes, events and methods):

Rapid.Task MotionPointerChanged event

ConfigurationDomain.ConfigurationDatabase Read & Write (Direct access methods use to read / write the database)

ConfigurationDomain.ConfigurationDatabase Load (loads a configuration file into the database)

ConfigurationDomain.Domain.Reset (resets the domain to its default state)

Controllers.Controller RobotWareVersion property (fast access to Robot Ware version)

Controllers.Controller Connected property (can be used to find out if the controller object is connected to a IRB controller)

Controllers.Controller Restart (restarts the controller using the specified start mode)

RapidDomain.Task LoadModuleFromFile / LoadProgramFromFile (if loading succeeded but the program/module contained errors the method returns false, otherwise true)

Discovery.NetworkWatcher.IDisposable (the network watcher class now supports IDisposable)

 

- 5.08 vs 5.07

 

New features:

 

Development environment:

Visual Studio 2005, Express edition or better

New domains:

Controllers.UserAuthorizationManagement (contains types needed to manage UAS configuration on the robot controller)

Miscellaneous (new classes, events and methods):

Controllers.MainComputerServiceInfo (CpuInfo, BoardType, RamSize, Temperature)

Controllers.NetworkSettingsInfo (gets/sets the settings of a network adapter (NIC), e.g. IP address, gateway, subnet mask, Mac address)

FileSystemDomain.FileSystem GetStorageDevices (gets all available storage devices of the controller)

FileSystemDomain.StorageDeviceInfo (get/set DriveType, Enabled, Name, Rea­dOnly)

MotionDomain.MechanicalUnitServiceInterval (information about service intervals for a mechanical unit)

MotionDomain.MechanicalUnitServiceInfo (get/set ElapsedCalenderTimeSinceLast­Service, ElapsedProductionTime, ElapsedProductionTimeSinceLastService, Service­Interval etc)

MotionDomain.MechanicalUnitWarningLevel (all warning levels for the mechanical unit)

RapidDomain.DataParser & DataFormatter (improved ways of reading and writing RAPID data)

RapidDomain.DynamicArray

RapidDomain.TaskType (normal, static, semistatic)

EventLogDomain (event log messages matching the language setting of the control­ler)

 

FlexPendant SDK

Compatibility

 

Compatibility FlexPendant SDK 5.10 vs 5.09:

 

·           FlexPendant SDK 5.10 is compatible with FP SDK 5.09.

           

Debugging the real FlexPendant

Due to a Microsoft bug in Visual Studio 2005 Service Pack 1, RAB 5.08 and 5.09 users had to manually add a workaround to the hw_info.xml file to be able to use debugging on the real FlexPendant. In RAB 5.10, as most users will have installed VS2005 SP1, the workaround has become the default setting in the hw_info.xml file. This means, however, that if you have NOT installed VS2005 SP1 you need to manually remove this workaround. How to do this is detailed in Degugging the FlexPendant device” in User’s Guide.          

 

Compatibility FlexPendant SDK 5.09 vs 5.08:

 

·           FlexPendant SDK 5.09 is compatible with FP SDK 5.08.

 

Compatibility FlexPendant SDK 5.08 vs 5.07:

 

·           FlexPendant SDK 5.08 is NOT compatible with 5.07, due to changes necessary to implement the new Design Support for the FlexPendant controls. You need to rebuild your 5.07 application.

·           In order to correct a problem generated by the compliance tool (which is generating the gtpu.dll) the development team was forced to do a change. An internal parameter name created in the gtpu.dll may have changed in the gtpu.dll between the usage of the compliance tool 5.07 and 5.08. The internal parameter name is stored in a configuration file on the controller when setting up "Additional Test View" and "View on Operation Mode Change". This configuration file is part of the backup. For 5.08 SDK applications that have a change in the gtpu.dll and is part of the backup from 5.07 (have used it in either "Additional Test View" or in "View on Operation Mode Change") you must manually update these settings again in order to make them work.

 

Compatibility - FlexPendant SDK 5.07 vs 5.06:

 

·           ArrayData type has changed from struct to class. The type definition is also moved from ABB.Robotics.dll to ABB.Robotics.Controllers.dll.

Don't use FillFromString when you create an ArrayData (the method call is ignored).

·           GrantDemandRejectedException is replaced by MasterRejectException.

 

Compatibility - Compact Framework 2.0 vs Compact Framework 1.0

 

·           With the delivery of RobotWare 5.06 rev 4 and 5.07 a new FlexPendant hardware (SxTPU-2) and system software was introduced. The system software included updates of the operating system Windows CE from version 4.2 to 5.0 and the .NET CF from 1.0 to 2.0.

 

·           CF 2.0 is more sensitive for manipulating GUI controls on background threads. It is not allowed to access any method or property (except Invoke, BeginInvoke, CreateGraphics, InvokeRequired) of a GUI control from a background thread. If so a NotSupportedException will be thrown.

   

·           With the new SxTPU 2 hardware, the image driver was changed from 8 bits to 16 bits, which will increase memory needs for all images. To avoid an "Out Of Memory" condition, use Dispose when there is no longer need for an object.

 

·           To make sure that your FlexPendant SDK 5.06 and 5.07 applications work on the new FlexPendant you must make a test!

 

 

Updates FP SDK

-5.10 vs 5.09

 

New features:

 

            New domain:

SystemInfoDomain (New functionality for retrieving information about the active robot system, e.g. RobotWare version, system name, release and system paths, existing system options and installed additional options.

Types:

SystemInfo

Option

SystemOption

AdditionalOption

           

Miscellaneous (new classes, events, methods and properties):

                        Controller.IpAddress (IP address, gateway and subnet mask)

                        Controller.IsVirtual (Checks whether the targeted controller is real or virtual.)

                        Controller.CurrentUser (Returns the current logged on user.)

 

                        RapidDomain.Routine.TextRange (Enables launch of the Rapid Editor at a specified RAPID routine.)

RapidDomain.Module.PersInSync (Checks if the data of a Module object is still in sync with the real values in the controller.)

RapidDomain.Module.SyncPers (Updates the data of the Module object in case they are no longer in sync with the real values in the controller.)

 

                        RapidDomain.Task ProgramChanged event (triggered when a module is edited, loaded, added or removed)

                       

                        Changed behavior in the Controller API:  A System.ObjectDisposedException is thrown when an attempt is made to access an already disposed

                        object.

           

-5.09 vs 5.08

 

New features:

            Development environment:

                        Improvement of the FP SDK Reference. Method signatures in C# and Visual Basic.

            New domain:

                        ABB.Robotics.Controllers.ConfigurationDomain

            Miscellaneous:

                        ConfigurationDomain.ConfigurationDatabase Read & Write

                        Controller Configuration property (gets the ConfigurationDatabase of the controller)

                        RapidDomain.Task ExecutionState (Ready, Stopped, Started, Uninitialized)

                        RapidDomain.Task ExecutionStateChanged event

                        Tps.Windows.Forms.GTPUMessageBox CloseMessageBox

 

- 5.08 vs 5.07

 

New features:

            Development environment:

Design Support for FlexPendant GUI controls in Visual Studio 2005

                        Data binding

                        FlexPendant debugging

                        Resource Monitoring

                                   

            New domains:

ABB.Robotics.Diagnostics (Trace, Debug, GetDiskInfo, GetMemoryInfo etc)

ABB.Robotics.DataBinding (RapidDataBindingSource, SignalBindingSource)

 

            Miscellaneous (new classes, events and methods):

                        Tps.Windows.Forms.GroupBox

                        Tps.Windows.Forms.TextBox

                        Tps.Windows.Forms.Label

                        Tps.Windows.Forms FpRapidData, new constructor creating the control with the desired element of the RapidData array

                        RapidDomain.RecordDataType

                        Controller MastershipChanged event

                        RapidDomain.Task SetProgramPointer

                        RapidDomain.Module CreateRapidData

                        RapidDomain.Module CreateRoutine

                        FileSystemDomain.FileSystem Exists

                        FileSystemDomain.FileSystem GetEnvironmentVariableValue

 

- 5.07 vs 5.06

 

New features:

            Controller Backup & Restore

            Mastership

            FileSystemDomain StorageDevice

            SignalCollection & SignalType & IOFilterType

            MechanicalUnit Domain & Jogging

            RapidDomain.Module.Name set + get

            RapidDomain.Module Create and Delete RapidData

            RapidDomain ProgramPointer

            RapidDomain Rapid Start and Stop program execution

            ModPos

            Possibility to launch Standard Views as RapidEditor, Jogging, RapidData,

BackUpRestore, LogOff

            Possibility to launch other assemblies

            TpsIcon

            Arrays, size and dimensions - now possible to retrieve large arrays element by element

 

Known limitations

Known limitations in this release

 

Example:

Do not write:     imageList.Dispose();

            Write:                imageList = null;

 

Example:

this.textBox1 = new System.Windows.Forms.TextBox();

this.textBox1.Font = TpsFont.Font12b;

Note! Make the font change the last thing you do, as the VS Designer will automatically revert to System.Drawing.Font when another control is added.

Known limitations in previous releases

 

The problem may occur if the PC SDK application is running in a Single Threaded Apartment (STA). The Dispose() call will then dispose of managed objects, but unmanaged resources (created internally by the PC SDK) will remain and will not be released by the Garbage collector, as they must be released in the same context as created by the application. A solution, a new method that should be called periodically by the application developer, has been delivered to revisions for 5.07 and 5.09 and for the 5.10 release. If you encounter leakage problems with a PC SDK application, we recommend that you upgrade it and implement periodical calls to ReleaseUnmanangedResources() in the Controller class.

 

Note! The error appears on the Virtual FlexPendant only.

 

In 5.09 and 5.08 VB programmers need to modify the method themselves to ensure that everything is disposed of properly. The way to do this is to change the lines:

 

If disposing AndAlso components IsNot Nothing Then

            components.Dispose()

End If

           

            to:

            If Not IsDisposed Then

            Try

                If disposing Then

                  //insert clean-up code here

               

    End If

    If components IsNot Nothing

                   components.Dispose()

    End If

            Finally

                MyBase.Dispose(disposing)

            End Try

        End If

 

·        Due to a Microsoft bug, a VB application falsely required a reference to Dcl.Rapid when the class RapidDataType was used. This has been resolved in RAB 5.10.

 

Note! The error appears on the Virtual FlexPendant only. It should not be a problem in RW 5.09.

 

            - ABB.Robotics.Controllers.MotionDomain.MotionSystem

            - ABB.Robotics.Controllers.RapidDomain.AliasDataType

            - ABB.Robotics.Controllers.RapidDomain.AtomicDataType

            - ABB.Robotics.Controllers.RapidDomain.RapidDataType

            - ABB.Robotics.Controllers.RapidDomain.RecordDataType

            - ABB.Robotics.Controllers.RapidDomain.RapidSymbol

Note! In FlexPendant SDK 5.09 and 5.10 these types implement the IDisposable interface.

Product Support

If you need product support please turn to your local ABB office or visit the User Forum referred to in the introduction.