ethernet relay controller
I've been busy in the lab working on a network enabled relay controller for a new loudspeaker selector system.

Originally I was asked to make a control device similar to the existing one, a box with a display and a remote control to operate the system. However, PC's and LCD screens have become so cheep it would be a pity to spend money on a system with so little capabilities.
To keep development cost down I used a device server from lantronix, a simple PIC with serial port takes care of the rest. I also used for the first time a switched mode power supply (otherwise I would have to get rid of up to 4W with 24V relay power!). The rest of the circuit is rather straightforward, I use serial latches with power outputs and built in protection diodes to drive the relays.
Using the device is very simple, just set up a socket connection and send a command:
Originally I was asked to make a control device similar to the existing one, a box with a display and a remote control to operate the system. However, PC's and LCD screens have become so cheep it would be a pity to spend money on a system with so little capabilities.
To keep development cost down I used a device server from lantronix, a simple PIC with serial port takes care of the rest. I also used for the first time a switched mode power supply (otherwise I would have to get rid of up to 4W with 24V relay power!). The rest of the circuit is rather straightforward, I use serial latches with power outputs and built in protection diodes to drive the relays.
Using the device is very simple, just set up a socket connection and send a command:
| SET OUTPUT |
| Sxx |
| xx is output number in range [01 .. 24] |
| returns status |
| RESET OUTPUT |
| Rxx |
| xx is output number in range [01 .. 24] |
| returns status |
| RESET ALL |
| R00 |
| resets all outputs that are not locked |
| returns status |
| REQUEST STATUS |
| ? |
| returns output buffers in asciihex |
| example: if output is 01000000 00000000 01110000 |
| status will be 400070 |
| REQUEST LOCK STATUS |
| ! |
| returns lock register in asciihex |
| example: if output is 01000000 00000000 01110000 |
| status will be 400070 |
| SET LOCK |
| Lxx |
| xx is output number in range [01 .. 24] |
| lock status is saved in flash memory |
| returns lock status |
| RESET LOCK |
| Uxx |
| xx is output number in range [01 .. 24] |
| lock status is saved in flash memory |
| returns lock status |
| TOGGLE OUTPUT |
| Txx |
| xx is output number in range [01 .. 24] |
| returns status |
| SET DEVICE ID |
| Dxx |
| xx is number in range [01 .. 99] |
| no reply, use version command to check |
| COPY STATUS TO FLASH |
| C |
| copies current output to flash memory |
| replies with status |
| VERSION |
| V |
| returns device id and firmware version |
| format: [xx]-[version number] |
references
lantronix xport
TI PT78ST153
Comments
Post a Comment