PMAC应用二-基本配置
电机基本参数配置
配置电机
配置一个虚拟电机
坐标系的创建
坐标系的概念
轴的类型
轴定义的类别
轴配置示例
结后语
电机基本参数配置
配置电机
       在项目的文件夹PMAC Script Language->文件夹Global Includes下创建一个名为motor para.pmh(文件名自己定义)的文件。
在这里插入图片描述

打开motor para.pmh文件,并写入电机配置参数。

Motor[1].PosSf=16/8388608                 //电动速度 mm/ms
/*Motor[1].PosSf=A/B
功能:设定用户单位(内部速度环比例因子)
A:丝杆的导程
B:电机编码器精度    17位编码器:2^17=131,072  23位编码器:2^23=8,388,608
*/

Motor[1].Pos2Sf=Motor[1].PosSf  //(外部速度环比例因子)        
Motor[1].CaptureMode=1    //搜原点模式:使用io信号
/*Motor[1].CaptureMode
功能:触发回零动作的捕获模式
0. 硬件触发,硬件捕获
1. 硬件触发,软件捕获
2. 错误触发,软件捕获
3.硬件触发,时间辅助软件捕获
*/

Motor[1].pCaptFlag=Slave_0_60FD_0_Digitalinputs.a      //原点信号所在地址 
Motor[1].CaptFlagBit=2		//原点信号bit号
Motor[1].HomeVel=-0.01     //搜原点速度mm/s,负表示向负方向搜原点
Motor[1].HomeOffset=10     //在原点信号位置的偏移量
Motor[1].pLimits=Slave_0_60FD_0_Digitalinputs.a      //硬限位所在地址
Motor[1].LimitBits=64     //限位信号bit号,减去64为负限位bit,下一个为正限位
Motor[1].MaxSpeed=0.1      //最大速度mm/ms
Motor[1].JogSpeed=0.01     //点动速度
Motor[1].FatalFeLimit=10     //最大跟随误差 mm
Motor[1].MaxPos=195         //软限位最大值
Motor[1].MinPos=-253        //软限位最小值
Motor[1].JogTa=200         //点动加速度时间
Motor[1].JogTs=100        //点动s型曲线时间

  原点所在地址在DI输入状态中,索引位60FD,这个是默认不变的,原点bit号为2,下图为欧姆龙电机60FD bit定义说明。限位信号bit可查看pmac用户手册,这个参数需要详细看一下。

在这里插入图片描述

配置一个虚拟电机

       在项目的文件夹PMAC Script Language->文件夹Global Includes下创建一个名为virtual motor para.pmh(文件名自己定义)的文件。参数的具体的说明可查看用户手册。PMAC用户手册提取:njve

Motor[6].ServoCtrl=1            //激活电机的伺服算法
Motor[6].pDac=Sys.Idata[6].a         //与可封装的[6].pEnc相同
EncTable[6].type=1            // 32位寄存器读取
EncTable[6].pEnc=Sys.idata[6].a        //与可封装的[6].pEnc相同
EncTable[6].pEnc1=Sys.pushm           //伪读(未使用)
EncTable[6].index1=0           //无源数据右移
EncTable[6].index2=0            //源数据无左移
EncTable[6].index3=0           //无加速限制
EncTable[6].index4=1           / /单个集成
EncTable[6].PrevDelta=0        //整合前无偏差
EncTable[6].MaxDelta=0        //无速度限制
EncTable[6].ScaleFactor=1/65536   // 32位-> 16位
Motor[6].pEnc=EncTable[6].a //位置环反馈源
Motor[6].pEnc2=EncTable[6].a  //速度环反馈源
Motor[6].pLimits=0    //禁用超行程限制输入
Motor[6].pAmpEnable=0   //如果信道连接到放大器,可能需要禁止放大器启动输出
Motor[6].pAmpFault=0  //如果信道连接到放大器,可能需要禁止放大器故障输出
Motor[6].Servo.Kvfb=0  //将伺服回路的导数增益项设为零
Motor[6].Servo.Kp=1      //默认比例因子
Motor[6].Servo.Ki=0.01   //积分增益强制为0误差
Motor[6].Servo.BreakPosErr=0  //将死区设置为零
Motor[6].Servo.Kvff=1    //增加前馈,最小化跟踪误差
Motor[6].Servo.Kaff=1

/官网论坛大神分享///

坐标系的创建
坐标系的概念
       如果我们把多个电机组合成一个整体,单个电机反馈的位置值如何映射到这个电机组合体中去?以什么为参考呢?我们就要引入坐标系,坐标系就是一个参照体,为了说明质点的位置、运动的快慢、方向等。

轴的类型
直角坐标系轴
       X/Y/Z, XX/YY/ZZ允许任意三维平面上的圆弧插补
进给轴
        默认情况下,[X,Y,Z]是进给速率(矢量进给速率)轴
        使用命令frax定义其他进给轴
旋转轴
       仅适用于[A,B,C]和[AA,BB,CC]轴
       可以使用Coord[x].AltFeedrate,当命令运动中带有旋转轴时,使旋转轴(非矢量进给轴)与矢量进给轴在同一直线上,以确保适当的进给速度。
轴定义的类别
将一个电机转换成一个轴,或转换成多个轴的线性组合
一轴多电机(龙门式系统)
假轴:没有分配电机的轴
线性轴可以直接分配,旋转轴必须使用运动学子程序
轴配置示例
       在项目的文件夹PMAC Script Language->文件夹Global Includes下创建一个名为coord setup.pmh(文件名自己定义)的文件。

undefine all    //清除所有坐标系统的所有轴定义
&1               //使用“&”创建名为1的坐标系
#1->x         //使用“#”将x分配给1号电机
#2->y        //使用“#”将y分配给2号电机
#3->z
#4->a
#5->b

/*
undefine all    //清除所有坐标系统的所有轴定义
&1               //使用“&”创建名为1的坐标系
//平移轴定义
#1->X+4     // x平移4
#2->Y+2     //y平移2
//旋转轴定义
//sin(45)=0.707
#1->0.707X-0.707Y
#2->0.707X+0.707Y
*/

/走插补时需设置
Coord[1].SegMoveTime=2  // 粗插值的“分割时间”的单位是毫秒
Coord[1].AltFeedRate=10     //非矢量轴的速度
Coord[1].TimeBaseSlew=0.01   //时基转换速率
Coord[1].DesTimeBase=1      //所需的时基值
Coord[1].Tm=-10       //混合动作的进给量

IO分配
       如果设备挂载了IO模块,我们需要创建IO变量。在项目的文件夹PMAC Script Language->文件夹Global Includes下创建一个名为IO para.pmh(文件名自己定义)的文件。
       在ECATMap.pmh文件中找到IO模块的地址,比如我想定义一个输入模块:
在这里插入图片描述

在IO para.pmh定义如下:

//数字输入模块
ptr A-> Slave_5_6002_1_InputBit16bits.0.1;         //ptr 自定义变量  -> 模块地址.模块节点.1
ptr  B-> Slave_5_6002_1_InputBit16bits.1.1;
ptr C-> Slave_5_6002_1_InputBit16bits.2.1;
ptr D-> Slave_5_6002_1_InputBit16bits.3.1;

/模拟量输出模块
ptr E->Slave_5_60A0_1_Ch1AnalogInputVal;  //ptr  自定义变量  -> 模块地址(模拟量通道1)

//给电机控制字分配变量///
ptr F-> Slave_1_6040_0_ControlWord;

结后语

       基本的配置工作已经完成,下一节我们开始写PLC程序和运动程序。