您好!欢迎光临工博士商城

爱普生机器人服务商

产品:47    
联系我们
联系方式
  • 联系人:庾文科
  • 电话:18616561800
  • 邮件:ywk@gongboshi.com
  • 手机:18616561800
新闻分类
  • 暂无分类
站内搜索
 
首页 > 新闻中心 > epson机器人编程 范例_Epson机械手简单实例编程--爱普生机器人
新闻中心
epson机器人编程 范例_Epson机械手简单实例编程--爱普生机器人
发布时间:2022-05-13        浏览次数:386        返回列表
 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$(), " "
 
selec 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
 
{
 
}
 
}
 
}
 
}
 
}
来源  网络                                               
              更多详情:爱普生机器人                       



 

联系热线:18616561800 联系人:庾文科 联系地址:上海市宝山区富联一路98弄6号

技术和报价服务:星期一至星期六8:00-22:00 爱普生机器人服务商

返回
顶部