Omron CS1W-ETN21 Network Card User Manual


 
189
FINS/TCP Method Section 7-4
139 alarm(RESP_TIMEOUT); /*
140 printf("FINS/TCP header send length %d¥n",sendlen);
141 }
142 else {
143 err_exit("FINS/TCP header send error");
144 }
145
146
147 /* SEND FINS COMMAND FRAME*/
148 /*
149 *
150 * (READ 150 WORDS FROM DM 100)
151 */
152 fins_cmnd[0] = 0x80; /* ICF */
153 fins_cmnd[1] = 0x00; /* RSV */
154 fins_cmnd[2] = 0x02; /* GCT */
155 fins_cmnd[3] = 0x00; /* DNA */
156 fins_cmnd[4] = srv_node_no; /* DA1 *//*
157 fins_cmnd[5] = 0x00; /* DA2 */
158 fins_cmnd[6] = 0x00; /* SNA */
159 fins_cmnd[7] = cli_node_no; /* SA1 *//*
160
161 fins_cmnd[8] = 0x00; /* SA2 */
162 fins_cmnd[9] = ++sid; /* SID */
163 fins_cmnd[10] = 0x01; /* MRC */
164 fins_cmnd[11] = 0x01; /* SRC */
165 fins_cmnd[12] = 0x82; /*
166 fins_cmnd[13] = 0x00; /*
167 fins_cmnd[14] = 0x64;
168 fins_cmnd[15] = 0x00;
169 fins_cmnd[16] = 0x00; /*
170 fins_cmnd[17] = 0x96;
171
/*
SEND FINS COMMAND FRAME*/
172 signal(SIGALRM,recv_fail);
173 sendlen = 18;
174 if (send(sockfd,fins_cmnd,sendlen,0) == sendlen)
175 {
176 printf("send length %d¥n",sendlen);
177 }
178 else
179 {
180 err_exit("send error");
181 }
182
183 /* RECEIVE FINS/TCP COMMAND (READ RECEIVE FUNCTIONS)*/
184 recvlen = 16;
185 if (tcp_recv(sockfd, fins_tcp_header, recvlen) == recvlen)
186 {
187 /*
CONFIRM WHETHER FINS FRAME SEND COMMAND WAS RECEIVED*/
188 if ((fins_tcp_header[8] != 0x00) || (fins_tcp_header[9] != 0x00) ||
189 (fins_tcp_header[10] != 0x00) || (fins_tcp_header[11] != 0x02))
190 {
191 err_exit("FINS/TCP illegal command error");
GENERATE MEMORY AREA READ COMMAND
Ethernet Unit FINS NODE NUMBER*/
WS FINS NODE NUMBER OBTAINED
AUTOMATICALLY*/
VARIABLE TYPE: DM*/
READ START ADDRESS: 100*/
WORDS READ: 150*/
START RESPONSE MONITOR TIMER*/