[time-nuts] OT: Anyone programmed HP 59306A relay actuator (orother old device)?
Dr. David Kirkby
david.kirkby at onetel.net
Sat May 24 10:12:45 EDT 2008
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
mailing list