EPSON TCP/IP 通信

来源:互联网 发布:染发剂推荐 知乎 编辑:程序博客网 时间:2024/04/30 23:56

EPSON SCARA机器人TCP/IP 通信时,涉及到的相关指令说明。

14.3 TCP/IP命令。

OpenNet    //打开TCP/IP端口。ChkNet     //返回端口状态:等待读取的字节数或错误条件。CloseNet   //关闭TCP/IP端口。SetNet     //运行时或从命令窗口中设置通信端口参数。Print #   //从端口中发送字符。Input #   //从端口接收字符到一个或多个变量中。Line Input #  //从端口接收一行字符到一个字符串变量中。Read #    //从端口接收一行以上字符到一个字符串变量中。ReadBin #   //从端口中接收一个或多个字节。Write #     //从端口中发送字符。WriteBin #  //从端口中发送一个或多个字节。


OpenNet # 端口编号 As { Client | Server }

说明:  OpenNet用于打开TCP/IP端口,以便与网络上的其它电脑进行通信。1个系统作为服务器打开,其它系统作为客户端打开。先启动哪个都可以
格式:   OpenNet # 端口编号 As { Client | Server }
参数:   端口编号  指定要打开的TCP/IP端口编号的整数值。端口编号的范围为201 - 216。
示例:

Controller #1:Port: #201Host Name: 192.168.0.2TCP/IPPort: 1000Function tcpip   OpenNet#201 As Server   WaitNet #201   Print #201, "Data from host 1"FendController #2:Port: #201Host Name: 192.168.0.1TCP/IPPort: 1000Function tcpip   String data$   OpenNet#201 As Client   WaitNet #201   Input #201, data$   Print "received '", data$, "' from host 1"Fend


OpenNet( 端口编号 )

说明:    用于获取实施OpenNet的任务编号。
格式:    OpenNet( 端口编号 )  

参数:     端口编号 指定要打开的TCP/IP端口编号的整数值。端口编号的范围为201 - 216。

示例:

Print OpenNet(PortNo)


ChkNet(通信端口编号)
说明:       用于返回网络端口的接收缓冲器内的字符数。
格式:       ChkNet(通信端口编号)

参数:      通信端口编号 指定TCP/IP端口编号 (201- 216)。
返回值:   返回接收字符数(整数值)。
                如果不存在接收数据,以下述负值返回端口状态。
                -1  端口已打开,但是未确立通信
                -2  其他任务正在使用端口
                -3  未打开端口

示例:

Integer numChars numChars = ChkNet(201) 


CloseNet# 通信端口编号| All

说明:  用于关闭OpenNet打开的TCP/IP端口。
格式:  CloseNet# 通信端口编号| All

参数: 通信端口编号  指定要关闭的TCP/IP端口编号(201 - 216)。

           如果指定All,将关闭该任务打开的所有TCP/IP端口。

示例:

CloseNet #201


SetNet #通信端口编号,主机地址,TCP/IP端口编号,终止符,流控制,超时时间

说明:  用于设置TCP/IP端口参数。
格式:  SetNet #通信端口编号,主机地址,TCP/IP端口编号,终止符,流控制,超时时间
参数: 通信端口编号  指定要设置参数的TCP/IP的端口编号。范围为201 - 216。
            主机地址  指定主机的IP地址。
            TCP/IP端口编号  指定TCP/IP端口编号。
            终止符  指定CR、LF、CRLF中某个行末字符。
            流控制  是指软件流控制。指定NONE。
            超时时间  以秒指定收发的最长时间。指定0时,超时则变为无限。
 备注:  参数被保存在控制器内的小型闪存卡中。如果执行SetNet,则会向小型闪存卡执行写入操作。!!

            过于频繁地向小型闪存卡执行写入会影响到卡的使用寿命。建议仅在需要变更参数时执行SetNet。!!

示例:

SetNet#201, "192.168.0.1", 2001, CRLF, NONE, 0

Print #端口编号,  输出数据[,输出数据...] [,] 

说明:  Print # 用于将变量数据、数值或字符串输出到由端口编号指定的通信端口或装置中。
格式:  Print #端口编号,  输出数据[,输出数据...] [,]
参数:  端口编号  是表示文件、通信端口、数据库或装置的ID编号。
                          文件编号是由ROpen、WOpen、AOpen等语句指定的编号。
                          通信端口编号是由OpenCom(RS-232C)或OpenNet(TCP/IP)语句指定的编号。
                          数据库编号是由OpenDB语句指定的编号。
                          装置ID为以下数值。
                                 21 RC+
                                 24 TP
                                 28 LCD
           输出数据...  指定数值或字符串。
           , (逗号)   如果语句的结尾有逗号,则不进行改行。可省略。
注意: 最大数据长度!
本命令一次可处理的最大数据长度为256 Byte。但对象为数据库时,最大数据长度为4096 Byte。
与其它控制器进行变量交换时 -  指定多个字符串变量,以及指定数值变量和字符串变量两者时,需要在字符串数值数据中明确添加分隔符(定多个字。
使用通信端口交接控制器之间的字符串变量、数值变量。

发送侧  (任一模式即为OK。)

Print #PortNum, "$Status,", InData, OutDataPrint #PortNum, "$Status", ",",InData, OutData 

接收侧

Input #PortNum, Response$, InData, OutData 
向文件写入时进行缓冲:可利用Flush语句写入被缓冲的数据。利用Close语句关闭文件时也进行写入。
示例:

Function printex    String temp$    Print #1, "5"  '将_5输出到端口_1中 temp$ = "hello"   Print #1, temp$    Print #2, temp$    Print #1 " Next message for port 1"    Print #2 " Next message for port 2" Fend


Input  #端口编号,变量名[,变量名,变量名,...]

说明: 用于从文件、通信端口、数据库或装置接收字符串或数值数据,并将其据保存到变量中。
格式: Input  #端口编号,变量名[,变量名,变量名,...]
参数: 端口编号  是表示文件、通信端口、数据库或装置的ID编号。
                          文件编号是由ROpen、WOpen、AOpen等语句指定的编号。
                          通信端口编号是由OpenCom(RS-232C) 或OpenNet(TCP/IP) 语句指定的编号。
                          数据库编号是由OpenDB语句指定的编号。
                          装置ID为以下数值。
                             21 RC+
                             24 TP
           变量名  指定接收数据的变量名。

         注意:
          数值输入规则:进行数值输入时,如果有分隔符以外的非数值数据,将舍去该非数值数据及其以后的数据。
          字符串输入规则:代入到字符串中时,将把数字和字母作为字符处理。
          最大数据长度:本命令一次可处理的最大数据长度为256 Byte。但对象为数据库时,最大数据长度为4096 Byte。
          与其他的Input命令有关的规则:

                -为代入对象指定多个变量时,各个要代入的数值数据必须用分隔符“,” 或空白(“”)分隔。
                -指定多个字符串变量以及指定数值变量和字符串变量两者时,数值数据必须用分隔符“,”或空白、(“”)分隔,而字符串数据必须用分隔符“,” 分隔。
                -输入数据类型必须符合代入对象的变量类型。

         使用通信端口交接控制器之间的字符串变量、数值变量示例:
                发送方  (任一模式即为OK。)

                    Print #PortNum, "$Status,", InData, OutData                    Print #PortNum, "$Status", ",",InData, OutData
                接收方
                    Input #PortNum, Response$, InData, OutData 
         易引起的错误:指定的变量数与输入数据的数量不一致时,如果命令指定的变量数与从设备接收的数值数据的数量不一致,将出现错误2505。

示例:

Function GetData      Integer A      String B$      OpenCom #1      Print #1, "Send"      Input #1, A'从端口#1获取数值     Input #1, B$ '从端口#1获取字符串     CloseCom #1 Fend 


Line Input #端口编号,字符串变量名$

说明:  Line Input # 用于从由端口编号指定的装置读入读入1行数据,并代入到由字符串变量名$指定的变量中。
格式:  Line Input #端口编号,字符串变量名$
参数:
            端口编号  是表示文件、通信端口、数据库或装置的ID编号。
                           通信端口编号是由OpenCom(RS-232C) 或OpenNet(TCP/IP) 语句指定的编号。
                           数据库编号是由OpenDB语句指定的编号。
                           装置ID为以下数值。
                                21 RC+
                                24 TP
            字符串变量名$,  指定字符串变量名。(请在字符串变量名最后附加$。)
示例: 

Function lintest  //下例所示为从通信端口1接收字符串数据并代入到字符串变量A$中。    String a$    Print #1, "Please input string to be sent to robot"    Line Input#1, a$    Print "Value entered = ", a$Fend 

Read #端口编号,字符串变量$,字符数

说明: 用于从文件或通信端口读入指定的字符数。
格式: Read #端口编号,字符串变量$,字符数
参数:
           端口编号  是表示文件或通信端口的ID编号。
                         文件编号是由ROpen、WOpen、AOpen等语句指定的编号。
                         通信端口编号是由OpenCom (RS-232C) 或OpenNet (TCP/IP) 语句指定的编号。
           字符串变量$  指定接收字符串的字符串变量名。
           字符数  指定要读入的字节数。
示例:

Integer numOfChars       String data$       numOfChars = ChkCom(1)       If numOfChars > 0 Then       Read#1, data$, numOfCharsEndIf


ReadBin #端口编号,变量名

ReadBin #端口编号,数组变量名(),字节数

说明:  用于从文件或通信端口读取二进制数据。
格式:  ReadBin #端口编号,数组变量名(),字节数
参数:  端口编号  是表示文件或通信端口的ID编号。
                          文件编号是由BOpen等语句指定的编号。
                          通信端口编号是由OpenCom (RS-232C) 或OpenNet (TCP/IP) 语句指定的编号。
           变量名     指定接收数据字节以及Byte型变量、整数变量或Long型变量的名称。
           数组变量名()  指定接收数据字节以及Byte型变量、整数变量或Long型变量的名称。可指定一维数组变量。
           字节数  指定要读入的字节数。需为最大数组下标以下(也就是不能超过数组下标,否则数组容易溢出)。
示例:

Integer dataInteger dataArray(10)numOfChars = ChkCom(1)  //ChkCom(通信端口编号)。用于返回通信端口的接收缓冲器内的字符数。  If numOfChars > 0 Then     ReadBin#1, data  EndIfnumOfChars = ChkCom(1)  If numOfChars > 10 Then     ReadBin#1, dataArray(), 10  EndIf

Write # 端口编号, 字符串

说明:  用于将字符串写入到文件或通信端口中。不附加行末终止符。Write命令不同于Print命令,不附加行末终止符。
格式:  Write # 端口编号, 字符串
参数:  端口编号  是表示文件或通信端口的ID编号。
                          文件编号是由ROpen、WOpen、AOpen等语句指定的编号。
                          通信端口编号是由OpenCom(RS-232C)或OpenNet(TCP/IP)语句指定的编号。
            字符串     指定要写入的字符串。
  注意: 向文件写入时进行缓冲。可利用Flush语句写入被缓冲的数据。利用Close语句关闭文件时也进行写入。
示例:

OpenCom #1    For i = 1 to 10       Write#1, data$(i)    Next iCloseCom #1


WriteBin #端口编号,写入数据
WriteBin #端口编号,数组变量名(), 字节数

说明:  用于将二进制数据写到文件或通信端口中。
格式:  WriteBin #端口编号,写入数据
            WriteBin #端口编号,数组变量名(), 字节数
参数:  端口编号  是表示文件或通信端口的ID编号。
                           文件编号是由BOpen等语句指定的编号。
                           通信端口编号是由OpenCom(RS-232C)或OpenNet(TCP/IP)语句指定的编号。
            写入数据  以整数或表达式指定要写入的数据。
            数组变量名()  指定保存写出数据字节的Byte型变量、整数变量或Long型变量的名称。可指定一维数组变量。
            字节数  指定要写出的字节数。需为最大数组下标以下(也就是不能超过数组下标,否则数组容易溢出)。

示例:

Integer i, data(100) OpenCom #1   For i = 0 To 100     WriteBin#1, i   Next i WriteBin#1, data(), 100 CloseCom #1 











1 0
原创粉丝点击