Manual
Page 34 120-200-350 © 1993 (Rev 5/97) Max Machinery, Inc.
149 SUB RS485(Id_number$,Command$,Unit_parity$,INTEGER Baud_rate,Return_dat$(*) )
150 !
152 !*******************RS485 PORT INTERFACE************************
162 !
167 INTEGER Rs232_sc,I,Bytes,String_length,Position,Dec_total,Parity_enable
168 INTEGER Unit_parity,Stop_bit,Loop_num
169 DIM Output_format$[50],Return_error$[2]
170 DIM Rs485$[1000] BUFFER,Hex_value$[8],Checksum$[8]
171 DIM Error_code$[20]
172 !
173 ! Id_number$ IS A HEX VALUE 0-255 FOR UNIT ID SELECTION
174 ! THIS MUST MATCH THE UNIT ID NUMBER PRIOR TO
175 ! TALKING OVER THE RS485 PORT.
176 ! Command$ IS THE THREE CHARACTER COMMAND AND QUERY DATA.
177 ! Unit_parity$ IS THE PARITY THAT THE RS485 PORT IS PROGRAMMED TO
178 ! ONLY TWO SELECTIONS ARE AVAILABLE.
179 ! INPUT THE UNIT PARITY AS “ODD” OR “EVEN”.
180 ! Baud_rate IS THE RS485 BAUD RATE, SELECTIONS ARE.
181 ! 300,600,1200,2400,4800,9600,19200
182 ! Return_dat$ IS THE DATA RETURNED FROM THE RS485 PORT
183 ! THIS DATA HAS ALL THE QUERY RESPONSE
184
185 ON ERROR CALL Message
187 Rs232_sc=9 ! RS232 PORT ADDR
188 Parity_enable=8 ! PARITY IS ENABLED
189 Stop_bit=0 ! 1 STOP BIT
190 Data_bits=2 ! 7 DATA BITS
191 IF Unit_parity$=”ODD” THEN
192 Unit_parity=0 ! ODD PARITY BIT
193 ELSE
194 Unit_parity=16! EVEN PARITY BIT
195 END IF
196 MAT Return_dat$= (“X”)
197 ON ERROR CALL Message
198 !
199 !***********************SET UP PORT*******************************
200 !
201 CONTROL Rs232_sc,5;0 !NORMAL MODEM LINE HANDSHAKE
202 CONTROL Rs232_sc,3;Baud_rate !SET BAUD RATE
203 CONTROL Rs232_sc,4;Parity_enable+Stop_bit+Unit_parity+Data_bits
204 !
205 !*********************SET UP BUFFER********************************
206 !
207 ASSIGN @Rs232path TO Rs232_sc !CREATE PORT PATH
208 ASSIGN @Rs485path TO BUFFER Rs485$;FORMAT ON !CREATE PATH TO BUFFER
209 !
210 !******************CALCULATE CHECKSUM******************************
211 !
212 Dec_total=0
213 Output_format$=Id_number$&Command$
214 String length=LEN(Output_format$)
215 FOR Position=1 TO String_length
216 Dec_total=Dec_total+(NUM(Output format$[Position]))
217 NEXT Position
HP ROCKY MOUNTAIN BASIC PROGRAM