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:[EMAIL PROTECTED] Sent: Saturday, May 24, 2008 10:13 AM To: [EMAIL PROTECTED]; 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 > > _______________________________________________ time-nuts mailing list -- [email protected] To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts and follow the instructions there.
