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: #201
Host Name: 192.168.0.2
TCP/IPPort: 1000
Function tcpipOpenNet#201 As ServerWaitNet #201Print #201, "Data from host 1"
FendController #2:
Port: #201
Host Name: 192.168.0.1
TCP/IPPort: 1000Function tcpipString data$OpenNet#201 As ClientWaitNet #201Input #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, OutData
Print #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, OutDataPrint #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 numOfCharsString data$numOfChars = ChkCom(1)If numOfChars > 0 ThenRead#1, data$, numOfChars
EndIf

ReadBin #端口编号,变量名

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

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

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

Write # 端口编号, 字符串

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

OpenCom #1For i = 1 to 10Write#1, data$(i)Next i
CloseCom #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 

EPSON TCP/IP 通信相关推荐

  1. 《Linux高性能服务器编程》学习总结(四)——TCP/IP通信案例:访问Internet上的Web服务器...

    第四章      TCP/IP通信案例:访问Internet上的Web服务器 HTTP协议是工作在应用层上的协议,其应用十分广泛,而在进行通信的过程中,经常使用HTTP代理服务器.HTTP代理服务器主 ...

  2. TCP/IP通信程序设计方式

    刚接触TCP/IP通信设计的人根据范例可以很快编出一个通信程序,据此一些人可能会认为TCP/IP编程很简单.其实不然,TCP/IP编程具有较为丰富的内容.其编程的丰富性主要体现在通信方式和报文格式的多 ...

  3. TCP/IP 通信示例

    TCP/IP 通信示例 Global String ReadData_P_All$, ReadData_P$(10), data$ ' Global Preserve Double x Global ...

  4. Linux内核协议栈分析之——tcp/ip通信并不神秘

    Jack:计算机如何进行通信? 我:我可以告诉你带Linux操作系统的计算机如何进行通信. Jack:带Linux操作系统的计算机?这和不带操作系统的计算机有区别吗? 我:有的. Jack:哦.那你说 ...

  5. MATLAB与DSP(C6657)的TCP/IP通信实现

    最近尝试使用从MATLAB端键入输入,将输入值传给DSP,DSP运算之后将结果传回MATLAB并显示.我所设置的PC的IP地址是192.168.2.101,DSP的IP地址是192.168.2.100 ...

  6. 川崎机器人总线通信_川崎机器人TCP/IP通信方法及编程过程介绍

    川崎机器人的TCP/IP通信除了直接与川崎机器人通信外,有一种方式是通过PLC间接通信,附上我的另一篇文章,讲c#与三菱PLC通信的: 首先假设一个简单的应用情况,有一台带相机的川崎机器人,需要在机器 ...

  7. 51单片机 ENC28J60 TCP/IP通信

    51单片机 ENC28J60 TCP/IP通信 单片机:STC90C516RD+ ENC28J60模块:mini(3.3V供电) 设备:PC.开发板.两个网线.路由器 首先先介绍一下本文的移植针对于单 ...

  8. qt之TCP/IP通信客户端与服务器自动连接互相传输数据

    一.前言 在开发上位机软件,用的最多的通信就是网络通信,串口通信和USB通信,串口通信相对是最容易的,USB通信在前面的文章中也专门写了一个博客介绍USB HID通信方式,见链接:https://bl ...

  9. STM32通过广和通ADP-L610-Arduino进行TCP/IP通信

    STM32通过广和通L610进行TCP/IP通信 一. 写在前面   本次参加嵌入式大赛,使用了广和通的ADP-L610-Arduino板子进行通信.项目要求大概是本地上传数据到服务器,服务器接收后发 ...

最新文章

  1. [翻译] DSL和模型驱动开发的最佳实践(3/4)
  2. MathType公式行距设置的方法
  3. 【 Vivado 】输出延迟约束实例
  4. mysql 5.5 5.6差异,MySQL5.5和MySQL5.6授权区别
  5. mysql variables 大记录 查询 慢_MySQL - 慢查询
  6. OpenCV Shi-Tomasi corner 检测器
  7. [ST2017] Lab1: Triangle type and Junit test
  8. html li 做瀑布流,js实现瀑布流效果(自动生成新的内容)
  9. 有人说中文编辑是解决中国程序员编程效率的秘密武器,请问他是一个银弹吗?...
  10. 计算机应用科学计算文献,计算机应用参考文献
  11. php 添加失败是什么原因,安装zblog提示“创建c_option.php失败”的原因和解决办法...
  12. Mirantis决定采用Kubernetes作为 Openstack的生命周期管理工具
  13. 【算法导论】第5章,概率分析和随机算法
  14. AD模式下出现NetLogon 5781错误的对策
  15. 两年前疫情刚开始时写的手机上的悬浮贴图软件:悬浮便利贴 - 在手机屏幕上贴图、贴文字
  16. GB50174《电子信息系统机房设计规范》贯标培训活动
  17. 冲刺误区 | 一场失败的谷歌设计冲刺实践给我的启示
  18. js随机飘动的广告图片代码demo效果示例(整理)
  19. QN902X在KEIL中使用定时器中断流程记录
  20. php 提取视频中的声音,怎么提取视频的声音 提取视频中的声音

热门文章

  1. Oauth2.0和1.0区别
  2. UILabel 详解
  3. SetFormFullScreen()窗体全屏显示
  4. android应用开发全程实录-实现甩动拨打和挂断电话
  5. VS2017 网站打包发布生成的文件中包含.pdb文件,解决办法
  6. vc/vs开发的应用程序添加dump崩溃日志转
  7. 【Python数据分析】魔术命令(Magic Command)
  8. C# FileSystemWatcher 在监控文件夹和文件时的用法
  9. ImageLoader设置圆形图片
  10. Java 冒泡排序的实现