1、SMC3_PersistPosition 该指令用来保持纪录实轴多圈绝对值编码器的位置(断电重启控制器后,恢复断电 前位置记录值) 。 1 指令格式指令格式 指令指令 名称名称 图形表现图形表现 ST 表现表现 SMC3_PersistPosition 轴位置 保持 2 相关变量相关变量 输入输出变量输入输出变量 输入输出变量输入输出变量 名称名称 数据类型数据类型 有效范有效范 围围 初始值初始值 描述描述 Axis 轴 AXIS_REF - - 映射到轴,即 AXIS_REF_SM3 的一个实 例 PersistentData 保持数据 SMC3_PersistPosition_Data
2、映射到记录位置结构,为 SMC3_PersistPosition_Data 的一个 映射(该结构变量必须为断电保持 型) 输入变量输入变量 输入变量输入变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bEnable 执行 BOOL TRUE,FALSE FALSE True 功能块执行,false 不执行功能块 为了 输出变量输出变量 输出变量输出变量 名名 称称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bPositionRestored 位 置 恢 复 BOOL TRUE,FALSE FALSE TRUE,轴重启后位置恢复完成 bPositio
3、nStored 位 置 BOOL TRUE,FALSE FALSE TRUE,调用功能快后保存位置完成 保 存 bBusy FB 执 行 中 BOOL TRUE,FALSE FALSE TRUE,功能块没有执行完成 bError 错 误 BOOL TRUE,FALSE FALSE TRUE,异常发生 eErrorID 错 误 代 码 SMC_ERROR SMC_NO_ERROR 异常发生时,输出错误代码 eRestoringDiag 恢 复 诊 断 SMC3_PersistPositionDiag SMC3_PersistPositionDiag. SMC3_PPD_RESTORING_OK
4、位置恢复中的诊断信息 SMC3_PPD_RESTORING_OK: 位置成功恢复 SMC3_PPD_AXIS_PROP_CHANGED: 轴参数有 更改,无法恢复位置 SMC3_PPD_DATA_STORED_DURING_WRITING: PersistentData has saved while the function block was copying the data from the axis structure. Possible reasons: unsynchronized persistence crash of the control 3 功能说明功能说明 PLC 重启
5、 bEnable 信号为 TRUE,则 bPositionRestroed 输出为 TRUE。 不支持虚轴跟逻辑轴。 4 时序图时序图 bEnable bPosition Restored bPosition stored t bERROR t t One scan t 5 错误说明错误说明 输入轴为虚拟轴或者逻辑轴会导致错误输出。 轴有错误。 SMC3_PersistPositionSingleturn 该指令用来保持纪录实轴单圈绝对值编码器的位置(断电重启控制器后,恢复断电 前位置记录值) 。 1 指令格式指令格式 指令指令 名名 称称 图形表现图形表现 ST 表现表现 SMC3_Pers
6、istPositionSingleturn 轴 位 置 保 持 2 相关变量相关变量 输入输出变量输入输出变量 输入输出变量输入输出变量 名称名称 数据类型数据类型 有效有效 范围范围 初始初始 值值 描述描述 Axis 轴 AXIS_REF - - 映射到轴,即 AXIS_REF_SM3 的一 个实例 PersistentData 保持 数据 SMC3_PersistPositionSingletrun_Data 映射到记录位置结构,为 SMC3_PersistPosition_Data的一 个映射(该结构变量必须为断电 保持型) 输入变量输入变量 输入变量输入变量 名称名称 数据类型数据类
7、型 有效范围有效范围 初始值初始值 描述描述 bEnable 执行 BOOL TRUE,FALSE FALSE True 功能块执行,false 不执行功能块 PLC 重启后需要为 true 才能恢复重启 前存储的位置。 usiNumberofAbsoluteBites 位数 UINT 16 多少位的绝对值编码器(如 20 位,24 位编码器等等) 输出变量输出变量 输出变量输出变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bPositionRestored 位置 恢复 BOOL TRUE,FALSE FALSE TRUE,轴重启后位置恢 复完成 bPositio
8、nStored 位置 保存 BOOL TRUE,FALSE FALSE TRUE,调用功能快后保 存位置完成 bBusy FB 执 行中 BOOL TRUE,FALSE FALSE TRUE, 功能块没有执行 完成 bError 错误 BOOL TRUE,FALSE FALSE TRUE,异常发生 eErrorID 错误 代码 SMC_ERROR SMC_NO_ERROR 异常发生时,输出错误 代码 eRestoringDiag 恢复 诊断 SMC3_PersistPositionDiag SMC3_PersistPositionDiag. SMC3_PPD_RESTORING_OK 位置恢复
9、中的诊断信 息 3 功能说明功能说明 PLC 重启 bEnable 信号为 TRUE,则 bPositionRestroed 输出为 TRUE。 不支持虚轴跟逻辑轴。 4 时序图时序图 bEnable bPosition Restored bPosition stored t bERROR t t One scan t 5 错误说明错误说明 输入轴为虚拟轴或者逻辑轴会导致错误输出。 轴有错误。 SMC_Homing 轴回零指令,与 MC_Homing 有区别,MC_Homing 在轴配置处设置回零方式,该指令 为控制器控制的回零方式。 1 指令格式指令格式 指令指令 名名 称称 图形表现图形表
10、现 ST 表现表现 SMC_Homing 轴 回 零 2 相关变量相关变量 输入输出变量输入输出变量 输入输出变量输入输出变量 名称名称 数据类型数据类型 有效范有效范 围围 初始值初始值 描述描述 Axis 轴 AXIS_REF - - 映射到轴,即 AXIS_REF_SM3 的一个实 例 输入变量输入变量 输入变量输入变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bExecute 执行 BOOL TRUE,FALSE FALSE True 功能块执行,false 不执行功能块 为了 fHomePosition 原点设定 位置 LREAL 0 回零后原点设定位置
11、,单位为用户标 定后的单位 fVelocitySlow 慢速 LREAL 0 离开参考开关后慢速设定速度 fVelocityFast 快速 LREAL 0 离开参考开关置位时,快速设定速度 fAcceleration 加速度 LREAL 0 加速度设定值 fDeceleration 减速度 LREAL 0 减速度设定值 fJerk 加速度导 数 LREAL 0 Jerk in u/s3 nDirection 回零方向 MC_DIRECTION negative 回零开始方向,参考 MC_DIRECTION bReferenceSwitch 参考开关 BOOL TRUE,FALSE FALSE
12、连接参考开关,TRUE:参开开关触发, FALSE:参考开关闭合 fSignalDelay 延迟 LREAL 0 参考开关的传输时间,用来补偿死区 时间。单位为秒。 nHomingMode 回零模式 SMC_HOMING_MODE 参考 SMC_HOMING_MODE bReturnTozero 返回零位 BOOL TRUE,FALSE FALSE TRUE:回零完成后轴运行到位置零(注 意:如果 fHomePosition=10,则回零完 成后轴位置变为 10,bReturnTozero 为 ture 则回零完成后轴反向走 10 个单位 到 0 位) bIndexOccured BOOL T
13、RUE,FALSE FALSE fIndexPosition LREAL 0 bIgnoreHWLimit 忽略硬限 位 BOOL TRUE,FALSE FALSE TRUE,设定硬件限位开关使能为 false, 如果相同的物理开关用于硬件限 位开关和参考开关,那么硬件控 制将被设置为假 输出变量输出变量 输出变量输出变量 名名 称称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 3 功能说明功能说明 SMC_HOMING 通过 bExecute 的上升沿启动之后,轴将会按照速度 fVelocityFast 并以 nDirection 定义的方 向开始运动,直到 bReferen
14、ceSwitch = FALSE。然后轴将会缓慢停止并按照相反的方向以速度 fVelocitySlow 离开参考开关。bReferenceSwitch = TRUE 后回零完成, 使能回零指令后 bReferenceSwitch 的状态为 ON-OFF-ON, 在 OFF-ON 的上升沿回零完成, 设置参考位置。 参考位置=fHomePostion+( (fSignalDelay*1000+1 个 DC 时钟周期)/1000)*fVelocitySlow 实际就是补偿了 设置的 bReferenceSwitch 采样延迟和一个通讯周期位移延迟。 如果bReturnToZero=TRUE, bR
15、eferenceSwitch的状态在OFF-ON的上升沿将参考位置设置为fHomePostion+ ( (fSignalDelay*1000+1 个 DC 时钟周期)/1000)*fVelocitySlow,然后按照速度 fVelocityFast 运行到 0 位 置。 注意:注意:Done 完成信号完成信号后,轴位置设定为:后,轴位置设定为:fHomePosition。设定的时机。设定的时机跟跟 nHomingMode 有关有关(详情参考(详情参考 SMC_HOMING_MODE) 。 4 时序图时序图 bEecute bReferenc eSwitch bDone t VELOCITY t
16、 t t fVelocity Fast -fVelocitySlow t bBusy 指令执行时指令执行时 bReferenceSwitch TRUE 时时 bEecute bReferenc eSwitch bDone t VELOCITY t t t -fVelocitySlow t bBusy 指令执行时指令执行时 bReferenceSwitch FALSE 时时 5 错误说明错误说明 输入轴为虚拟轴或者逻辑轴会导致错误输出。 轴有错误。 速度或加速度无效。 SMC_FollowPosition 指令功能为不做任何检查直接给轴设定位置。 该指令与MC_MoveAbsolute有所不同,
17、 执行上升沿型号来后,每个任务周期都会给轴位置指令而不管轴的状态。 (用户可用该 指令写凸轮功能,而不使用 MC_CamIn 等指令) 。 1 指令格式指令格式 指令指令 名名 称称 图形表现图形表现 ST 表现表现 SMC_FollowPosition 轴 位 置 给 定 2 相关变量相关变量 输入输出变量输入输出变量 输入输出变量输入输出变量 名称名称 数据类型数据类型 有效范有效范 围围 初始值初始值 描述描述 Axis 轴 AXIS_REF - - 映射到轴,即 AXIS_REF_SM3 的一个实 例 输入变量输入变量 输入变量输入变量 名称名称 数据类型数据类型 有效范围有效范围 初
18、始值初始值 描述描述 bExecute 执行 BOOL TRUE,FALSE FALSE 上升沿执行功能块 fSetPosition 设定位置 LREAL 0 轴设定的位置 输出变量输出变量 输出变量输出变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bBusy 执行中 BOOL TRUE,FALSE FALSE True-指令执行中, (此时轴处于同步状态,与凸轮 MC_CamIn 指令运行时轴状态一 样) ,可以用 MC_Camout 指令清除 bBusy 状态 bCommandAborted 指令被中 断 BOOL TRUE,FALSE FALSE True-
19、轴被其他控制命令打断 bError 错误 BOOL TRUE,FALSE FALSE True,异常产生 iErrorID 错误代码 SMC_ERROR 参考 SMC_Error 3 功能说明功能说明 SMC_ FollowPosition 通过 bExecute 的上升沿启动之后,轴会每个任务周期给轴发送位置指令。 bBusy 信号来时会轴的状态为同步运行与 MC_CamIn 指令生效时从轴状态一样, 可以用 MC_CamOut指令清除。 轴的的速度-由轴两个任务周期相差的位置增量自己计算出来, 速度:tL /,L本任务周期 fSetVelocity 跟上个任务周期 fSetVelocity
20、 差值、t为扫描时间。 bExecute 信号为 TRUE 时,当有其他控制命令中断该指令则 bBusy 由 TRUE 变为 FALSE。 4 时序图时序图 bEecute bCommandA borted t Error t t bBusy t 5 错误说明错误说明 bExecute 上升沿时: Axis 变量连接的为非 AXIS_REF_SM3 类型结构变量,Error 输出 轴没使能,Error 输出。 指令运行中,轴出错,Error 输出 6 样例说明样例说明 使用 SMC_FollowPosition 实现电子凸轮功能。 功能块变量定义部分:功能块变量定义部分: FUNCTION_B
21、LOCK CAM_BUILD VAR_INPUT /输入变量定义输入变量定义 Master_peridec:REAL; /主轴周期主轴周期 bExcute:BOOL; /指令执行指令执行 bPeriod:BOOL; /凸轮周期执行,凸轮周期执行,false 单周期执行单周期执行 Slave_peridec:REAL; /从轴周期从轴周期 END_VAR VAR_OUTPUT /输输出出变量定义变量定义 Mater_position:LREAL;/主轴位置(指令执行开始后计算的主轴位置)主轴位置(指令执行开始后计算的主轴位置) End_profile:BOOL; /曲线完成输出标志位曲线完成输出
22、标志位 bBusy:BOOL; /执行中执行中 END_VAR VAR /功能块中间功能块中间变量定义变量定义 SMC_FollowPosition_0: SMC_FollowPosition; SET_POSITION: LREAL; SET_POSITIONOLD: LREAL; Mater_positionOLD:LREAL; bExcute_old:BOOL; INC:LREAL; Y:LREAL; X5:LREAL; X4:LREAL; X3:LREAL; X2:LREAL; X1:LREAL; MC_Stop0: MC_Stop; STOP:BOOL; COUNTNUM:DINT;
23、 SET_INC:LREAL; YOLD:LREAL; SMC_FollowPositionVelocity_0: SMC_FollowPositionVelocity; K:REAL; K_OUT:REAL; MC_CamOut_0: MC_CamOut; END_VAR VAR_IN_OUT /输入输入输输出出变量定义变量定义 Mater_Axis:AXIS_REF_SM3; Slave_Axis:AXIS_REF_SM3; END_VAR 程序部分:程序部分: IF bExcute AND NOT bExcute_old THEN /上升沿初始化参数 Mater_position:=0;
24、 Mater_positionOLD:=Mater_Axis.fActPosition; End_profile:=FALSE; SET_POSITION:=Slave_Axis.fActPosition; SET_POSITIONOLD:=Slave_Axis.fActPosition; COUNTNUM:=0; YOLD:=0; K:=0; ELSE IF bExcute_old THEN INC:=Mater_Axis.fActPosition-Mater_positionOLD;/主轴任务周期增量 IF INC=Master_peridec THEN End_profile:=TRUE
25、; ELSE End_profile:=FALSE; END_IF IF bPeriod THEN IF Mater_position=Master_peridec THEN Mater_position:=Mater_position-Master_peridec; END_IF END_IF END_IF END_IF IF bExcute_old THEN X1:=(Mater_position/Master_peridec); X2:=X1*X1; X3:=X2*X1; X4:=X3*X1; X5:=X4*X1; Y:=(6*X5-15*X4+10*X3)*Slave_peridec;
26、/从轴位置,曲线 K:=(30*X4-60*X3+30*X2)*Slave_peridec/Master_peridec;/曲线斜率 SET_INC:=Y-YOLD; IF SET_INC=Slave_Axis.fPositionPeriod THEN SET_POSITION:=SET_POSITION-Slave_Axis.fPositionPeriod; END_IF END_IF SMC_FollowPosition_0( Axis:=Slave_Axis, bExecute:=bExcute, fSetPosition:=SET_POSITION , bBusy= bBusy , b
27、CommandAborted= , bError= , iErrorID= ); IF NOT bExcute AND bExcute_old THEN STOP:=TRUE; END_IF MC_CamOut_0( Slave:= Slave_Axis, Execute:= STOP, Done= , Busy= , Error= , ErrorID= ); MC_Stop0( Axis:= Slave_Axis, Execute:= MC_CamOut_0.Done OR MC_CamOut_0.Error , Deceleration:=20000 , Jerk:= 20000, Don
28、e= , Busy= , Error= , ErrorID= ); IF MC_Stop0.Done OR MC_Stop0.Error THEN STOP:=FALSE; END_IF IF NOT bExcute_old THEN End_profile:=FALSE; END_IF bExcute_old:=bExcute; SMC_FollowPositionVelocity 该指令功能跟 SMC_FollowPosition 使用跟功能都一样,但是增加了速度设定。 注意:速度设定要满足位置设定变化即:速度设定=相隔任务周期位置设定差值对 时间的一次导数。比如:两个相隔周期位置设定一致
29、,则速度应该设为 0,否则会造成 电机剧烈振动。 1 指令格式指令格式 指令指令 名名 称称 图形表现图形表现 ST 表现表现 SMC_FollowPositionVelocity 轴位 置、 速度 给定 2 相关变量相关变量 输入输出变量输入输出变量 输入输出变量输入输出变量 名称名称 数据类型数据类型 有效范有效范 围围 初始值初始值 描述描述 Axis 轴 AXIS_REF - - 映射到轴,即 AXIS_REF_SM3 的一个实 例 输入变量输入变量 输入变量输入变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bExecute 执行 BOOL TRUE,FA
30、LSE FALSE 上升沿执行功能块 fSetPosition 设定位置 LREAL 0 轴设定的位置 fSetVelocity 设定速度 LREAL 0 轴设定的位置 输出变量输出变量 输出变量输出变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bBusy 执行中 BOOL TRUE,FALSE FALSE True-指令执行中, (此时轴处于同步状态,与凸轮 MC_CamIn 指令运行时轴状态一 样) ,可以用 MC_Camout 指令清除 bBusy 状态 bCommandAborted 指令被中 断 BOOL TRUE,FALSE FALSE True-轴被
31、其他控制命令打断 bError 错误 BOOL TRUE,FALSE FALSE True,异常产生 iErrorID 错误代码 SMC_ERROR 参考 SMC_Error 3 功能说明功能说明 SMC_ FollowPositionVelocity 通过 bExecute 的上升沿启动之后,轴会每个任务周期给轴发送设定位置、设定 速度指令。 bBusy 信号来时会轴的状态为同步运行与 MC_CamIn 指令生效时从轴状态一样,可以用MC_CamOut 指令清除。 轴的设定速度要与设定位置变化一致:fSetVelocity =tL /,L本任务周期fSetVelocity跟上个任务周期 fS
32、etVelocity差值、t为扫描时间。 bExecute 信号为 TRUE 时,当有其他控制命令中断该指令则 bBusy 由 TRUE 变为 FALSE。 4 时序图时序图 bEecute bCommandA borted t Error t t bBusy t 5 错误说明错误说明 bExecute 上升沿时: Axis 变量连接的为非 AXIS_REF_SM3 类型结构变量,Error 输出 轴没使能,Error 输出。 指令运行中,轴出错,Error 输出 SMC_FollowVelocity 指令功能为不做任何检查直接给轴设定速度。 该指令与MC_MoveVelocity有所不同,
33、执行上升沿型号来后,每个任务周期都会给轴速度指令。 (MC_MoveVelocity 指令速度 更改后必须刷新执行才能生效) 1 指令格式指令格式 指令指令 名称名称 图形表现图形表现 ST 表现表现 SMC_FollowVelocity 轴速度给 定 2 相关变量相关变量 输入输出变量输入输出变量 输入输出变量输入输出变量 名称名称 数据类型数据类型 有效范有效范 围围 初始值初始值 描述描述 Axis 轴 AXIS_REF - - 映射到轴,即 AXIS_REF_SM3 的一个实 例 输入变量输入变量 输入变量输入变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述
34、bExecute 执行 BOOL TRUE,FALSE FALSE 上升沿执行功能块 fSetVelocity 设定位置 LREAL 0 轴设定的速度 输出变量输出变量 输出变量输出变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bBusy 执行中 BOOL TRUE,FALSE FALSE True-指令执行中, (此时轴处于同步状态,与凸轮 MC_CamIn 指令运行时轴状态一 样) ,可以用 MC_Camout 指令清除 bBusy 状态 bCommandAborted 指令被中 断 BOOL TRUE,FALSE FALSE True-轴被其他控制命令打断
35、(bExecute 为 True 时) bError 错误 BOOL TRUE,FALSE FALSE True,异常产生 iErrorID 错误代码 SMC_ERROR 参考 SMC_Error 3 功能说明功能说明 SMC_ FollowVelocity 通过 bExecute 的上升沿启动之后,轴会每个任务周期给轴发送速度指令。 bBusy 信号来时会轴的状态为同步运行与 MC_CamIn 指令生效时从轴状态一样,可以用MC_CamOut 指令清除。 bExecute 信号为 TRUE 时,当有其他控制命令中断该指令则 bBusy 由 TRUE 变为 FALSE。 4 时序图时序图 bE
36、ecute bCommandA borted t Error t t bBusy t 5 错误说明错误说明 bExecute 上升沿时: Axis 变量连接的为非 AXIS_REF_SM3 类型结构变量,Error 输出 轴没使能,Error 输出。 指令运行中,轴出错,Error 输出 SMC_FollowSetValues 跟其他的 SMC_Follow 功能一样都是直接给轴指令。但是该指令不仅包含其他 SMC_Follow 指令功能,还包括加速度、电流、转矩等控制信号,可认为是个综合版。 通过 DwValueMask 值来选择所需指令。 1 指令格式指令格式 指令指令 名称名称 图形表现
37、图形表现 ST 表现表现 SMC_FollowSetValues 轴相 关指 令给 定 2 相关变量相关变量 输入输出变量输入输出变量 输入输出变量输入输出变量 名称名称 数据类型数据类型 有效范有效范 围围 初始值初始值 描述描述 Axis 轴 AXIS_REF - - 映射到轴,即 AXIS_REF_SM3 的一个实 例 输入变量输入变量 输入变量输入变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bExecute 执行 BOOL TRUE,FALSE FALSE 上升沿执行功能块 DwValueMask 控制管理 DWORD 0 Bite0:TRUE: fSe
38、tPosition 激活 FALSE:忽略 Bite1:TRUE: fSetVelocity 激活 FALSE:忽略 Bite2:TRUE: fSetAcceleration 激活 FALSE: 忽略 Bite3:TRUE: fSetJerk 激活 FALSE:忽略 Bite4:TRUE: fSetTorque 激活 FALSE:忽略 Bite5:TRUE: fSetCurrent 激活 FALSE:忽略 fSetPosition 设定位置 LREAL 0 轴设定的位置(标定好的单位) fSetVelocity 设定速度 LREAL 0 轴设定的速度(标定好的单位/s) fSetAcceler
39、ation 设定加速度 LREAL 0 轴设定的加速度(标定好的单位/s2) fSetJerk 设定跃度值 LREAL 0 轴设定的跃度值(标定好的单位/s3) fSetTorque 设定转矩 LREAL 0 轴设定的跃度值(NM/N) fSetCurrent 设定电流 LREAL 0 轴设定的电流值(A) 输出变量输出变量 输出变量输出变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bBusy 执行中 BOOL TRUE,FALSE FALSE True-指令执行中, (此时轴处于同步状态,与凸轮 MC_CamIn 指令运行时轴状态一 样) ,可以用 MC_Cam
40、out 指令清除 bBusy 状态 bCommandAborted 指令被中 断 BOOL TRUE,FALSE FALSE True-轴被其他控制命令打断 bError 错误 BOOL TRUE,FALSE FALSE True,异常产生 iErrorID 错误代码 SMC_ERROR 参考 SMC_Error 3 功能说明功能说明 SMC_ FollowSetValues 通过 bExecute 的上升沿启动之后,轴会每个任务周期给轴发送选好的参数指令。 bBusy 信号来时会轴的状态为同步运行与 MC_CamIn 指令生效时从轴状态一样,可以用MC_CamOut 指令清除。 bExecu
41、te 信号为 TRUE 时,当有其他控制命令中断该指令则 bBusy 由 TRUE 变为 FALSE。 通过 DwValueMask 值来选择控制参数,比如 DwValueMask 为 1,则为每个任务周期发送位置与SMC_ FollowPosition 指令 功能一样。DwValueMask 为 2 则为单独速度指令输出。DwValueMask 为 3,则为位置速度指令输出。DwValueMask 为 7,则 为位置、速度、加速度指令输出,等等。 4 时序图时序图 bEecute bCommandA borted t Error t t bBusy t 5 错误说明错误说明 bExecute
42、 上升沿时: Axis 变量连接的为非 AXIS_REF_SM3 类型结构变量,Error 输出 轴没使能,Error 输出。 指令运行中,轴出错,Error 输出 SMC_SetControllerMode 设定伺服当前运行模式,默认为同步周期位置控制,控制模式相关设置请参考 IS620N 系列伺服设计维护手册控制模式。 1 指令格式指令格式 指令指令 名称名称 图形表现图形表现 ST 表现表现 SMC_SetControllerMode 设定轴 控制模 式 2 相关变量相关变量 输入输出变量输入输出变量 输入输出变量输入输出变量 名称名称 数据类型数据类型 有效范有效范 围围 初始值初始值
43、 描述描述 Axis 轴 AXIS_REF - - 映射到轴,即 AXIS_REF_SM3 的一个实 例 输入变量输入变量 输入变量输入变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bExecute 执行 BOOL TRUE,FALSE FALSE 上升沿执行功能块 nControllerMode 控制模 式 SMC_CONTROLLER_MODE SMC_Position 轴控制模式 1:转矩控制模式,SMC_torque 2: 速度控制模式, SMC_Velocity 3: 位置控制模式, SMC_Position 4:电流控制模式,SMC_Current 输
44、出变量输出变量 输出变量输出变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bDone 模式设定 完成 BOOL TRUE,FALSE FALSE True,模式设定完成 bBusy 执行中 BOOL TRUE,FALSE FALSE True-指令执行中, bError 错误 BOOL TRUE,FALSE FALSE True,异常产生 iErrorID 错误代码 SMC_ERROR 参考 SMC_Error 3 功能说明功能说明 SMC_SetControllerMode,通过 bExecute 的上升沿启动之后,给伺服驱动器控制模式指令,也可通过轴配置 后
45、Axis.out.byModesofOpreation 值来设定控制模式(需在过程数据中添加对象字典 6060h) 。 功能块使用需满足条件: 1:轴必须满足这些控制条件,比如虚轴不能使用该功能块。 2: 各模式支持的同步周期必须保证一致 (参考 IS620N 系列伺服设计维护手册 7.3.3 各模式支持通讯周期) 3:执行指令时轴必须在非“errorstop”, “stopping” , “homing”状态,否则会产生错误。 如果指令执行 1000 个任务周期后,轴仍然没有变为设定控制方式,则指令报错,bError 由 false 变为 true。 当轴的控制方式由低级向高级转变时(tor
46、que - velocity, torque-position, velocity-position),功能块会计算高 级方式的设定值,例如当有转矩模式变为位置模式时,功能块会根据当前轴实际位置叠加一个预期位置距离 (通过当前实际的速度和任务周期内的时间偏移来计算) ,来补偿实际和设定值之间的时间滞后。 指令执行后,当轴的实际控制方式变为设定控制方式, bDone 信号触发, 在指令触发与 bDone 信号触发之间 的时间内轴仍然会运行,并且在这段时间内功能块会按照设定控制方式计算合适的设定值,但是如果一旦 bDone 信号触发而没有其他的控制指令继续给轴设定值,则轴会立即停止并报错,因此需使
47、用 bDone 信号上 升沿来触发 MC_Halt, MC_MoveVelocity or MC_MoveAbsolute 等指令来平滑控制轴。 4 时序图时序图 bEecute bDone t Error t t bBusy t 5 错误说明错误说明 bExecute 上升沿时: 轴无效 轴状态无效。 轴不满足控制方式。 轴报错,Error 输出。 SMC_CheckLimits 该指令功能为:检查当前驱动器设置值是否超出控制器配置的最大值。 1 指令格式指令格式 指令指令 名称名称 图形表现图形表现 ST 表现表现 SMC_CheckLimits 轴限制检 查 2 相关变量相关变量 输入输出变量输入输出变量 输入输出变量输入输出变量 名称名称 数据类型数据类型 有效范有效范 围围 初始值初始值 描述描述 Axis 轴 AXIS_REF - - 映射到轴,即 AXIS_REF_SM3 的一个实 例 输入变量输入变量 输入变量输入变量 名称名称 数据类型数据类型 有效范围有效范围 初始值初始值 描述描述 bEnable 执行 BOOL TR