首页 新闻 工控搜 论坛 厂商论坛 产品 方案 厂商 人才 文摘 下载 展览
中华工控网首页
  P L C | 变频器与传动 | 传感器 | 现场检测仪表 | 工控软件 | 人机界面 | 运动控制
  D C S | 工业以太网 | 现场总线 | 显示调节仪表 | 数据采集 | 数传测控 | 工业安全
  电 源 | 嵌入式系统 | PC based | 机柜箱体壳体 | 低压电器 | 机器视觉
基于PC与mpc014外置运动控制卡组成的运动控制实例
收藏本文     查看收藏

 

 

基于PCmpc014外置运动控制卡的三轴运动控制系统

 

摘要:采用PC和mpc014外置运动控制卡作为控制系统的核心,控制三路步进电机或伺服电机。PC发送指令给mpc014外置运动控制卡,控制器信号输出给步进驱动器作高速运动。可以定点运动,直线插补和圆弧插补,并能实时作逻辑处理。

 

 1.引言

基于PC的运动控制的应用在国内已有十几年的历史,通常运动控制都需要用到PCI运动控制卡,但PCI运动控制卡价格高昂,使用复杂,插槽容易接触不良,也不适合用笔记本电脑来编程调试。因此,本文采用基于RS485接口的mpc014外置运动控制卡与PC构成运动控制系统。

mpc014外置运动控制卡集成普通IO,模拟量输出,步进电机和伺服电机控制。具有如下特点:

◆   RS485通讯,可多个控制器组网工作。

◆   7路光耦隔离输入,9路光耦隔离晶体管集电极开路输出。

◆   最大脉冲输出频率为2MHz,脉冲输出使用脉冲+方向方式。

◆   二路0-10v模拟量输出。

◆   输入输出口都带有独立指示灯。

◆   四轴独立运动控制,任意两轴直线插补,任意两轴圆弧插补。

◆   每轴可设一路硬件回原点,两路电机信号输出。

◆  在线运行方式带1000级指令缓存深度,指令先进先出,控制器与PC端无需高速实时通讯。

◆  提供DLL动态链接函数库,可用于Window2000/XP/7平台二次开发。控制器仅有21条函数指令,使用简单。

◆  单电源12V-24V直流供电。

◆  控制器体积小巧,可安装于狭小空间。

 

2,系统硬件架构

硬件系统由三部分构成,如图所示:

  1. PC
  2. mpc014外置运动控制卡
  3. 电气机械传动部分

mpc014外置运动控制卡采用24V电源供电,RS485通讯口A,B与PC通过USB转485转换器连接。X0,X1,X2可作为三路电机的原点信号,Y3,Y4为第1轴的脉冲和方向信号。Y5,Y6为第2轴的脉冲和方向信号。Y7,Y8为第3轴的脉冲和方向信号。

 

3,系统软件设计

PC端软件采用Visual Basic 6.0设计,操作系统为Microsoft Windows XP,首先将从官网下载的动态链接库mpc.dll拷入系统文件夹,然后在模块中对函数作声明。如下:

 

 

Public Declare Function inp_move Lib "mpc" (cardno As Byte, no1 As Byte, no2 As Byte, pulse1 As Long, pulse2 As Long, mode As Byte) As Byte                '二轴直线插补

 

Public Declare Function inp_arc Lib "mpc" (cardno As Byte, no1 As Byte, no2 As Byte, X As Long, y As Long, i As Long, j As Long, mode As Byte) As Byte '二轴圆弧插补

 

Public Declare Function set_speed Lib "mpc" (cardno As Byte, axis As Byte, acc As Long, dec As Long, startv As Long, speed As Long) As Byte                   '设置轴速度

 

Public Declare Function set_soft_limit Lib "mpc" (cardno As Byte, axis As Byte, mode As Byte, pulse1 As Long, pulse2 As Long) As Byte                '设置轴软件限位

 

Public Declare Function pmove Lib "mpc" (cardno As Byte, axis As Byte, pulse As Long, mode As Byte) As Byte               '单轴运行

 

Public Declare Function wait_delay Lib "mpc" (cardno As Byte, value As Integer) As Byte                    '等待延时数

 

Public Declare Function set_command_pos Lib "mpc" (cardno As Byte, axis As Byte, value As Long) As Byte                         '设置轴逻辑位置

 

Public Declare Function wait_pulse Lib "mpc" (cardno As Byte, axis As Byte, value As Long) As Byte                    '等待轴脉冲数

 

Public Declare Function write_bit Lib "mpc" (cardno As Byte, number As Byte, value As Byte) As Byte                   '写输出口状态

 

Public Declare Function sudden_stop Lib "mpc" (cardno As Byte, axis As Byte) As Byte                     '轴停止

 

Public Declare Function wait_in Lib "mpc" (cardno As Byte, number As Byte, value As Byte) As Byte                 '等待输入口状态

 

 

Public Declare Function read_bit Lib "mpc" (cardno As Byte, number As Byte) As Byte   '读取输入口状态

 

Public Declare Function get_out Lib "mpc" (cardno As Byte, number As Byte) As Byte     '获取输出口状态

 

Public Declare Function wait_stop Lib "mpc" (cardno As Byte, axis As Byte) As Byte            '等待轴停止

 

Public Declare Function set_da Lib "mpc" (cardno As Byte, number As Byte, value As Integer) As Byte                '设置DA电压值

 

Public Declare Function get_number Lib "mpc" (cardno As Byte) As Long            '获取唯一序列号

 

Public Declare Function read_fifo_count Lib "mpc" (cardno As Byte) As Integer            '读剩下缓冲数目

 

Public Declare Function get_status Lib "mpc" (cardno As Byte) As Byte          '获取各轴工作状态

 

Public Declare Function get_command_pos Lib "mpc" (cardno As Byte, axis As Byte) As Long                         '获取轴逻辑位置

 

Public Declare Function set_cardno Lib "mpc" (cardno As Byte)                    '设置卡号

 

Public Declare Function link Lib "mpc" () As Byte                '通讯连接

 

Public Declare Function no_link Lib "mpc" () As Byte                '取消连接

 

 

 

使用函数前先确保PC与控制器物理连接正常,然后使用link函数连接通讯,如成功便可发送其它指令了。

试验程序如下:

 

 

       If link () =1 then              '通讯连接成功

 

       call set_cardno(1)                        '设卡号为1

       call set_speed(1 ,1,1000,1000,10,200)   ' 设1轴速度

       call set_speed(1 ,2,1000,1000,10,200)       ' 设2轴速度

       call set_speed(1 ,3,1000,1000,10,200)    '设3轴速度

 

        '1轴回原点

       call  pmove(1,1,-1000000,0)          ' 1轴运动

       call  wait_in(1,0,1)                     '  等待X0为高

       call  sudden_stop(1,1)                  ' 1轴停止

       call  set_command_pos(1,1,0)            ' 设1轴此时坐标为0

       call  pmove(1,2,3200,0)        '2轴运动

       call  pmove(1,3,-3200,0)         '3轴运动   

       end if

 

4结束语

PC和mpc014外置运动控制卡构成的运动控制系统,运动控制器只需使用485接口与PC通信,只需使用几条简单的指令便可完成运动控制过程,大大降低运动控制系统的设计调试难度,大大提高运动控制系统的稳定性,对快速可靠构建运动控制系统具有很大意义。     

 

 

 

 


 

状 态: 离线

公司简介
产品目录
供应信息

公司名称: 深圳市泰安迪科技有限公司
联 系 人: 汪峰
电  话: 0755-32912587
传  真:
地  址: 广东深圳市龙岗坂田坂田路口坂田商务大厦
邮  编: 518000
主  页:
 
 
立即发送询问信息在线联系该解决方案厂商:
用户名: 密码: 免费注册为中华工控网会员
请留下您的有效联系方式,以方便我们及时与您联络

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 不良信息举报
工控网客服热线:0755-86369299
版权所有 中华工控网 Copyright©2022 Gkong.com, All Rights Reserved