Sección 6 Comunicaciones (CompoWay/F)
6.10 Ejemplo de programa
■ N88Basic
6-32
Este programa muestra la respuesta desde el E5AR/ER en la pantalla
cuando se introducen datos de comando desde el teclado.
Se deben introducir los datos de comando desde el número de unidad
hasta el número de elementos.
El programa se ha creado en N88BASIC.
1000
'----------------------------------------------------
1010
'PROGRAM: Programa de ejemplo de comunicaciones del E5AR/ER (CompoWay/F)
1020
'VERSION:1.00
1030
'(c)Copyright OMRON Corporation 2003
1040
'Reservados todos los derechos.
1050
'----------------------------------------------------
1060
'
1070
'======Puerto de comunicaciones (PARITY=EVEN, DATA=7, STOP=2) ======"
1080
'
1090
OPEN "COM:E73" AS #1
1100
'
1110
*SENDDATA
1120
'
1130
'========= Rutina de comunicaciones==================
1140
'
1150
'--------Entrada de datos de comunicaciones----------
1160
INPUT "SEND DATA:",SEND$
1170
'
1180
'--------Si no hay entrada, saltar a la rutina de fin----------
1190
IF SEND$ = " " THEN *EXITSEND
1200
'
1210
'-------Cálculo de BCC--------
1220
BCC = 0
1230
SEND$ = SEND$+CHR$(3)
1240
FOR I=1 TO LEN(SEND$)
1250
BCC = BCC XOR ASC(MID$(SEND$, I, 1))
1260
NEXT I
1270
BCC$ = CHR$(BCC)
1280
'
1290
'------Enviar----------
1300
SDATA$ = CHR$(2)+SEND$+BCC$
1310
PRINT #1, SDATA$;
1320
'
1330
'========= Rutina de recepción ===========
1340
'
1350
RDATA$ = " "
1360
TIMEOUT = 0
1370
*RCVLOOP
1380
'-------Detección de ausencia de respuesta-------
1390
TIMEOUT = TIMEOUT+1
1400
IF TIMEOUT > 2000 THEN RESP$ = "No Response":GOTO *RCVEND
1410
IF LOC(1) = 0 THEN *RCVLOOP
1420
'
1430
'-----Comprobación de carácter de fin (si no hay carácter de fin, continuar la lectura)
1440
RDATA$ = RDATA$+INPUT$(LOC(1),#1)
1450
IF LEN(RDATA$) <2 THEN *RCVLOOP
1460
IF MID$(RDATA$,LEN(RDATA$)-1,1) <> CHR$(3) THEN *RCVLOOP
1470
RESP$ = MID$(RDATA$,2,LEN(RDATA$)-2)
1480
*RCVEND
1490
'
1500
'-------Visualizar datos recibidos-----------
1510
PRINT "RESPONSE:";RESP$
1520
GOTO *SENDDATA
1530
'
1540
*EXITSEND
1550
'=========Rutina de fin==========
1560
CLOSE #1
1570
END