QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
10天前
查看: 2464|回复: 8
收起左侧

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

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

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

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

x
我目前是要实现计算机控制四个电机联动; h' O3 P' E5 A' F+ l
计算机通过RS232和主电机驱动器相连,四个驱动器通过CAN口连接。
* j7 G: n2 ^/ F0 N. G如何通过编程实现电机联动啊?我想用C++编$ V( v  m; p% f' J$ t$ M
请老师们赐教~
9 j& ?$ T+ V2 E& C& V说明书全是英文,虽能看懂大概,但没做过相关的编程控制,还是一头雾水,没法下手,请老师们给予指点!
1 N; P4 k1 D- K3 _# `8 g1 a/ @+ ]" A2 D2 A
[ 本帖最后由 zhous_ch 于 2008-5-26 21:20 编辑 ]
发表于 2008-5-26 17:53:32 | 显示全部楼层 来自: 中国广东深圳
呵呵,不知道你用的什么牌子电机驱动器.
" Z3 p8 P8 t% B: ~# |: k要是用KINCO的伺服驱动器和PLC控制是比较简单,程序可以通过PLC来控制连动 9 `$ Y# e. a- r0 g  }8 `% q( H
你可以试加PLC进行控制,要比较简单吧
发表于 2008-5-26 19:36:17 | 显示全部楼层 来自: 中国江苏盐城
我也想呀!但是想来想去感觉程序太难了!所以只好放弃了!
 楼主| 发表于 2008-5-26 20:56:37 | 显示全部楼层 来自: 中国黑龙江哈尔滨
我们是使用maxon电机 用EPOS驱动器
1 l' h8 m, ~, l4 F, e+ |: }不让用PLC啊3 g3 Z3 K' J* j! t+ b5 U
编程时可以直接调用说明书提供的函数6 b  z1 q3 q; d9 E" t
但我不知道程序的流程应该是怎样(先干什么 再干什么)
" g1 G  e& u1 I" U/ e请老师们帮帮忙~
发表于 2008-7-25 11:16:01 | 显示全部楼层 来自: 中国浙江杭州
用哪种语言有区别么?
发表于 2008-7-25 14:38:39 | 显示全部楼层 来自: 中国河南郑州
我觉得这是个比较简单的事情。而且还有现成的库函数。只是操作串口而已。
发表于 2008-7-25 15:38:00 | 显示全部楼层 来自: 中国山东潍坊
你这不叫“四个电机联动”,至少我不这么认为,只不过是控制四台电机同时动作而已。  |- h" K# N0 I5 f+ H% ^
接口函数都告诉你了,调用起来也不是很麻烦吗,用C++做个界面,用c写控制程序。所谓程序不过是初始化接口,传送数据,而已,把他们提供的程序好好看看。
发表于 2008-8-10 20:19:52 | 显示全部楼层 来自: 中国上海
找一块 驱动卡 如楼上那样处理就可以了
发表于 2008-9-2 22:20:47 | 显示全部楼层 来自: 中国河北石家庄
使用C8051F040高速SOC单片机、L298N直流电机驱动芯片,软件编程可在Siliocn Labortories集成开发环境(DIE)下通过JATG接口进行编程,不需要专用编程器或适配器;还可以通过用户软件对FALSH进行编程,允许现场更新固件为产品的软件升级提供了极大的方便。
( J! ^( D, ]+ B; r5 J本设计中的应用程序是在Keil C51的开发环境下编译后用EC-3仿真器下载到芯片中运行的。主要程序代码如下:2 C& l& [: r2 ^. J! [# P6 I2 U! z8 }
//交叉开关配置,将6路PWM输出配置到P0端口: u5 D0 d+ \/ [( g) X
void config(void)
6 m: Z7 `5 L. S& B! [7 U8 t{: j) B) {. m; P3 M( d0 o
XBR0=0x30;//将6路PWM输出配置到P0.0-P0.5端口
6 o% {9 \: p! R; o& i6 L0 m) J3 R8 UXBR1=0x00;
" X. G- Q( j  s) v/ r- V0 oXBR2=0xc0;//开启交叉开关,全局上拉开启, V/ O2 X+ S; V! ~
XBR3=0x00;
- U' W7 Y! W3 P3 }( {7 ?  ^& f}/ z% ~# q6 ?* w* Y: z
//配置T0定时器,定时时间1毫秒,系统时钟24MHz) e& f( y; }8 I$ ]7 X% \1 O; ?4 O9 @
Void Timer_cfg(void)  K/ {7 |  m( M  m( Q! k
{6 u: U) {( s, M  h" V" h
TMOD=0x01;//采用定时器0的方式16 r: K! _7 S3 ?
TH0=0xf8;
6 ~  u: P- N& BTL0=0x2f;
7 _: ?4 D9 w  h; F7 bTR0=1;' c% k. d) `* ^6 L/ B+ e7 \
}% {5 x8 N2 g/ G( T. r# X
//配置PCA定时器
7 H1 [2 [  Q# k0 NVoid pcainit(void)
; f: N& G2 _- i3 A3 f$ y4 k, h* Y{6 D' F: `7 `$ v" Z7 T- [
SFRPAGE=0x00;7 B6 Z: O9 }* r
PCA0CMP0=0x42;
+ X. v9 Q, t, _PCA0MD=0x04;//PCA采用T0溢出时钟,且PCA溢出中断禁止
9 y( `; {# }) J* c9 kPCA0CN=0x40;//启动PCA计数器
: o& V; e$ ^( e7 p5 h}6 i1 p( ?1 h) \. f& A! |6 A4 x
//占空比设置,设置为255时,可使电机停止转动* J6 Y( W  }4 C" v
Void PWM_SET(uchar channel,uchar low)
. r. G, h3 v$ T) c6 y; _{/ A/ N! n( M6 ]% I: N6 Z% c: X; a
SFRPAGE=0x00;' N7 m0 @5 X2 I& U& Z9 x, G* `- ~
Switch(channel)
) a, b8 ?- `" N# N, d{
6 m7 G; g. j8 }$ j3 ^Case 0:PCA0CPH0=low;break;
; ?1 `& Y) p( M! J, _# t! fCase 1:PCA0CPH1=low;break& ^% R* z8 m: n) @* m0 o, J+ ?
Case 2:PCA0CPH2=low;break6 t/ l8 J+ @1 r; j. J$ A/ q5 O
Case 3:PCA0CPH3=low;break
3 ^/ U$ ]- J' rCase 4:PCA0CPH4=low;break
  d/ l! ]+ ?, w3 sCase 5:PCA0CPH5=low;break$ x0 T0 b/ I9 }" a% ^7 q# |0 @& A
Default:break;  B( e6 Q: n+ t# f1 E; n& m) U- k
}9 n/ O' i. a, V2 k: x7 d* @- @3 c
}  K+ e( \" C2 ~
//运动方向设置1 b* q8 a, S4 R+ G5 z1 }
Void Direct_set(uchar channel,bit dir)
; F* _0 v7 |. q- s) \' o{
% p; }: i. O1 W8 CSwitch(channel)
* A3 D' O7 z6 h. T: h{
6 [( N1 T$ N9 d  `5 [. @& |Case 0:P4.0=dir;break;2 [( S1 d+ S8 P& M8 O. V8 f
Case 1:P4.1=dir;break
# g6 M& E: F3 {! h" {! QCase 2:P4.2=dir;break; C1 ~& B. I% j; @
Case 3:P4.3=dir;break
! w6 c: W4 i+ lCase 4:P4.4=dir;break6 {' p  r' n$ \+ Y
Case 5:P4.5=dir;break) u0 q5 h; s% W; a7 U" a2 n( E7 L
Default:break;2 M' A" e0 S1 t0 Y
}
5 t+ Z: ^5 {& a}
$ ?& i) E5 C+ R( d' D+ M在电机起动时,先输出高占空比的PWM信号,让电机获得较大的起动力矩,然后再过渡到设定的PWM脉宽。另外结合片内的A/D转换器检测Rsa上的电压,可得到电机的工作电流,以此为依据对电机的运行状态进行检测,保证电机的运行安全。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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