AeroScript Equivalents of AeroBasic Commands for the A3200

If you are not new to Aerotech controllers, you might want to convert AeroBasic programs to AeroScript. The tables that follow list all the AeroBasic commands for A3200 drives and tell you how to get the same or similar functionality in AeroScript. Some AeroBasic commands were removed and some are currently not available, but will be supported in a future release of Automation1.

 

AeroBasic Command AeroScript Equivalent

$AO

Replaced by AnalogOutputGet() and AnalogOutputSet().

$AI

Replaced by AnalogInputGet().

$DO

Replaced by DigitalOutputGet() and DigitalOutputSet().

$DI

Replaced by DigitalInputGet().

$BO

Replaced by VirtualBinaryOutputGet() and VirtualBinaryOutputSet().

$BI

Replaced by VirtualBinaryInputGet() and VirtualBinaryInputSet().

$RO

Replaced by VirtualRegisterOutputGet() and VirtualRegisterOutputSet().

$RI

Replaced by VirtualRegisterInputGet() and VirtualRegisterInputSet().

$WO

Removed. To read output bits, use DigitalOutputGet(). To retrieve the outputs as a 32-bit bitmask, use StatusGetAxisItem() with AxisStatusItem.DigitalOutput. To set outputs as individual bits, use DigitalOutputSet().

$WI

Removed. To read individual input bits, use DigitalInputGet(). To retrieve the inputs as a 32-bit bitmask, use StatusGetAxisItem() with AxisStatusItem.DigitalInput.

$PORT

Removed. This command was used to set and get the bidirectional I/O on the Nservo. Automation1 drives do not have bidirectional I/O.

PORT

Removed. This command was used to configure the bidirectional I/O on the Npaq, Nservo, and Nstep. Automation1 drives do not have bidirectional I/O.

 

AeroBasic Command AeroScript Equivalent

APPLYDEFAULTS

Removed. This AeroBasic command changed all axis or task settings back to the values stored in the Default axis or task parameters. Default parameters have names that start with Default, such as DefaultCoordinatedRampRate. You can use Default parameters to configure the default motion settings that will have an effect on a controller after you reset that controller. Thus, Aerotech recommends that you use Automation1 Studio to change the values of Default parameters. Do not change the values of these parameters from your AeroScript program.

In AeroScript, you can do functionality that is almost the same as the APPLYDEFAULTS command on the A3200. During runtime, when the controller is running, you can call the ParameterGetAxisValue() or ParameterGetTaskValue() function to get the active Default parameter value of a specified axis or task. Then you can call a corresponding motion configuration function in AeroScript to set the active value at runtime.

For example, to change the active value on the controller to the value stored in the DefaultAxisRampRate Parameter, you must do the steps that follow. First, use the ParameterGetAxisValue() function to retrieve the value of the DefaultAxisRampRate Parameter. Then call the SetupAxisRampValue() function in AeroScript to set the active value that the motion will use.

For information about which configuration functions correspond to the Default parameter settings, see Motion Setup Functions.

GETPARMSTRING

Replaced by ParameterGetAxisStringValue(). See Parameter Functions.

Getting parameters by name

(For example - $abortRate = AbortDecelRate.X)

Replaced by ParameterGetAxisValue(), ParameterGetTaskValue(), and ParameterGetSystemValue(). See Parameter Functions.

READPARM

You cannot read parameters from a configuration file on the controller. Use Machine Setup to examine the parameter configuration of the controller. To read the active value of a parameter during runtime, use the ParameterGet*() functions. See Parameter Functions.

READPARMSTRING

You cannot read parameters from a configuration file on the controller. Use Machine Setup to examine the parameter configuration of the controller. To read the active value of a parameter during runtime, use the ParameterGet*() functions. See Parameter Functions.

SETCLAMPI

Removed. AeroScript does not have an equivalent. To set the maximum current clamp, see MaxCurrentClamp Parameter.

SETPARM

Replaced by ParameterSetAxisValue() and ParameterSetAxisStringValue(). See Parameter Functions.

Setting parameters by name

(For example - MotionUpdateRate = 1)

Replaced by ParameterSetAxisValue(), ParameterSetTaskValue(), and ParameterSetSystemValue(). See Parameter Functions.

WRITEPARM

You cannot write parameters to a configuration file on the controller. Use Machine Setup to change the parameter configuration of the controller. To change the active value of a parameter during runtime, use the ParameterSet*() functions. See Parameter Functions.

WRITEPARMSTRING

You cannot write parameters to a configuration file on the controller. Use Machine Setup to change the parameter configuration of the controller. To change the active value of a parameter during runtime, use the ParameterSet*() functions. See Parameter Functions.

 

AeroBasic Command AeroScript Equivalent

DVAR

Replaced by var keyword. You can declare single variables and arrays of variables. Each array can have a maximum of three dimensions. If you do not specify the variable type, then the variable uses the default type. The default variable type is real. Refer to the example that follows:

GOTO

Renamed to goto.

CALL/CLS

Removed. You can declare functions using the function keyword and then call them by name.

FARCALL

Removed. You can use libraries to package code and make it usable by other programs. See Libraries example program.

FARGOTO

Removed. You can use libraries to package code and make it usable by other programs. See Libraries example program.

ONGOSUB

Replaced by the onerror() statement. See Error Handling example program.

ON command

Removed. As an alternative, you can write a dedicated AeroScript program that monitors your conditions. Refer to the example that follows:

RETURN

Renamed to return.

IF

Renamed to if.

WHILE

Renamed to while.

FOR

Renamed to for.

REPEAT

Renamed to repeat.

NEXT

Replaced by end keyword.

EXECCANNEDFUNCTION

Removed. For an equivalent functionality, you can use the sync keyword to do a synchronized function call.

SETCANNEDFUNCTION

Removed. For an equivalent functionality, you can use the sync keyword to do a synchronized function call.

DFS

Replaced by function keyword.

ENDIF/ENDRPT/ENDWHILE/ENDDFS

Replaced by end keyword.

SYNCCALL

Replaced by sync keyword. The sync keyword does a synchronized function call.

PUSHMODES

Removed. As an alternative, you can write AeroScript functions or AeroScript libraries that save a copy of the modes or settings of a task and restore them. For information about how to retrieve task settings that you want to restore, refer to the StatusGetTaskItem() function in Controller Status Functions. To restore a setting, you can issue the corresponding AeroScript function that enables or disables the setting.

POPMODES

Removed. Refer to the PUSHMODES section of this table for more information.

 

AeroBasic Command AeroScript Equivalent

PROGRAM START

Renamed to ProgramStart(). See Task and Program Functions.

PROGRAM STOP

Renamed to ProgramStop(). See Task and Program Functions.

PROGRAM PAUSE

Renamed to ProgramPause(). See Task and Program Functions.

PROGRAM STEPINTO

Replaced with ProgramStepInto(), ProgramStepOver(), and ProgramStepOut(). See Task and Program Functions.

PROGRAM STEPOVER

Replaced with ProgramStepInto(), ProgramStepOver(), and ProgramStepOut(). See Task and Program Functions.

PROGRAM ASSOCIATE

Removed. To load a program from the controller file system onto a task, use the ProgramLoad() function. See Task and Program Functions.

PROGRAM LOAD

Replaced with the ProgramLoad() function. This function operates only on a compiled version of an AeroScript program. The AeroBasic command, PROGRAM LOAD, did the operations that follow: Compiled an AeroBasic program from the Windows file system, loaded the program into controller memory, and associated it with a task.

In Automation1, you cannot compile programs from an AeroScript command. But you can do the options that follow:

  • In Studio or the .NET or C API, you can compile programs and put the compiled AeroScript programs into the controller file system. Then in AeroScript, you can use the Task and Program Functions to load or run those programs.

  • Use Program Automation to load AeroScript programs into memory when the controller resets.

  • Get the AeroScript code that you want to use and put it into an AeroScript library. Then use Program Automation to load the AeroScript libraries into memory when the controller resets so that the library functions are available to all tasks.

PROGRAM RUN

Replaced with the ProgramRun() function. This function operates only on a compiled version of an AeroScript program. The AeroBasic command, PROGRAM RUN, did the operations that follow: Compiled an AeroBasic program from the Windows file system, loaded the program into controller memory, and ran the program on a task.

In Automation1, you cannot compile programs from an AeroScript command. But you can do the options that follow:

  • In Studio or the .NET or C API, you can compile programs and put the compiled AeroScript programs into the controller file system. Then in AeroScript, you can use the Task and Program Functions to load or run those programs.

  • Use Program Automation to load AeroScript programs into memory when the controller resets.

  • Get the AeroScript code that you want to use and put it into an AeroScript library. Then use Program Automation to load the AeroScript libraries into memory when the controller resets so that the library functions are available to all tasks.

PROGRAM BUFFEREDRUN

In Automation1, Command Queue has almost the same functionality. Refer to the Executing Custom AeroScript From a File section in the Command Queue in the .NET API or the Command Queue in the C API page to learn how to run a large AeroScript program using the Command Queue.

ADDPROGRAM

Removed. This AeroBasic command compiled an AeroBasic program from the Windows file system and loaded it into controller memory.

In Automation1, you cannot compile programs from an AeroScript command. But you can do the options that follow:

  • In Studio or the .NET or C API, you can compile programs and put the compiled AeroScript programs into the controller file system. Then in AeroScript, you can use the Task and Program Functions to load or run those programs.

  • Use Program Automation to load AeroScript programs into memory when the controller resets.

  • Get the AeroScript code that you want to use and put it into an AeroScript library. Then use Program Automation to load the AeroScript libraries into memory when the controller resets so that the library functions are available to all tasks.

REMOVEPROGRAM

Removed. In Studio or the .NET or C API, you can remove compiled programs from the controller file system. When you reset the controller, it clears all the AeroScript programs that were previously loaded into memory.

END PROGRAM

Replaced with AeroScript equivalents. You can use the program and end keywords to define your program in AeroScript. If you want your program to exit early, you can issue the ProgramExit() function.

CRITICAL START

Replaced with the CriticalSectionStart() function.

CRITICAL END

Replaced with the CriticalSectionEnd() and CriticalSectionEndAll() functions. See Task and Program Functions for more information.

CHECKPASSWORD

Removed.

 

AeroBasic Command AeroScript Equivalent

RAPID

Renamed to MoveRapid(). You can also use G0 syntax.

LINEAR

Renamed to MoveLinear(). You can also use G1 syntax.

CW

Renamed to MoveCw(). You can also use G2 syntax.

CCW

Renamed to MoveCcw(). You can also use G3 syntax.

PT

Renamed to MovePt().

PVT

Renamed to MovePvt().

MOVEABS

Renamed to MoveAbsolute().

MOVEINC

Renamed to MoveIncremental().

BEZIER

Currently not available. If you generate your motion programs with CADFusion or a different CAD/CAM tool that is compatible with the Automation1 controller, you can configure CADFusion or the CAD/CAM tool to approximate BEZIER curves. To do this, you must use the MoveLinear(), MoveCw(), and MoveCcw() functions.

FREERUN

Renamed to MoveFreerun().

MOVETOLIM

Renamed to MoveToLimitCcw() and MoveToLimitCw().

MOVEOUTLIM

Renamed to MoveOutOfLimit().

OSCILLATE

Removed. As an alternative, you can generate your own oscillation profile by using AeroScript math functions to calculate the positions and velocities. Then issue the MovePvt() function in a while, for, or repeat loop. See the PVT Motion AeroScript example program.

 

AeroBasic Command AeroScript Equivalent

DWELL

Renamed to Dwell().

MOVEDELAY

Renamed to MoveDelay().

WAIT (conditional/time)

Replaced by wait keyword.

WAIT MOVEDONE

Replaced by WaitForMotionDone().

WAIT INPOS

Replaced by WaitForInPosition().

 

AeroBasic Command AeroScript Equivalent

BACKLASH ON/OFF

Removed. You can change the BacklashDistance Parameter to get the same functionality. Set the parameter to 0 to turn the feature off for that axis.

FORCEDDECEL

Removed. Available as G9.

INSTANTACCEL

Removed. Available as G8.

RAMP commands

See Motion Setup Functions.

SCURVE

 

AeroBasic Command AeroScript Equivalent

ABSOLUTE

Replaced by SetupTaskTargetMode(). Pass TargetMode.Absolute or TargetMode.Incremental.

INCREMENTAL

MINUTES

Replaced by SetupTaskTimeUnits(). Pass TimeUnits.Seconds or TimeUnits.Minutes.

SECONDS

OVERRIDEASYNC ON/OFF

Removed. Available as G120/G121.

VELOCITY ON

Renamed to VelocityBlendingOn().

VELOCITY OFF

Renamed to VelocityBlendingOff().

 

AeroBasic Command AeroScript Equivalent

ENGLISH

Removed. Available as G70. As an alternative, you can use the SetupTaskDistanceUnits() function to set the distance units to primary or secondary mode.

METRIC

Removed. Available as G71. As an alternative, you can use the SetupTaskDistanceUnits() function to set the distance units to primary or secondary mode.

PRIMARY

Replaced by SetupTaskDistanceUnits(). Use DistanceUnits.Primary.

SECONDARY

Replaced by SetupTaskDistanceUnits(). Use DistanceUnits.Secondary.

 

AeroBasic Command AeroScript Equivalent

CALLBACK

Renamed to Callback().

CALLDLL

Removed. This AeroBasic command let you call into a Windows DLL from the controller.

Because of security precautions with Automation1, you cannot access the Windows file system or execute Windows DLL and EXE files from AeroScript. But you can do the options that follow:

  • As an alternative to sequencing all controller and Windows operations from AeroScript, write a .NET or C application that sequences the necessary DLL or EXE functionality in Windows and uses the Automation1 .NET or C API to communicate with the controller.

  • If you want to continue sequencing operations from AeroScript, write a .NET or C application that registers for custom callbacks. Then in response to the custom callback, write code in your .NET or C application that triggers all the necessary Windows-side operations. From your AeroScript program, issue the Callback() function in all the locations where you previously would use OPENDLL, CALLDLL, CLOSEDLL, EXE, or EXEMODAL.

CLOSEDLL

Removed. This AeroBasic command let you close a Windows DLL file that was previously opened with the OPENDLL AeroBasic command.

COMMINIT

Removed.

COMMSETTIMEOUT

Removed.

DATACOLLECT ITEM

Replaced by DataCollectionAddAxisSignal(), DataCollectionAddTaskSignal(), and DataCollectionAddSystemSignal().

DATACOLLECT ITEM RESET

Renamed to DataCollectionReset().

DATACOLLECT START

Renamed to DataCollectionStart().

DATACOLLECT STOP

Renamed to DataCollectionStop().

ERRORDECODE

Removed.

EXE

Removed. This AeroBasic command let you execute a Windows EXE file from the controller.

Because of security precautions with Automation1, you cannot access the Windows file system or execute Windows DLL and EXE files from AeroScript. But you can do the options that follow:

  • As an alternative to sequencing all controller and Windows operations from AeroScript, write a .NET or C application that sequences the necessary DLL or EXE functionality in Windows and uses the Automation1 .NET or C API to communicate with the controller.

  • If you want to continue sequencing operations from AeroScript, write a .NET or C application that registers for custom callbacks. Then in response to the custom callback, write code in your .NET or C application that triggers all the necessary Windows-side operations. From your AeroScript program, issue the Callback() function in all the locations where you previously would use OPENDLL, CALLDLL, CLOSEDLL, EXE, or EXEMODAL.

EXEMODAL

Removed. This AeroBasic command let you execute a Windows EXE file from the controller.

Because of security precautions with Automation1, you cannot access the Windows file system or execute Windows DLL and EXE files from AeroScript. But you can do the options that follow:

  • As an alternative to sequencing all controller and Windows operations from AeroScript, write a .NET or C application that sequences the necessary DLL or EXE functionality in Windows and uses the Automation1 .NET or C API to communicate with the controller.

  • If you want to continue sequencing operations from AeroScript, write a .NET or C application that registers for custom callbacks. Then in response to the custom callback, write code in your .NET or C application that triggers all the necessary Windows-side operations. From your AeroScript program, issue the Callback() function in all the locations where you previously would use OPENDLL, CALLDLL, CLOSEDLL, EXE, or EXEMODAL.

FILECLOSE

Renamed to FileClose().

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILEEXISTS

Renamed to DirectoryFileExists().

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILEOPEN

Renamed to FileOpenBinary() and FileOpenText().

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILEREAD

Replaced by FileTextReadLine(), FileTextReadString(), and FileBinaryRead*() functions.

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILEREADARRAYBINARY

Replaced by the FileBinaryRead*Array() functions.

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILEREADINI

Replaced by FileIniReadValue().

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILESIZE

Renamed to FileSize().

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILEWRITE

Replaced by the FileTextWriteString() and FileBinaryWrite* functions. To specify a new-line character to a text string, append "\n" to the text string before you call FileTextWriteString().

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILEWRITEARRAY

Removed. You can get functionality that is almost the same by calling FileTextWriteString() in a while, for, or repeat loop.

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILEWRITEARRAYBINARY

Replaced by FileBinaryWrite*Array().

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILEWRITEINI

Replaced by FileIniWriteValue().

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

FILEWRITENOTERM

Removed. To prevent a new-line character from being written to file, make sure to not specify "\n" in your text strings.

In Automation1, the File and Directory Functions operate directly on the controller file system. You cannot specify Windows directories from within AeroScript. To configure the controller file system, use the Controller Files module of the Configure workspace from within Studio.

IMMEDIATE EXECUTE

Removed. This command let you compile and execute an immediate command on a task by passing the AeroBasic command as a text string. But you cannot compile text strings in AeroScript. To do functionality that is almost the same, specify a synchronized function in your AeroScript program or in an AeroScript library. Then use the sync keyword to execute a synchronized function call on a different task.

LOADCALFILE

Replaced by CalibrationLoad().

NETWORK ACCEPT

Renamed to SocketTcpServerAccept().

NETWORK AUTOFLUSH

Removed. In Automation1, SocketWrite*() functions automatically flush all data that you write. See Socket Functions.

NETWORK CLOSE

Renamed to SocketClose().

NETWORK CONNECT

Renamed to SocketTcpClientCreate().

NETWORK FLUSH

Removed. In Automation1, SocketWrite*() functions automatically flush all data that you write. See Socket Functions.

NETWORK LISTEN

Renamed to SocketTcpServerCreate().

NETWORK PENDING CLIENT

Renamed to SocketTcpServerIsClientPending().

NETWORK PENDING OCTETS

Renamed to SocketGetReadBytesAvailable().

NETWORK READ

Replaced by SocketRead*().

NETWORK TIMEOUT

Renamed to SocketSetDataReadTimeout() and SocketSetDataWriteTimeout().

NETWORK WRITE

Replaced by SocketWrite*().

OPENDLL

Removed. This AeroBasic command let you open a Windows DLL file.

Because of security precautions with Automation1, you cannot access the Windows file system or execute Windows DLL and EXE files from AeroScript. But you can do the options that follow:

  • As an alternative to sequencing all controller and Windows operations from AeroScript, write a .NET or C application that sequences the necessary DLL or EXE functionality in Windows and uses the Automation1 .NET or C API to communicate with the controller.

  • If you want to continue sequencing operations from AeroScript, write a .NET or C application that registers for custom callbacks. Then in response to the custom callback, write code in your .NET or C application that triggers all the necessary Windows-side operations. From your AeroScript program, issue the Callback() function in all the locations where you previously would use OPENDLL, CALLDLL, CLOSEDLL, EXE, or EXEMODAL.

READCONFIGSTRING

Removed. Controller configurations, such as parameter and calibration files, are stored internally on the controller at this time. They are not available for you to access in the Windows file system. To save a copy of the active controller configuration, download a Machine Controller Definition file (MCD file) from Studio or the .NET API. You can also overwrite the configuration on the controller. To overwrite the configuration, find an MCD file that is stored in Windows. Then upload it to the controller from Studio or the .NET API.

In AeroScript, you can see the active values of all the parameters. See Parameter Functions.

In AeroScript, you can see the active state of calibration or power correction on an axis:

  • 1D or 2D axis calibration - Use the StatusGetAxisItem() function to retrieve AxisStatusItem.AxisStatus. Then make sure that you have the AxisStatus.CalibrationEnabled1D or AxisStatus.CalibrationEnabled2D bit.

  • Galvo 2D Axis Calibration - Use the StatusGetAxisItem() function to retrieve AxisStatusItem.DriveStatus. Then make sure that you have the DriveStatus.GalvoCalibrationEnabled bit.

  • Galvo Power Correction - Use the StatusGetAxisItem() function to retrieve AxisStatusItem.DriveStatus. Then make sure that you have the DriveStatus.GalvoPowerCorrection bit.

SCOPELTTRIG

You can trigger a Frequency Response directly from Studio. See Application Frequency Response Functions.

SCOPEOPEN

Removed. This AeroBasic command launched the Digital Scope application. In Automation1, you can open Studio from Windows and then use the AppDataCollectionSnapshot() and AppDataCollectionStop() functions to trigger data collection.

 

AeroBasic Command AeroScript Equivalent

ABS

See Math Functions.

FRAC

INT

EXP

LOG

SQRT

ACOS

ASIN

ATAN2

ATAN

COS

SIN

TAN

CEIL

FLOOR

ROUND

INDEXTOMASK

Removed. You can get this functionality by left-shifting 0x1 by the index:

function IndexToMask($index as integer) as integer
        return 0x1 << $index
end

MASKTOINDEX

Removed. You can get this functionality by right-shifting the mask to compute the index:

function MaskToIndex($mask as integer) as integer 
       var $index as integer = -1
       var $testMask = $mask

       while ($testMask != 0)
              $index = $index + 1
              $testMask = $testMask >> 1
       end
       return $index

end

MASKTODBL

Removed. To change an axis variable to its integer whole number that represents the axis index, use the AxisToInteger() function.

RAND

See Utility and Conversion Functions.

COUNTSTOUNITS

UNITSTOCOUNTS

TIMER

 

AeroBasic Command AeroScript Equivalent

MAKESTRING

See String Functions.

DBLTOSTR

STRCHAR

STRCMP

STRFIND

STRLEN

STRLWR

STRMID

STRTOASCII

STRTODBL

STRUPR

 

AeroBasic Command AeroScript Equivalent

ROUNDING AXES

Renamed to CornerRoundingSetAxes().

ROUNDING ON

Renamed to CornerRoundingOn().

ROUNDING OFF

Renamed to CornerRoundingOff().

ROUNDING TOLERANCE

Renamed to CornerRoundingSetTolerance().

MIRROR

See Transformation Functions.

ROTATION

TRANSFORM POSITION RESET

QCOMMAND READ

QCOMMAND WRITE

QCOMMAND RESET

 

AeroBasic Command AeroScript Equivalent

ABORT

Renamed to Abort().

ANALOG CONTROL ON/OFF

Currently not available. You can do functionality that is almost the same by reading an analog input signal at 1 kHz from AeroScript. Then you can generate motion each millisecond by using the MovePvt() or MovePt() function with a 1 millisecond update time. When you use this method, an approximate 10 milliseconds of latency occurs between analog input changes and the corresponding position that is sent to the servo loop. Make sure that the latency does not prevent you from using this method correctly based on your project requirements.

AUTOFOCUS

Replaced by AutofocusOn() and AutofocusOff().

BLOCKMOTION

Removed. To prevent motion from entering a dangerous area, you can use safe zones. See Safe Zone Functions.

BRAKE

Replaced by DriveBrakeOn() and DriveBrakeOff().

CAMSYNC

Replaced by CammingOn() and CammingOff().

DISABLE

Renamed to Disable().

ENABLE

Renamed to Enable().

GEAR MASTERCONFIG

Renamed to GearingSetLeaderAxis().

GEAR ON

Renamed to GearingOn().

GEAR OFF

Renamed to GearingOff().

GEAR RATIO

Renamed to GearingSetRatio().

HANDWHEEL ON

Removed. You can use Gearing functions to get an equivalent functionality. See Camming and Gearing Functions.

HANDWHEEL OFF

Removed. You can use Gearing functions to get an equivalent functionality. See Camming and Gearing Functions.

HOME

Renamed to Home().

HOME CONDITIONAL

Removed. To get this functionality, write an AeroScript function that homes axes that are not already homed.

function HomeConditional($axes[] as axis)
	CriticalSectionStart()
	foreach var $axis in $axes
		if (StatusGetAxisItem($axis, AxisStatusItem.AxisStatus, AxisStatus.Homed) != AxisStatus.Homed)
			HomeAsync($axis)
		end
	end
	CriticalSectionEnd()
	WaitForMotionDone($axes)
end

HOMEASYNC

Renamed to HomeAsync().

JOYSTICK 2D/3D AXISGROUP

Renamed to JoystickAxisGroupAdd().

JOYSTICK ON

Renamed to JoystickRun().

JOYSTICK RESET

Renamed to JoystickAxisGroupRemoveAll().

SLAVEADVANCE

Removed. This AeroBasic command tried to compensate for the 5 - 10 millisecond communication delay that occurred between the leader axis and follower axis when the GearingSource or CammingSource is set to PositionFeedback or AuxiliaryFeedback. You can prevent the communication delay by setting the GearingSource or CammingSource to PositionCommand.

SLAVEOFFSET

Replaced with the $tableOffset argument to the CammingLoadTableFromArray() function.

TARGETTRACK

Removed. As an alternative, you can issue the MoveAbsolute() function. This function does target tracking by changing the endpoint of a MoveAbsolute() function that the controller is currently executing.

 

AeroBasic Command AeroScript Equivalent

GALVO LASEROVERRIDE ON/OFF/AUTO

Replaced by GalvoLaserOutput().

GALVO WOBBLE CONFIGURE

Renamed to GalvoWobbleSetConfiguration().

GALVO WOBBLE ON/OFF

Replaced by GalvoWobbleOn() and GalvoWobbleOff().

GALVO LASERMODE

Renamed to GalvoConfigureLaserMode().

GALVO LASERONDELAY

Replaced by GalvoConfigureLaserDelays().

GALVO LASEROFFDELAY

Replaced by GalvoConfigureLaserDelays().

GALVO LASEROUTPUTPERIOD

Renamed to GalvoConfigureLaserOutputPeriod().

GALVO LASER1PULSEWIDTH

Renamed to GalvoConfigureLaser1PulseWidth().

GALVO LASER2PULSEWIDTH

Renamed to GalvoConfigureLaser2PulseWidth().

GALVO STANDBYPERIOD

Renamed to GalvoConfigureStandbyPeriod().

GALVO STANDBYPULSEWIDTH

Renamed to GalvoConfigureStandbyPulseWidth().

GALVO SUPPRESSIONPULSEWIDTH

Renamed to GalvoConfigureSuppressionPulseWidth().

GALVO ENCODERSCALEFACTOR

Renamed to GalvoEncoderScaleFactorSet().

GALVO PROJECTION ON/OFF

Replaced by GalvoProjectionOn() and GalvoProjectionOff().

GALVO PROJECTION COEFFICIENTS

Renamed to GalvoProjectionSetCoefficients().

GALVO ROTATION

Renamed to GalvoRotationSet().

 

AeroBasic Command AeroScript Equivalent

IFOV AXISPAIR

Renamed to IfovSetAxisPairs().

IFOV ON/OFF

Replaced by IfovOn() and IfovOff().

IFOV SIZE

Renamed to IfovSetSize().

IFOV SYNCAXES

Renamed to IfovSetSyncAxes().

IFOV TIME

Renamed to IfovSetTime().

IFOV TRACKINGACCEL

Renamed to IfovSetTrackingAcceleration().

IFOV TRACKINGSPEED

Renamed to IfovSetTrackingSpeed().

 

AeroBasic Command AeroScript Equivalent

PSOANALOG ON/OFF/ARRAY/TRIGGER/OUTPUT

The PSO API was reorganized. See More PSO Functions.

PSOCONTROL ON

PSOCONTROL OFF

PSOCONTROL ARM [PWM/GALVO]

PSOCONTROL FIRE [CONTINUOUS]

PSOCONTROL PULSE DISABLE

PSOCONTROL RESET

PSODISTANCE* commands

PSOHALT ENABLE/DISABLE/LATCH

PSOOUTPUT* commands

PSOPULSE* commands

PSOTRACK SCALE

PSOTRACK DIRECTION/INPUT/RESET

PSOWINDOW ON/OFF/RANGE/LOAD

PSOWINDOW CONTROL/INPUT/RESET

POSOFFSET SET

Renamed to PositionOffsetSet().

POSOFFSET CLEAR

Renamed to PositionOffsetClear().

ARRAY WRITE/ARRAY READ [FAST]

Replaced by DriveArrayWrite(), DriveArrayRead(), and DriveArrayReadFast().

DATAACQ

Replaced by Drive Data Capture. See the Drive Data Capture section of Device Functions for more information.

 

AeroBasic Command AeroScript Equivalent

EXECUTEMODE

Removed. To operate in step mode, you can use Studio to step through your AeroScript program. As an alternative, you can use the ProgramStep*() functions.

FEEDHOLD

Replaced by TaskFeedholdOn() and TaskFeedholdOff().

MFO

Renamed to TaskMfo().

MSO

Renamed to TaskMso().

INTERRUPTMOTION ON/OFF

Replaced by TaskInterruptMotionOn() and TaskInterruptMotionOff().

INTERRUPTMOTION RETURNTYPE

Replaced by TaskInterruptMotionOff().

RETRACE ON/OFF

Replaced by TaskRetraceOn() and TaskRetraceOff().

TRACE END

Renamed to TaskRetraceClearHistory().

 

AeroBasic Command AeroScript Equivalent

ACKNOWLEDGEALL

Renamed to AcknowledgeAll().

FAULTACK

Renamed to FaultAcknowledge().

AXISFAULT

Renamed to FaultThrow().

TASKERROR

Renamed to TaskSetError().

TASKWARNING

Renamed to TaskSetWarning().

USERTASKERROR

Currently not available. As an alternative, you can use the AppMessageDisplay() function and use MessageSeverity.Error for the severity. The message that you specify shows in Studio but does not cause a task error and does not stop the task from executing. See Application Message Functions for more information. If you must stop the program, you can use this method with the ProgramExit() function.

USERTASKWARNING

Currently not available. As an alternative, you can use the AppMessageDisplay() function and use MessageSeverity.Information or MessageSeverity.Warning for the severity. The message that you specify shows in Studio but does not cause a task warning. See Application Message Functions for more information.

 

AeroBasic Command AeroScript Equivalent

MSGSHOW

Removed.

MSGHIDE

Removed.

MSGLAMP

Removed.

MSGDISPLAY

Replaced by the AppMessageDisplay() function.

MSGCLEAR

Replaced by the AppMessageDisplayDismiss() function.

MSGFILESELECT

Replaced by the AppMessageFileOpen() and AppMessageFileSave() functions.

MSGINPUT

Renamed to AppMessageInputBox().

MSGBOX

Renamed to AppMessageBox().

MSGMENU

Renamed to AppMessageMenu().

 

AeroBasic Command AeroScript Equivalent

ANALOG ON/OFF

Replaced by AnalogOutputConfigureVectorTrackingMode().

ANALOG SET

Replaced by AnalogOutputConfigureVectorTrackingMode().

ANALOG TIME

Removed.

ANALOG TRACK

Replaced by AnalogOutputConfigureAxisTrackingMode().

AXCALPARM

Removed. AeroScript does not have an equivalent. For information about how to use temperature compensation, see ThermoComp™ Functions.

BARCODE DATAMATRIX

Removed. If you generate your motion program with CADFusion or a different CAD/CAM tool that is compatible with the Automation1 controller, you can also use these tools to generate barcodes.

CALENABLE/CALDISABLE

Removed. To enable or disable 1D Axis Calibration, 2D Axis Calibration, Galvo 2D Axis Calibration, or Galvo Power Correction, use the Calibration module of the Configure workspace from within Studio.

CURRENTCOMMAND

Removed.

DRIVEINFO

Renamed to DriveGetItem().

ENCODER OUT ON/OFF/DIVIDER

Replaced by DriveEncoderOutputConfigureInput(), DriveEncoderOutputOn(), DriveEncoderOutputOff(), and DriveEncoderOutputConfigureDivider().

FIBER commands

Currently not available. As an alternative, you can do Fiber Alignment routines in AeroScript by reading an analog input signal and issuing the necessary MoveLinear(), MoveCw(), and MoveCcw() moves in velocity blending mode (which is VelocityBlendingOn()).

FREECAMTABLE

Renamed to CammingFreeTable().

LOADCAMVAR

Renamed to CammingLoadTableFromArray().

LOADCAMTABLE

Removed. At this time, the controller does not specify a camming table file format. As an alternative, you can use the File* functions to read from a file that contains the camming data and then pass that data to the CammingLoadTableFromArray() function.

LOOKAHEAD FAST/NORMAL

Removed. This AeroBasic command was removed because when lookahead is active, the controller always operates in a fast lookahead mode.

MC

Renamed to TuningSetMotorCurrent().

MSET

Renamed to TuningSetMotorAngle().

INITCOMMUTATION

Renamed to TuningCommutationInitialize().

NORMALCY OFF/LEFT/RIGHT (G20/G21/G22)

Replaced by NormalcyOn() and NormalcyOff().

NORMALCY AXES/TOLERANCE

Replaced by NormalcySetAxes() and NormalcySetTolerance().

PCI OPEN/CLOSE

Removed.

PCI READ/WRITE

Removed.

PROBE INPUT/MODE

Removed. As an alternative, you can use Drive Data Capture to do functionality that is almost the same. See the Drive Data Capture section of Device Functions for more information. After the position is captured, you can issue the Abort() function.

PROBE ON

Removed. As an alternative, you can use Drive Data Capture to do functionality that is almost the same. See the Drive Data Capture section of Device Functions for more information. After the position is captured, you can issue the Abort() function.

PROBE OFF

Removed. As an alternative, you can use Drive Data Capture to do functionality that is almost the same. See the Drive Data Capture section of Device Functions for more information. After the position is captured, you can issue the Abort() function.

PROGRAMCONTROL

Currently not available. You can try to prevent a background AeroScript program from being stopped. To do this, set the TaskTerminationAxes parameter to a value of 0. You must set the parameter that is on the task.

SAFEZONE ON/OFF

Replaced by SafeZoneOn() and SafeZoneOff().

SAFEZONE SET

Replaced by SafeZoneBoundaryAdd().

SAFEZONE TYPE

Renamed to SafeZoneSetType().

SAFEZONE CLEAR

Replaced by SafeZoneBoundaryRemove() and SafeZoneBoundaryRemoveAll().

SCOPETRIG

Replaced by AppDataCollectionSnapshot() and AppDataCollectionStop().

SERVO ON/OFF

Currently not available. To set the servo on or servo off state of a piezo axis, set the PiezoInitialServoState axis parameter from Studio. Then reset the controller.

SET GAIN

Replaced by TuningSetServoLoopGains() and TuningSetFeedforwardGains().

SETEXTPOS

Renamed to DriveSetAuxiliaryFeedback().

SETPOSCMD

Renamed to DriveSetPositionCommand().

SETPOSFBK

Renamed to DriveSetPositionFeedback().

SIGNALLOG TRIGGER

Renamed to SignalLogTrigger().

SLICE

Removed. You can do a raster scan with the Move functions in AeroScript. For example, you can command the two axes of motion (X and Y) directly. For the scan move, issue one or more MoveLinear(), MoveCw(), or MoveCcw() moves in velocity blending mode (which is VelocityBlendingOn()). For the step move, use the MoveRapid(), MoveLinear(), MoveCw(), or MoveCcw() function before the next scan.

TIMER

Replaced by TimerRead() and TimerClear().

VME READ/WRITE

Removed.

WAIT MODE ...

Renamed to SetupTaskWaitMode().

PULSE

Replaced by DrivePulseStreamConfigure(), DrivePulseStreamOn(), and DrivePulseStreamOff().

THERMOCOMP

Replaced by ThermoCompOn() and ThermoCompOff().

Fieldbus mapping variables (Modbus, EtherCAT, PROFINET)

Currently not available.

AXISSTATUS

Renamed to StatusGetAxisItem().

TASKSTATUS

Renamed to StatusGetTaskItem().

SYSTEMSTATUS

Renamed to StatusGetSystemItem().

AXISSTATUSFAST

Renamed to StatusGetAxisItemFast().

TASKSTATUSFAST

Renamed to StatusGetTaskItemFast().

 

AeroBasic Command AeroScript Equivalent

G4

When you pass arguments to the G4 G-code in Automation1, Aerotech recommends that you use the P command. For backward compatibility to the A3200, you can continue to use the F command. But the documentation on the G-Code Programming page shows the P command as the only applicable command for the G4 G-code.

G43

When you pass arguments to this G-code in Automation1, you must use the P command. In A3200, you can pass arguments with the F or P command.

G45

Removed. In A3200, this G-code disabled polar coordinates. For information about transformations, refer to Transformation Functions.

G46

Removed. In A3200, this G-code enabled polar coordinates. For information about transformations, refer to Transformation Functions.

G47

Removed. In A3200, this G-code specified the axes that were used with polar coordinates. For information about transformations, refer to Transformation Functions.

G51

Removed. In A3200, this G-code enabled touch-probe monitoring.

G52

Removed. In A3200, this G-code specified the polar and cylindrical axes. For information about transformations, refer to Transformation Functions.

G54

When you pass arguments to this G-code in Automation1, you must specify axes. In A3200, you can specify axis points (pairs consisting of an axis and a numeric expression). For more information about work offsets, refer to Motion Functions.

G55

When you pass arguments to this G-code in Automation1, you must specify axes. In A3200, you can specify axis points (pairs consisting of an axis and a numeric expression). For more information about work offsets, refer to Motion Functions.

G56

When you pass arguments to this G-code in Automation1, you must specify axes. In A3200, you can specify axis points (pairs consisting of an axis and a numeric expression). For more information about work offsets, refer to Motion Functions.

G57

When you pass arguments to this G-code in Automation1, you must specify axes. In A3200, you can specify axis points (pairs consisting of an axis and a numeric expression). For more information about work offsets, refer to Motion Functions.

G58

When you pass arguments to this G-code in Automation1, you must specify axes. In A3200, you can specify axis points (pairs consisting of an axis and a numeric expression). For more information about work offsets, refer to Motion Functions.

G59

When you pass arguments to this G-code in Automation1, you must specify axes. In A3200, you can specify axis points (pairs consisting of an axis and a numeric expression). For more information about work offsets, refer to Motion Functions.

G60

When you pass arguments to this G-code in Automation1, you must use the P command. In A3200, you can pass arguments with the F or P command.

G61

When you pass arguments to this G-code in Automation1, you must use the P command. In A3200, you can pass arguments with the F or P command.

G65

When you pass arguments to this G-code in Automation1, you must use the P command. In A3200, you can pass arguments with the F or P command.

G66

When you pass arguments to this G-code in Automation1, you must use the P command. In A3200, you can pass arguments with the F or P command.

G83

Removed. In A3200, this G-code enabled the mirror-image transformation. For information about transformations, refer to Transformation Functions.

G84

Removed. In A3200, this G-code enabled the parts rotation transformation. For information about transformations, refer to Transformation Functions.

G110

Removed. In A3200, this G-code set the circular interpolation mode (G2/G3/G12/G13) to normal interpolation.

G111

Removed. In A3200, this G-code set the circular interpolation mode (G2/G3/G12/G13) to inverse interpolation.

G112

Removed. In A3200, this G-code enabled block delete mode.

G113

Removed. In A3200, this G-code disabled block delete mode.

G143

Cutter offsets and tool tables are not available in Automation1 at this time.

G144

Cutter offsets and tool tables are not available in Automation1 at this time.

G149

Cutter offsets and tool tables are not available in Automation1 at this time.

G165

When you pass arguments to this G-code in Automation1, you must use the P command. In A3200, you can pass arguments with the F or P command.

G166

When you pass arguments to this G-code in Automation1, you must use the P command. In A3200, you can pass arguments with the F or P command.

G212

Removed. In A3200, this G-code enabled block delete 2 mode.

G213

Removed. In A3200, this G-code disabled block delete 2 mode.

G295

Removed. In A3200, this G-code configured Spindle 1 to use feedrates specified as units/spindle revolution.

Automation1 supports one spindle per task. Use the G95 G-code.

G296

Removed. In A3200, this G-code configured Spindle 1 to spin at the tangential speed. The tangential speed is a constant velocity on the surface of the spindle.

Automation1 supports one spindle per task. Use the G96 G-code.

G297

Removed. In A3200, this G-code configured Spindle 1 to use feedrates specified as a velocity.

Automation1 supports one spindle per task. Use the G97 G-code.

G395

Removed. In A3200, this G-code configured Spindle 2 to use feedrates specified as units/spindle revolution.

Automation1 supports one spindle per task. Use the G95 G-code.

G396

Removed. In A3200, this G-code configured Spindle 2 to spin at the tangential speed. The tangential speed is a constant velocity on the surface of the spindle.

Automation1 supports one spindle per task. Use the G96 G-code.

G397

Removed. In A3200, this G-code configured Spindle 2 to use feedrates specified as a velocity.

Automation1 supports one spindle per task. Use the G97 G-code.

G495

Removed. In A3200, this G-code configured Spindle 3 to use feedrates specified as units/spindle revolution.

Automation1 supports one spindle per task. Use the G95 G-code.

G496

Removed. In A3200, this G-code configured Spindle 3 to spin at the tangential speed. The tangential speed is a constant velocity on the surface of the spindle.

Automation1 supports one spindle per task. Use the G96 G-code.

G497

Removed. In A3200, this G-code configured Spindle 3 to use feedrates specified as a velocity.

Automation1 supports one spindle per task. Use the G97 G-code.

M19

Removed. In A3200, this M-code moved Spindle 0 to the zero position and then disabled the spindle.

M23

Removed. In A3200, this M-code enabled Spindle 1 in the clockwise direction.

Automation1 supports one spindle per task. Use the M3 M-code.

M24

Removed. In A3200, this M-code enabled Spindle 1 in the counterclockwise direction.

Automation1 supports one spindle per task. Use the M4 M-code.

M25

Removed. In A3200, this M-code disabled Spindle 1.

Automation1 supports one spindle per task. Use the M5 M-code.

M33

Removed. In A3200, this M-code enabled Spindle 2 in the clockwise direction.

Automation1 supports one spindle per task. Use the M3 M-code.

M34

Removed. In A3200, this M-code enabled Spindle 2 in the counterclockwise direction.

Automation1 supports one spindle per task. Use the M4 M-code.

M35

Removed. In A3200, this M-code disabled Spindle 2.

Automation1 supports one spindle per task. Use the M5 M-code.

M43

Removed. In A3200, this M-code enabled Spindle 3 in the clockwise direction.

Automation1 supports one spindle per task. Use the M3 M-code.

M44

Removed. In A3200, this M-code enabled Spindle 3 in the counterclockwise direction.

Automation1 supports one spindle per task. Use the M4 M-code.

M45

Removed. In A3200, this M-code disabled Spindle 3.

Automation1 supports one spindle per task. Use the M5 M-code.

M46

Removed. In A3200, this M-code stopped a critical section. (The CRITICAL END command is the AeroBasic equivalent.)

In Automation1, you can use the function CriticalSectionEnd() or function CriticalSectionEndAll() function to stop a critical section.

M97

Removed. In A3200, this M-code let you specify the number of times that you called a local function.

In Automation1, you can do this by using a repeat loop that contains a local function call.

M98

Removed. In A3200, this M-code let you specify the number of times that you called a function from a different program.

In Automation1, you can do this by using a repeat loop that contains a dynamic function call.

M123

Removed. In A3200, this M-code enabled Spindle 1 in the clockwise direction asynchronously.

Automation1 supports one spindle per task. Use the M103 M-code.

M124

Removed. In A3200, this M-code enabled Spindle 1 in the counterclockwise direction asynchronously.

Automation1 supports one spindle per task. Use the M104 M-code.

M133

Removed. In A3200, this M-code enabled Spindle2 in the clockwise direction asynchronously.

Automation1 supports one spindle per task. Use the M103 M-code.

M134

Removed. In A3200, this M-code enabled Spindle 2 in the counterclockwise direction asynchronously.

Automation1 supports one spindle per task. Use the M104 M-code.

M143

Removed. In A3200, this M-code enabled Spindle 3 in the clockwise direction asynchronously.

Automation1 supports one spindle per task. Use the M103 M-code.

M144

Removed. In A3200, this M-code enabled Spindle 3 in the counterclockwise direction asynchronously.

Automation1 supports one spindle per task. Use the M104 M-code.

M146

Removed. In A3200, this M-code started a critical section. (The CRITICAL START command is the AeroBasic equivalent.)

In Automation1, you can use the CriticalSectionStart() function to start a critical section.

M219

Removed. In A3200, this M-code moved Spindle 1 to the zero position and then disabled the spindle.

M319

Removed. In A3200, this M-code moved Spindle 2 to the zero position and then disabled the spindle.

M419

Removed. In A3200, this M-code moved Spindle 3 to the zero position and then disabled the spindle.

T

Tool tables are not available in Automation1 at this time.