[time-nuts] OT: Anyone programmed HP 59306A relay actuator (orother old device)?

Daun Yeagley daun at yeagley.net
Sat May 24 14:51:57 UTC 2008


Hi David

You'll need a scope to look at the lines.  If you try reading with a
voltmeter, you'll only get the average value of the data that is being
transmitted.
There are a couple of "control" line as part of the bus.  The most important
one for our purposes here is the "ATN" line.  When this line is asserted,
Data on the 8 DATA lines is in what is known as the COMMAND mode. In this
mode, the ASCII code you see make up the commands to do the "Unlisten",
"Untalk", "Listen", and "Talk" commands and the associated addresses. You
don't need to worry about that stuff. That's what the drivers are for. At
the programming level, all you need to be concerned with is who's talking
(the controller, i.e. the computer), and who's the listener (the 59306). As
an aside, there can be only one talker, but many listeners.  Other
(transparent) details include the handshake lines and some other dedicated
support lines that may or may not be used in any particular scenario.

So again, all you need to do is address the 59306 as a listener, and send
the specific ASCII characters that comprise the command. With this
instrument, since it is so very simple, doesn't even know what to do with
end of line sequences. (CR/LF). It would simply ignore them. (I say this
because most computers customarily send this unless specifically
suppressed).

Hope this helps.  If not enough, I'll have to see if I can dig out some of
the old "HPIB" tutorials I used to teach from twenty some years ago.

Daun 

-----Original Message-----
From: Dr. David Kirkby [mailto:david.kirkby at onetel.net] 
Sent: Saturday, May 24, 2008 10:13 AM
To: daun at yeagley.net; Discussion of precise time and frequency measurement
Subject: Re: [time-nuts] OT: Anyone programmed HP 59306A relay actuator
(orother old device)?

Daun Yeagley wrote:
> Hi David
>
> Don't worry about all the level stuff.  That's internal to the box
(59306).
> The only thing you need to worry about is how to generate the proper
> commands on the bus for your particular H/W-S/W combination.
>   
But looking at the example program, one sends

* "?" to clear all listeners
*  "%" to listen
* The commands to set relays, such as "B123", or "A1"
* REN=H to reset to local control.

But all 4 combinations have different TTL levels on the control lines.

On my bench multimeter, something as simple as
 
dd=ibdev(0, gpib_address, 0, T3s, 1, 0); /* open a device at address 
'gpib_address' with 3 s timeout. */
ibclr(dd);  /* Clear it */
ibwrt(dd,"PRESET",6);  /* Can't recall what this command did on my 
meter, but it works! */
ibwrt(dd,"DCV",3); /* Set to DC voltage. Command ends in 3, as DCV is 3 
characters */

will set it to DC voltage. If I want frequency, the last command would be

ibwrt(dd,"FREQ",4);  /* ends in 4, as FREQ is 4 characters */

But this HP 59306A relay  actuator will *not* respond similarly if I send

ibwrt("A1",2);  /* Unsuccessfully try to join contacts A-C on relay 1 */

In various attempts, I've managed to get the odd click from the relays, 
but nothing useful is happening. I've got two of these, and neither is 
doing what I expect, so I suspect the units are not faulty, but just my 
bad programming.



> In hopefully simple terms, you need to address the 59306 as a listener,
and
> then send the ASCII string that represents the relay state you need. In
> Didier's example:
>   
>> 1) to turn all channels off, send "B123456"
>> 2) to turn channel 1 on: send "A1"
>>     
>
> You don't need (or want an end of line sequence or anything). When done
> sending the command, just unaddress it.
>   
Perhaps that is what I am doing wrong. I am not un-addressing it. But 
I've never had to before. I've normally on other instruments just sent 
the command via ibwrt(), then read responses with ibrd(). For this 
instrument, I don't believe there is anything that can be read - you 
can't for example read the state of the relays, so I don't think there 
is any need for using ibrd().

> Hope that removes a bit of fog.
>
> Daun 
>
>   








More information about the Time-nuts_lists.febo.com mailing list