C# action 返回值_C#与ABB机械手建立通信,并控制机械手动作 - 龙拓电子

第一步:安装软件
VS2017+PCSDK 2019.5 7.0.8721.594
分别在微软官网和ABB官网下载。
第二步:安装完软件后,找到PC SDK的安装目录,默认目录是C:\Program Files (x86)\ABB\SDK\PCSDK 2019。打开目录下的文件48684c0a4f1ffa8302a1d53b0ebc751e.png

在VS中添加引用。2bfe6ac22487997568c52a45e158edff.png

将和两个DLL文件添加进来。
添加using指令。d51c3691e7398e0c563d42be0ce2439a.png

第三步:程序实现,建立连接。
public static ABB.Robotics.Controllers.RapidDomain.Task tRob1 = null;//
private NetworkScanner scanner = null;
private Controller controller = null;
ControllerInfoCollection controllers = null;
scanner = new NetworkScanner();
();
controllers = 扫描到的所有控制器
if (scanner.Controllers.Count == 1)//只搜索到一个机械手的情况,
{
try
{
if (controllers[0].() == "")
{
controller = (controllers[0], ABB.Robotics.Controllers.ConnectionType.Standalone, false);
}
}
catch (Exception ex) { (()); }
}
if (controller != null)
{
if (controller.Connected == true)
{
();
tRob1 = ("T_ROB1");
}
if (controller.Connected == true)//指示灯
{
pictureBox3.Image = imageList1.Images[3];
}
else
{
pictureBox3.Image = imageList1.Images[1];
}
}
第四步:向ABB坐标变量、位变量等写入或读取数据。
c# 写ABB布尔变量:
if (controller.IsMaster == false && controller.OperatingMode == ControllerOperatingMode.Auto)
{
try
{
using (var m = (controller))
{
if (controller.IsMaster == false) ("ABB主机请求失败");
var rd16 = ("T_ROB1", "MainModule", "ABB_detection_star");
rd16.Value = new Bool(true);
}
}
catch (Exception ex)
{ (());
}
}
C#读ABB布尔变量:
RapidData rd4 = ("T_ROB1", "MainModule", "ABB_safety_bit");
if (rd4.Value is Bool)
{
Bool rapidBool = (Bool)
}
C#读坐标变量:
if ( != null)
{
MAIN.rd_repeat = .GetRapidData("MainModule", "ABB_photo_data");
RobTarget rgb1 = (RobTarget)MAIN.rd_repeat.Value;
[2].Cells[1].Value = ();
[3].Cells[1].Value = ();
[4].Cells[1].Value = ();
}
C#写入坐标变量:
using (var m = (controller))
{
RapidData rx5 = ("T_ROB1").GetModule("MainModule").GetRapidData("pPlaceA");
RobTarget rgt5 = (RobTarget)rx5.Value;
if (controller.IsMaster == false) ("ABB主机请求失败2");
rgt5.Trans.X = (float)79.25;;
rgt5.Trans.Y = (float)83.29;
rgt5.Trans.Z = (float)39.55;
//rbg.FillFromString2("[[],[],[0,-2,3,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]]");
rx5.Value = rgt5;//在ABB指定位置写入坐标
}
C#针对网线接触不良,ABB断电等可以加断开连接检测功能:
if (controller != null)//实际测试验证好用,ABB断电,指示灯变为红灯,ABB再次上电,指示灯自动变为绿灯
{
try
{
if (controller.Connected == false)
{
pictureBox3.Image = imageList1.Images[1];
controller = null;//断开连接后,CONTROLLER给NULL值,方便程序自动重连。
// ("ABB断开连接");
}
else
{
pictureBox3.Image = imageList1.Images[3];
}
}
catch (Exception ex)
{
(());
}
}
到这基本基本可以实现C#与ABB通信并控制ABB运动的各项基本功能。有疑问欢迎一起探讨,邮箱:longtuodz@

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值