当半个行程运行完成后再将两个半个行程相加结果赋值到目标运行脉冲里面进行向另一个方向偏移,再到了反方向后又是两个半边行程相加的结果做运行想正方向运行,这样一直来做往复运动。这样做两个半个行程相加的好处就是不管是你在那个时候改变行程都用找原点就可以新行程运行。问题就是出现这里,当你我向正负方向运行,一开始通过浮点转换整数的运行目标结果是一致,运行一会儿后就出现负方向值还是原来的运行目标值,这是正方向值就比负方向值多一个值,运行一会儿正方向值有正常。说到这里,大家以为我程序运算有问题,实际上上运算公式还是这一个,只是负方向运算的结果我乘以了负一,我用相对定位指令,换方向要改变运行值来换向控制伺服。我通过监控在某个时间段里面正方向两个浮点数相加结果会有一点点波动,这样就会出现使用取整指令进行四舍五入的情况会出现多一个脉冲导致正方向在某个时间点回一致多偏移1个脉冲,运行久后就会出现正方偏移到极限开关位置,导致机器停机报警。我解决的办法就是将半个行程先进行取整后再去相加,就可以解决这问题。由于客户急着要我们交机,我没时间去进一步验证这个问题,是程序有问题,还是PLC本身有问题。我运到过几次在老款S7-200能正常运行,移植到smart200就会出现一些小问题,我每次都将程序修改一下就可以解决问题,这是程序都是直接可以移植的逻辑控制和运行,问题就是出现直接能移植程序上面。不知道大家在做S7-200移植到SMART200上面有没有遇到过的问题。也有可能是我自身问题,我没有找出来,请大家多多看下面截图多多指教。
下面截图我出现问题的这段程序,老款S7-200程序和smart200修改后的正常程序。
图一是半个行程的原始脉冲(S7-200)
图二
图三,图四,图五是同一段程序截图,也是两左右半边行程相加程序。(S7-200)