User`s guide
CAUTION: V+ does not enforce any memory-protection schemes for
use of the application shared memory area. It is your responsibility to
keep track of memory usage. If you are using application or utility
programs (for example, Adept AIM VisionWare or AIM MotionWare) you
should read the documentation provided with that software to be sure
that there is no conflict with your usage of the shared area. AIM users
should note that Adept plans to assign application shared memory
starting from the top (address hexadecimal 1FFF) and working down.
Therefore, you should start at the bottom (address 0) and work up.
If you read a value from a location that has not been previously written to, you get an invalid
value: You do not get an error message. The system provides a value based upon the default
memory contents and the manner in which the memory is being read. (Every byte of the
application shared area is initialized to zero when V+ is initialized.)
The memory addresses are based on single-byte (8-bit) memory locations. For example, if
you write a 32-bit (4-byte) value to an address, the value occupies four address spaces (the
address that you specify and the next three addresses).
If you read a value from a location using a format different from the format that was used to
write to that location, you also get an invalid value: You do not get an error message. The
system will provide a value based upon the default memory contents. (For example, if you
write using IOPUTF and read using IOPUTL, the value read is invalid.)
IOTAS and Data Integrity
Some IOPUT_ and IOGET_ operations involve multiple hardware read or write cycles. For
example, all 64-bit operations will involve at least two 32-bit data transfers (three transfers if
the operation crosses more than one 32-bit boundary). If a 16-bit or 32-bit operation crosses
a 32-bit boundary, it involves two transfers.
You can interlock operations that must cross a 32-bit boundary using the IOTAS() function.
The syntax and an example are given in the V+ Language Reference Guide.
The IOTAS function performs a hardware-level, read-modify-write (RMW) cycle on the
VMEbus to make a Test And Set operation indivisible in a multiprocessing environment. If
multiple processors all access the same byte by using IOTAS, the byte can serve as an
interlock between the processors.
WARNING: Depending on the application, there is a possibility that a
V+ program running on one processor may update a shared-memory
area while a program on another processor is reading it. In this case,
data that is read across a 32-bit boundary may be invalid. If the data is
being used for safety-critical operations, including robot motions, be
sure to use the IOTAS function to prevent such conflicts.
Using Multiple V+ Systems
(Undefined variable: Primary.Product_Name_V)Language User's Guide, version
17.x
Page 331










