精华内容
下载资源
问答
  • 大型复杂构件的无模型工业机器人自动编程系统
  • 基于G代码的工业机器人自动编程.pdf 介绍了关于基于G代码的工业机器人自动编程的详细说明,提供工业机器人的技术资料的下载。
  • 基于G代码的工业机器人自动编程pdf,基于G代码的工业机器人自动编程
  • 网络机器人 java编程指南 用java实现网络机器人自动执行复杂的Web交互
  • 为了使机器人准确高效地完成复杂形貌零件修复,开发了一套基于三维视觉的激光再制造机器人离线自动编程系统。系统主要包含6个功能模块:机器视觉测量、三维建模、再制造规划、自动编程、仿真优化和通信模块。基于...
  • 本书介绍如何用Java实现网络机器人自动执行复杂的WEB交互,是学习Java编程技术的一本很好的书籍。
  • 介绍了离线编程技术应用于喷漆机器人的研究现状与发展趋势,指出自动轨迹生成方式优于交互式或离线示教式轨迹生成方式,是今后的发展方向.文中还介绍了喷漆机器人离线编程系统的组成与结构,指出其主要包含6大模块.深入...
  • 可编程线性霍尔全自动编程控制机器人的设计与制作
  • 机器人编程软件

    2014-03-15 18:36:19
    视图型机器人编程软件 直观 简易 自动编译为c语言
  • 通常在开阔而又无高精度要求的情况下,速度值设为V3000,通常自动化把这个速度定义为Vmax,(这个Vmax与OLP中Speed值可选项中的Vmax稍不同,理论中,机器人的Vmax应该等于V8000左右,但实际情况下,这个速度仅为3000...

    对于OLP中Speed和Zone值的设定:
    Zone值一般情况下,要根据机器人运动速度和对运动的精度要求来确定,即Zone与Speed值是相关的。

    1. 通常在开阔而又无高精度要求的情况下,速度值设为V3000,通常自动化把这个速度定义为Vmax,(这个Vmax与OLP中Speed值可选项中的Vmax稍不同,理论中,机器人的Vmax应该等于V8000左右,但实际情况下,这个速度仅为3000mm/s左右),此时与之对应的Zone值设置为z200—z500之间,过小的Zone值会造成机器人运动时候的停顿和扰动,特别是机器人负载较重的时候。

    2. 焊接过程中,速度一般为V1000—V1500,有时候自动化也会把V1500这个速度定义为Vmid,此时设置的Zone值一般为z5–z150之间。通常情况,在这个速度下,Zone值设置为z50;空间不太受限制,也可以把Zone加大到z150;在空间比较狭小的地方,z值设置为z5—z10;对于焊点,Zone值设置为fine。

    3. 速度一般为V500以下,有时候自动化也会把V500这个速度定义为Vmin,这个速度一般在位置特别紧张的情况和快换对接的位置点使用。

    对于Wobj的设置:
    一般来说,与工件有联系的机器人路径,才会设置与车型相关的wobj,如wobj-v212, wobj-w204等 ;而与工件无关的路径,选用的就是wobj0,这个wobj是与机器人相关的,在程序输出时,不会显示在程序段中。换句话说,就是与工件没有联系的路径,程序中不带wobj。

    与工件相关的路径:包括机器人焊接路径和抓放工件的dock和undock路径。需要注意的是,在dock和undock路径的过程中,机器人不带抓手的部分,wobj选用的也是wobj0。

    选用wobj0的路径,包括抓放枪路径,抓放抓手路径,从工件存放架上抓件的pickpart路径,修磨路径和其他服务路径。下图为机器人从home点到修磨位置的路径,可以看出程序中是不带wobj的。

    需要注意的地方:如果模拟过程中加入了工件的wobj,在程序输出后不能直接把wobj删除。如果在调试过程中,需要把机器人走到位后,把wobj选项改为don’t use,然后手动操作的地方改为wobj0,*后修改点的位置,这样才能改回来。

    对于机器人焊接参数spotdata的说明:

    1. 对于气动焊枪,格式为:spotdata 编号A:=[1,1];其中[1,1]表示**把焊枪,**套焊接参数。对于每一套参数,程序中不会体现压力电流值,由焊接控制柜直接控制。
    2. 对于伺服焊枪,格式为:spotdata 编号A:=[a, b, c, d]; 其中[a, b, c, d]表示,第a套参数,压力为b,焊点处板厚为c,这套参数下板厚的公差为d。奔驰项目要求每一个焊点对应一套参数,所以公差d这一项为0。
      对于spotdata的数值,在OLP模块下,无法设置到与实际情况一致,故需要在程序输出后做修改。
      ABB机器人部分程序介绍:在这里插入图片描述
      对于tooldata 的说明:
      通常情况下,对于每一个机器人,预留4个tool的位置,分别是两个抓手的tool和两个焊枪的tool。其中tool 1和2为抓手所有,命名为tool1_grip1和tool2_grip2,tool 3和4为焊枪所有,命名为tool3_gun1和tool4_gun2。如果只有焊枪,tool也是从tool3开始命名。
      对于tool0,由于不能编辑负载重量,所以如果需要用tool0带着负载来走某一段路径,可以在原来tool0的位置新建一个tool,命名为tool10-notool,这个tool就可以输入负载的重量,这样在现场运用的时候,机器人就不会因为负载问题而报监控了。
      一般来说,程序中只会出现这5个tool,但为了方便调试,可以在模拟时建很多的辅助TCPF,后通过TCPF的切换,换到统一的TCPF上来就可以了。
      在这里插入图片描述
      对于互锁的说明:
      由于现场调试互锁,工作量比较大,而且在考虑不全的情况下,很容易造成碰撞。所以自动化要求,尽量在前期模拟的时候,在有可能干涉的地方,给出提示。而且在节拍比较紧张的情况下,尽量把干涉区调整到
      小,如果是中间点干涉,尽量调整到两个轨迹不干涉。

    比如说:在机器人走到某一点的时候,有可能和其他机器人发生干涉,那在这个点的前一点或更前面的点,就要提前给出提示,用备注行的形式,写出会与哪个机器人发生干涉,如上图的: !enter lock with R1。但是EnterZone2这个就不需要写了,因为这个是后续和PLC交换信息时候才会用到,前期程序导入,机器人会认不到这个命令而报错。

    当然,在退出干涉区后,也应给处相应到信息,提示出了两个机器人的干涉区。

    对于PEO点设定的说明:
    一般来说,一个机器人只有一个PEO点。这个点它是用机器人的关节 j1—j6 的数值来定义的,不与任何工具TCPF相关。在这个点上,机器人不管有没有抓焊枪或抓手,都不与任何东西干涉,也就是说,在这个点上,机器人是**安全的。这样的位置点也许会有很多,但是为了缩短机器人运动时间,在确保安全的前提下,PEO点尽量选择在离每一条工作路径都比较近的地方。

    点击进入:工业机器人学习

    展开全文
  • KUKA机器人编程手册

    2018-12-10 12:32:19
    KUKA机器人编程手册详细版 详细介绍了1、结构化编程;2、SUBMIT解释器;3、KRL工作空间;4、用KRL进行信息编程;5、中断编程;6、撤回策略编程;7、模拟信号方面的工作;8、外部自动运行模式的过程和配置;9、碰撞...
  • KUKA机器人编程资料

    2018-11-19 08:54:42
    KUKA Aktiengesellschaft(KUKA 股份公司)是一家跨国企业,营业额将近三十亿欧元。约有 14200 名 KUKA 人...在 KUKA,您可以享受一站式的服务:从单个组件直至全自动设备KUKA机器人编程培训资料,官方手册,推荐下载
  • 本资料详细介绍了三菱工业机器人使用与编程,PDF文章,有目录自动选择,对于机器人学习很好!
  • 之前,不管是二维平台,还是三维平台,都是用键盘遥控,对于turtlebot3机器人装配了激光传感器,可以测量周围360度障碍物的距离,这就非常方便使用其进行避开障碍物的自主行驶。

    之前,不管是二维平台,还是三维平台,都是用键盘遥控,对于turtlebot3机器人装配了激光传感器,可以测量周围360度障碍物的距离,这就非常方便使用其进行避开障碍物的自主行驶。

    这里的自主行使是最基础的功能即在环境中避开障碍物在空旷处随机行驶。

    机器人选择:

    1. export TURTLEBOT3_MODEL=burger
    2. export TURTLEBOT3_MODEL=waffle_pi

    二选一即可,然后不用启动键盘遥控节点,改为如下节点:

    • ros2 run turtlebot3_gazebo turtlebot3_drive

    接着,继续开启三维可视化:

    • ros2 launch turtlebot3_bringup rviz2.launch.py

    仿真软件是Gazebo,可视化工具是rviz,不要用错了哦^_^

    预备

    需要ROS2+TurtleBot3仿真包。

    实践

    1 基本命令

    需要掌握:

    1. ros2 run
    2. ros2 launch

    开启仿真环境和避障行驶节点。

    2 rqt工具

    使用rqt_graph等查看,节点信息流。

    3 源码阅读

    launch

    import os
    
    from ament_index_python.packages import get_package_share_directory
    from launch import LaunchDescription
    from launch.actions import IncludeLaunchDescription
    from launch.launch_description_sources import PythonLaunchDescriptionSource
    from launch.substitutions import LaunchConfiguration
    
    TURTLEBOT3_MODEL = os.environ['TURTLEBOT3_MODEL']
    
    
    def generate_launch_description():
        use_sim_time = LaunchConfiguration('use_sim_time', default='true')
        world_file_name = 'turtlebot3_worlds/' + TURTLEBOT3_MODEL + '.model'
        world = os.path.join(get_package_share_directory('turtlebot3_gazebo'),
                             'worlds', world_file_name)
        launch_file_dir = os.path.join(get_package_share_directory('turtlebot3_gazebo'), 'launch')
        pkg_gazebo_ros = get_package_share_directory('gazebo_ros')
    
        return LaunchDescription([
            IncludeLaunchDescription(
                PythonLaunchDescriptionSource(
                    os.path.join(pkg_gazebo_ros, 'launch', 'gzserver.launch.py')
                ),
                launch_arguments={'world': world}.items(),
            ),
    
            IncludeLaunchDescription(
                PythonLaunchDescriptionSource(
                    os.path.join(pkg_gazebo_ros, 'launch', 'gzclient.launch.py')
                ),
            ),
    
            IncludeLaunchDescription(
                PythonLaunchDescriptionSource([launch_file_dir, '/robot_state_publisher.launch.py']),
                launch_arguments={'use_sim_time': use_sim_time}.items(),
            ),
        ])

    drive

    #include "turtlebot3_gazebo/turtlebot3_drive.hpp"
    
    #include <memory>
    
    using namespace std::chrono_literals;
    
    Turtlebot3Drive::Turtlebot3Drive()
    : Node("turtlebot3_drive_node")
    {
      /************************************************************
      ** Initialise variables
      ************************************************************/
      scan_data_[0] = 0.0;
      scan_data_[1] = 0.0;
      scan_data_[2] = 0.0;
    
      robot_pose_ = 0.0;
      prev_robot_pose_ = 0.0;
    
      /************************************************************
      ** Initialise ROS publishers and subscribers
      ************************************************************/
      auto qos = rclcpp::QoS(rclcpp::KeepLast(10));
    
      // Initialise publishers
      cmd_vel_pub_ = this->create_publisher<geometry_msgs::msg::Twist>("cmd_vel", qos);
    
      // Initialise subscribers
      scan_sub_ = this->create_subscription<sensor_msgs::msg::LaserScan>(
        "scan", \
        rclcpp::SensorDataQoS(), \
        std::bind(
          &Turtlebot3Drive::scan_callback, \
          this, \
          std::placeholders::_1));
      odom_sub_ = this->create_subscription<nav_msgs::msg::Odometry>(
        "odom", qos, std::bind(&Turtlebot3Drive::odom_callback, this, std::placeholders::_1));
    
      /************************************************************
      ** Initialise ROS timers
      ************************************************************/
      update_timer_ = this->create_wall_timer(10ms, std::bind(&Turtlebot3Drive::update_callback, this));
    
      RCLCPP_INFO(this->get_logger(), "Turtlebot3 simulation node has been initialised");
    }
    
    Turtlebot3Drive::~Turtlebot3Drive()
    {
      RCLCPP_INFO(this->get_logger(), "Turtlebot3 simulation node has been terminated");
    }
    
    /********************************************************************************
    ** Callback functions for ROS subscribers
    ********************************************************************************/
    void Turtlebot3Drive::odom_callback(const nav_msgs::msg::Odometry::SharedPtr msg)
    {
      tf2::Quaternion q(
        msg->pose.pose.orientation.x,
        msg->pose.pose.orientation.y,
        msg->pose.pose.orientation.z,
        msg->pose.pose.orientation.w);
      tf2::Matrix3x3 m(q);
      double roll, pitch, yaw;
      m.getRPY(roll, pitch, yaw);
    
      robot_pose_ = yaw;
    }
    
    void Turtlebot3Drive::scan_callback(const sensor_msgs::msg::LaserScan::SharedPtr msg)
    {
      uint16_t scan_angle[3] = {0, 30, 330};
    
      for (int num = 0; num < 3; num++) {
        if (std::isinf(msg->ranges.at(scan_angle[num]))) {
          scan_data_[num] = msg->range_max;
        } else {
          scan_data_[num] = msg->ranges.at(scan_angle[num]);
        }
      }
    }
    
    void Turtlebot3Drive::update_cmd_vel(double linear, double angular)
    {
      geometry_msgs::msg::Twist cmd_vel;
      cmd_vel.linear.x = linear;
      cmd_vel.angular.z = angular;
    
      cmd_vel_pub_->publish(cmd_vel);
    }
    
    /********************************************************************************
    ** Update functions
    ********************************************************************************/
    void Turtlebot3Drive::update_callback()
    {
      static uint8_t turtlebot3_state_num = 0;
      double escape_range = 30.0 * DEG2RAD;
      double check_forward_dist = 0.7;
      double check_side_dist = 0.6;
    
      switch (turtlebot3_state_num) {
        case GET_TB3_DIRECTION:
          if (scan_data_[CENTER] > check_forward_dist) {
            if (scan_data_[LEFT] < check_side_dist) {
              prev_robot_pose_ = robot_pose_;
              turtlebot3_state_num = TB3_RIGHT_TURN;
            } else if (scan_data_[RIGHT] < check_side_dist) {
              prev_robot_pose_ = robot_pose_;
              turtlebot3_state_num = TB3_LEFT_TURN;
            } else {
              turtlebot3_state_num = TB3_DRIVE_FORWARD;
            }
          }
    
          if (scan_data_[CENTER] < check_forward_dist) {
            prev_robot_pose_ = robot_pose_;
            turtlebot3_state_num = TB3_RIGHT_TURN;
          }
          break;
    
        case TB3_DRIVE_FORWARD:
          update_cmd_vel(LINEAR_VELOCITY, 0.0);
          turtlebot3_state_num = GET_TB3_DIRECTION;
          break;
    
        case TB3_RIGHT_TURN:
          if (fabs(prev_robot_pose_ - robot_pose_) >= escape_range) {
            turtlebot3_state_num = GET_TB3_DIRECTION;
          } else {
            update_cmd_vel(0.0, -1 * ANGULAR_VELOCITY);
          }
          break;
    
        case TB3_LEFT_TURN:
          if (fabs(prev_robot_pose_ - robot_pose_) >= escape_range) {
            turtlebot3_state_num = GET_TB3_DIRECTION;
          } else {
            update_cmd_vel(0.0, ANGULAR_VELOCITY);
          }
          break;
    
        default:
          turtlebot3_state_num = GET_TB3_DIRECTION;
          break;
      }
    }
    
    /*******************************************************************************
    ** Main
    *******************************************************************************/
    int main(int argc, char ** argv)
    {
      rclcpp::init(argc, argv);
      rclcpp::spin(std::make_shared<Turtlebot3Drive>());
      rclcpp::shutdown();
    
      return 0;
    }

    这里面涉及一些读取传感器关键,0度,30度,-30度的距离。

    然后有一些初值需要查看头文件:

    #ifndef TURTLEBOT3_GAZEBO__TURTLEBOT3_DRIVE_HPP_
    #define TURTLEBOT3_GAZEBO__TURTLEBOT3_DRIVE_HPP_
    
    #include <geometry_msgs/msg/twist.hpp>
    #include <nav_msgs/msg/odometry.hpp>
    #include <rclcpp/rclcpp.hpp>
    #include <sensor_msgs/msg/laser_scan.hpp>
    #include <tf2/LinearMath/Matrix3x3.h>
    #include <tf2/LinearMath/Quaternion.h>
    
    #define DEG2RAD (M_PI / 180.0)
    #define RAD2DEG (180.0 / M_PI)
    
    #define CENTER 0
    #define LEFT   1
    #define RIGHT  2
    
    #define LINEAR_VELOCITY  0.3
    #define ANGULAR_VELOCITY 1.5
    
    #define GET_TB3_DIRECTION 0
    #define TB3_DRIVE_FORWARD 1
    #define TB3_RIGHT_TURN    2
    #define TB3_LEFT_TURN     3
    
    class Turtlebot3Drive : public rclcpp::Node
    {
    public:
      Turtlebot3Drive();
      ~Turtlebot3Drive();
    
    private:
      // ROS topic publishers
      rclcpp::Publisher<geometry_msgs::msg::Twist>::SharedPtr cmd_vel_pub_;
    
      // ROS topic subscribers
      rclcpp::Subscription<sensor_msgs::msg::LaserScan>::SharedPtr scan_sub_;
      rclcpp::Subscription<nav_msgs::msg::Odometry>::SharedPtr odom_sub_;
    
      // Variables
      double robot_pose_;
      double prev_robot_pose_;
      double scan_data_[3];
    
      // ROS timer
      rclcpp::TimerBase::SharedPtr update_timer_;
    
      // Function prototypes
      void update_callback();
      void update_cmd_vel(double linear, double angular);
      void scan_callback(const sensor_msgs::msg::LaserScan::SharedPtr msg);
      void odom_callback(const nav_msgs::msg::Odometry::SharedPtr msg);
    };
    #endif  // TURTLEBOT3_GAZEBO__TURTLEBOT3_DRIVE_HPP_

    这是一个通用的简易避障行驶代码,只要是激光传感器两轮差动小车都适用。


     

    展开全文
  • 机器人自动浏览助手特点是采用独创的编程技术调用用户本地操作系统的功能模拟用户日常行的鼠标点击和网页浏览。 绝不调用任何页面代码,用户在使用此软件进行上网操作时,简介、安全、可靠性极佳。 机器人自动浏览...
  • 机器人自动浏览助手特点是采用独创的编程技术调用用户本地操作系统的功能模拟用户日常行的鼠标点击和网页浏览。 绝不调用任何页面代码,用户在使用此软件进行上网操作时,简介、安全、可靠性极佳。 机器人自动浏览...
  • ABB机器人编程手册

    2016-05-30 09:38:52
    ABB拥有广泛的产品线,包括全系列电力变压器和配电变压器,高、中、低压开关柜产品,交流和直流输配电系统,电力自动化系统,各种测量设备和传感器,实时控制和优化系统,机器人软硬件和仿真系统,高效节能的电机和...
  • 根据国际标准化组织(ISO)工业机器人属于标准焊接机器人的定义,工业机器人是一种多用途的、可重复编程自动控制操作机(Manipulator),具有三个或更多可编程的轴,用于工业自动化领域。为了适应不同的用途,...
  • UR机器人编程实践

    千次阅读 2019-05-22 13:15:31
    UR机器人编程技巧: 1、程序开始时总是会莫名到某个位置然后再执行程序,这是因为在机械手会自动移位到 程序中出现的第一个位置,估计是把出现的这个位置做为原点处理了。这与我们的要求 不合。所以,只要把...

    UR机器人编程技巧:

     

    1、程序开始时总是会莫名到某个位置然后再执行程序,这是因为在机械手会自动移位到

    程序中出现的第一个位置,估计是把出现的这个位置做为原点处理了。这与我们的要求

    不合。所以,只要把出现的第一个位置变为相对位置或者可变位置,机械手启动时就不会

    再处理。

     

    2、我们取到的位置信息是机座位置信息,那么我们使用的时候也应该是机座位置,而不

    是视角位置,否则会出现我们需要的位置与实际位置不符合

     

    3、机械臂的安全角度较大,在轴与轴距离较小时,即使手动能安全操作,自动运行时也

    会出现失速现象,需要给机械臂较大的安全角度

     

    4、机器人只做动作,不做判断,这样可以简化编程难度

     

    5、通过线程的方式可以在运行中把托盘计数器清零,为了避免无限循环错误,需要在前

    面加等待机制。

     

    6、get_actual_tcp_pose()取得当前TCP位置

     

    7、get_actual_join_pose()取得当前机座位置的弧度值,这个值不能直接看到,但是可以换算

    弧度与角度换算比例:1弧度=180/π 度 1度=π/180 弧度 或者 1弧度=57.2956度 1度=0.0174533弧度

     

    8、pose_add(<pose1>,<pose2>) 将pose1与pose2的位置值相加

    9、pose_trans(<pose from>,<pose to>)移动到某位置(绝对位置)--谨慎使用

     

    10、p[x,y,z,rx,ry,rz]机械手位置的完整表达,相当于数组,可以单独用p[n]来

    表达位置中的某个参数。

    例如:var_pose_now=get_actual_tcp_pose()

    此时:x=var_pose_now[0]

    此时:y=var_pose_now[1]

    此时:z=var_pose_now[2]

    此时:rx=var_pose_now[3]

    此时:ry=var_pose_now[4]

    此时:rz=var_pose_now[5]

    位置也可以用如下方式来表达:

    p[var_pose_now[0],var_pose_now[1],var_pose_now[2],var_pose_now[3],var_pose_now[4],var_pose_now[5]]

     

    如果需要在现在位置的基础上向上移动0.2,那么只需要用pose_add(<pose1>,<pose2>)函数来实现就好

    例如:var_pose_up=pose_add(var_pose_now,p<0,0,0.2,0,0,0>)

    当然也可以直接赋值,不用函数:var_pose_up_1= z + 0.2 var_pose_up=p[x,y,var_pose_up_1,rx,ry,rz]

     

    如果需要移动到某个位置,有特殊需要,比如往上移动到0.3,其余x,y位置都不变,那么直接赋值就好

    例如:var_pose_up=p[var_pose_now[0],var_pose_now[1],0.3,var_pose_now[3],var_pose_now[4],var_pose_now[5]]

    或者:var_pose_up=p[x,y,0.3,rx,ry,rz]

     

     

     

    UR机器人SL15213/SL15214编程要求:

     

    1、开机之后原点状态(把原点复位程序放到Before Start 区域)

    2、在送完产品后如果PLC有停止信号,回原点停止

    3、转换A/B区在送完产品后再进行,转换时先回原点,再转换到另一区,CNT清零

    4、取料过程中如果需要再取则跳到取料部再取

    5、如果取料过程中需要转换到另一区,则回原点,再转换,在步中完成

    6、每一个需要给PLC信号的地方用模拟脉冲的方式发信号

    7、机种选择、A/B区选择PLC必须给固定ON/OFF信号,其他信号为瞬时

    8、更换托盘后计数必须清零,PLC给UR信号清零,否则会有撞机危险

    9、光栅停止与紧急停止需分开,光栅遮断暂停程序,如有更换托盘

    则计数器清零,紧急停止断开立即停止机器人

    10、UR机器人输出没有脉冲信号,所以需要自己在等待一段时间后关闭信号

    11、因公司使用的是NPN类型的器件,而UR机器人为PNP型,所以采用继电器中转,

    中间有时间延迟必须考虑到程序内

    12、考虑到机械手的特殊性,不以位置为原点信号,而以到某位置输出为原点信号

    13、UR与PLC信号交接通过继电器方式,为了保证可靠性需要通过交互的方式

    PLC>信号>UR>反馈>PLC>反馈>UR

     

    展开全文
  • ZNH-DQ01工业机器人自动化综合实训平台 一、概述 ZNH-DQ01工业机器人自动化综合实训平台主要用于工业机器人电气系统、气动系统的设计、安装、调试、维护维修;工业机器人PLC编程;工业机器人变频、伺服系统的参数...

    ZNH-DQ01工业机器人自动化综合实训平台

    一、概述

           ZNH-DQ01工业机器人自动化综合实训平台主要用于工业机器人电气系统、气动系统的设计、安装、调试、维护维修;工业机器人PLC编程;工业机器人变频、伺服系统的参数调整与编程控制;工业机器人传感器的检测与应用;人机界面编程与应用。
           ZNH-DQ01工业机器人自动化综合实训平台为模块化开放式设计结构,主模块可作为独立的实训系统单独使用,也可通过标准接口与电工实操、电气控制、气动控制、伺服步进、传感检测、机械拆装等子模块组合,构成不同功能的自动化控制实训项目。各种电气元器件、机械构部件、系统运行状态具有直观性,功能具有可扩展性,应用具有安全性。ZNH-DQ01工业机器人自动化综合实训平台可用于自动化电气部件、气动部件、伺服电机、步进电机、变频器、传感器、可编程控制器、触摸屏等工业控制系统中*常用的设备的安装、接线、调试,可开展自动化相关控制技术的实训。 

    二、技术参数
    1.单相 AC 220V±10% 50 Hz;
    2.整机功耗:≤ 3kW;
    3.环境温度:-10~40 ℃;
    4.环境湿度:≤90%(25℃);
    5.安全保护措施:具有接地保护、漏电保护功能,安全性符合相关的国家标准;
    6.外形尺寸(长宽高):1800×1200×1500mm。
    三、主要配置

    序号 名称 主要技术指标 数量 单位 备注
    1 主模块(PLC、变频、触摸屏) 30X30工业铝型材台架,1600X800X1200配脚轮。
    输入电源:三相AC380V±10%;
    整体功率:<0.6kVA;
    气源压力:≥0.4MPa;
    工作温度:-5ºC~+40ºC;
    工作湿度85%(25ºC);
    整机重量:≤120Kg
    由三菱FX3U-48MT,三菱变频器,三相异步电机,7寸维纶触摸屏,三菱cclink通讯模块,台式电脑、按钮盒等组成
    1  
    2 电气控制模块 由交流接触器,继电器,控制按钮,网孔板等组成 1  
    3 气动模块 由2只执行气缸,2个电磁阀,1个调压表,磁开关,网孔板等组成 1  
    4 伺服步进模块 由伺服电机,丝杆,步进电机,网孔板等组成 1  
    5 传感器模块 由电感式接近、电容式接近、光电、光纤、温度、霍尔、磁性、光幕等传感器,网孔板等组成 1  
    6 机械拆装模块 上料模块、下料模块、输送线模块 1  
    7 常用工具 大小一字十字螺丝刀、电工刀、压线钳、剥线钳、电烙铁、焊锡丝、斜口钳、电工胶布、试电笔等 1  
    8 信号线 SC-09编程线、触摸屏下载线、触摸屏与PLC通讯线 1  

    四、实训项目
    1、基础模块:

    基础模块实训项目
    1 低压电器选型实训 15 PLC 1:1通讯实训
    2 配电工艺实训 16 PLC N:N通讯实训
    3 点动、长动等控制线路的安装实训 17 触摸屏页面设计实训
    4 正反转控制线路的安装与调试实训 18 触摸屏参数设置实训
    5 顺序控制线路的安装与调试实训 19 PLC与触摸屏通讯实训
    6 降压启动控制路的安装与调试实训 20 变频器选型实训
    7 自动往返控制线路的安装、调试实训 21 变频器控制线路设计实训
    8 PLC编程方法训练实训 22 变频器参数设置实训
    9 PLC指令训练实训 23 变频器点动、正转、反转控制实训
    10 PLC控制电机训练实训 24 变频器7段数控制实训
    11 PLC控制变频器训练实训 25 变频器15段数控制实训
    12 PLC采集传感器信号训练实训 26 变频器与PLC通讯实训
    13 PLC控制气动装置训练实训 27 变频器与触摸屏通讯实训
    14 PLC对电机速度控制训练实训 / /

    2、气动模块:

    气动模块实训项目
    (1) PLC控制气动系统完成模拟钻床上钻孔动作实训
    (2) 气动实训系统中搭建自动开关门装置时实训
    (3) 气动实训系统中搭建气缸给进系统实训
    (4) 用PLC完成双缸动作回路控制实训
    (5) 用PLC控制气动系统完成某家具试验机的设计实训

    3、传感器模块:

    传感器模块实训项目
    (1) 电感式接近传感器应用实训 (5) 温度传感器应用实训
    (2) 电容式接近传感器应用实训 (6) 霍尔传感器应用实训
    (3) 光电传感器应用实训 (7) 磁性传感器应用实训
    (4) 光纤传感器应用实训 (8) 光幕传感器应用实训

    4、伺服步进模块:

    伺服步进模块实训项目
    (1) 步进电机驱动选型实训 (6) 伺服参数设置实训
    (2) 步进参数设置实训 (7) 伺服电机控制线路设计实训
    (3) 步进电机控制线路设计实训 (8) 定位控制实训
    (4) 步进电机控制程序设计实训 (9) 转矩控制实训
    (5) 伺服电机与驱动选型实训 (10) 速度控制实训

    5、机械拆装模块实训项目
    (1)上料模块拆卸
    (2)下料模块拆卸
    (3)输送线模块拆卸
    (4)输送线模块装配与调试
    (5)下料模块装配
    (6)上料模块装配

    展开全文
  • 从头开始设计一个可交互的自动化移动机器人,做原型,做模拟,做测试,基于python ,ROS和openCV
  • KUKA机器人编程手册3

    2017-11-21 08:52:43
    1结构化编程 2SUBMIT解析器 3KRL工作空间 4用KRL进行信息编程 5 中断编程 6给撤回策列编程 7模拟信号方面的工作 8外部自动运行模式的自动过程和变量
  • 小R科技XRScratch图形化机器人编程软件,可以用于wuli bot等机器人的图形化编程自动生成C代码。
  • 自动平衡机器人是一个项目,其中建造了一个两轮机器人,并将其编程为可从Android应用程序进行无线电控制,同时执行自平衡任务。 该项目使用Matlab来计算完美的PD控制器(采用原始PID控制器结构)和C ++编码语言,以...
  • FANUC 工业机器人编程与联网

    千次阅读 2019-05-29 15:37:27
    FANUC 机械臂和控制器 FANUC是领先的四家机器人制造商之一。 FANUC 有多种系列化的机械臂可供选择: 当前FANUC 机器人的最新控制器为R-30 iB,以前的型号为R-30 ...拿机器人领域来说,不同的厂家使用不同的编程...
  • 支持包包括一个 Simulink 模块库,用于对机器人大脑进行编程,使其与传感器、智能电机和 VEX 游戏手柄输入一起工作。 它还包括一个简化的开发界面和示例模型。 此硬件支持包适用于 R2018b 及更高版本。 如果您有...
  • 焊工件材质、焊接工艺以及生产节拍等为出发点,研制了一条集成6套双机器人焊接系统、1套自动化物流系统、1套生产线控制系统、3个上下料架、1套离线编程软件及1个生产线控制室等为一体的机器人自动化焊接生产线。...
  • 弧焊机器人作为一种自动化焊接设备,其自动化程度在很大程度上取决于程序的编制。目前的工业机器人离线编程平台,可进行机器人作业系统的建模、简单作业程序的编制和作业过程仿真演示。对于由不规则曲线段构成的复杂...
  • 从液压支架连杆的结构、焊接工艺、生产节拍等角度出发,研制了一条集成7套双机器人焊接系统、1套自动化物流系统、1个生产线控制系统、4个上下料架、1套离线编程软件及1个生产线控制室等的机器人自动化焊接生产线。...
  • 机器人流程自动化(或RPA)是一种基于隐喻软件机器人或人工智能(AI)工人概念的业务流程自动化技术的新兴形式。  在传统的工作流 自动化工具中,软件开发人员使用内部应用程序编程接口(API)或专用脚本语言来生成...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 882
精华内容 352
关键字:

机器人自动编程