搜索
bottom↓
回复: 54

有偿求一款电机调试用上位机软件

[复制链接]

出0入0汤圆

发表于 2018-6-4 16:08:19 | 显示全部楼层 |阅读模式
最近再做电机控制方面的工作,想将控制的内部状态变量拉出来,在电脑上看看波形(电流,磁通等中间变量),不知道坛里的大侠有没有好用的上位机软件或者其他方法。

如果有成熟的话,可以有偿分享一下!也可以有偿帮忙开发一下!

注:尝试下了一些串口示波器,总是有这样那样的问题(比如支持的波形频率不够等)!

出0入0汤圆

发表于 2018-6-4 16:34:05 | 显示全部楼层
jlink就有这样的功能,不需要上位机了。

出0入0汤圆

发表于 2018-6-4 16:38:01 | 显示全部楼层
写小的上位机调试软件,对我来说很简单。
前不久帮别人写了一个视觉方面的测试软件。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2018-6-4 16:41:07 | 显示全部楼层
hexenzhou 发表于 2018-6-4 16:34
jlink就有这样的功能,不需要上位机了。

希望考虑通用性,支持串口最好,否则不支持jlink的单片机还是没法用的!

出0入18汤圆

发表于 2018-6-4 16:44:22 | 显示全部楼层
下载一个LABVIEW NXG, 花上一两小时就能写一个。

出0入0汤圆

发表于 2018-6-4 16:44:30 | 显示全部楼层
串口能满足你采样速度的要求吗?

出0入0汤圆

 楼主| 发表于 2018-6-4 16:45:12 | 显示全部楼层
codefish 发表于 2018-6-4 16:38
写小的上位机调试软件,对我来说很简单。
前不久帮别人写了一个视觉方面的测试软件。

我的软件想法是用串口通信,实时曲线显示的方式。

这里面有个关键的指标就是只要下位单片机数据发送的足够快,上位机能把下位机数据无闪烁,不丢数的全部用曲线显示出来。

不知兄弟用的是什么工具写上位机,我现在懂点C#和VC++, 如果方向同就更好了!

出0入0汤圆

 楼主| 发表于 2018-6-4 16:46:58 | 显示全部楼层
icexiong 发表于 2018-6-4 16:44
串口能满足你采样速度的要求吗?

串口我也觉得有点勉强,但是又似乎想不到其他通用一点的方法!

出0入0汤圆

发表于 2018-6-4 16:54:53 | 显示全部楼层
waferhit 发表于 2018-6-4 16:46
串口我也觉得有点勉强,但是又似乎想不到其他通用一点的方法!

串口采集1秒钟也就60次,能满足吗,这个都满足不了的话,那就得换方案了

出0入0汤圆

发表于 2018-6-4 16:56:45 | 显示全部楼层
你想用什么软件?如果vb的话  我可以给你提供一个模板 你自己修改

出0入0汤圆

 楼主| 发表于 2018-6-4 16:57:55 | 显示全部楼层
icexiong 发表于 2018-6-4 16:54
串口采集1秒钟也就60次,能满足吗,这个都满足不了的话,那就得换方案了 ...


我们以基本的电压频率来计算,50Hz意味着20ms一个正弦波,一个正弦波用10个点的话,意味着2ms得发一个点(2字节),如果是4通道,即使没有帧头帧尾,也的250us至少发一个字节吧!

我觉得这应该是一个电机调试软件最基本的性能了!

出0入0汤圆

发表于 2018-6-4 16:58:01 | 显示全部楼层
waferhit 发表于 2018-6-4 16:46
串口我也觉得有点勉强,但是又似乎想不到其他通用一点的方法!

串口有串口的办法,我就是用串口30ms一次数据,可以使用缓冲区  多存几组数据,就没有延迟了

出0入0汤圆

发表于 2018-6-4 16:58:12 | 显示全部楼层
这还是传输数据不多的情况下,如果传输的数据很多,1秒钟采集的次数还会降低

出0入0汤圆

 楼主| 发表于 2018-6-4 17:00:08 | 显示全部楼层
weichao4808335 发表于 2018-6-4 16:58
串口有串口的办法,我就是用串口30ms一次数据,可以使用缓冲区  多存几组数据,就没有延迟了 ...

我也想过缓冲的办法,但是我想瓶颈在串口数据,怎么个缓冲法好?

出0入0汤圆

发表于 2018-6-4 17:01:38 | 显示全部楼层
waferhit 发表于 2018-6-4 17:00
我也想过缓冲的办法,但是我想瓶颈在串口数据,怎么个缓冲法好?

这个就很好操作了,

出0入0汤圆

发表于 2018-6-4 17:10:37 | 显示全部楼层
waferhit 发表于 2018-6-4 17:00
我也想过缓冲的办法,但是我想瓶颈在串口数据,怎么个缓冲法好?

自己不想写的话 用uC/Probe吧 很好用 实时性也高

出0入0汤圆

发表于 2018-6-4 17:37:34 | 显示全部楼层
本帖最后由 codefish 于 2018-6-4 18:09 编辑
waferhit 发表于 2018-6-4 16:45
我的软件想法是用串口通信,实时曲线显示的方式。

这里面有个关键的指标就是只要下位单片机数据发送的足 ...


我一般用C#。
VC++我也会用,但是很少用来写这一类带界面的上位机软件。

串口编程我也经常涉及。你算一下115200的波特率是否满足你的数据传输速率?
电脑端的硬件(现在基本都是usb转串口芯片)和驱动层已有数据缓冲(Buffer),只要通讯波特率大于你的下位机发送数据需求速率,是不会丢数据的。

出0入0汤圆

发表于 2018-6-4 18:32:21 | 显示全部楼层
不用想啥上位机软件了,这个不仅仅是上位机问题,固件也要支持才行,有那个精力,早把电机控制做好了
之前做到了40KHz的采样率,观察内部变量,可以多个

出0入0汤圆

 楼主| 发表于 2018-6-4 19:12:16 | 显示全部楼层
bailao99 发表于 2018-6-4 18:32
不用想啥上位机软件了,这个不仅仅是上位机问题,固件也要支持才行,有那个精力,早把电机控制做好了
之前 ...

也不完全是这样吧,有个好调试工具,对理解电机控制内部过程还是很有好处的吧

出0入0汤圆

发表于 2018-6-4 19:22:41 | 显示全部楼层
我喜欢直接外接一个双路DAC,一个做基准,一个用于观察,效果特别好,只是要加个示波器观察。
还可以用RAM大点的单片机,把运行过程中的数据保存到RAM,等采集完了后,通过串口发送到上位机显示,一般专业伺服的虚拟示波器就这样干的。

出0入0汤圆

发表于 2018-6-4 19:54:47 | 显示全部楼层
本帖最后由 bailao99 于 2018-6-4 19:56 编辑
waferhit 发表于 2018-6-4 19:12
也不完全是这样吧,有个好调试工具,对理解电机控制内部过程还是很有好处的吧 ...


关键是很不好编程,可以计算下:40KHz的PWM载波频率
如果每载波调整一次,那么在25us内要完成控制算法,通讯算法,这样MCU的负载率很高,程序优化也要求很高
另外对上位机的响应速度也要求高,不采用特殊手段,是不可能实现的。
20L提出的DAC方法是TI的标准输出方案,基于多余内存缓存控制变量的可行性更高
因为:只要买个内存大点的同类MCU接口
缓存方式想看哪个变量看哪个变量,是个好办法

编辑原因:TI采用PWM转DAC方式,用外部DAC要求转换速率高

出90入4汤圆

发表于 2018-6-4 20:08:31 来自手机 | 显示全部楼层
本帖最后由 john78 于 2018-6-4 20:10 编辑

我的板上有以太网,上位用VC写的曲线显示。串口太慢,要打包等处理,大麻烦了。

出0入0汤圆

发表于 2018-6-4 22:03:17 | 显示全部楼层
waferhit 发表于 2018-6-4 16:57
我们以基本的电压频率来计算,50Hz意味着20ms一个正弦波,一个正弦波用10个点的话,意味着2ms得发一个点 ...


250us发一个字节??
是250us采样一个数据点吧,按照这种速度,肯定是先将若干个数据点打包成一帧,然后每隔一定时间发到上位机(一般我见过比较多的时间间隔是10ms)。
完全实时显示是不可能的,顶多是无丢包地复现数据。

出0入0汤圆

 楼主| 发表于 2018-6-4 22:33:07 | 显示全部楼层
dxgdsx 发表于 2018-6-4 22:03
250us发一个字节??
是250us采样一个数据点吧,按照这种速度,肯定是先将若干个数据点打包成一帧,然后 ...

4个ch的话,8个字节,大概2ms可以获得1个点的信息,1个点代表4通道

出0入0汤圆

发表于 2018-6-4 22:44:15 | 显示全部楼层
你这样 不太现实, 你是打算1MS 输出一个数据呢 还是? 你要调试你的电机,  从我调过电机的经验来看,  用VC调好算法后,直接放入单片机就行了.  VC的好处不用说,无限断点,查看变量.

出0入8汤圆

发表于 2018-6-4 22:51:33 来自手机 | 显示全部楼层
visualscope,简单好用,你想用虚拟示波器看us级的信号,还是算了吧,用dma或者串口带fifo,还是比较好用的,最快也就是看一个载波里面的数据,波特率够快,还是可以的,我现在用的就是这个,我们公司也有一个比较好用的,不过速度比较慢,而且下位机代码比较复杂

出0入0汤圆

发表于 2018-6-5 09:16:31 | 显示全部楼层
bailao99 发表于 2018-6-4 19:54
关键是很不好编程,可以计算下:40KHz的PWM载波频率
如果每载波调整一次,那么在25us内要完成控制算法, ...

其实要看的关键变量没几个。
最好使用真正的DAC,PWM转的很Low。

出0入0汤圆

发表于 2018-6-5 11:08:33 来自手机 | 显示全部楼层
我给你说下我的方法,下位机用921600的波特率,大概70us发送9个字节,我20K的PWM,2个发送一次,在电脑上虚拟示波器可以显示4路的波形,够用了吧?

出0入0汤圆

发表于 2018-6-7 04:03:39 来自手机 | 显示全部楼层
DAC吧,拉个示波器就行

出0入0汤圆

发表于 2018-6-7 08:21:37 | 显示全部楼层
这个上位机并不难,如果是串口通讯更简单,首先你得先把硬件部分的通讯写好,比如是确定好协议,简单点可以套用MODBUS-RTU,上位机做曲线,读取,保存数据(比如EXCEL等)都是小CASE

出0入0汤圆

发表于 2018-6-7 08:23:43 | 显示全部楼层
codefish 发表于 2018-6-4 16:38
写小的上位机调试软件,对我来说很简单。
前不久帮别人写了一个视觉方面的测试软件。

请问你视觉的算法用什么?OPENCV还是HALCON?
你这个图是做差异比对吗?

出0入0汤圆

发表于 2018-6-7 08:26:47 | 显示全部楼层
waferhit 发表于 2018-6-4 16:45
我的软件想法是用串口通信,实时曲线显示的方式。

这里面有个关键的指标就是只要下位单片机数据发送的足 ...

曲线我做过8ms采集  用的是TCPIP,曲线很流畅
当时是和三菱的以太网模块通讯的,上位机还是采用的很老的VB6

出0入0汤圆

发表于 2018-6-7 08:34:57 | 显示全部楼层
waferhit 发表于 2018-6-4 16:57
我们以基本的电压频率来计算,50Hz意味着20ms一个正弦波,一个正弦波用10个点的话,意味着2ms得发一个点 ...

测试的时候保存在底层,测试完再把数据抛出来进行分析!
串口肯定不行,波特率115200勉强,但是程序其他处理时间加起来肯定不够
否则你要实时采样肯定只能选用其他通讯了!

出0入0汤圆

发表于 2018-6-7 09:14:16 | 显示全部楼层
这个串口软件怎么样。https://www.amobbs.com/thread-5685075-1-1.html

出0入0汤圆

发表于 2018-6-7 10:41:15 | 显示全部楼层
光明星1号 发表于 2018-6-7 08:23
请问你视觉的算法用什么?OPENCV还是HALCON?
你这个图是做差异比对吗?

我的上面那个案例,基础算法库是opencv。
是做差异对比。

出0入0汤圆

 楼主| 发表于 2018-6-7 12:15:37 | 显示全部楼层
太阳花 发表于 2018-6-7 09:14
这个串口软件怎么样。https://www.amobbs.com/thread-5685075-1-1.html

看着还不错,可惜我用的是win7.

习惯用老一点的系统,有些工具开发软件兼容性更好。

出0入0汤圆

发表于 2018-6-7 13:41:42 | 显示全部楼层







玩过国外的开源电调,写的上位机,效果很好。  STM32F405  一根USB 直接连接到电脑。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2018-6-7 15:17:53 | 显示全部楼层
lyg407 发表于 2018-6-7 13:41
玩过国外的开源电调,写的上位机,效果很好。  STM32F405  一根USB 直接连接到电脑。

...

哈哈。。我也在看vesc.
就是mos管太贵了。

出0入24汤圆

发表于 2018-6-7 15:28:11 | 显示全部楼层
uc/probe  不二之选
不需要目标代码,不占用CPU利用率
多种控件,使用灵活

出0入9汤圆

发表于 2018-6-7 17:37:01 来自手机 | 显示全部楼层
SEGGER的一个软件也可以吧

出0入0汤圆

发表于 2018-6-7 17:50:02 | 显示全部楼层
Shampoo 发表于 2018-6-7 15:17
哈哈。。我也在看vesc.
就是mos管太贵了。

MOS管15元一个,不贵,贵的是采样电阻,一颗30元,这还是几年前的价格

出0入0汤圆

发表于 2018-6-7 21:44:04 | 显示全部楼层
kevinstar888 发表于 2018-6-7 17:50
MOS管15元一个,不贵,贵的是采样电阻,一颗30元,这还是几年前的价格

是呀。
采样电阻不能别的替代?

出95入100汤圆

发表于 2018-6-9 17:39:38 | 显示全部楼层
带spi借口的DA.做一个小板,把数据转换成电压信号。用示波器看。

出95入100汤圆

发表于 2018-6-9 17:40:18 | 显示全部楼层
hexenzhou 发表于 2018-6-4 16:34
jlink就有这样的功能,不需要上位机了。

小功率的电机控制一般都是非隔离的,用jlink比较危险

出0入0汤圆

发表于 2018-6-9 17:51:20 | 显示全部楼层
JSCope 就可以 只要有SWD或JTAG接口就行

出0入0汤圆

发表于 2018-6-10 11:03:37 | 显示全部楼层
20061002838 发表于 2018-6-7 15:28
uc/probe  不二之选
不需要目标代码,不占用CPU利用率
多种控件,使用灵活

这个软件  还行吧  就是要对上他们的协议   

出0入24汤圆

发表于 2018-6-10 16:21:59 | 显示全部楼层
wind2100 发表于 2018-6-10 11:03
这个软件  还行吧  就是要对上他们的协议

用Jlink的话,不需要关心协议
用其他接口,串口、网口、USB这些会需要移植一些代码用来跑协议

出0入0汤圆

发表于 2018-6-10 17:03:15 | 显示全部楼层
之前画的一个3电平-IGBT的控制板,挂了一个8通道DA在FPGA上专门用来调试看波形。

出0入0汤圆

发表于 2018-6-10 17:29:06 来自手机 | 显示全部楼层
电机控制板输出spi接orangepi然后python操作spi读数据显示

出615入1076汤圆

发表于 2018-6-10 19:00:18 | 显示全部楼层
本帖最后由 dukelec 于 2018-6-10 19:17 编辑

我之前是随便写一个小 Python 脚本就可以绘制波形,画图调用的是 matplotlib.pyplot, 电机为了抗干扰走的是 RS485 通讯,主动上报 电流环、速度环、位置环 三个环的的 PID 状态数据,DSP 端搞一个大缓存,后台发送数据,遇到装满的时候停止继续装入数据,等发送空了再重新允许装数据(这之间的数据丢掉),这样的好处是可以看到非常细节的连续的一段电流环的数据,如果要看整体连续的话,就设置一下采样点的间隔就好。

电流环频率是 20kHz, 每个点传 4 个 float 变量:pid 目标值、输入值、i term、输出值,同时速度环、位置环也是一样,只是频率低一些,为了波形整体尽量连续,
所以我的 485 速率设置为 10Mbps, 而且传统模式下,等主机来查数据总线利用率很低,所以要主动上报数据,而主动上报数据又会与主机下发的控制命令相互冲突,所以当时的解决方案是使用带仲裁的 CDBUS 协议控制器。

截图找不到了,最近用同样的方法调另一个台灯项目的 PID 参数,这是截图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入24汤圆

发表于 2018-6-10 19:40:07 | 显示全部楼层
lhj200304 发表于 2018-6-9 17:40
小功率的电机控制一般都是非隔离的,用jlink比较危险

把Jlink隔离就是了,有USB隔离器

出615入1076汤圆

发表于 2018-6-10 19:46:27 | 显示全部楼层
20061002838 发表于 2018-6-10 19:40
把Jlink隔离就是了,有USB隔离器

譬如机械臂的关节,它运动的时候,没办法外接 USB、Jtag, 比较方便的就是利用现有 485 总线传输数据。

出0入24汤圆

发表于 2018-6-10 20:12:42 | 显示全部楼层
dukelec 发表于 2018-6-10 19:46
譬如机械臂的关节,它运动的时候,没办法外接 USB、Jtag, 比较方便的就是利用现有 485 总线传输数据。 ...

系统级的调试跟芯片级的调试相比,数据量会小上很多,实时性要求也会低一些,因此系统级调试上面不需要通过JTAG这种方式,用系统已有的总线就够了
调试的时候,需要把数据发送到PC,你的485还需要再接一个适配器;调试需要完善的操作界面,这个你无法提供

我说的ucprobe,强调的是调试界面,而不是JTAG这个接口,虽然JTAG最便利
我上面也说了,JTAG不是唯一的接口,如果有必要可以切换到其它任何接口,例如以太网,USB,包括你所推荐的 CDBUS

出0入0汤圆

发表于 2018-6-10 23:58:29 来自手机 | 显示全部楼层
看看我签名满足吧

出0入0汤圆

发表于 2018-6-11 08:07:51 | 显示全部楼层
电机调试的 基础工作 做好了,后面的工作 事半功倍 ,值得研究
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 23:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表