有偿求一款电机调试用上位机软件
最近再做电机控制方面的工作,想将控制的内部状态变量拉出来,在电脑上看看波形(电流,磁通等中间变量),不知道坛里的大侠有没有好用的上位机软件或者其他方法。如果有成熟的话,可以有偿分享一下!也可以有偿帮忙开发一下!
注:尝试下了一些串口示波器,总是有这样那样的问题(比如支持的波形频率不够等)! jlink就有这样的功能,不需要上位机了。 写小的上位机调试软件,对我来说很简单。
前不久帮别人写了一个视觉方面的测试软件。
hexenzhou 发表于 2018-6-4 16:34
jlink就有这样的功能,不需要上位机了。
希望考虑通用性,支持串口最好,否则不支持jlink的单片机还是没法用的! 下载一个LABVIEW NXG, 花上一两小时就能写一个。 串口能满足你采样速度的要求吗? codefish 发表于 2018-6-4 16:38
写小的上位机调试软件,对我来说很简单。
前不久帮别人写了一个视觉方面的测试软件。
我的软件想法是用串口通信,实时曲线显示的方式。
这里面有个关键的指标就是只要下位单片机数据发送的足够快,上位机能把下位机数据无闪烁,不丢数的全部用曲线显示出来。
不知兄弟用的是什么工具写上位机,我现在懂点C#和VC++, 如果方向同就更好了! icexiong 发表于 2018-6-4 16:44
串口能满足你采样速度的要求吗?
串口我也觉得有点勉强,但是又似乎想不到其他通用一点的方法! waferhit 发表于 2018-6-4 16:46
串口我也觉得有点勉强,但是又似乎想不到其他通用一点的方法!
串口采集1秒钟也就60次,能满足吗,这个都满足不了的话,那就得换方案了 你想用什么软件?如果vb的话我可以给你提供一个模板 你自己修改 icexiong 发表于 2018-6-4 16:54
串口采集1秒钟也就60次,能满足吗,这个都满足不了的话,那就得换方案了 ...
我们以基本的电压频率来计算,50Hz意味着20ms一个正弦波,一个正弦波用10个点的话,意味着2ms得发一个点(2字节),如果是4通道,即使没有帧头帧尾,也的250us至少发一个字节吧!
我觉得这应该是一个电机调试软件最基本的性能了! waferhit 发表于 2018-6-4 16:46
串口我也觉得有点勉强,但是又似乎想不到其他通用一点的方法!
串口有串口的办法,我就是用串口30ms一次数据,可以使用缓冲区多存几组数据,就没有延迟了 这还是传输数据不多的情况下,如果传输的数据很多,1秒钟采集的次数还会降低 weichao4808335 发表于 2018-6-4 16:58
串口有串口的办法,我就是用串口30ms一次数据,可以使用缓冲区多存几组数据,就没有延迟了 ...
我也想过缓冲的办法,但是我想瓶颈在串口数据,怎么个缓冲法好? waferhit 发表于 2018-6-4 17:00
我也想过缓冲的办法,但是我想瓶颈在串口数据,怎么个缓冲法好?
这个就很好操作了, waferhit 发表于 2018-6-4 17:00
我也想过缓冲的办法,但是我想瓶颈在串口数据,怎么个缓冲法好?
自己不想写的话 用uC/Probe吧 很好用 实时性也高 本帖最后由 codefish 于 2018-6-4 18:09 编辑
waferhit 发表于 2018-6-4 16:45
我的软件想法是用串口通信,实时曲线显示的方式。
这里面有个关键的指标就是只要下位单片机数据发送的足 ...
我一般用C#。
VC++我也会用,但是很少用来写这一类带界面的上位机软件。
串口编程我也经常涉及。你算一下115200的波特率是否满足你的数据传输速率?
电脑端的硬件(现在基本都是usb转串口芯片)和驱动层已有数据缓冲(Buffer),只要通讯波特率大于你的下位机发送数据需求速率,是不会丢数据的。
不用想啥上位机软件了,这个不仅仅是上位机问题,固件也要支持才行,有那个精力,早把电机控制做好了
之前做到了40KHz的采样率,观察内部变量,可以多个 bailao99 发表于 2018-6-4 18:32
不用想啥上位机软件了,这个不仅仅是上位机问题,固件也要支持才行,有那个精力,早把电机控制做好了
之前 ...
也不完全是这样吧,有个好调试工具,对理解电机控制内部过程还是很有好处的吧 我喜欢直接外接一个双路DAC,一个做基准,一个用于观察,效果特别好,只是要加个示波器观察。
还可以用RAM大点的单片机,把运行过程中的数据保存到RAM,等采集完了后,通过串口发送到上位机显示,一般专业伺服的虚拟示波器就这样干的。 本帖最后由 bailao99 于 2018-6-4 19:56 编辑
waferhit 发表于 2018-6-4 19:12
也不完全是这样吧,有个好调试工具,对理解电机控制内部过程还是很有好处的吧 ...
关键是很不好编程,可以计算下:40KHz的PWM载波频率
如果每载波调整一次,那么在25us内要完成控制算法,通讯算法,这样MCU的负载率很高,程序优化也要求很高
另外对上位机的响应速度也要求高,不采用特殊手段,是不可能实现的。
20L提出的DAC方法是TI的标准输出方案,基于多余内存缓存控制变量的可行性更高
因为:只要买个内存大点的同类MCU接口
缓存方式想看哪个变量看哪个变量,是个好办法
编辑原因:TI采用PWM转DAC方式,用外部DAC要求转换速率高 本帖最后由 john78 于 2018-6-4 20:10 编辑
我的板上有以太网,上位用VC写的曲线显示。串口太慢,要打包等处理,大麻烦了。 waferhit 发表于 2018-6-4 16:57
我们以基本的电压频率来计算,50Hz意味着20ms一个正弦波,一个正弦波用10个点的话,意味着2ms得发一个点 ...
250us发一个字节??
是250us采样一个数据点吧,按照这种速度,肯定是先将若干个数据点打包成一帧,然后每隔一定时间发到上位机(一般我见过比较多的时间间隔是10ms)。
完全实时显示是不可能的,顶多是无丢包地复现数据。 dxgdsx 发表于 2018-6-4 22:03
250us发一个字节??
是250us采样一个数据点吧,按照这种速度,肯定是先将若干个数据点打包成一帧,然后 ...
4个ch的话,8个字节,大概2ms可以获得1个点的信息,1个点代表4通道 你这样 不太现实, 你是打算1MS 输出一个数据呢 还是? 你要调试你的电机,从我调过电机的经验来看,用VC调好算法后,直接放入单片机就行了.VC的好处不用说,无限断点,查看变量. visualscope,简单好用,你想用虚拟示波器看us级的信号,还是算了吧,用dma或者串口带fifo,还是比较好用的,最快也就是看一个载波里面的数据,波特率够快,还是可以的,我现在用的就是这个,我们公司也有一个比较好用的,不过速度比较慢,而且下位机代码比较复杂 bailao99 发表于 2018-6-4 19:54
关键是很不好编程,可以计算下:40KHz的PWM载波频率
如果每载波调整一次,那么在25us内要完成控制算法, ...
其实要看的关键变量没几个。
最好使用真正的DAC,PWM转的很Low。 我给你说下我的方法,下位机用921600的波特率,大概70us发送9个字节,我20K的PWM,2个发送一次,在电脑上虚拟示波器可以显示4路的波形,够用了吧? DAC吧,拉个示波器就行 这个上位机并不难,如果是串口通讯更简单,首先你得先把硬件部分的通讯写好,比如是确定好协议,简单点可以套用MODBUS-RTU,上位机做曲线,读取,保存数据(比如EXCEL等)都是小CASE codefish 发表于 2018-6-4 16:38
写小的上位机调试软件,对我来说很简单。
前不久帮别人写了一个视觉方面的测试软件。
请问你视觉的算法用什么?OPENCV还是HALCON?
你这个图是做差异比对吗? waferhit 发表于 2018-6-4 16:45
我的软件想法是用串口通信,实时曲线显示的方式。
这里面有个关键的指标就是只要下位单片机数据发送的足 ...
曲线我做过8ms采集用的是TCPIP,曲线很流畅
当时是和三菱的以太网模块通讯的,上位机还是采用的很老的VB6 waferhit 发表于 2018-6-4 16:57
我们以基本的电压频率来计算,50Hz意味着20ms一个正弦波,一个正弦波用10个点的话,意味着2ms得发一个点 ...
测试的时候保存在底层,测试完再把数据抛出来进行分析!
串口肯定不行,波特率115200勉强,但是程序其他处理时间加起来肯定不够
否则你要实时采样肯定只能选用其他通讯了! 这个串口软件怎么样。https://www.amobbs.com/thread-5685075-1-1.html 光明星1号 发表于 2018-6-7 08:23
请问你视觉的算法用什么?OPENCV还是HALCON?
你这个图是做差异比对吗?
我的上面那个案例,基础算法库是opencv。
是做差异对比。
太阳花 发表于 2018-6-7 09:14
这个串口软件怎么样。https://www.amobbs.com/thread-5685075-1-1.html
看着还不错,可惜我用的是win7.
习惯用老一点的系统,有些工具开发软件兼容性更好。
玩过国外的开源电调,写的上位机,效果很好。STM32F405一根USB 直接连接到电脑。
lyg407 发表于 2018-6-7 13:41
玩过国外的开源电调,写的上位机,效果很好。STM32F405一根USB 直接连接到电脑。
...
哈哈。。我也在看vesc.
就是mos管太贵了。 uc/probe不二之选
不需要目标代码,不占用CPU利用率
多种控件,使用灵活 SEGGER的一个软件也可以吧 Shampoo 发表于 2018-6-7 15:17
哈哈。。我也在看vesc.
就是mos管太贵了。
MOS管15元一个,不贵,贵的是采样电阻,一颗30元,这还是几年前的价格 kevinstar888 发表于 2018-6-7 17:50
MOS管15元一个,不贵,贵的是采样电阻,一颗30元,这还是几年前的价格
是呀。
采样电阻不能别的替代? 带spi借口的DA.做一个小板,把数据转换成电压信号。用示波器看。 hexenzhou 发表于 2018-6-4 16:34
jlink就有这样的功能,不需要上位机了。
小功率的电机控制一般都是非隔离的,用jlink比较危险 JSCope 就可以 只要有SWD或JTAG接口就行 20061002838 发表于 2018-6-7 15:28
uc/probe不二之选
不需要目标代码,不占用CPU利用率
多种控件,使用灵活
这个软件还行吧就是要对上他们的协议 wind2100 发表于 2018-6-10 11:03
这个软件还行吧就是要对上他们的协议
用Jlink的话,不需要关心协议
用其他接口,串口、网口、USB这些会需要移植一些代码用来跑协议 之前画的一个3电平-IGBT的控制板,挂了一个8通道DA在FPGA上专门用来调试看波形。 电机控制板输出spi接orangepi然后python操作spi读数据显示 本帖最后由 dukelec 于 2018-6-10 19:17 编辑
我之前是随便写一个小 Python 脚本就可以绘制波形,画图调用的是 matplotlib.pyplot, 电机为了抗干扰走的是 RS485 通讯,主动上报 电流环、速度环、位置环 三个环的的 PID 状态数据,DSP 端搞一个大缓存,后台发送数据,遇到装满的时候停止继续装入数据,等发送空了再重新允许装数据(这之间的数据丢掉),这样的好处是可以看到非常细节的连续的一段电流环的数据,如果要看整体连续的话,就设置一下采样点的间隔就好。
电流环频率是 20kHz, 每个点传 4 个 float 变量:pid 目标值、输入值、i term、输出值,同时速度环、位置环也是一样,只是频率低一些,为了波形整体尽量连续,
所以我的 485 速率设置为 10Mbps, 而且传统模式下,等主机来查数据总线利用率很低,所以要主动上报数据,而主动上报数据又会与主机下发的控制命令相互冲突,所以当时的解决方案是使用带仲裁的 CDBUS 协议控制器。
截图找不到了,最近用同样的方法调另一个台灯项目的 PID 参数,这是截图:
lhj200304 发表于 2018-6-9 17:40
小功率的电机控制一般都是非隔离的,用jlink比较危险
把Jlink隔离就是了,有USB隔离器 20061002838 发表于 2018-6-10 19:40
把Jlink隔离就是了,有USB隔离器
譬如机械臂的关节,它运动的时候,没办法外接 USB、Jtag, 比较方便的就是利用现有 485 总线传输数据。 dukelec 发表于 2018-6-10 19:46
譬如机械臂的关节,它运动的时候,没办法外接 USB、Jtag, 比较方便的就是利用现有 485 总线传输数据。 ...
系统级的调试跟芯片级的调试相比,数据量会小上很多,实时性要求也会低一些,因此系统级调试上面不需要通过JTAG这种方式,用系统已有的总线就够了
调试的时候,需要把数据发送到PC,你的485还需要再接一个适配器;调试需要完善的操作界面,这个你无法提供
我说的ucprobe,强调的是调试界面,而不是JTAG这个接口,虽然JTAG最便利
我上面也说了,JTAG不是唯一的接口,如果有必要可以切换到其它任何接口,例如以太网,USB,包括你所推荐的 CDBUS
看看我签名满足吧 电机调试的 基础工作 做好了,后面的工作 事半功倍 ,值得研究
页:
[1]