目标:
将变量值(任意实数)写入Encoder,作为encoder的实际位置值。例如,将MP177手轮的值写入编码器,达到SMC30配置手轮的功能。
Platform: simotion D435-2 , mobile-panel177(含手轮)
Software: scout 4.4
Step1 在simotion scout中,新建一个编码器,请选择选择linear
测试中发现"rotary"类型的编码器不合适
Step2: 选择Input module for encoder value ,点击“assign”,编码器类型“absolute”
Step3: 保持默认编码器数据,不需要修改
Step4: 修改encoderIdentification
为 set_actual_value
编译项目(compile),一致性检查,如果能够通过,编码器就配置完成了。
Step5: 写入编码器位置值
在IPO程序中,向变量sensorSettings.actualvalue赋值
Step6(optional): 设置编码器滤波
我这个应用是把MP177/277的手轮输入,写入encoder。因为是在IPO中写入,如果要增加滤波,只能使用IPO周期中滤波。设置如下图:
激活外推Extrapolation , 设置为 0.00001S. 速度选择微分(Differentiation)
Position filter,约0.15S-0.3S
Velocity fiter 选择平均值(mean value),时间约0.3S
附录
附录1:MP177/277作为PROFINET/PROFIBUS从站,插入到网络上
在Simotion的Address List中,建立IO变量,连接MobilePanel
附录2:将MobilePanel的手轮值写入simotion的编码器TO
下图中IW_MP177[3]是手轮正向转动时的数值,IW_MP177[4]是手轮反向转动时的数值。这两个数值的范围是0-255。以下程序可将数值转换为单一变量,并写入encoder.
Encoder的模态范围设为0-256(mm)
附录3:MP177编码器曲线
可见,设置滤波后,MP177手轮的曲线,类似于普通TTL编码器。实轴可以和此编码器同步。注意同步时的Interconnections选择Actual value with extrapolation().