QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
11天前
查看: 2466|回复: 8
收起左侧

[讨论结束] 实现“计算机控制四个电机联动”,我想用C++来编程,如何处置?

 关闭 [复制链接]
发表于 2008-5-26 17:44:01 | 显示全部楼层 |阅读模式 来自: 中国黑龙江哈尔滨

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

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

x
我目前是要实现计算机控制四个电机联动9 t6 k& g2 k8 X
计算机通过RS232和主电机驱动器相连,四个驱动器通过CAN口连接。
9 S0 h5 T( P& c. O$ W# f9 l如何通过编程实现电机联动啊?我想用C++编
# h, ?$ n- C9 ^; T+ Y1 g请老师们赐教~/ T9 t- }" N' U3 z
说明书全是英文,虽能看懂大概,但没做过相关的编程控制,还是一头雾水,没法下手,请老师们给予指点!
, L% J6 V* a* r! C
- t) e" X$ Q' C# y1 m[ 本帖最后由 zhous_ch 于 2008-5-26 21:20 编辑 ]
发表于 2008-5-26 17:53:32 | 显示全部楼层 来自: 中国广东深圳
呵呵,不知道你用的什么牌子电机驱动器.
+ p: h* }2 K. e! f) C8 ^2 J6 T要是用KINCO的伺服驱动器和PLC控制是比较简单,程序可以通过PLC来控制连动 ' `4 `9 c! ^+ M( O  ?( f1 ~* f' b
你可以试加PLC进行控制,要比较简单吧
发表于 2008-5-26 19:36:17 | 显示全部楼层 来自: 中国江苏盐城
我也想呀!但是想来想去感觉程序太难了!所以只好放弃了!
 楼主| 发表于 2008-5-26 20:56:37 | 显示全部楼层 来自: 中国黑龙江哈尔滨
我们是使用maxon电机 用EPOS驱动器& k; Q$ x, j" {8 T' O8 Q" H" B
不让用PLC啊, f9 u9 K0 [0 K4 @+ U
编程时可以直接调用说明书提供的函数
4 b) G; K4 i/ W. ~8 K3 {, P0 h但我不知道程序的流程应该是怎样(先干什么 再干什么)
4 w, M1 W2 k' K  g3 c% j请老师们帮帮忙~
发表于 2008-7-25 11:16:01 | 显示全部楼层 来自: 中国浙江杭州
用哪种语言有区别么?
发表于 2008-7-25 14:38:39 | 显示全部楼层 来自: 中国河南郑州
我觉得这是个比较简单的事情。而且还有现成的库函数。只是操作串口而已。
发表于 2008-7-25 15:38:00 | 显示全部楼层 来自: 中国山东潍坊
你这不叫“四个电机联动”,至少我不这么认为,只不过是控制四台电机同时动作而已。
% ^$ ~; o0 S) i; J9 ]; S  j接口函数都告诉你了,调用起来也不是很麻烦吗,用C++做个界面,用c写控制程序。所谓程序不过是初始化接口,传送数据,而已,把他们提供的程序好好看看。
发表于 2008-8-10 20:19:52 | 显示全部楼层 来自: 中国上海
找一块 驱动卡 如楼上那样处理就可以了
发表于 2008-9-2 22:20:47 | 显示全部楼层 来自: 中国河北石家庄
使用C8051F040高速SOC单片机、L298N直流电机驱动芯片,软件编程可在Siliocn Labortories集成开发环境(DIE)下通过JATG接口进行编程,不需要专用编程器或适配器;还可以通过用户软件对FALSH进行编程,允许现场更新固件为产品的软件升级提供了极大的方便。
6 C$ U; q  M- G, h1 z( V: b) N本设计中的应用程序是在Keil C51的开发环境下编译后用EC-3仿真器下载到芯片中运行的。主要程序代码如下:
3 Q0 R0 N! X1 P//交叉开关配置,将6路PWM输出配置到P0端口
6 m, ]1 O( ^% E- A4 xvoid config(void)
+ D3 ]& z5 ]$ s7 B) ?{, p: G. S1 w% Y6 u4 e, U/ Q/ s
XBR0=0x30;//将6路PWM输出配置到P0.0-P0.5端口  u7 U5 ?4 [# ]% [6 [
XBR1=0x00;
0 `7 A. t/ G- Q/ ^. {, M  v4 tXBR2=0xc0;//开启交叉开关,全局上拉开启! Z- w: t$ L2 [5 ]+ X# z' e
XBR3=0x00;
* |8 u3 B% b: v- @3 k}. K- Y* [2 c' d0 L' F7 I
//配置T0定时器,定时时间1毫秒,系统时钟24MHz
3 A6 S' d1 r( y& \Void Timer_cfg(void); T8 G% x* U$ Y" o; Q( p6 ~+ r8 R4 Z
{0 R2 [, s) d+ _3 y# P* {* B
TMOD=0x01;//采用定时器0的方式1
# v, A2 f3 T+ U3 u2 ?4 M  D3 DTH0=0xf8;
5 r& X7 s' b6 W, R; I( h0 N4 K4 o+ bTL0=0x2f;
6 ?; B: i- e4 y" A; w6 ]TR0=1;
) ?7 ?: s! Y5 Q0 ^}3 g9 Z! s7 @+ j5 g
//配置PCA定时器" H6 R& D4 g+ ]5 {
Void pcainit(void)6 C/ }. W4 X2 J, f) g8 P# ~
{
% W2 R0 V0 T& ?SFRPAGE=0x00;
: w5 X$ g4 K. X* l8 b# ~5 W) CPCA0CMP0=0x42;
' x1 w" l! h( n+ b" gPCA0MD=0x04;//PCA采用T0溢出时钟,且PCA溢出中断禁止$ y0 \2 P" N7 D' K! M. d5 ^4 b
PCA0CN=0x40;//启动PCA计数器: P5 {1 `* g. T9 d
}/ J  M. ]# E% M% C
//占空比设置,设置为255时,可使电机停止转动+ Q; K- m; a# ^5 a- L
Void PWM_SET(uchar channel,uchar low)
1 _6 _- i$ I( `7 E0 o& j{' p$ `: \+ v/ ]3 L4 F- L, w/ [
SFRPAGE=0x00;2 E) \" t6 Y1 S4 y
Switch(channel)
. ~1 H2 |8 }( d, p1 @& r' i$ d{# p' N& f/ s) F
Case 0:PCA0CPH0=low;break;
1 w! U5 V$ O( iCase 1:PCA0CPH1=low;break
9 R9 I" b$ J5 b% j! f# Z1 X- v/ ?Case 2:PCA0CPH2=low;break
1 l/ [0 _* J2 n* SCase 3:PCA0CPH3=low;break" _* ^; x4 }( h( n
Case 4:PCA0CPH4=low;break% l4 v3 ~0 j6 G" w/ U5 {
Case 5:PCA0CPH5=low;break/ H, c' b, }. ?0 j$ b1 h$ {
Default:break;
0 q+ {) I9 o' x) p}
# r% K, t3 ]' j% E$ S* \}/ x3 O9 a! C, ^
//运动方向设置
1 Q4 E/ r0 ]' }9 EVoid Direct_set(uchar channel,bit dir)
! V, X6 ~" N! u, g$ [{
, r* i9 z2 [  y& V- U& ASwitch(channel)2 r. b2 j# z  z, N& B% W" ]9 H. k
{6 E+ H+ g& e7 A" B! u
Case 0:P4.0=dir;break;& _  N; b6 [: [& z/ B& K( I
Case 1:P4.1=dir;break
. y2 X& J& g7 ACase 2:P4.2=dir;break0 W" A' w( P5 ]5 C
Case 3:P4.3=dir;break
! |; }) F5 d' z6 E! `Case 4:P4.4=dir;break$ O. y0 [- U' ~& K
Case 5:P4.5=dir;break% L3 l6 i! y! ]$ _( L5 d
Default:break;
& z1 ~( i) D$ E, j  D; L5 v}# y/ _9 x# n; c) k. i
}
% N& Y3 s  F: p4 Q1 I, V在电机起动时,先输出高占空比的PWM信号,让电机获得较大的起动力矩,然后再过渡到设定的PWM脉宽。另外结合片内的A/D转换器检测Rsa上的电压,可得到电机的工作电流,以此为依据对电机的运行状态进行检测,保证电机的运行安全。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

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