QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 2467|回复: 8
收起左侧

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

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

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

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

x
我目前是要实现计算机控制四个电机联动
; B' [; r7 Y' K/ w; _3 r4 X计算机通过RS232和主电机驱动器相连,四个驱动器通过CAN口连接。
; T. p0 m; ]" D- }% F# \如何通过编程实现电机联动啊?我想用C++编
9 o1 d8 |( c+ R7 N4 Y1 q请老师们赐教~
+ I2 k4 A3 N* b6 K6 y( e9 E% m4 E说明书全是英文,虽能看懂大概,但没做过相关的编程控制,还是一头雾水,没法下手,请老师们给予指点!# Z/ z6 [7 y" O7 G7 N& ^  s
/ v% a% Y1 Y/ k3 Q7 C; }
[ 本帖最后由 zhous_ch 于 2008-5-26 21:20 编辑 ]
发表于 2008-5-26 17:53:32 | 显示全部楼层 来自: 中国广东深圳
呵呵,不知道你用的什么牌子电机驱动器.7 m# `  k! b% n4 l) O) u
要是用KINCO的伺服驱动器和PLC控制是比较简单,程序可以通过PLC来控制连动
! @/ {: p( E% k. `9 ]你可以试加PLC进行控制,要比较简单吧
发表于 2008-5-26 19:36:17 | 显示全部楼层 来自: 中国江苏盐城
我也想呀!但是想来想去感觉程序太难了!所以只好放弃了!
 楼主| 发表于 2008-5-26 20:56:37 | 显示全部楼层 来自: 中国黑龙江哈尔滨
我们是使用maxon电机 用EPOS驱动器
7 b! z" ?1 K# e0 M0 j, D- r$ b不让用PLC啊6 |# z* l& y2 V* u3 W5 Q
编程时可以直接调用说明书提供的函数4 a* q8 L5 @# V8 A/ ~
但我不知道程序的流程应该是怎样(先干什么 再干什么)
, ]' ]% f6 O, N: P) S请老师们帮帮忙~
发表于 2008-7-25 11:16:01 | 显示全部楼层 来自: 中国浙江杭州
用哪种语言有区别么?
发表于 2008-7-25 14:38:39 | 显示全部楼层 来自: 中国河南郑州
我觉得这是个比较简单的事情。而且还有现成的库函数。只是操作串口而已。
发表于 2008-7-25 15:38:00 | 显示全部楼层 来自: 中国山东潍坊
你这不叫“四个电机联动”,至少我不这么认为,只不过是控制四台电机同时动作而已。9 [7 q3 R; I" R7 W( Q. d5 B  C0 ^
接口函数都告诉你了,调用起来也不是很麻烦吗,用C++做个界面,用c写控制程序。所谓程序不过是初始化接口,传送数据,而已,把他们提供的程序好好看看。
发表于 2008-8-10 20:19:52 | 显示全部楼层 来自: 中国上海
找一块 驱动卡 如楼上那样处理就可以了
发表于 2008-9-2 22:20:47 | 显示全部楼层 来自: 中国河北石家庄
使用C8051F040高速SOC单片机、L298N直流电机驱动芯片,软件编程可在Siliocn Labortories集成开发环境(DIE)下通过JATG接口进行编程,不需要专用编程器或适配器;还可以通过用户软件对FALSH进行编程,允许现场更新固件为产品的软件升级提供了极大的方便。  x& u2 u" D8 m& {- u: `4 D
本设计中的应用程序是在Keil C51的开发环境下编译后用EC-3仿真器下载到芯片中运行的。主要程序代码如下:$ W; {$ k$ _- X3 W8 k
//交叉开关配置,将6路PWM输出配置到P0端口
2 b2 D6 ~4 F, y( yvoid config(void)6 F& d9 s5 e% ^8 X( u
{
/ k: t& j( P6 rXBR0=0x30;//将6路PWM输出配置到P0.0-P0.5端口
9 h1 t9 A1 J* q4 VXBR1=0x00;
& A9 F, }0 l7 m! b7 oXBR2=0xc0;//开启交叉开关,全局上拉开启
3 W; w5 T) y- ]1 RXBR3=0x00;4 Y9 K; h$ v2 X6 c/ Y
}
% a: @' t) T, V//配置T0定时器,定时时间1毫秒,系统时钟24MHz# [" }7 {" c7 |! x" J" U9 n
Void Timer_cfg(void)
4 ]) B! a7 r  g! R1 t{
7 ~/ X! a8 X; M8 @TMOD=0x01;//采用定时器0的方式1
9 T2 d& M% M0 Y  M; X/ w  BTH0=0xf8;' D7 o( k- @7 w0 _8 u* b5 n, M
TL0=0x2f;- j9 H8 a2 \/ V  c$ ?  r6 Y7 n6 C: t. x
TR0=1;
6 b8 _7 \/ y( B; E% G3 ]* j1 R}
6 i, v8 T2 [7 K) s/ ^' G" U# H7 X( j//配置PCA定时器
3 k: m1 T. z* m+ P  M7 t/ NVoid pcainit(void)2 D& ?- @5 V: Y" C1 O; x7 P
{) h7 H. b5 `5 ?3 e, Z0 V% |
SFRPAGE=0x00;
( i  C+ J& u2 P+ }' uPCA0CMP0=0x42;, x1 c; |# L: f6 Y( c2 m
PCA0MD=0x04;//PCA采用T0溢出时钟,且PCA溢出中断禁止1 b4 ]" S" u- _; A! Z9 o- N
PCA0CN=0x40;//启动PCA计数器
9 P$ q4 L) _6 \5 U}
. L# I; J, A0 t0 y( _  r4 h: m- k//占空比设置,设置为255时,可使电机停止转动
" f6 i; O9 E- z( @; }1 G& tVoid PWM_SET(uchar channel,uchar low)! I) {# H# [' S6 F" D
{  i: V8 b4 P- ~+ I5 ?
SFRPAGE=0x00;
8 p- \! A( J4 d+ \( [Switch(channel)
' Y8 E& ]. e5 B4 r  o! [* d{
8 a: p0 n$ N. y/ _Case 0:PCA0CPH0=low;break;
4 w3 f7 {% V4 a* x; G& m& ~Case 1:PCA0CPH1=low;break
, {5 \7 G* |0 c6 dCase 2:PCA0CPH2=low;break
. Y% s4 r; J0 y# I5 E, }7 KCase 3:PCA0CPH3=low;break+ _0 ?  X  ~. D; J2 t& R
Case 4:PCA0CPH4=low;break5 P1 c, t. S2 s3 @+ h
Case 5:PCA0CPH5=low;break
+ J1 S7 E1 ^1 ]' I4 v+ c0 UDefault:break;
, b& H) P/ ?4 y}; P' a, I5 i8 |* i
}* H" N# o4 }# k& s2 @
//运动方向设置5 K. ?* N0 h4 x& t/ Y+ N6 `
Void Direct_set(uchar channel,bit dir)6 G# U6 s' w9 y: M# @& q- [* |
{
1 n1 @& j9 J1 hSwitch(channel)
( i& B, s  U$ _{; ^. K7 [  J) W
Case 0:P4.0=dir;break;( C" B! r' ^, T5 x1 N
Case 1:P4.1=dir;break; d+ A3 L' b: T7 e% y1 u% i# L/ r
Case 2:P4.2=dir;break+ f3 G; U1 Q- n  I' o
Case 3:P4.3=dir;break
( Q# d$ q; p. `. _5 @  x1 FCase 4:P4.4=dir;break
- V  ]# a: D# PCase 5:P4.5=dir;break: c5 j* L2 v6 N0 [
Default:break;
1 r* h3 W6 ?6 s4 Y8 b. T- y! U}: E) {7 e" x9 g
}# d" n  Z& t5 A" \  v/ c
在电机起动时,先输出高占空比的PWM信号,让电机获得较大的起动力矩,然后再过渡到设定的PWM脉宽。另外结合片内的A/D转换器检测Rsa上的电压,可得到电机的工作电流,以此为依据对电机的运行状态进行检测,保证电机的运行安全。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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