固高运动卡的使用 3 运动之Jog运动

news/2024/11/20 1:23:33/

 

理论篇:

Jog运动是机器运动中的一种运动模式,它具备操作简单、独立性、没有目的性,常常被用于机器的测试和调试。

关于Jog运动的变速过程:

另外在Jog运动模式下,初始目标速度为 100pulse/ms。动态改变目标速度时,当规划位置超过 100000pulse 时,修改目标速度为 50 pulse/ms

关于脉冲与步进电机之间的关系:

步进电机脉冲频率与输出转速换算关系;

步进电机在整步是,1圈需要200个脉冲,即200Hz时,电机速度1rps,8000Hz时,转40rps。

半步时,1圈需要400个脉冲,即400Hz时,电机转速1rps,8000Hz时,转速20rps,

4细分时,1圈需要800个脉冲,即800Hz时,电机转速1rps,8000Hz时,转速10rps。

由上可知,电机运行速度=控制脉冲频率/(200*细分值)rp。

影响步进电机转速的条件有两个,脉冲频率和延时子程序的延时时间。脉冲频率越高,步进电机转速越快。延时子程序的延时时间越长,步进电机转速越快。

关于电机转动与实际机器轴位移关系:

丝杆转速与丝杆导程:
没有变速器的情况下丝杆转速 = 电机转子转速。
丝杆导程就是丝杆转一 圈螺母行走的直线距离,一般这个系数丝杆说明书上有,比如10mm和15mm等。

 

实战篇:

关于固高运动控制卡的Jog运动:

在构建固高的Jog运动基本上只需要运用以下固高gts提供的方法

操作步骤即是:

1、打开伺服驱动

2、设置轴为Jog模式

3、设置Jog参数(加速度、减速度、平滑系数)

4、设置轴速度

5、启动Jog运动

实战代码篇:

前台样式:

代码:

public partial class Form1 : Form{//控制卡卡号static short _cardNum = 0;//当前轴short _axis;//速度double _vel;//加速度double _acc;//减速度double _dec;//平滑系数double _smooth;//导程protected double _Pitch = 40;//齿轮比/细分protected double _Divide = 40000; public Form1(){InitializeComponent();//启动固高运动控制卡new GT.GTS_Start(0, Application.StartupPath + "\\GTS800_1.cfg", -1, false, Application.StartupPath + "\\ExtModule.cfg");}private void Form1_Load(object sender, EventArgs e){//添加默认值this.textBox1.Text = "1";this.textBox2.Text = "5";this.textBox3.Text = "0.5";this.textBox4.Text = "0.5";//smooth 平滑系数范围 [ 0, 1)this.comboBox1.Items.Add("0");this.comboBox1.Items.Add("0.1");this.comboBox1.Items.Add("0.2");this.comboBox1.Items.Add("0.3");this.comboBox1.Items.Add("0.4");this.comboBox1.Items.Add("0.5");this.comboBox1.Items.Add("0.6");this.comboBox1.Items.Add("0.7");this.comboBox1.Items.Add("0.8");this.comboBox1.Items.Add("0.9");this.comboBox1.Text = "0.9";//添加but事件this.button1.Click += button_Click;this.button2.Click += button_Click;this.button3.Click += button_Click;}private void button_Click(object sender, EventArgs e){string text = (sender as Button).Text;if (text == "stop"){GTS.GT_Stop(_cardNum, (1 << (_axis - 1)), (Convert.ToInt32(false) << (_axis - 1)));return;}//轴号_axis = short.Parse(this.textBox1.Text);//脉冲速度_vel = double.Parse(this.textBox2.Text);//加速度_acc = double.Parse(this.textBox3.Text);//减速度_dec = double.Parse(this.textBox4.Text);//平滑系数_smooth = double.Parse(this.comboBox1.Text);if (text == "后退"){_vel = -_vel;}Jog(_axis, _vel, _acc, _dec, _smooth);}//jog运动public void Jog(short _axis, double _vel, double _acc, double _dec, double _smooth) {//实际速度与脉冲转换//_vel = VelToPulse(_vel);//_acc = AccToPulse(_acc);//_dec = AccToPulse(_dec);//清除伺服状态GTS.GT_ClrSts(1, _axis, _axis);//打开使能GTS.GT_AxisOn(_cardNum, _axis);Thread.Sleep(50);//需要延时等待伺服使能完成//位置归零GTS.GT_ZeroPos(_cardNum, _axis, _axis);//设置为jog模式GTS.GT_PrfJog(_cardNum, _axis);//声明参数参数GTS.TJogPrm _jogPrm;//获取参数GTS.GT_GetJogPrm(_cardNum, _axis, out _jogPrm);//设置参数_jogPrm.acc = _acc;_jogPrm.dec = _dec;_jogPrm.smooth = _smooth;//设置参数GTS.GT_SetJogPrm(_cardNum, _axis, ref _jogPrm);//设置目标速度,这个速度需要进行齿轮比换算的GTS.GT_SetVel(_cardNum, _axis, _vel);//开启运动GTS.GT_Update(_cardNum, (1 << (_axis - 1)));}public long MmToPulse(double mm){//距离转脉冲try{return Convert.ToInt64((mm * _Divide) / _Pitch);}catch (Exception ex){System.Diagnostics.Trace.WriteLine(ex.Message);return 0;}}public double VelToPulse(double vel){return MmToPulse(vel) * 0.001;    //mm/s 转换为pulse/ms }public double AccToPulse(double acc){return MmToPulse(acc) * 0.000001; //mm/s2 转换为 pulse/ms2}}

ps:运行所需环境参见:https://blog.csdn.net/weixin_44490080/article/details/101468746


http://www.ppmy.cn/news/471057.html

相关文章

蓝牙耳机和运动耳机哪个好、运动款耳机排名分享

如果你要买一款运动耳塞&#xff0c;那么你需要注意一些细节&#xff0c;一款好的运动耳塞&#xff0c;应该具备如下特点&#xff1a;佩戴足够安全和足够舒服&#xff0c;抵抗含有盐分的汗水&#xff0c;足够持久的续航能力&#xff0c;声音质量更好&#xff0c;这是我在选择运…

05静态链表(补充)

静态链表 定义 单链表&#xff1a;各个结点散落在内存中的各个角落&#xff0c;每个结点有指向下一个节点的指针(下一个结点在内存中的地址);静态链表&#xff1a;用数组的方式来描述线性表的链式存储结构: 分配一整片连续的内存空间&#xff0c;各个结点集中安置&#xff0c…

什么牌子蓝牙耳机运动好?健身推荐这几款高续航真无线蓝牙耳机

蓝牙耳机在过去十年中取得了长足的进步&#xff0c;它的发展意味着更先进的蓝牙编解码器、更强大的续航和更好的音质&#xff0c;对于那些重视音质和便利性的人来说是个好消息&#xff0c;蓝牙耳机在任何场合都会给人很大的帮助&#xff0c;而蓝牙耳机的好坏也要从几个方面来评…

软件工程是否迎来iPhone时刻?

“软件工程是否迎来iPhone时刻&#xff1f;” 是2023K全球软件研发行业创新峰会上海站主会场的Panel discussion的主题&#xff0c;出场的几位嘉宾给出了不同的答案&#xff0c;其中有两位嘉宾给出了“No”&#xff0c;一位给出了“塞班时刻”&#xff08;后来给我朋友圈投票是…

【UE 从零开始制作坦克】9-坦克瞄准

效果 步骤 1. 将下载的图片资源导入 2. 再新建一个控件蓝图&#xff0c;命名为“WBP_Aim” 打开“WBP_Aim”&#xff0c;拖入图像控件 选择图像控件的锚点如下 偏移全部置0 图像选择刚导入的“miaozhunjing” 3. 打开骨骼“SKEL_West_Tank_M1A1Abrams” 可以看到在炮管上有一个…

基于ChatGPT打造一个智能数据分析系统

最近最火的AI话题无疑就是ChatGPT了&#xff0c;让大家看到了通用智能领域的巨大进步&#xff0c;ChatGPT已经能足够好的回答人们提出的各种问题&#xff0c;因此我也在想能否利用ChatGPT来理解用户对于数据分析方面的提问&#xff0c;把这些提问转化为相应的数据分析任务&…

房屋装修选择自装,如何寻找水电工人,比价并施工(水电阶段)

环境&#xff1a; 地点&#xff1a;杭州 装修类型&#xff1a;自装 面积&#xff1a;建面135平方 进度&#xff1a;水电阶段 问题描述&#xff1a; 房屋装修选择自装&#xff0c;如何寻找水电工人&#xff0c;比价并施工 解决方案&#xff1a; 一、了解水电相关知识 水…

调用万维易源API实现天气预测

目录 1. 作者介绍2. 关于理论方面的知识介绍2.1 天气预测简介2.2 预测方法 3. 代码实现3.1 需要安装的包3.2 部分代码3.3 实验结果 1. 作者介绍 房庚晨&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;22级研究生 研究方向&#xff1a;机器视觉与人工智能 电子…