运动视觉系统

1 篇文章 0 订阅
1 篇文章 0 订阅

前言:本软件是基于固高运动控制卡开发的集成运动控制,Io,视觉于一体的软件,同时支持在线编辑cnc功能,客户可以根据现场的动作流程,自行编写运动,视觉cnc,以解决运动视觉开发耗时,耗费人力缺点。
同时通过引入技术,在设备异常或者报警的时候,设备会启动自修复功能,对设备进行检查,异常排查完成会,在次自动运行。
在这里插入图片描述


1.1 运动控制卡


主要负责工作台的运动控制部分,其控制电机的运行。
其电机控制模式仅限方向脉冲方式。
1.1.1 控制卡部件说明
1、固高GTS-400-PG(GTS-800-PG)控制卡,分别为 4 轴运动控制卡及 8 轴运动控制卡。

在这里插入图片描述

注:4 轴运动控制卡无外围扩展卡。
8 轴运动控制卡有外围扩展卡(固定在电脑内部)。
2、套线
4
3、端子板
4、GTS-400-PG(GTS-800-PG)控制卡,分别为 4 轴运动控制卡及 8 轴运动控制卡。
4 轴运动控制卡配 4 轴端子板时,其控制程序 DSP 必须为 1.24 及以上版本。
4 轴运动控制卡配 8 轴端子板时,其控制程序 DSP 必须为 1.22 或 1.24 版本的,而且同时必须联好两根线。

二 安装说明

2.1 硬件安装
2.1.1 GTS 运动控制卡安装
1、 关闭计算机
2、 将 GTS 运动控制卡插入计算机 PCI 插口上
3、 把 GTS 线览插入 GTS 卡上,另一头插入 GTS 端子板上
4、 打开电脑
5、 会弹出发现新硬件提示,不选择自动方式,选择手动指定方式进入以下界面

6、 点击“浏览”选择安装目录下的
7、 点击“下一步”直到完成安装
2.2 检查硬件安装结果
1、 进入设备管理器(参考附录 4)
2、 查看是否存在以下硬件并显示一样,如果出现黄色感叹号则说明驱动程序安装失败,如果末发现硬件说明硬
件安装连接不正常
6

3、 如上图所示,说明驱动及相关硬件安装完成

三 软件使用

3.1本软件支持人通RT运动控制板卡 ,固高GTS系列4轴,8轴,运动控制板卡。
3.2 在板卡选择在安装目录下

进行板卡选择修改。
3.3 软件可以实现轴点动。
3.4 欢迎使用自动编译器,

在编译框编写运动控制逻辑,单击运动。
3.5 视觉系统,

在这里插入图片描述
A 打开一张图片,然后框选特征区域,右键单击,框选图形变成蓝色,最后单击训练图形。
就完成对模板学习。
3.6支持离线仿真功能:
在这里插入图片描述
运行结果:

在这里插入图片描述

客户现场案例:

8轴贴合机: 通过界面点动按钮,移动相机到去料位置取物料,同时相机拍照拍照找到
具体位置,调整角度取塑料膜片。

通过运动轨迹编辑器实现多轴轨迹动作和逻辑控制。

在这里插入图片描述

脚本框可以完成运动和视觉轨迹数据的修正和传送。

代码编译器函数说明:

gline.GetDi(1,1) //获取固高输入1号引脚状态

gline.GetDi(2,1) //获取pci1230输入1号引脚状态

gline.SetDo(1,1,0); //固高IO输出设置 1号引脚低电平;

gline.SetDo(2,1,0); //pci1230 IO输出设置 1号引脚低电平

gline.goline(103.025,4.553,100,1000);;//x轴运动到位置103.025,y轴运动到4.553,以100mm/s的速度,1000mm^2/s的加速度
gline.MoveAxisToPosition(5,108,100,1000);//5号轴运动到位置108,以100mm/s的速度,1000mm^2/s

gline.GetRealPostion(1) ;//获取1号轴的实时位置值

gline.Delay(1000); //即时延时1000毫秒

在这里插入图片描述

产品:
在这里插入图片描述

部分客户现场机器:8个轴,32输入,32输出,2个相机,用于喷码行业

5.1 代码编译器语法简要介绍

5.1.1 程序结构
5.1.2 类型和变量

类别 说明
值类型 简单类型 有符号整型: sbyte、 short、 int 和 long
无符号整型: byte、 ushort、 uint 和 ulong
Unicode 字符型: char
IEEE 浮点型: float 和 double
高精度小数型: decimal
布尔型: bool
枚举类型 enum E {…} 形式的用户定义的类型
结构类型 struct S {…} 形式的用户定义的类型
可以为 null 的
类型
其他所有具有 null 值的值类型的扩展
八种整型类型分别支持 8 位、 16 位、 32 位和 64 位整数值的有符号和无符号的形式。
两种浮点类型: float 和 double, 分别使用 32 位单精度和 64 位双精度的 IEEE 754 格式表示。
decimal 类型是 128 位的数据类型, 适合用于财务计算和货币计算。
bool 类型用于表示布尔值 — 为 true 或者 false 的值。
字符和字符串处理使用 Unicode 编码。 char 类型表示一个 UTF-16 编码单元, string 类型表示
UTF-16 编码单元的序列。
下表总结了的数值类型。
类别 位数 类型 范围/精度
有符号
整型
8 sbyte –128 至 127
16 short –32,768 至 32,767
32 int –2,147,483,648 至 2,147,483,647
64 long –9,223,372,036,854,775,808 至 9,223,372,036,854,775,807
无符号
整型
8 byte 0 至 255
16 ushort 0 至 65,535
32 uint 0 至 4,294,967,295
64 ulong 0 至 18,446,744,073,709,551,615
浮点型 32 float 1.5 × 10-45 至 3.4 × 1038, 7 位精度
64 double 5.0 × 10-324 至 1.7 × 10308, 15 位精度
小数 128 decimal 1.0 × 10-28 至 7.9 × 1028, 28 位精度
5.1.3 表达式
表达式 (expression) 由操作数 (operand) 和运算符 (operator) 构成。 表达式的运算符指示对操作数应用什么样的
运算。 运算符的示例包括 +、 -、 、 / 和 new。 操作数的示例包括文本 (literal)、 字段、 局部变量和表达式。
30
当表达式包含多个运算符时, 运算符的优先级 (precedence) 控制各运算符的计算顺序。 例如, 表达式 x + y * z
按 x + (y * z) 计算, 因为 * 运算符的优先级高于 + 运算符。
大多数运算符都可以重载 (overload)。 运算符重载允许指定用户定义的运算符实现来执行运算, 这些运算的操作
数中至少有一个, 甚至所有操作数都属于用户定义的类类型或结构类型。
下表总结了 C# 运算符, 并按优先级从高到低的顺序列出各运算符类别。 同一类别中的运算符优先级相同。
类别 表达式 说明
基本规范 x.m 成员访问
x(…) 方法或委托调用
x[…] 数组索引器访问
x++ 后增量
x-- 后减量
new T(…) 对象和委托创建
new T[…] 数组创建
一元运算符 +x 恒等
-x 求相反数
!x 逻辑求反
~x 按位求反
++x 前增量
–x 前减量
(T)x 将 x 显式转换为类型 T
乘除运算符 x * y 乘法
x / y 除法
x % y 求余
31
加减运算符 x + y 加法、 字符串串联、 委托组合
x – y 减法、 委托移除
移位运算符 x << y 左移
x >> y 右移
关系和类型检测 x < y 小于
x > y 大于
x <= y 小于或等于
x >= y 大于或等于
x is T 如果 x 属于 T 类型, 则返回 true, 否则返回
false
x as T 返回转换为类型 T 的 x, 如果 x 不是 T 则返回
null
相等 x == y 等于
x != y 不等于
逻辑 AND x & y 整型按位 AND, 布尔逻辑 AND
逻辑 XOR x ^ y 整型按位 XOR, 布尔逻辑 XOR
逻辑 OR x | y 整型按位 OR, 布尔逻辑 OR
条件 AND x && y 仅当 x 为 true 才对 y 求值
条件 OR x || y 仅当 x 为 false 才对 y 求值
条件 x ? y : z 如果 x 为 true, 则对 y 求值, 如果 x 为
false, 则对 z 求值
5.1.4 语句
程序的操作是使用语句 (statement) 来表示的。支持几种不同的语句, 其中许多以嵌入语句的形式定义。
块 (block) 用于在只允许使用单个语句的上下文中编写多条语句。 块由位于一对大括号 { 和 } 之间的语句列表
组成。
声明语句 (declaration statement) 用于声明局部变量和常量。
表达式语句 (expression statement) 用于对表达式求值。 可用作语句的表达式包括方法调用、 使用 new 运算符的
对象分配、 使用 = 和复合赋值运算符的赋值, 以及使用 ++ 和 – 运算符的增量和减量运算。
选择语句 (selection statement) 用于根据表达式的值从若干个给定的语句中选择一个来执行。 这一组语句有 if
和 switch 语句。
迭代语句 (iteration statement) 用于重复执行嵌入语句。 这一组语句有 while、 do、 for 和 foreach 语句。
跳转语句 (jump statement) 用于转移控制。 这一组语句有 break、 continue、 goto、 throw、 return 和 yield
语句。
try…catch 语句用于捕获在块的执行期间发生的异常, try…finally 语句用于指定终止代码, 不管是否发生
异常, 该代码都始终要执行。
checked 语句和 unchecked 语句用于控制整型算术运算和转换的溢出检查上下文。
32
lock 语句用于获取某个给定对象的互斥锁, 执行一个语句, 然后释放该锁。
using 语句用于获得一个资源, 执行一个语句, 然后释放该资源。
下表列出了各语句, 并提供每个语句的示例。
语句 示例
局部变量声明 int a;
int b = 2, c = 3;
a = 1;
局部常量声明 const float pi = 3.1415927f;
const int r = 25;
表达式语句 int i;
i = 123; // Expression statement
i++; // Expression statement
if 语句
括号()中的条件满
足则执行程序段 1,
否则执行程序段 2
if (args.Length == 0)
{
//程序段 1
} e
lse
{
//程序段 2
}
33
switch 多分支选择
语句
case 后面跟的值若
是与switch (n)中的
n 相等则后面的语句,
否则不执行, default
表示其他都不满足, 默
认执行的动作
int n = args.Length;
switch (n) {
case 0:
//语句 1
break;
case 1:
//语句 2
break;
default:
break;
}
}
while 语句
括号 while ()中的
条件满足则执行程
序段 1, 否则调出循

int i = 0;
while (i < args.Length) {
//程序段 1
i++;
}
do 语句
当括号 while ()中
的条件满足循环执
行程序段 1, 不满足
则退出循环
string s;
do {
// 程序段 1
} while (s != null);
for 语句
i = 0 为初始条件, 若
满足 i <
args.Length(判定
条件)则执行程序体 1,
执行完后作增量 i++,
再次判定, 循环下去
for (int i = 0; i < args.Length; i++) {
//程序体 1
}
foreach 语句
依次遍历 s 在 args
(集合) 中, 若满足则
依次执行语句段 1, 直
到遍历完成
foreach (string s in args) {
//语句段 1;
}
break 语句
先进入死循环, 若 if
条件满足, 则退出死循

while (true) {
string s = Console.ReadLine();
if (s == null) break;
}
continue 语句
在 for 循环的过程中,
若满足 if 条件, 则跳
过此次迭代, 计数累加
for (int i = 0; i < args.Length; i++) {
if (args[i].StartsWith("/")) continue;
}
34
后继续循环
return 语句
return 语句用于退出
类或方法(函数) , 具
有带参返回和不带参
数返回。
static int Add(int a, int b) {
return a + b;
} s
tatic void Main() {
Console.WriteLine(Add(1, 2));
return;
}
throw 和 try
语句
异常处理语句, 发生
异常在 catch 后面的
{}中体现, 可以通过
throw 对错误进行抛
出。
static double Divide(double x, double y) {
if (y == 0) throw new DivideByZeroException();
return x / y;
} s
tatic void Main(string[] args) {
try {
if (args.Length != 2) {
throw new Exception(“Two numbers required”);
} d
ouble x = double.Parse(args[0]);
double y = double.Parse(args[1]);
Console.WriteLine(Divide(x, y));
} c
atch (Exception e) {
Console.WriteLine(e.Message);
} f
inally {
Console.WriteLine(“Good bye!”);
}
}
5.1.5 注释
注释一般有三种, 双反斜杠(//), 三斜杠(///) 以及斜杠加星号(/
…*/) ;
5.1.6 编程注意事项
1、 代码区分大小写, 不同字体表示含义截然不同, 请注意;
2、 语句标识要清晰, 以分号结尾, 语句间请做适当缩进, 养成良好的编程习惯;
3、 命名规则要规范, 重要方法请采用 Pascal 命名法(将标识符的首字母和后面连接的每个单词的首字母都大写),
常规变量请使用 Camel 命名法(标识符的首字母小写, 而每个后面连接的单词的首字母都大写)。

9 硬件接线检查:

9.01 第一:按照左手定则确定各轴正限位,负限位,原点是否接线正确。
第二:根据机械结构确定各轴回原点方向,1正方向,-1负方向,然后进行回原点。
第三:完成对硬件螺距测试,把x轴以到到负限位,然后进行坐标清零,然后移动x轴到正限位,此时显示一个总长距离t1mm
,然后对距离进行转化,测量正负限位实际长度值t2mm,h=t1/t2;
得到转化值。依照此方法完成对其他轴的转化,最后打开轴cncDemo运行程序看轴位置是否对上。
第四:对IO输出状态开关状态进行检查,打开IO表,1代表硬件动作执行,0代表硬件复位,以此检查输出接线。
第五:对IO输出状态进行检查,1代表高电平,0代表低电平,然后检查硬件接线。
第六:打开软件运行cncIO检查demo,看硬件运行情况。

10 软件下载地址:

链接:https://pan.baidu.com/s/1cXzGj_ifrje6WMX7P9plsw
提取码:s9vg
复制这段内容后打开百度网盘手机App,操作更方便哦
希望可以和大家多交流,微信13113353514

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值