64
FINS Commands with Host Link Protocol Section 3-5
Programming Example for Host Computer Side (BASIC): Send
10 ’***************************************
20 ’**** CS1W-SCU21 Serial Communications Unit ****
30 ’**** Command to Host Computer (SEND(090)) ****
40 ’**** Sample Send Program ****
50 ’***************************************
60 ’
70 ’============ Initial Settings ============
80 CLOSE 1
90 ON ERROR GOTO *EROPE
100 DIM CHDATA$ (300) :’ Data array declaration
110 OPEN ”COM:E73” AS #1 :’ Opens port.
120 ’
130 ’============ Main Process ============
140 INPUT #1, COMMAND$ :’ Receives data from PLC (line).
150 T$=LEFT$ (COMMAND$, LEN (COMMAND$) -3) :’ Checks FCS.
160 GOSUB *FCS
170 IF FCS$<>MID$ (COMMAND$, LEN (COMMAND$) -2, 2) THEN ENDCODE$=”1004”:GOTO *RESPONSE
180 CMNDCODE$=MID$ (COMMAND$, 27, 4) :’ Checks command code.
190 IF CMNDCODE$<>”0102” THEN ENDCODE$=”0401” :GOTO *RESPONSE
200 FOR I=0 TO VAL (”&H”+MID$ (COMMAND$, 39, 4) ) -1 :’ Sets No. of write elements.
210 CHDATA$ (I) =MID$(COMMAND$, 43+I*4, 4)
220 PRINT “Data”;”:”;CHDATA$(I)
230 NEXT I
240 ENDCODE$=”0000” :’ Sets end code to “0000”.
250 ’==========================================
260 *RESPONSE :’ Creates a response frame.
270 RSV$=MID$ (COMMAND$, 9, 2) :’ Returns received RSV, SID
280 DA$=MID$ (COMMAND$, 19, 6) :’ without change.
290 SA$=MID$ (COMMAND$, 13, 6) :’ Swaps DNA, DA1, DA2
300 SID$=MID$ (COMMAND$, 25, 2) :’ with SNA, SA1, and SA2.
310 T$=”@000F00C0”+RSV$+”02”+DA$+SA$+SID$+CMNDCODE$+ENDCODE$
320 GOSUB *FCS
330 RESPONSE$=T$+FCS$+”*”
340 PRINT #1, RESPONSE$ :’ Transmits data to PLC (line).
350 GOTO 140
360 ’
370 ’===== FCS Calculation Subroutine =====
380 *FCS :’ Adds FCS.
390 L=LEN (T$)
400 A=0
410 FOR J=1 TO L
420 TJ$=MID$ (T$, J, I)
430 A+ASC (TJ$) XOR A
440 NEXT J
450 FCS$=HEX$ (A)
460 IF LEN (FCS$) =1 THEN FCS$=”0”+FCS$
470 RETURN
480 ’
490 ’========== Error processing ==========
500 *EROPE
510 PRINT ”ERL=”:ERL, ”ERR”;ERR
520 CLOSE 1
530 END