马上注册,享受更多特权
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
1. 环境
PLC型号: AM600-1608TP
PLC版本: 1.38
InoProShop: V1.7.3
编译器版本: 3.5.11.70
CmpHCAxisControl库版本: 2.0.0.0
伺服型号:SV660N
2. 遇到问题(疑是)
2.1 伺服SDO正向扭矩限制值与反向扭矩限制值无法写入
其他轴可以通过不勾选这两个配置,但有根轴无法不勾选,默认灰色,无法修改
2.2 伺服功能块状态切换有延迟
// 使能伺服
IF NOT g_sAxisParams[AXIS_ENUM.eRewinderAxisA].i_bRegulatorOn THEN
g_sAxisParams[AXIS_ENUM.eRewinderAxisA].i_bRegulatorOn := TRUE;
END_IF
IF NOT g_sAxisParams[AXIS_ENUM.eRewinderAxisB].i_bRegulatorOn THEN
g_sAxisParams[AXIS_ENUM.eRewinderAxisB].i_bRegulatorOn := TRUE;
END_IF
// standstill 或者 Continuous_Motion状态
IF (g_sAxisParams[AXIS_ENUM.eRewinderAxisA].Axis^.nAxisState = SMC_AXIS_STATE.standstill OR g_sAxisParams[AXIS_ENUM.eRewinderAxisA].Axis^.nAxisState = SMC_AXIS_STATE.continuous_motion)
AND (g_sAxisParams[AXIS_ENUM.eRewinderAxisB].Axis^.nAxisState = SMC_AXIS_STATE.standstill OR g_sAxisParams[AXIS_ENUM.eRewinderAxisB].Axis^.nAxisState = SMC_AXIS_STATE.continuous_motion) THEN
// 直接使能速度功能块会报错(CmpHCAxisControl库版本: 2.0.0.0)
//g_sAxisParams[AXIS_ENUM.eRewinderAxisA].i_bVelEn := TRUE;
//g_sAxisParams[AXIS_ENUM.eRewinderAxisB].i_bVelEn := TRUE;
// 1s延迟
fb_changeRollTon.IN := TRUE;
IF fb_changeRollTon.Q THEN
g_sAxisParams[AXIS_ENUM.eRewinderAxisA].i_bVelEn := TRUE;
g_sAxisParams[AXIS_ENUM.eRewinderAxisB].i_bVelEn := TRUE;
END_IF
这段代码如果不加延迟,IDE诊断会弹出警告
并且速度功能块会陷入Error状态,ErrorID=20(SMC_REGULATOR_OR_START_NOT_SET/控制器没有使能或者抱闸没有打开)
这个从轴状态切换图上就很难理解, 轴已经进入standstill了,去使能速度功能块还会直接报错,还需要加一个延迟才能使能速度功能块,这个也不合常理,希望有遇到这种问题的大神能给出一个解决方案。
2.3 调用状态不正常的运动功能块会直接导致PLC卡死
这个现象是之前没有遇到过的,比如我的一个轴的速度功能块/回原功能块卡在ERROR状态,再次传递速度或者绝对移动指令,PLC会断开EtherNET和EtherCAT通信,并且需要重启PLC,有时候需要拨动PLC面板的开关到Stop位置才能重新连接上。
2.4 降级PLC1.38到1.32会导致本地总线失效
因为怀疑以上问题是由于升级到1.38导致,我把版本降级到1.32,反而导致本地总线失效,输入输出,AD/DA模块也无法扫描到,也无法获取数据。
|