▼
Posts: 37
Threads: 6
Joined: Apr 2011
hi all,
i am a bit desperate. i have an hp 71b connected via HP-IL to an hp 82169C HP-IL/HP-IB interface (DEVID$ is HP82169A, though). an HP digital clock HP59309A is connected to the HP-IB interface.
the IL/IB interface is in translator mode, hp-il address 3. the clock is addressable, address is 12.
i can control the clock (set time, stop etc.) without problem (e.g. OUTPUT 12;"R" resets the clock). but i am not able to read from the clock. i tried ENTER 12;A$ (and a lot more) and then the system freezes. same with SPOLL(12).
any help to solve this problem would be much appreciated!
thanks,
hans
▼
Posts: 32
Threads: 3
Joined: Nov 2011
Does the clock need to be told to return the time with a command you send before attempting the read?
▼
Posts: 37
Threads: 6
Joined: Apr 2011
i am not sure if i understand your question correctly, but i think the answer is NO. i think that ENTER should include all necessary instructions to fetch data from the clock. well, at least this is how i fetch data from the multimeter...
▼
Posts: 32
Threads: 3
Joined: Nov 2011
Its been a long time since I collected data from an HP instrument over HP-IB, but I seem to recall that the volt meter I would use to collect data from various lab instrument outputs needed to be told to put itself into "free running" mode so that when you read from the meter it would take a reading and return it.
I ran a quick test with my 3468A over HP-IL. There are two settings, T2 is the single trigger mode and T1 is the internally generated trigger mode. If the meter is single trigger mode, and I do not send the TRIGGER command before the ENTER, the 71 hangs until I abort the command.
RESTORE IO
D = DEVADDR("HP3468A")
REMOTE D
OUTPUT D;"T2"
ENTER D;A$ <-- hangs here
<ATTN>
RESTORE IO <-- recover loop after hang
REMOTE D
OUTPUT D;"T2"
TRIGGER D
ENTER D;A$ <-- read completes
Edited: 28 July 2012, 9:24 a.m.
▼
Posts: 72
Threads: 2
Joined: Nov 2011
Test done with HP75C + I/O-ROM + HP3468B
! Device is now accepting commands from it's HP-IL/IB interface
REMOTE ':E1'
! Setup device as listener
! Send reading configuration (DC Volt [F1] + Autorange [RA])
! Trigger the reading [T2] and save it in the read buffer
SENDIO ':E1','LAD#', 'F1RAT2'
! Setup device as talker
! Send data from read buffer
E$ = ENTIO$(':E1','TAD#,SDA')
! Display data after removing the CR & LF
DISP USING '"DC Volt = ",K'; LEFT$(E$,LEN(E$)-2)
! Device is now accepting commands from it's front panel interface
LOCAL ':E1'
Doing the above always return read data at [T2] time.
Sylvain
Edited: 28 July 2012, 6:46 p.m.
▼
Posts: 37
Threads: 6
Joined: Apr 2011
please see my reply to craig. i am quite new to this kind of devices and find it rather difficult to translate the commands written for a specific hp calculator/interface to commands for a different configuration. however, thanks for you help!
hans
Posts: 37
Threads: 6
Joined: Apr 2011
i have a 3468 multimeter, too, and have never had problems fetching data from it. the multimeter is usually set to internal trigger, so i don't use a TRIGGER command, but get the data directly with ENTER.
when starting to play with the hp-ib clock i thought i may use it the same way i use the multimeter, but, alas...
anyway, thank you!
Posts: 2,309
Threads: 116
Joined: Jun 2005
The 59309A manual section 3-26 says:
Quote:
When the 59309A is addressed to talk, the ADDRESSED indicator illuminates and the time value is output on the bus in the format shown below.
It seems pretty clear from this that (unlike some multimeters) you don't need to send it a command before reading from it. However, if you're previously addressed it to listen or talk, you'd best send it an UNL or UNT first (as appropriate, or just send both), then try to read from it.
When you attempt to read from it, does the ADDRESSED indicator illuminate?
▼
Posts: 37
Threads: 6
Joined: Apr 2011
yes, i can address the clock (address is 11) to talk (SEND TALK 11 or SEND CMD 75 or SEND CMD "K"). then the addressed-indicator is permanently on until i send UNT or change to a different talker.
what i do not understand is how to read from the clock. i only know ENTER, but ENTER :11;A$ freezes the loop (like SPOLL(11)). i also tried the IL message "send data": SEND CMD 96. the addressed-indicator blinked and nothing froze, but where is the data sent, and how can i get it on the display of the hp71 or into a variable?
i also connected an hp41 to the IL/IB interface. INA or IND resulted in a TRANSMIT error.
heck, this is really challenging! at least i was able to write a short program to set the clock with the hp 71. oh well...
thank you, hans
▼
Posts: 32
Threads: 3
Joined: Nov 2011
Do you have the LF->EOT option of the IL-IB interface enabled?
▼
Posts: 37
Threads: 6
Joined: Apr 2011
no, it was disabled. so i tried OUTPUT :3;"E1" but did not notice a difference (address of IL/IB interface is 3).
Posts: 72
Threads: 2
Joined: Nov 2011
I just went through the manual and I now understand the behaviour of the device.
If I understood correctly the device will send it clock continuously on the loop when it becomes the talker (TAD) and stop when he received an untalk (UNT)
So the sequence should be ...
- configure device
- send untalk
- make device the talker
- read from the loop
- send untalk
- parse, extract and format data
- show/use the formatted data
Have you tried reading from the loop but with a limit on the number of bytes ?
In packed format the unit should send 9 bytes repeatedly.
Since we do not known when the snapshot will happen, we need to
dimention the input buffer 2 times the size of the data and then find the start record in the buffer.
Using the above procedure, at the "read from the loop" line
the following should do the trick
ENTER LOOP USING "18A";D$
Sylvain
PS: To have a better understanding of what happen on the loop I suggest that you buy the PIL-Box from JF Garnier and use the Virtual HP-IL softwares from Christoph Gießelink.
Those will allow you to have a sniffer on the loop and then see what is happening on it.
Edited: 29 July 2012, 9:48 a.m.
▼
Posts: 37
Threads: 6
Joined: Apr 2011
thank you very much for your help! unfortunately the system is not working (yet), but a few things became clearer.
the loop still freezes, although i used your ENTER line. i took a look at a program sequence for a 9830 in the clock manual and there the number 13 appears in the ENTER line. i did not understand why, but with your help it became quite obvious, that it is a limitation of the number of bytes: if you want to read date and time, you need 13 bytes, or 9 bytes if you only read the time.
however, neither USING "18A" nor "9A" worked, same for "26A" and "13A". but i will investigate a bit further in this direction, maybe i am lucky.
hans
▼
Posts: 412
Threads: 40
Joined: Mar 2006
Try
ENTER 12 USING "#,9A";D$
to avoid waiting for EOL.
Posts: 2,309
Threads: 116
Joined: Jun 2005
No, unless the clock is set to "continuous talk" mode, which shouldn't be used with any controller in the look, it will only send the time ONCE each time it is addressed to talk.
Posts: 37
Threads: 6
Joined: Apr 2011
gentlemen, you are so kind and helpful, but i am afraid that i am just wasting your time. despite all your help i am not able to fetch time and date from the clock.
however, just in case someone would like to give another hint, here a brief summary of my latest attempt to make this work:
address IL/IB-interface: 3
address clock: 11
enable status bytes: 0
what i did:
RESET HPIL
RESTORE IO
SEND TALK11 (ADDRESSED light is now permanently on)
ENTER :11 USING "#,9A";D$ (i also tried 10A, 11A etc.)
--> loop freezes, hp71 does not respond to pressed keys, T/R light and ADDRESSED light are permanently on.
and just to make this clear: i do all this just for fun. my idea was simply to use an external clock instead of the internal one of the hp71 to control data acquisition from the multimeter. i lose nothing if i can't make this work (well, a few hours of sleep), so please do not waste your time with my "problems". but thanks a lot to those who do!
best regards,
hans
|