6. BIDIRECTIONAL
PROTOCOL
COMMUNICATIONS
MELSEC QnA
1000
1010
1020
1030
1040
1050
1060
1070
1080
1090
6.5.2
External device program
*ST1
CLS
CH% =1
ENQ$=CHR$ (&H5)
ACK$=CHR$ (&H6
)
NAK$=CHR$(&H15)
:'Clear screen
:'Channel No.
:
'
ENQ code
:
' ACK
code
:
'NAK code
1150
C L S
1160
LOCATE 6,1:pRINT "**Reception from PC in bidirectional mode**"
1170 *JYU1
1180
FOR I%=O TO 1000 :NEXT I%
1190
IF LOC(CH%)<>O THEN *RD
1200
LOCATE 10,5:PRINT "Wait to
receive data
! I '
1210 LOCATE
10,8:PRINT "Send data from PC." :GOTO *JYU1
1220
1230
t
! - - - - - - _ _ _ - - - - - - _ _ _ - - - - - - - - - - - - - -
Buffer read-_---------------------------------
!
1240 *RD
1250 B
$ =
'I
I'
1260 *RD1
1270
FOR I%=O TO
1000 :NEXT I%
1280
IF LOC(CH%)<>O THEN B$=B$+INPUTS(LOC(CH%),#CH%) ELSE *RD1
1290
1300
!
!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - ~ ~ ~ ~ i v ~ data check
~ _ _ _ _ _ ~ ~ ~ ~ ~ _ _ _ _ - - ~ ~ ~
I
1310
IF LEFT$(B$,l)=ENQ$ THEN
*ACK
1320
E1$=CHR$(&H22)+CHR$(&HO):E2$="0022" :'&H0022=user definition error
1330
COLOR 2
:
LOCATE 10,5
1340 PRINT
""Communications error!! Error code=" ;E2$:COLOR 0
1350
PRINT kCH%,NAK$;El$:GOTO *REST
:'Send NAK
1360
1370
!
! - - - - - - - - - - - - - _ - - - - - - - - - - - - - - - - A C K
transmission
_ - - - - - - - _ _ _ _ - - - - _ - _ _ _ _ _ _ _ _ _ _ _ _ _ _
1380 *ACK
1390
PRINT flCH%, ACK$
1400
1420
DAT$=MID$(B$,4,LEN(B$l-3)
1430 LOCATE
10,5
:
PRINT "Receive data=" ;DAT$
1440
1450 *REST
1460
LOCATE 10,8:INPUT "Receive again? (Y/N)";Y$
1470
IF Y$="Y" THEN *JYUSIN
1480
1490 CLOSE
1500 END
1410
!
---------_---_----_---------Receive
data display
_ - - - - - _ _ _ _ _ - - - - - - _ _ _
!
BASIC commands must be changed according to BASIC software.
6 - 1 1