QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我目前是要实现计算机控制四个电机联动. q8 m7 H2 g3 ]# R5 J
计算机通过RS232和主电机驱动器相连,四个驱动器通过CAN口连接。
/ V6 J' V! Z( G' r如何通过编程实现电机联动啊?我想用C++编
$ f: f2 y: H0 _# _请老师们赐教~2 r9 }' `( {: U$ |9 q* f! a/ o( s  s
说明书全是英文,虽能看懂大概,但没做过相关的编程控制,还是一头雾水,没法下手,请老师们给予指点!% Y; j. ~4 U  g, m! y* J. k

$ }0 b& S/ r9 u: l  R$ M[ 本帖最后由 zhous_ch 于 2008-5-26 21:20 编辑 ]
发表于 2008-5-26 17:53:32 | 显示全部楼层 来自: 中国广东深圳
呵呵,不知道你用的什么牌子电机驱动器.- Q7 e, M" j4 z7 B3 F
要是用KINCO的伺服驱动器和PLC控制是比较简单,程序可以通过PLC来控制连动 . g3 b0 X% L4 y  y" W$ {
你可以试加PLC进行控制,要比较简单吧
发表于 2008-5-26 19:36:17 | 显示全部楼层 来自: 中国江苏盐城
我也想呀!但是想来想去感觉程序太难了!所以只好放弃了!
 楼主| 发表于 2008-5-26 20:56:37 | 显示全部楼层 来自: 中国黑龙江哈尔滨
我们是使用maxon电机 用EPOS驱动器* ]* ]' H$ P! k$ v4 K+ `% e
不让用PLC啊
4 g5 s' a+ @; ^( R6 D编程时可以直接调用说明书提供的函数
, E6 y. x4 A! `: d但我不知道程序的流程应该是怎样(先干什么 再干什么) 6 l5 `: \( N& [" P3 e
请老师们帮帮忙~
发表于 2008-7-25 11:16:01 | 显示全部楼层 来自: 中国浙江杭州
用哪种语言有区别么?
发表于 2008-7-25 14:38:39 | 显示全部楼层 来自: 中国河南郑州
我觉得这是个比较简单的事情。而且还有现成的库函数。只是操作串口而已。
发表于 2008-7-25 15:38:00 | 显示全部楼层 来自: 中国山东潍坊
你这不叫“四个电机联动”,至少我不这么认为,只不过是控制四台电机同时动作而已。
; U* W' d, ^7 b  a4 |接口函数都告诉你了,调用起来也不是很麻烦吗,用C++做个界面,用c写控制程序。所谓程序不过是初始化接口,传送数据,而已,把他们提供的程序好好看看。
发表于 2008-8-10 20:19:52 | 显示全部楼层 来自: 中国上海
找一块 驱动卡 如楼上那样处理就可以了
发表于 2008-9-2 22:20:47 | 显示全部楼层 来自: 中国河北石家庄
使用C8051F040高速SOC单片机、L298N直流电机驱动芯片,软件编程可在Siliocn Labortories集成开发环境(DIE)下通过JATG接口进行编程,不需要专用编程器或适配器;还可以通过用户软件对FALSH进行编程,允许现场更新固件为产品的软件升级提供了极大的方便。0 q" e5 Y; Y. A. K: O
本设计中的应用程序是在Keil C51的开发环境下编译后用EC-3仿真器下载到芯片中运行的。主要程序代码如下:
  [# g7 j0 _: L+ J  M0 X$ u* x//交叉开关配置,将6路PWM输出配置到P0端口+ |# t# o5 E# v0 m0 r) m; d
void config(void)
9 `) M% D$ `& q5 z% T{
/ ^; O' z2 N" Z2 X  P+ hXBR0=0x30;//将6路PWM输出配置到P0.0-P0.5端口
8 E" Y% R! ^0 @2 G* s- uXBR1=0x00;
( B* W* i) h! E" P4 gXBR2=0xc0;//开启交叉开关,全局上拉开启
/ k. w7 E. i( G8 J" R8 q% R5 b5 J! @XBR3=0x00;8 I- i7 [" s, |
}! @3 M: P7 Z! _2 [: |' I% s, {
//配置T0定时器,定时时间1毫秒,系统时钟24MHz
1 n. f( ^4 Y) N: T6 b' q% Y- ]Void Timer_cfg(void)
/ A, ?% q9 [7 `: _{/ n# [8 Q8 l: c
TMOD=0x01;//采用定时器0的方式1
! G2 r# W( }  k7 M! a, b! G3 V/ CTH0=0xf8;
; t. T% C$ Z; f6 F# CTL0=0x2f;1 r- H% h5 y% d2 U7 c
TR0=1;. X6 h0 J$ O% K- X7 U' w
}; j" B! m4 p4 }
//配置PCA定时器9 a  a( _  N# X
Void pcainit(void); }1 s  P3 @" X
{, t- q/ p& F  M, N4 G& N( p
SFRPAGE=0x00;
& f, m5 X1 O0 g; DPCA0CMP0=0x42;
0 ~) t3 n. v) Z7 XPCA0MD=0x04;//PCA采用T0溢出时钟,且PCA溢出中断禁止4 A! W2 d) u* @/ A! o5 P# M2 r
PCA0CN=0x40;//启动PCA计数器
4 t* s/ u7 c. a}
9 C8 r  v/ E8 a& G- Q//占空比设置,设置为255时,可使电机停止转动
* w0 j& J5 l0 V! jVoid PWM_SET(uchar channel,uchar low)
% [0 G( u  T$ h) V{
* h/ w6 E! T5 c  YSFRPAGE=0x00;
& c" `4 `4 |& |8 {+ Z' v  U6 x1 G$ CSwitch(channel)* r  Q: }9 a3 _( ~( b9 ~
{$ R9 H6 r+ I7 c- A; x, s
Case 0:PCA0CPH0=low;break;
/ O- j! {1 N- E) I7 {& ^, iCase 1:PCA0CPH1=low;break
7 A! r$ L$ _! J1 E5 MCase 2:PCA0CPH2=low;break* |3 z% t& ?( l- N4 n
Case 3:PCA0CPH3=low;break
4 a$ l" W" [+ u# ?Case 4:PCA0CPH4=low;break
) C3 c7 ?% @/ S; r( s% v$ SCase 5:PCA0CPH5=low;break
+ Y+ {4 L; \7 J+ I1 ]: PDefault:break;/ N3 ~2 d. o' f
}* [" w/ C" P7 F7 S
}
- L. e8 D1 A$ `) g+ V( j1 V; @% c//运动方向设置
0 x9 K4 z6 M) q3 W* M. K9 q- oVoid Direct_set(uchar channel,bit dir)
+ }+ k" w% s" m% V2 F- ^  V& S{8 Y  n: D+ |, W; [/ Z+ \0 {- h
Switch(channel)6 Z0 \* w, A- j* ]; {7 i
{. D7 C0 Q1 ]: X) v9 y7 R
Case 0:P4.0=dir;break;
1 W! K* q( D6 L4 J3 s. D- ZCase 1:P4.1=dir;break
& v& J5 y1 j/ H) _# FCase 2:P4.2=dir;break& A8 H; b/ s( j6 t$ G" I
Case 3:P4.3=dir;break( W. n0 B) R, I$ r6 N" y0 G. b
Case 4:P4.4=dir;break
; n8 O/ _) ~% c; O$ e5 FCase 5:P4.5=dir;break3 \3 J$ h& Q- D' ~3 T& ~' E
Default:break;
7 u. x2 q, X# P! y$ b}
- p: t/ s1 H, c  H. e% s}
4 U5 }2 [. \- \( _# d在电机起动时,先输出高占空比的PWM信号,让电机获得较大的起动力矩,然后再过渡到设定的PWM脉宽。另外结合片内的A/D转换器检测Rsa上的电压,可得到电机的工作电流,以此为依据对电机的运行状态进行检测,保证电机的运行安全。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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