UD70
Issue code: 70nu2
6-16
Serial communications
6.6 Example
ANSI
instructions
The following program fragment gives an example of reading a speed
reference from a Unidrive, and writing it to a CD Drive.
Both Drives are connected to the RS485 bus. The Unidrive is at address 11;
the CD Drive is at address 12.
For this program to operate, the RS485 mode should be set at 6.
BACKGROUND{
top:
// send read command to read parameter #1.21
result% = ANSIREAD(11, “0121”)
IF result% = 0 THEN
PRINT “Message could not be sent”
GOTO top:
ENDIF
CALL get
_
reply: // get reply from read command
IF reply% <= –65536 THEN // valid reply?
PRINT “Error in reading data from Unidrive”
GOTO top:
ENDIF
// send write command to CD, using 1 decimal place
result% = ANSIWRITE(12,”SP”, reply%, 1)
IF result% = 0 THEN
PRINT “Message could not be sent”
GOTO top:
ENDIF
CALL get
_
reply: // write accepted?
IF reply% <> -65540 THEN // –65540 is ACK
PRINT “Error in sending message to CD”
ENDIF
GOTO top:
}
get_reply: { // sub-routine to wait for a reply
timeout% = 0 // reset timer
DO
// returns –65536 if the reply has not been received yet
reply% = ANSIREPLY
LOOP WHILE reply% = –65536 AND timeout% < 50
// loop exits only when a reply has been received, or
// a time-out has occurred.
// if the clock task is set at 5ms, the timeout will be 250ms
}
CLOCK {
timeout% = timeout% + 1 // increment timeout variable
}
Note
Refer to the help file in the DPL Toolkit for further
examples of the ANSI commands.
Summary of Contents for UD70
Page 6: ......
Page 14: ...UD70 Issue code 70nu2 2 6 Installation...
Page 42: ...UD70 Issue code 70nu2 4 20 DPL programming...
Page 98: ...UD70 Issue code 70nu2 7 22 Reference...