总线运动控制相关参数
A)Ethercat主站:
功能块IoDrvEtherCAT,实例直接用主站名称。
类别 | 参数 | 注释 |
---|---|---|
输入 | xRestart | 在上升沿,所有主站会被重启。所有配置参数会被重新加载。 |
xStopBus | 当此参数为“TRUE”时,通信将停止,不会发送更多的EtherCAT报文。对大部分的设备而言,之后重启是有必要的,因为他们已进入错误状态。 | |
输出 | xConfigFinished | 如果这个参数为“TRUE”,所有配置参数的传送已经正确完成。通讯正在运行。 |
xDistributedClockInSync | 如果使用了分布时钟,PLC将和第一个激活分布时钟设置的EtherCAT从站同步。只要同步成功完成,输出为TRUE。这个信号可用于同步化模式下,在PLC启动之前启动SoftMotion功能块,因为否则的话可能会发生位置跳跃。在PLC启动时,输出是FALSE,几秒钟之后它将变为TRUE。如果由于任何故障而失去同步性,则输出重置为FALSE. | |
xError | 如果EtherCAT堆栈启动时探测到错误,或者在操作时与从站的通讯被中断,则该输出为TRUE,因为再收不到任何消息(比如由于连线中断)。可通过错误列表或错误信息来了解错误原因。因此,“Ethercat主站. 最新消息.Ethercat主站”是主站的实例 | |
属性 | AutoSetOperational | 如果此属性被设置为TRUE,一旦通讯中止,主站总是会尝试重启从站。 |
ConfigRead | 若此属性返回TRUE,表明已完成配置的读取,用户可以编辑设置了。如为了实现自定义SDOs的添加。 | |
DCInSyncWindow | 标志XDistributedClockInSync的时间段。抖动必须在此范围内部以获得标志XDistributedClockInSync的持久TRUE信号。 | |
FrameAtTaskStart | 如果FrameAtTaskStart被设为TRUE,则给从站的帧内容将在任务开始被发送,以保证最小的抖动。此命令用来得到伺服驱动器的平滑运动。如果此标志位被设为TRUE,则输出缓冲帧被写入下一个循环中。 | |
LastInstance | 关联主站列表的指针->上一个主站 | |
LastMessage | 此属性与EtherCAT栈最新消息一起返回一个字符串,如果成功完成启动,则应该返回‘完成所有从站’。字符串的作用,同在线模式下EtherCAT主站设备编辑器中显示的诊断信息一样。 | |
NextInstance | 关联主站列表的指针->下一个主站 | |
NumberActiveSlaves | Illegal nested table : 此属性返回实际连接从站的数量。如果StartConfigWithLessDevice设为TRUE,则可以确定实际设备的数量 | |
StartConfigWithLessDevice | 此属性可以用来影响堆栈启动行为。通常EtherCAT栈会马上停止,只要遇到例如项目中配置了五个伺服控制器,但只连接了三个的情况。但是如果在第一个周期中StartConfigWithLessDevice设为TRUE,则堆栈仍然会尝试开始。因此,如果可能情况下建立了一个10个伺服控制器的通用配置,但使连接控制器的实际数量可变,并认定会检查每一个从站的供应商ID和产品IP。则如果发现一个不匹配,堆栈启动都会停止。 | |
FirstSlave | 主站下第一个从站的指针 | |
IoDrvReadInputs_Count | EtherCAT主站读输入数据次数 | |
IoDrvWriteOutputs_Count | EtherCAT主站写输出数据次数 | |
。。。。。。 | ||
注意:使用方法,如主站名称为Ethercat,则为Ethercat.xError等 |
B)Ethercat从站:
功能块ETCslave,实例直接用对应从站名称。
类别 | 参数 | 注释 |
---|---|---|
输入 | xSetoperational | 将从站设置为OP模式,上升沿有效 |
输出 | wState | 状态状态寄存器 |
属性 | LastMessage | 如果收到消息,则将此信息存储于从站内部。基于这一属性可在应用中读取信息。另外还添加了一个日志消息。 |
方法 | m _prNextSlave | 指向下一个从站的指针 |
m _iactualSlaveNo | 从站顺序 | |
m _wAtuoIncAddr | 自动配置地址 | |
m _uiPhysSlaveAddr | EtherCAT地址 | |
m _uiAliasSlaveAddr | 设置别名 | |
m_uiActualAliasSlaveAddr | 设备实际别名 | |
m_bSlaveStatusValid | 从站网络连接成功 | |
m _bSlaveEnable | 从站禁用标志,默认为ON使用 | |
属性 | SetOpMode | 设置从站状态; |
。。。。。。 | ||
PS:使用方法,如从站名称为_Is620N,则为_Is620N. wState等。 |
C)402轴:
功能块Axis_Ref_SM3,实例直接用对应从站名称。
类别 | 参数 | 注释 |
---|---|---|
nAxisState | 轴状态 | |
bError | 轴故障 | |
wCommunicationState | 轴通讯状态 | |
fActPostion | 伺服当前位置-浮点数 | |
diActPostion | 伺服当前位置-长整型 | |
fActVelocity | 伺服当前速度-浮点数 | |
diActVelocity | 伺服当前速度-长整型 | |
In.wStatusWord | 状态字 | |
Out.wControlWord | 控制字 | |
。。。。。。 |
NJ、AM600轴变量参照表
No. | NJ参数名称 | AM600参数名称 | 备注 |
---|---|---|---|
_MC_AX[0] | SM_Drive_GenericDSP402 | 为默认值用户可修改, | |
_MC_AX[0].Status | 轴状态 | AM600后面都用Axis0代替轴变量 | |
_MC_AX[0].Status.Ready | Axis0.nAxisState=0 | AM600 通过MC_ReadStatus指令也可以获取对应状态的bool变量 | |
_MC_AX[0].Status.Disabled | Axis0.nAxisState=0 | ||
_MC_AX[0].Status.Standstill | Axis0.nAxisState=3 | ||
_MC_AX[0].Status. Discrete | Axis0.nAxisState=4 | ||
_MC_AX[0].Status. Continuous | Axis0.nAxisState=5 | ||
_MC_AX[0].Status. Synchronized | Axis0.nAxisState=6 | ||
_MC_AX[0]. Homing | Axis0.nAxisState=7 | ||
_MC_AX[0]. Stopping | Axis0.nAxisState=2 | ||
_MC_AX[0]. ErrorStop | Axis0.nAxisState=1 | ||
_MC_AX[0]. Coordinated | / | ||
_MC_AX[0].Details | 轴控制状态 | ||
_MC_AX[0].Details.Idle | Axis0.bMovedInThisCyde=False | bMovedInThisCyde为True/False表示着两种状态 | |
_MC_AX[0].Details.InPosWaiting | Axis0.bMovedInThisCyde=True | ||
_MC_AX[0].Details.Homed | Axis0 .in.wStatusWord.15 | ||
_MC_AX[0].Details.InHome | / | ||
_MC_AX[0].Details.VelLimit | / | ||
_MC_AX[0].Dir | 指令方向状态 | nDirection值判断轴状态 | |
_MC_AX[0].Dir.Posi | Axis0.nDirection= 1 | ||
_MC_AX[0].Dir.Nega | Axis0.nDirection= -1 | ||
_MC_AX[0].DrvStatus | 伺服驱动器状态 | ||
_MC_Axis0.DrvStatus.ServoOn | Axis0 .in.wStatusWord.2 | ||
_MC_Axis0.DrvStatus. Ready | Axis0 .in.wStatusWord.6 | ||
_MC_Axis0.DrvStatus. MainPower | Axis0 .in.wStatusWord.4 | ||
_MC_Axis0.DrvStatus. P_OT | Axis0 .in.dwDigtialInputs.0 | ||
_MC_Axis0.DrvStatus. N_OT | Axis0 .in.dwDigtialInputs.1 | ||
_MC_Axis0.DrvStatus. HomeSw | / | ||
_MC_Axis0.DrvStatus. Home | Axis0 .in.dwDigtialInputs.2 | ||
_MC_Axis0.DrvStatus. ImdStop | Axis0 .in.wStatusWord.5 | ||
_MC_Axis0.DrvStatus. Latch1 | / | 通过状态字60B9判断 | |
_MC_Axis0.DrvStatus. Latch2 | / | ||
_MC_Axis0.DrvStatus. DrvAlarm | Axis0 .in.wStatusWord.7 | =TRUE,伺服反馈告警 | |
_MC_Axis0.DrvStatus. DrvWarning | Axis0 .in.wStatusWord.3 | =TRUE,伺服反馈故障 | |
_MC_Axis0.DrvStatus. ILA | Axis0 .in.wStatusWord.11 | ||
_MC_Axis0.DrvStatus. CSP | Axis0 .in.byModesOfOperationDisplay=8 | byModesOfOperationDisplay值判断伺服运行模式 | |
_MC_Axis0.DrvStatus. CSV | Axis0 .in.byModesOfOperationDisplay=9 | ||
_MC_Axis0.DrvStatus. CST | Axis0 .in.byModesOfOperationDisplay=10 | ||
_MC_AX[0].Cmd | 轴设置值 | ||
_MC_AX[0].Cmd.Pos | Axis0.fSetPosition | ||
_MC_AX[0].Cmd.Vel | Axis0.fSetVelocity | ||
_MC_AX[0].Cmd.AccDec | Axis0.fSetAcceleration | ||
_MC_AX[0].Cmd.Jerk | Axis0.fSetJerk | ||
_MC_AX[0].Cmd.Trq | Axis0.fSetTorque | ||
_MC_AX[0].Act | 轴当前值 | ||
_MC_AX[0].Act.Pos | Axis0.fActPosition | ||
_MC_AX[0].Act.Vel | Axis0.fActVelocity | ||
_MC_AX[0].Act.Trq | Axis0.fActTorque | ||
_MC_AX[0].MFaultLvl | 轴轻度故障 | ||
_MC_Axis0.MFaultLvl.Active | Axis0.bError | 未分类fbeFBError是一个数组可以保存最新的6组数据。 | |
_MC_Axis0.MFaultLvl.Code | Axis0.fbeFBError | ||
_MC_AX[0].Obsr | 轴监控信息 | ||
_MC_Axis0.Obsr.Active | Axis0.bError | ||
_MC_Axis0. Obsr.Code | Axis0.fbeFBError | ||
_MC_AX[0].Cfg | 轴基本设定 | ||
_MC_AX[0].Cfg.AxNo | / | 如果需要变址方式控制多个轴可以建一个指向轴类型指针的数组。 | |
_MC_AX[0].Cfg.AxEnable | Axis0.Enable | ||
_MC_AX[0].Cfg.AxType | Axis0.bVirtual | True表示虚轴 | |
_MC_AX[0].Cfg.NodeAddress | / | 网络配置时已添加在对应从站下 | |
_MC_AX[0].Scale | 转换单位 | ||
_MC_AX[0].Scale.Num | Axis0.iRatioTechUnitsNum | ||
_MC_AX[0].Scale.Den | Axis0.dwRatioTechUnitsDenom | ||
_MC_AX[0].Scale.Units | / | 单位由用户确定 | |
轴组:
AM600无轴组功能,用户在使用时自由组合。