RMCLink COM Component RMCLink.ReadFFile_Script Method |
Reads one or more floating-point (F) registers from the controller. This method is only for use in VBScript or JScript. Use the ReadFFile method with other languages. ReadFFile_Script is typically used to read floating-point registers from the RMC70, RMC150, or RMC200.
Visual Basic (Declaration) |
Function ReadFFile_Script ( _ file As Long, _ element As Long, _ count As Long _ ) As Variant |
Visual Basic (Usage) |
Dim instance As RMCLink Dim file As Long Dim element As Long Dim count As Long Dim returnValue As Variant
returnValue = instance.ReadFFile_Script(file, element, count) |
file
File number of the first register to be read. See the RMCLink Register Reference for details.
element
Element number of the first register to be read. See the RMCLink Register Reference for details.
count
The number of registers to read.
This variant will be filled with the data read from the controller. The variant data type will be a single-dimension 0-based array of Variant elements, each which in turn holds a Single. The length is determined by count.
The only difference between ReadFFile_Script and ReadFFile is the format of the data returned in the Variant return value. For ReadFFile, the Variant holds a single-dimension 0-based array of Single elements. For ReadLFile_Script, the Variant holds a single-dimension 0-based array of Variant elements, and each Variant element in turn holds a Single. This extra layer of indirection is required by some scripting languages (VBScript and JScript, for example), but is otherwise less efficient and should be avoided when ReadLFile is supported by your language.
Notice that JScript arrays are not directly compatible with the arrays returned by ReadFFile_Script. Therefore, before using the array elements, you must call JScript's toArray method on the variable returned by ReadFFile_Script. See the JScript example below.
Notice that all RMC100 registers are integers. Therefore, using this method to read data from the RMC100 will simply convert the values to floating point. For example, reading a value of 25 will be stored as a Single in the output array as 25.0.
For details on integer (L) and floating-point (F) registers and how to read from and write to both, see RMC100 Register Data Types or RMC70, RMC150, and RMC200 Register Data Types.
This method is synchronous, which means that it will not return until the read is completed, which may take several seconds. If this method is called on the main thread, then the application will likely be unresponsive until this method completes. For applications where this is not acceptable, this and other synchronous methods should be called from a worker thread, and may use the CancelRequest method to cancel an in progress request.
Error Code |
Description |
rmcEOutOfMemory = 5 |
Out of memory. |
rmcEInvalidArg = 7 |
One of the file, element, or counts parameters are out of range. |
rmcEDisconnecting = 1002 |
Link is being disconnected by another thread. |
rmcEDisconnected = 1005 |
The link has not been connected. |
rmcESocketInternal = 1008 |
Internal socket error. |
rmcECancelled = 1010 |
Operation cancelled by call to CancelRequest. |
rmcETimeout = 1011 |
Operation timed out. |
rmcESocketGracefullyClosed = 1014 |
TCP/IP connection closed by remote device. |
rmcESocketReadError = 1015 |
Connection error while waiting for response from the remote device. |
rmcESocketInvReadLen = 1016 |
Connection error while waiting for response from the remote device. |
rmcESocketWriteError = 1017 |
Connection error while sending request to the remote device. |
rmcESocketInvWriteLen = 1018 |
Connection error while sending request to the remote device. |
rmcESerialIOE = 1021 |
Serial IOE error. |
rmcESerialFramingError = 1022 |
Serial framing error. |
rmcESerialBreak = 1023 |
Serial Break error. |
rmcESerialOverrun = 1024 |
Serial overrun. |
rmcESerialRxOverrun = 1025 |
Serial receive overrun. |
rmcESerialParityError = 1026 |
Serial parity error. |
rmcESerialTxFull = 1027 |
Serial transmitter full. |
rmcEConnectionBroken = 1028 |
Connection broken. |
rmcEPartialWrite = 1029 |
Unable to send full request to the remote device. |
rmcEBadAddress = 1032 |
Attempt to read beyond the end of a file. |
rmcEUSBInternal1 = 1051 |
Internal USB driver error. |
rmcEUSBOperationAborted = 1053 |
Unsuccessful transfer of data between the PC and the controller. Ensure that the physical connection between the PC and controller is still intact. |
rmcEUSBDisconnected = 1054 |
The controller appears to have been disconnected from the USB port. Ensure that the physical connection between the PC and controller is still intact. |
The following code example illustrates the use of the ReadFFile_Script method.
VBScript |
Option Explicit
Dim srv, rmc, data
' First we need to create the RMCLinkServer COM object.
Set srv = CreateObject("RMCLink.RMCLinkServer")
' Use our RMCLinkServer to create the correct type of RMCLink object.
' NOTE: VBScript does not support enumerations, so we use the literal value (dtRMC70=2).
Set rmc = srv.CreateEthernetLink(2, "192.168.0.22")
' Establish the connection.
rmc.Connect
' Read F8:8 and F8:9 (Axis 0 Actual Position and Velocity)
data = rmc.ReadFFile_Script(8,8,2)
WScript.Echo "Actual Position = " & data(0) & ", Actual Velocity = " & data(1)
' Close the connection.
rmc.Disconnect
|
JScript |
// First we need to create the RMCLinkServer COM object.
var srv = new ActiveXObject("RMCLink.RMCLinkServer");
// Use our RMCLinkServer to create the correct type of RMCLink object.
// NOTE: JScript does not support enumerations, so we use the literal value (dtRMC70=2).
var rmc = srv.CreateEthernetLink(2, "192.168.0.22");
// Establish the connection.
rmc.Connect();
// Read F8:8 and F8:9 (Axis 0 Actual Position and Velocity)
var data = rmc.ReadFFile_Script(8,8,2).toArray();
WScript.echo("Actual Position = " + data[0] + ", Actual Velocity = " + data[1]);
// Close the connection.
rmc.Disconnect();
|
See Also
RMCLink Class | RMCLink COM Component | ReadFFile | ReadLFile_Script
Copyright (c) 2024 Delta Computer Systems, Inc. dba Delta Motion