epson机器人编程 范例_Epson机械手简单实例编程
Epson简单实例
1.Epson软件方面编程
2.网络配置方面
3.vs编码方面
软件配置:Epson机械手软件,vs2012
网络配置:Tcp通信,IP地址及端口设置
硬件配置:Pc机,机械手,机械手供电器
一.环境准备
①pc,机械手,供电器上电。
②pc与机械手的两个网线插口连接,置供电器Power为On
③配置pc的ip地址与Epson软件同一个ip地址,Epson软件每一个端口都可以设置一个ip,可以同时开多个端口(设置位置:设置—系统配置—控制器—TCP/IP)
④窗口—电脑与控制器通信–增加,添加一个以太网连接p1,同时设置ip地址
⑤将软件状态从离线改为usb,在更改为名为p1的以太网连接。
⑥工具—机器人管理器,调试机械手,机械手运动则表示环境准备完成。
二. 编写Epson软件代码
①初始化Epson
②网络配置
③扫描端口,获取端口数据,传输数据Function ScanConnNet
OnErr GoTo errhandler
Do
NetSts = ChkNet(202)
If (NetSts > 0) Then
Input #202, RecvString$ '从202端口获取输入,并赋值到变量RecvString$
ParseStr RecvString$, RecvStr$(), "#"
ParseStr RecvString$, RecvStr$(), " "
Select RecvStr$(0)
Case "X"
Move CurPos +X(Val(RecvStr$(1)))
Case "-X"
Move CurPos -X(Val(RecvStr$(1)))
Case "RobotRun"
CX(P100) = Val(RecvStr$(1))
CY(P100) = Val(RecvStr$(2))
CZ(P100) = Val(RecvStr$(3))
CU(P100) = Val(RecvStr$(4))
CV(P100) = Val(RecvStr$(5))
CW(P100) = Val(RecvStr$(6))
Go LJM(P100)
'发送数据到202端口
Print #202, "#GoToPointok"
Send
ElseIf NetSts
Call NetOpen
ElseIf NetSts = 0 Then
EndIf
Print #202, "#RobotPos" + "," + Str$(CX(CurPos)) + "," + Str$(CY(CurPos)) + "," + Str$(CZ(CurPos)) + "," + Str$(CU(CurPos)) + "," + Str$(CV(CurPos)) + "," + Str$(CW(CurPos)) + "#"
Wait 0.2
Loop
errHandler:
RecvString$ = ""
EResume Next
Fend
三.c#编程①Tcp连接核心代码using System.Threading.Tasks;
using TestLTDMC;
using System.Threading;
using System.Windows.Forms;
namespace Test
{
class Robot
{
private Socket client;
public static object sendLock = new object();
private IPEndPoint ipep;
private byte[] buf = new byte[1024];
private static object SendLock = new object();
private static object Lock = new object();
public static Robot robot;
private bool RobotConnectSts = false;
public static Robot instance;
public static Robot Instance()
{
if (instance == null)
{
instance = new Robot();
}
return instance;
}
private Robot()
{
IPAddress ipad = IPAddress.Parse("192.168.0.1");
ipep = new IPEndPoint(ipad, 2001);
}
public void ConnectWithRobot()
{
if (client != null && client.Connected)
{
client.Close();
}
try
{
lock (sendLock)
{
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
client.Connect(ipep);
client.BeginReceive(buf, 0, buf.Length, SocketFlags.None, new AsyncCallback(Receive), client);
}
}
catch
{
}
}
public bool GetRobotConnectSts
{
get
{
if (client != null)
{
RobotConnectSts = client.Connected;
}
else
{
RobotConnectSts = false;
}
return RobotConnectSts;
}
}
public void DisconnectWithRobot()
{
if (client != null)
{
client.Close();
}
}
private void Receive(IAsyncResult ia)
{
try
{
client = ia.AsyncState as Socket;
int count = client.EndReceive(ia);
client.BeginReceive(buf, 0, buf.Length, SocketFlags.None, new AsyncCallback(Receive), client);
string context = Encoding.ASCII.GetString(buf, 0, count);
if (context.Length > 0)
{
ProcessData(context);
}
else
{
}
}
catch
{
}
}
private void ProcessData(string recvdata)
{
recvdata = recvdata.Trim();
string[] cmddata = recvdata.Split(new char[] { '#' });
//string[] singlecmddata1 = cmddata[1].Split(new char[] { '\r\n' });
string[] singlecmddata = cmddata[1].Split(new char[] { ',' });
if (singlecmddata[0].Trim() != "RobotPos")
{
RunLog.instance.SaveLog(1, "PC接收到Robot发来的去" + recvdata + "命令");
}
switch (singlecmddata[0].Trim())
{
case "RobotPos":
//相关处理
break;
default:
break;
}
}
public void SendCmdToRobot(string part1, double part2, string part3, string part4, string part5, string part6, string part7)
{
string sendcmd = "";
sendcmd = part1 + " " + part2 + " " + part3 + " " + part4 + " " + part5 + " " + part6 + " " + part7;
SendCmdData(sendcmd);
}
public void SendCmdData(string StrData)
{
RunLog.instance.SaveLog(1, "PC向Robot发送" + StrData + "命令");
lock (SendLock)
{
try
{
byte[] buf1;
buf1 = Encoding.ASCII.GetBytes(StrData + "\r\n");
client.Send(buf1, 0, buf1.Length, SocketFlags.None);
}
catch
{
}
}
}
}
}
#转载请注明出处 www.skcircle.com 《少有人走的路》勇哥的工业自动化技术网站。如果需要本贴图片源码等资源,请向勇哥索取。
epson机器人编程 范例_Epson机械手简单实例编程相关推荐
- Epson机械手简单实例编程
Epson简单实例 1.Epson软件方面编程 2.网络配置方面 3.vs编码方面 软件配置:Epson机械手软件,vs2012 网络配置:Tcp通信,IP地址及端口设置 硬件配置:Pc机,机械手,机 ...
- 珞石(ROKAE)机械手简单的编程
最近公司用到洛石机械手,编程这一块网上资源较少, 下面是一个简单的程序,控制机械手运动,和plc用io口通讯, MODULE MainModule //下面是一个点位(可以示教) GLOBAL VAR ...
- 数控铣削图案及编程_数控铣削简单图案编程
展开全部 随手画一个桃心图案32313133353236313431303231363533e59b9ee7ad9431333337383832 G90 G54 G0 X0. Y16.406 S120 ...
- EPSON机器人简单实例
(2条消息) EPSON机器人SPLE+语言_简单实例_qq_48705696的博客-CSDN博客 编写一个初始化函数打开马达.设定运行功率及速度 方法体是以关键字Function为开始 Fend为结 ...
- EPSON机器人建立TCP/IP通讯的简单demo
以下为我近期研究EPSON机器人通讯的经验总结,主要实现机械手接收相机发送过来的数据,从而达到对应的位置,及其简单demo. 欢迎加入知识星球[3D视觉工坊],进行交流学习.
- Linux C Socket编程原理及简单实例
部分转自:http://goodcandle.cnblogs.com/archive/2005/12/10/294652.aspx 1. 什么是TCP/IP.UDP? 2. Socket在哪里 ...
- kafka java编程demo_Kafka简单客户端编程实例
今天,我们给大家带来一篇如何利用Kafka的API进行客户端编程的文章,这篇文章很简单,就是利用Kafka的API创建一个生产者和消费者,生产者不断向Kafka写入消息,消费者则不断消费Kafka的消 ...
- EPSON机器人的以太网通讯简单总结
以下首发于[3D视觉工坊]知识星球. 主要是我近几天对于EPSON机器人与客户端之间的通讯方法,进行了摸索,并进行了总结,为后期手眼标定的实现做好铺垫. 个人公众号:「3D视觉工坊」.
- 简单的Python编程范例
''' 美女征婚 1.对方必须是男的 2.对方房子面积不能小于100 3.对方的工资不能少于20w 4.对方的车子价值不能少于50w 如果对方存款超过1000w 以上条件无视 如果对方存款超过500w ...
- java数字编程提,java从字符串中提取数字的简单实例
随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们怎么把其中的数字提取出来呢?大致有以下几种方法, ...
最新文章
- DataView.RowFilter使用
- 聚集索引和非聚集索引[转]
- 【设计模式系列】行为型模式之Mediator模式
- Python使用pyexecjs代码案例解析
- iisS7 配置SSL 绑定主机头实现多站点访问
- python遍历文件_python3 遍历文件夹目录所有文件
- MQTT 固定报头 中 剩余长度字段的计算
- MPFlipViewController
- java集合框架介绍_Java集合框架全面介绍(一)
- 由嫦娥四号的中继卫星鹊桥,谈谈拉格朗日点
- CashFiesta注册网赚
- hbase与hadoop版本兼容问题,强烈谴责hadoop生态圈耦合性
- 4x root 红米_红米手机4x如何获取root权限?
- CSS实现div竖向排版
- audio的自动播放
- IE低版本提示下载新的浏览器js--IEOutTips.zip
- 资深技术专家推荐:如何写复杂业务代码-阿里实践
- vue 实现上拉加载
- 秋招斩获所有互联网大厂面经之前端
- 超融合详细对比:市面各主流超融合产品及厂商优劣势解密
热门文章
- egret php交互,JavaScript_Egret引擎开发指南之视觉编程,显示对象和显示列表 
“显示 - phpStudy...
- 服务器安装macos虚拟机,Win10虚拟机VMware安装黑苹果MacOS Sierra图文教程
- 如何把一个eclipse安装包放到eclipse中
- 【技术流派】双目立体视觉系统空间精度:精确定量分析
- 公网IP地址获取:移动网络IP、Wifi IP
- Chapter 2 unit 2 of Bootstrap-Bootstrap CSS
- 使用傲腾内存加速的电脑(神舟)安装Ubuntu双系统
- 从零开始学JavaScript——基础篇
- 卡方线性趋势检验_趋势卡方检验
- 使用Arduino解码并发送433MHz RF无线射频信号