/// <summary>
    /// 轴参数
    /// </summary>
    public class AxisPrm : EntityBase<AxisKey>, ICloneable
    {
        public AxisPrm() : base()
        {

}
        private AxisPrm(string name, AxisKey key) : base(key)
        {
            Name = name;
        }
        /// <summary>
        /// 普通轴构造函数
        /// </summary>
        /// <param name="name">轴名称</param>
        /// <param name="cardNum">轴对应的控制卡编号</param>
        /// <param name="code">轴在这台几台上的编号,由自己定义</param>
        /// <param name="key">轴在控制卡上的编号值,16轴卡就是1到16,这里用枚举值</param>
        public AxisPrm(string name, short cardNum, short code, AxisKey key) : this(name, key)
        {
            CardNum = cardNum;
            Code = code;
        }
        /// <summary>
        /// 龙门(Master)轴的构造函数
        /// </summary>
        public AxisPrm(string name, short cardNum, short code, short followCode, AxisKey key) : this(name, cardNum, code, key)
        {
            FollowAxisCode = followCode;
            Type = AxisType.Master;
        }
        /// <summary>
        /// 反转(Reverse)轴的构造函数
        /// </summary>
        public AxisPrm(string name, AxisKey key, AxisKey reverseKey) : this(name, key)
        {
            ReverseAxisKey = reverseKey;
            Type = AxisType.Reverse;
        }
        /// <summary>
        /// TwoPos气缸轴的构造函数
        public AxisPrm(string name, AxisKey key, IOName[] mov, IOName[] arrive) : this(name, key)
        {
            OutDo = mov;
            InDi = arrive;
            Type = AxisType.Cylinder_TwoPos;
        }

private const string CategoryConstant = "固有参数";
        private const string CategoryLM = "龙门参数";
        private const string CategoryOther = "其他轴";
        private const string CategoryJogMotion = "Jog运动参数";
        private const string CategoryDotMotion = "点动运动参数";
        private const string CategoryLimit = "限位参数";

#region 固有属性
        /// <summary>
        /// 轴名字
        /// </summary>
        [JsonProperty]
        [ReadOnly(true)]
        [Category(CategoryConstant)]
        [Description("轴名字")]
        [DisplayName("轴名")]
        public string Name { get; set; }
        /// <summary>
        /// 轴类型
        /// </summary>
        [JsonProperty]
        [ReadOnly(true)]
        [Category(CategoryConstant)]
        [Description("轴类型")]
        [DisplayName("轴类型")]
        public AxisType Type { get; set; } = AxisType.Common;
        /// <summary>
        /// 编号
        /// </summary>
        [JsonProperty]
        [ReadOnly(true)]
        [Category(CategoryConstant)]
        [Description("轴编号")]
        [DisplayName("轴编号")]
        public short Code { get; set; }
        /// <summary>
        /// 所属控制卡编号
        /// </summary>
        [JsonProperty]
        [ReadOnly(true)]
        [Category(CategoryConstant)]
        [Description("所属控制卡编号")]
        [DisplayName("所属控制卡编号")]
        public short CardNum { get; set; } = 0;
        /// <summary>
        /// 脉冲当量
        /// </summary>
        [JsonProperty]
        [Category(CategoryConstant)]
        [Description("脉冲当量")]
        [DisplayName("脉冲当量")]
        public double PulseEquiv { get; set; } = 1000;
        [JsonProperty]
        [Category(CategoryConstant)]
        [DisplayName("Encoder")]
        [Description("编码器转一圈脉冲数")]
        public int Encoder { get; set; } = 16777216;
        [JsonProperty]
        [Category(CategoryConstant)]
        [DisplayName("Gear")]
        [Description("编码器转一圈需发脉冲数")]
        public int Gear { get; set; } = 10000;
        /// <summary>
        /// 驱动器品牌
        /// </summary>
        [JsonProperty]
        [Category(CategoryConstant)]
        [Description("驱动器品牌")]
        [DisplayName("驱动器品牌")]
        public DriveType DriveType { get; set; } = DriveType.众为兴;
        #endregion

#region 龙门相关
        [JsonProperty]
        [Category(CategoryLM)]
        [Description("龙门学习长度/mm")]
        [DisplayName("学习长度")]
        [Browsable(false)]
        [JsonIgnore]
        public int LMLength { get; set; } = 100;
        [JsonProperty]
        [Category(CategoryLM)]
        [Description("龙门学习方向是否为负")]
        [DisplayName("学习方向")]
        [Browsable(false)]
        [JsonIgnore]
        public bool DicIsNeg { get; set; } = false;
        [Category(CategoryLM)]
        [Description("龙门从轴轴号")]
        [DisplayName("从轴号")]
        [JsonIgnore]
        [Browsable(false)]
        public short FollowAxisCode { get; set; }
        #endregion

#region 其他
        /// <summary>
        /// TwoPos气缸轴独有,输出的运动指令
        /// </summary>
        [JsonProperty]
        [Browsable(false)]
        public IOName[] OutDo { get; set; }
        /// <summary>
        /// TwoPos气缸轴独有,到位信号
        /// </summary>
        [JsonProperty]
        [Browsable(false)]
        public IOName[] InDi { get; set; }
        /// <summary>
        /// Reverse轴特有,表示跟随它反转的轴号
        /// </summary>
        [JsonProperty]
        [Browsable(false)]
        public AxisKey ReverseAxisKey { get; set; }
        #endregion

#region 回零相关
        [JsonProperty]
        [Category("回零相关")]
        [Description("回零模式")]
        [DisplayName("回零模式")]
        public AxisHomeType HomeMode { get; set; } = AxisHomeType.NegLimitIndex_1;
        [JsonProperty]
        [Category("回零相关")]
        [Description("高速回零速度")]
        [DisplayName("高速回零速度")]
        public double HomeVel { get; set; } = 20;
        [JsonProperty]
        [Category("回零相关")]
        [Description("最大高速回零速度")]
        [DisplayName("最大高速回零速度")]
        public double MaxHomeVel { get; set; } = 20;
        [JsonProperty]
        [Category("回零相关")]
        [Description("低速回零速度")]
        [DisplayName("低速回零速度")]
        public double HomeLowVel { get; set; } = 10;
        [JsonProperty]
        [Category("回零相关")]
        [Description("回零加速度")]
        [DisplayName("回零加速度")]
        public double HomeAcc { get; set; } = 100;
        [JsonProperty]
        [Category("回零相关")]
        [Description("原点偏移 / mm")]
        [DisplayName("原点偏移")]
        public double HomeOffset { get; set; } = 0;
        #endregion
        
        #region Dot运动参数
        [JsonProperty]
        [Category(CategoryDotMotion)]
        [Description("默认速度 mm/s,即定点移动")]
        [DisplayName("速度")]
        public double DefVel { get; set; } = 50;
        [JsonProperty]
        [Category(CategoryDotMotion)]
        [Description("默认起步速度 mm/s,即定点移动")]
        [DisplayName("起步速度")]
        public double DefStartVel { get; set; } = 0;
        [JsonProperty]
        [Category(CategoryDotMotion)]
        [Description("默认加速度 mm/s,即定点移动")]
        [DisplayName("加速度")]
        public double DefAcc { get; set; } = 4000;
        [JsonProperty]
        [Category(CategoryDotMotion)]
        [Description("默认减速度 mm/s^2,即定点移动")]
        [DisplayName("减速度")]
        public double DefDec { get; set; } = 4000;

[JsonProperty]
        [Category(CategoryDotMotion)]
        [Description("默认最大速度 mm/s,即定点移动")]
        [DisplayName("最大速度")]
        public double MaxDefVel { get; set; } = 200;
        [JsonProperty]
        [Category(CategoryDotMotion)]
        [Description("默认最大加速度 mm/s,即定点移动")]
        [DisplayName("最大加速度")]
        public double MaxDefAcc { get; set; } = 4000;
        [JsonProperty]
        [Category(CategoryDotMotion)]
        [Description("默认最大减速度 mm/s^2,即定点移动")]
        [DisplayName("最大减速度")]
        public double MaxDefDec { get; set; } = 4000;
        #endregion

#region Jog运动参数
        [JsonProperty]
        [Category(CategoryJogMotion)]
        [Description("默认Jog运动速度 mm/s")]
        [DisplayName("Jog速度")]
        public double DefJogVel { get; set; } = 100;
        [JsonProperty]
        [Category(CategoryJogMotion)]
        [Description("默认Jog起步速度 mm/s")]
        [DisplayName("Jog起步速度")]
        public double DefJogStartVel { get; set; } = 0;
        [JsonProperty]
        [Category(CategoryJogMotion)]
        [Description("默认Jog运动加速度 mm/s^2")]
        [DisplayName("Jog加速度")]
        public double DefJogAcc { get; set; } = 4000;
        [JsonProperty]
        [Category(CategoryJogMotion)]
        [Description("默认Jog运动减速度 mm/s^2")]
        [DisplayName("Jog减速度")]
        public double DefJogDec { get; set; } = 4000;
        [JsonProperty]
        [Category(CategoryJogMotion)]
        [Description("默认插补坐标系[0,1]")]
        [DisplayName("插补坐标系")]
        public short DefCrd { get; set; } = 0;
        [JsonProperty]
        [Category(CategoryJogMotion)]
        [Description("匀速时间 ms")]
        [DisplayName("匀速时间")]
        public double SmoothTime { get; set; } = 10;

[JsonProperty]
        [Category(CategoryJogMotion)]
        [Description("默认最大Jog运动速度 mm/s")]
        [DisplayName("最大Jog速度")]
        public double MaxDefJogVel { get; set; } = 100;
        [JsonProperty]
        [Category(CategoryJogMotion)]
        [Description("默认最大Jog运动加速度 mm/s^2")]
        [DisplayName("最大Jog加速度")]
        public double MaxDefJogAcc { get; set; } = 4000;
        [JsonProperty]
        [Category(CategoryJogMotion)]
        [Description("默认最大Jog运动减速度 mm/s^2")]
        [DisplayName("最大Jog减速度")]
        public double MaxDefJogDec { get; set; } = 4000;
        #endregion

#region 限位相关
        [JsonProperty]
        [Category(CategoryLimit)]
        [DisplayName("硬件正限位端口号")]
        [Description("查询硬件正限位时的端口号")]
        public int PosLimitNum { get; set; } = 0;
        [JsonProperty]
        [Category(CategoryLimit)]
        [DisplayName("硬件负限位端口号")]
        [Description("查询硬件负限位时的端口号")]
        public int NegLimitNum { get; set; } = 1;
        [JsonProperty]
        [Category(CategoryLimit)]
        [DisplayName("启用软限位")]
        [Description("启用软限位,0:禁用  1:启用")]
        public bool IsSoftLimit { get; set; } = true;
        [JsonProperty]
        [Category(CategoryLimit)]
        [DisplayName("负软限位")]
        [Description("负方向软限位 mm")]
        public int SoftNegLimit { get; set; } = -1500;
        [JsonProperty]
        [Category(CategoryLimit)]
        [DisplayName("正软限位")]
        [Description("正方向软限位 mm")]
        public int SoftPosLimit { get; set; } = 1500;
        #endregion

public object Clone()
        {
            return MemberwiseClone();
        }
    }
    /// <summary>
    /// 驱动器品牌枚举
    /// </summary>
    public enum DriveType
    {
        [Browsable(false)]
        NULL = 0,
        汇川,
        Elmo,
        高创,
        众为兴,
    }

非标框架(5)-轴参数类相关推荐

  1. 一文讲透非标品的商品类目设计

    www.pmcaff.com 本文为作者 百转 于社区发布 只要做电商,商品类目设计就是绕不开的一环.好的类目设计能让供需双方更快.更好定义或找到所关心的商品,是整个电商体系的地基,是构建并链接各个模 ...

  2. 标品与非标品的定义 标品与非标品的区别,以及标品与非标品直通车运营方案

    今天我们还是来重复老话题,标品与非标品,但是我们今天要写的是标品与非标品怎样开直通车,好了我们开始我们今天的话题了. 一.标品与非标品 1.标品,市场上具有统一标准的产品,例如统一规格.型号.功能.产 ...

  3. 非标自动化及电子测试夹具(FCT)类常用Ubuntu指令总结

    非标自动化与电子测试夹具(FCT)类常用Ubuntu指令总结 ssh root@ip :进入arm板卡指令(ip是arm板卡使用网线连接所产生的ip,如169.254.1.32,使用usb线的可用特定 ...

  4. 非标行业的类标准产品经验

    文章目录 前言 一.描述问题 二.处理方案 1.超级BOM 2.计算逻辑 3.效果展示 总结 前言 本篇文章介绍我之前在一家淋浴房工厂上班的工作经验,学习了一下非标自动拆单软件的设计思想,在此也非常感 ...

  5. C#运动控制加视觉非标自动化软件框架,运动控制设计部分采用流程图式设计

    C#运动控制加视觉非标自动化软件框架,运动控制设计部分采用流程图式设计,可以根据框架自定义C#+halcon或者C#?VP全新 ,源码 YID:3985646038049009用户_20317043

  6. 欧姆龙njnx程序全部ST语言,非标设备的写法框架xyz气缸和报警,移位指令,处理检测ng写法

    欧姆龙njnx程序全部ST语言,非标设备的写法框架xyz气缸和报警,移位指令,处理检测ng写法,数据类型联合体,统计月产量,日产量,ok产量,ng产量,运行时间,报警时间,oee,合格率,功能块,省去 ...

  7. 5大典型模型测试单机训练速度超对标框架,飞桨如何做到?

    导读:飞桨(PaddlePaddle)致力于让深度学习技术的创新与应用更简单.在单机训练速度方面,通过高并行.低开销的异步执行策略和高效率的核心算子,优化静态图训练性能,在Paddle Fluid v ...

  8. 机械设计电子版_非标机械设计有哪些设计过程??

    精彩文章回顾 [1]至少200G的机械类学习资料,有链接直接下载! [2]推荐几个机械类的论坛及公众号! [3]牛逼的德国, 又一次的震撼了世界人的眼睛! [4]小猪佩奇CAD图纸! [5]来自越南和 ...

  9. 基于双目视觉的非标机械臂的空间定位流程(未完待续)

    文章目录 系统 坐标系变换原理 双目标定 原理 准备 步骤 图像极线校正.对应点匹配.空间定位 图像校正 计算视差 计算深度 目标点空间定位 三维重建 手眼标定(eye-in-hand ) 问题故障解 ...

最新文章

  1. springboot项目层次结构_Spring Boot 默认的指标数据从哪来的?
  2. 基于动态提前退出的预训练模型推理加速简介
  3. 阿里云加速构建技术平台,推动5G消息产业发展
  4. 用Apache构建WEB服务器
  5. 在猜年龄的基础上编写登录、注册方法,并且把猜年龄游戏分函数处理
  6. g++ linux intel 汇编,g++ linux
  7. 音视频之使用sonic.cpp实现音频倍速播放功能
  8. 实战申请Let's Encrypt永久免费SSL证书过程教程及常见问题
  9. 摩托罗拉MT788刷机
  10. 函数式编程与命令式编程的学习难度比较
  11. apue.h头文件内容
  12. readline,readlines,read函数
  13. 我的天!你竟然没有在SpringBoot中使用过异步请求和异步调用...
  14. 友盟分享长图片,如何截取长图片去分享
  15. Android 解决华为手机图片底色变绿问题
  16. [转载]千古真人张三丰
  17. Pic3D裸眼3D贴膜诞生
  18. Widows系统截屏工具
  19. 处理txt文件下载下来以后,排版格式不对的问题
  20. 怎么解决联想笔记本电脑待机后黑屏无法唤醒

热门文章

  1. “终于我从字节离职了....”一个年薪40W的测试工程师的自白....
  2. rocksdb性能mysql_mysql rocksdb使用报告
  3. 解决printe spooler服务自动关闭、无法添加打印机等(工作中经常碰到)
  4. Blender 建模 - 制作一个茶几
  5. raiseerror的用法
  6. 网易惠惠购物助手:大数据实时更新框架概述
  7. Lrc2021 Lightroom Classic
  8. 金昌气象APP隐私政策
  9. 计算机管理扫不出我的独显,win10正式版系统下检测不到独立显卡的解决方法
  10. 百家号写的文章为什么不被推荐?推荐量低阅读量低是什么原因?