> I'm porting a large program written originally in VEE 3.12 to VEE 4.0 =
> under Win NT. I'm experiencing a difference in operation with the =
> "EXECUTE RESET" command in a direct IO to an RS-232 port. It seems that =
> in 3.12 the execute reset waited several seconds before allowing =
> execution to proceed. In 4.0 the execute reset continues immediately and =
> subsequent RS-232 communication is corrupted or times out.=20
>
> A delay statement after the execute reset seems to solve the problem, =
> but with a large program finding and changing all the occurrences will =
> be time consuming. I'm also concerned about intermittent behavior if =
> other communication over the rs-232 is similarly affected.
>
> Also this behavior is different depending on if the functions are =
> executed stand-alone or imported into a main program???
>
> Does anyone know what is going on here??
Sir:
I tried to do a simple experiment to duplicate your problem: Running VEE 4.0
(released bits) with SICL F.01.01 on WinNT 4.0 ... I set up a 34401 DMM to
operate over RS-232, then used a Direct I/O object to execute the following
commands:
EXECUTE RESET
WRITE TEXT "*IDN?" EOL
READ TEXT x STRING
I banged this a dozen times and saw no problems. Do you have any details on
how our configurations differ or how we might be better able to duplicate the
problem?
[Steven Morisse]
I'm using SICL rev D.02.00 and using the RS-232 to control my UUT. No handshaking is utilized. The EXECUTE RESET is intended to clear the RS-232 buffer at times when the UUT might have outputted corrupt data (such as on power-up) or to ensure communication is in sync..
If possible you could just EXECUTE RESET to an unused COM port under VEE 3.12 and under 4.0, and the difference in execution time is obvious......ah! Maybe I've just answered my own question. It could be that my UUT required the delay??
What exactly does EXECUTE RESET do for a serial port? And why does it seem to be so much faster under VEE 4.0?
Thanks for any comments.
> under Win NT. I'm experiencing a difference in operation with the =
> "EXECUTE RESET" command in a direct IO to an RS-232 port. It seems that =
> in 3.12 the execute reset waited several seconds before allowing =
> execution to proceed. In 4.0 the execute reset continues immediately and =
> subsequent RS-232 communication is corrupted or times out.=20
>
> A delay statement after the execute reset seems to solve the problem, =
> but with a large program finding and changing all the occurrences will =
> be time consuming. I'm also concerned about intermittent behavior if =
> other communication over the rs-232 is similarly affected.
>
> Also this behavior is different depending on if the functions are =
> executed stand-alone or imported into a main program???
>
> Does anyone know what is going on here??
Sir:
I tried to do a simple experiment to duplicate your problem: Running VEE 4.0
(released bits) with SICL F.01.01 on WinNT 4.0 ... I set up a 34401 DMM to
operate over RS-232, then used a Direct I/O object to execute the following
commands:
EXECUTE RESET
WRITE TEXT "*IDN?" EOL
READ TEXT x STRING
I banged this a dozen times and saw no problems. Do you have any details on
how our configurations differ or how we might be better able to duplicate the
problem?
[Steven Morisse]
I'm using SICL rev D.02.00 and using the RS-232 to control my UUT. No handshaking is utilized. The EXECUTE RESET is intended to clear the RS-232 buffer at times when the UUT might have outputted corrupt data (such as on power-up) or to ensure communication is in sync..
If possible you could just EXECUTE RESET to an unused COM port under VEE 3.12 and under 4.0, and the difference in execution time is obvious......ah! Maybe I've just answered my own question. It could be that my UUT required the delay??
What exactly does EXECUTE RESET do for a serial port? And why does it seem to be so much faster under VEE 4.0?
Thanks for any comments.
" ] | | Write: | | EOL Sequence: [ "
" ] | | Multi-field as: [DataOnly] | | Array Separator: [ "," ] | | Array Format: [ Linear ] | | Baud Rate: [ 9600 ] | <-- OK | Character Size: [ 8 ] | <-- OK | Stop Bits: [ 1 ] | <-- OK | Parity: [ none ] | <-- OK | Handshake: [XON/XOFF] | <-- Set this instead of "none". | Receive Buffer Size: [ 4096 ] | | | | [ OK ] [ Cancel ] | +---------------------------------+ I clicked on "OK" and went back to the previous dialogue ... there I clickedon "Instrument Driver Configure" and specfied the "ID Filename" as"hp54600.id".I exited the dialogue, did a "Save Config" on the main Instrument dialogue,and I was ready to go.* To actually do something, I brought up "I/O->Other Instruments", selectedthe "Direct I/O" flag, selected my new "HP54600 (hp54600@9)" entry, andclicked on "Get Instr" ... a DIO box came up: +------------------------+ | 54600 (hp54600@9) | +------------------------+ | | | | +------------------------+ I used this to write the following program: +----------------------------+ +------------------------------+ | 54600 (hp54600@9) | | AlphaNumeric | +------------------------+---+ +------------------------------+ | WRITE TEXT "*IDN?" EOL | X +-->| HEWLETT PACKARD,54600A,0,2.3 | | READ TEXT X STR | | +------------------------------+ +------------------------+---+ It read the ID string as shown above. I could also then fetch a panel driverand use it to control the scope.* Note that VEE accessed the interface using the "logical unit number" of 9... this number is actually more-or-less arbitrary, and I could change it to another value as follows: % Exit VEE (VEE only reads SICL configuration when you bring it up, so if you don't do this, it won't change). % Go into the I/O Config program, select COM1, get the logical unit value, and change it to one of the allowed values -- say, 13. Save the configuration. % Re-run VEE. % Go into "I/O->Other Instruments", select the "54600" entry, do an "Edit Instruments", and change the value for the serial port from 9 to 13. % Save the configuration, and now things will work as they did before with the new logical unit value. * In summary, the steps for performing the RS-232 I/O are as follows: % Make the proper hardware connection between PC and instrument. % Confirm the instrument serial parameters (baud rate, parity, word size, stop bits, handshake). % Run Windows Terminal, set it to the proper parameters, and get ID from the instrument. (Note that older instruments may not understand the *IDN? command ... check your instrument manuals for a reasonable alternative.) If you cannot get this to work, either you have your parameters wrong or your cable isn't the right one. % Run HP I/O Config to ensure that the serial port is configured under the HP I/O Libraries and make a note of the logical unit number. % Run VEE and configure an I/O device using that logical number; define the proper serial parameters as well. At this point, you should be able to run Direct I/O or an instrument driver. One last note: some popular instruments, such as the HP34401 DMM, have bothHPIB and RS-232 interfaces ... you'll need to set the 34401 to RS-232 fromthe DMM's front panel to get serial communications to work. (Note that the34401 tells you what interface it is set to on power-up.) Anotherpeculiarity of the 34401 is that you have to send a ":SYSTEM:REMOTE" commandto it before it will respond correctly over RS-232.[<>]