ADAM-4050
This is the most basic Digital Input / Output ADAM series module. ( also the cheapest* )
Download the manual "ADAM-4000_manual_V20.pdf" from the above link.
( This manual is for the entire 4000 series modules. ADAM-4050 starts on page 74 )
ADAM has 8 Outputs and 7 Inputs.
I have attached 8 LED and 7 DIP Switches ( BEST for testing ).
ADAM 4050 module w/ 8 LED & 7 DIP Switch |
Circuit?
Very simple. ( It's in manual pg.75 )
I set INIT* pin to GND because I didn't want to confuse 485 Address. This sets Address = 0, Speed = 9600 bps, and Checksum = disabled. ( manual pg.19 )
Circuit w/ Switch and LED |
RS-485 Protocol
For ADAM-4050 command set refer to manual pg.130.
The ones that we actually use are:
- Digital Data In (pg.241) that begins with '$' and
- Digital Data Out (pg.243) that begins with '#'
The Confusing Question...
Is this protocol only using visible ASCII ( 0x20 - 0x7f )? or is Binary also being used?
Except for the line termination Cr ( 0x0d ), only Visible ASCII are used.
Digital Data Out
#AABB( data )( cr )
except for ( cr ), #AABB( data ) is string
- AA is address for 485
AA = "00" because we have set INIT* as GND - BB is channel address
If "00", it writes to all 8 channels at the same time.
( data ) ranges from "00" to "FF"
lsb is DO 0, and msb is DO 7.
( eg. If you want to turn ON DO 7 and DO 5 and rest OFF, the ( data ) will be "A0" )
If "10" - "17", it writes to each channel.
"10" will turn ON DO 0, ... , "17" will turn ON DO 7
In this case ( data ) is either "00" or "01".
It says as response we receive ">( cr )"; however we are not going to care about this for now.
Digital Data In
$AA6( cr )
- AA is address for 485
- 6 is Digital Data in Command
Response: !( dataOutput )( dataInput )00( cr )
- ( dataOutput ) Loop back from output.
2 character string. If we get "A0", it means that DO 7 and DO 5 is ON and rest are OFF. - ( dataInput )
2 character string. This value is what we want. - "00"
We don't know what this is for, so let's not worry about this.
No comments:
Post a Comment