EPSON TCP/IP 通信

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 











本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/255101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDBC(九)DatabaseMetaData 数据库元数据

通过java.sql.DatabaseMetaData 接口,我们能获取到数据库的列表、列等信息。 DatabaseMetaData 接口包含了许多方法,这里值介绍常用的。 ###获取 DatabaseMetaData 实例对象 DatabaseMetaData databaseMetaData connection.getMetaData(); 复制代码###获…

C++多线程(一)

C多线程&#xff08;一&#xff09; WIN 多线程API一 简单实例比较简单的代码&#xff0c;创建10个线程&#xff0c;其中使第4个线程在一创建就挂起&#xff0c;等到其他的线程执行的差不多的时候再使第4个线程恢复执行。#include <stdio.h>#include <stdlib.h>#i…

HALCON示例程序measure_ball_bond.hdev电路板焊点位置测量

HALCON示例程序measure_ball_bond.hdev电路板焊点位置测量 示例程序源码&#xff08;加注释&#xff09; 关于显示类函数解释 dev_update_off () dev_close_window () FileName : ‘bonds/ball_bond_ccd_’ read_image (Image, FileName 1$‘02’) dev_open_window_fit_imag…

rank()over 函数的使用

1. over()是分析函数&#xff0c;可以和rank()函数配合使用&#xff0c;也可以和其他函数配合使用。取每个学科排名前三的分数&#xff0c;sql语句如下&#xff1a; select * from (select rank() over(partition by subject order by mark desc) rk,S.* from S) T where T.rk&…

天梯赛2016-L2

L2-001. 紧急救援 作为一个城市的应急救援队伍的负责人&#xff0c;你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候&#xff0c;你…

伺服系统控制网络的重要性! 现场总线的重要性! SSCNET运动控制系统与发展趋势

引言&#xff1a;在2010年的时候&#xff0c;在北京的一个数控公司工作。产品采用的是通过运动控制卡发脉冲的方式&#xff0c;控制机床的X、Y、Z轴进行加工。 机床在加工产品的时候&#xff0c;一直存在着精度的问题&#xff0c;例如DMG的机床可以达到0.01的加工精度&#x…

apache配置

wamp环境安装需要VC运行库的支持 apache如果需要外网访问&#xff0c;在其配置文件中寻找127.0.0.1然后替换为all 外网访问需要关闭防火墙&#xff1f;转载于:https://www.cnblogs.com/gremlin/p/5581486.html

TCP/IP 通信示例

TCP/IP 通信示例 Global String ReadData_P_All$, ReadData_P$(10), data$ Global Preserve Double x Global Integer foundnumber_PFunction TCPServerSetNet #201, "192.168.0.1", 4000, CRLF, NONE, 0OpenNet #201 As ClientWaitNet #201Print "TCP Connect…

MySQL分库分表总结参考

单库单表 单库单表是最常见的数据库设计&#xff0c;例如&#xff0c;有一张用户(user)表放在数据库db中&#xff0c;所有的用户都可以在db库中的user表中查到。 单库多表 随着用户数量的增加&#xff0c;user表的数据量会越来越大&#xff0c;当数据量达到一定程度的时候对u…

小兔伴伴家庭动物园AR智能早教产品上市

2016年6月&#xff0c;经过乐卓大家庭所有人的共同努力&#xff0c;公司旗下首款新品——小兔伴伴之《家庭动物园》3D智能学习卡正式面世。 每个孩子都应该在合适的时间去体验丰富的声音、色彩和动作&#xff0c;《家庭动物园》&#xff0c;专为2-6岁儿童贴心设计&#xff0c;是…

EPSON 自带CCD图像处理包使用举例

EPSON 机器人可以购买CCD图像处理包选项&#xff0c;CCD图像处理包与SPEL语言高度结合&#xff0c;可以非常快的将项目投入应用&#xff0c;举例说明CCD图像处理包与SPEL的联合使用。 EPSON 以视觉序列定义图像处理的一个项目&#xff0c;视觉序列是一组按照特定顺序排列的视觉…

索引使用原则

前两篇文章我总结了一些SQL数据库索引的问题&#xff0c;这篇主要来分析下索引的优缼点&#xff0c;以及如何正确使用索引。 索引的优点&#xff1a;这个显而易见&#xff0c;正确的索引会大大提高数据查询&#xff0c;对结果进行排序、分组的操作效率。 索引的缺点…

根据时间变换页面背景

1.概述 有些时侯为了丰富页面的显示效果&#xff0c;将页面制作成根据时间变换页面背景的样式&#xff0c;这样会使浏览者对此网站不会感觉厌倦&#xff0c;同时也会觉得网站制作的非常新颖。本实例通过Date对象的getHours()方法获得当前系统时间的小时&#xff0c;然后根据不同…

EPSON 自带CCD图像处理包的典型应用框架

EPSON 自带CCD图像处理包的典型应用框架 Function main ******************************************** Very important statement below: Use the * //非常重要的是在实际运行时&#xff0c;用合适的Z数值代替预定义的 ZHeight 。Z height which you wrote down earlier in *…

EPSON 利用CCD图像处理包标定工具坐标系

EPSON 利用CCD图像处理包标定工具坐标系 仰视式安装的相机可以用来计算工具偏移&#xff0c;下例使用仰视式相机来计算工具偏移。该功能首先运行一个序列来定位工具的尖端。然后计算出工具偏移&#xff08;前提是CCD已标定&#xff09;。 Function CalcTool Boolean foundReal…

挂马方式研究、挂马检测技术研究

1. 挂马定义 所谓的挂马&#xff0c;就是黑客通过各种手段&#xff0c;包括SQL注入&#xff0c;网站敏感文件扫描&#xff0c;服务器漏洞&#xff0c;网站程序0day, 等各种方法获得网站管理员账号&#xff0c;然后登陆网站后台&#xff0c;通过数据库"备份/恢复"或者…

大幅面多相机高精度定位及测量解决方案

随着机器视觉应用的日益广泛&#xff0c;大幅面多相机视觉系统的需求越来越多&#xff0c;主要应用方向为大幅面高精度的定位与测量和场景拼接等。多相机视觉系统的难点在于多相机坐标系的统一&#xff0c;可以分为两类&#xff0c;一是相机视野间无重叠部分&#xff0c;二是相…

Hadoop 使用FileSystem API 读取数据

代码&#xff1a; package com.hadoop;import java.io.IOException; import java.io.InputStream; import java.net.URI;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.apache.hadoop.…

EPSON 机器人多任务下的互锁处理

在很多时候&#xff0c;有多个任务具有动作命令指令。为了防止多个任务运行动作命令时&#xff0c;对仅有的一个机器人产生的控制冲突&#xff0c;有必要进行连锁处理。一个任务进行机器人控制时&#xff0c;另一个任务则会等待控制权。这样&#xff0c;各任务就可以完全按照预…