赞
踩
MENU-------> SYSTEM------> Variables------->$KERAL_ENB 设置为1
MENU---->SETUP---->Host Comm
选择 F3【DETAIL】进入IP设置界面
备注:按键F3【PORT】可以选择相应的物理网口Port#1 或者Port#2,具体需要看你网线插在哪个物理网口上
设置IP地址和上位机在同一网段,不同IP地址。如果是ROBOGUIDE软件,此地址需要和电脑网口的IP地址一样。
当前我设置的IP地址是192.168.1.111,我上位机软件设置的是192.168.1.100
MENU---->SETUP---->Host Comm
选择 F4【SHOW】--->3 进入SERVER设置界面:
可以看到S1,S2 是FTP服务,S3是我之前设置好的TCP 服务器。这里以S4为例。
选择S4 ,按F3【DETAIL】或者Enter 进入:
在 Protocol 处,按 F4 【CHOICE】,并选择 SM :
在 Startup State 处,按 F4 【CHOICE】并选择DEFINE :
在 Server IP/Hostname 处,按 Enter ,输入上位机的 IP 地址:
在 Startup State 处,按 F4 【CHOICE】并选择Start :
按 F2 【ACTION 】,并选择start ,界面会变成:
Server Prot 设置,
方法一:
在Karel 程序中设置:
例如:设置S3的Server Port 端口为59002
SET_VAR(entry, '*SYSTEM*','$HOSTS_CFG[3].$SERVER_PORT',59002,status)
方法二:
MENU-------> SYSTEM------> Variables------->$HOSTS_CFG Enter键进入如下界面:
注意:$HOSTC_CFG 配置的是客户端,$HOSTS_CFG 是服务器
我们选择S4 对应的变量【4】 按Enter 键进入如下界面:
找到并更改ServerPort,这里我们把ServerPort 改成7894
然后重启断开Robot电源重新启动Robot生效。
按照上面设定IP步骤进入如下界面:
按 F4 【SHOW】并选择 Clients (机器人将作为 Client ,上位机作为 Server):
进入如下界面:
选择 Tag 标签号,这里以 C1 为例,按 Enter 或 F3 【DETAIL 】进入如下界面
在protocol 处,按F4【CHOICE】,并选择 SM
在Startup State处,按F4【CHOICE】并选择DEFINE:
在Sever IP/Hostname处键入 TCP Server IP地址:
按F2【ACTION】,并选择 DEFINE:
Port号的设置
MENU-------> SYSTEM------> Variables------->$HOSTC_CFG Enter键进入如下界面:
选择C1 对应的【1】 ,按Enter或者DETAIL 进入:
找到$SERVER_PORT,并设置值,注意这个端口号由上位机服务器决定,我们设定的值需要和服务器端一致。
完成后重启机器人控制器生效。
效果如下(读入10字节,返回10字节):
代码如下:
- PROGRAM tcpserv2
-
- %STACKSIZE = 4000
- %NOLOCKGROUP
- %NOPAUSE = ERROR +COMMAND +TPENABLE
- %ENVIRONMENT uif
- %ENVIRONMENT sysdef
- %ENVIRONMENT memo
- %ENVIRONMENT kclop
- %ENVIRONMENT bynam
- %ENVIRONMENT fdev
- %ENVIRONMENT flbt
- %INCLUDE klevccdf
- %INCLUDE klevkeys
- %INCLUDE klevkmsk
-
- VAR
-
- file_var : FILE
- tmp_int : INTEGER
- tmp_int1 : INTEGER
- tmp_str : STRING[128]
- tmp_str1 : STRING[128]
- status : INTEGER
- entry : INTEGER
-
- BEGIN
- SET_FILE_ATR(file_var, ATR_IA)
- -- set the server port before doing a connect
- SET_VAR(entry, '*SYSTEM*','$HOSTS_CFG[3].$SERVER_PORT',59002,status)
- WRITE('Connecting..',CR)
- MSG_CONNECT('S3:',status)
- --WRITE(' CONNECT Status = ',status,CR)
- IF status = 0 THEN
- -- Open S3:
- WRITE ('Opening',CR)
- FOR tmp_int1 = 1 TO 20 DO
- OPEN FILE file_var( 'rw','S3:')
- status = IO_STATUS(file_var)
- WRITE (status,CR)
- IF status = 0 THEN
- -- write an integer
- FOR tmp_int = 1 TO 1000 DO
- WRITE('Reading',CR)
- -- Read 10 bytes
- BYTES_AHEAD(file_var, entry, status)
- WRITE(entry, status, CR)
-
- READ file_var (tmp_str::10)
- status = IO_STATUS(file_var)
- WRITE (status, CR)
- -- WRITE 10 bytes
- WRITE (tmp_str::10, CR)
- WRITE file_var (tmp_str::10)
- status = IO_STATUS(file_var)
- WRITE (status, CR)
- ENDFOR
- CLOSE FILE file_var
- ENDIF
- ENDFOR
- WRITE('Disconnecting..',CR)
- MSG_DISCO('S3:',status)
- WRITE('Done.',CR)
- else
-
- WRITE('connecting error',CR)
- MSG_DISCO('S3:',status)
-
- ENDIF
-
-
- END tcpserv2
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。