300PLC编程实现一个功能,如何实现?

大家好!
      用300PLC控制变频电机通过齿轮、链轮传动装置后驱动一个大转盘做定位转动,电机顺时针和逆时针两个方向运动,大转盘也做顺时针和逆时针转动;大转盘转动角度由上位机给PLC发角度指令通过PLC控制变频电机转动实现,大转盘上没有安装任何角度检测装置,就靠变频电机末端的编码器检测通过传动比计算来得到大转盘的当前位置,所以是一个开环位置控制。正是这个原因所以存在误差,但实验发现:电机侧安装的编码器反映的位置通过计算完全能反映大转盘的位置(转动角度)。但由于机械传动装置存在传动误差,大转盘一直顺时针转动时,上位机给多少角度都能转那么大角度(误差很小),但一旦顺时针转了,再逆时针转动就存在一个误差,但再继续逆时针转动,有不存在这个误差了,实验发现这个误差是个固定值,所以我们认为误差导致的原因是传动装置(尤其是链条传动)的传动间隙引起的,所以想通过程序补偿,但不知道如何实现?分以下情况:
      1、顺时针转动一次后,如果一直顺时针转动,就不能补偿;
      2、顺时针转动一次或多次后,如果逆时针转动,就在第一次逆时针转动时补偿且仅补偿一次,再逆时针转动就不能补偿;
      1、顺时针转动一次后,如果一直顺时针转动,就不能补偿;
      2、顺时针转动一次或多次后,如果逆时针转动,就补偿且仅补偿一次,再逆时针转动就不能补偿;
      3、逆时针转动一次后,如果一直逆时针转动,就不能补偿;
      4、逆时针转动一次或多次后,如果顺时针转动,就在第一次顺时针转动时补偿且仅补偿一次,再顺时针转动就不能补偿。
       但由于PLC知识有限,我不知道通过PLC程序如何实现这个逻辑功能,请高速指导,如果用梯形图给出,就非常感谢!!

问题补充:
请问:zhangli0- 资深顾问  第13级
      能否给个例子来说明以下,我正头痛。你下面的说法在程序里如何实现,谢谢!请给我邮件tcpjin888@163.com

1、用一个bool变量tag1保存转动方向,为0正传,为1反转,然后再用一个bool量tag2保存tag1的上一个周期的状态
2、如果tag1和tag2不一样,则说明出现反向的动作,那么就加一个补偿。最后把tag1的值保存到tag2中也就相当于异或的功能。

最佳答案

1、用一个bool变量tag1保存转动方向,为0正传,为1反转,然后再用一个bool量tag2保存tag1的上一个周期的状态
2、如果tag1和tag2不一样,则说明出现反向的动作,那么就加一个补偿。最后把tag1的值保存到tag2中也就相当于异或的功能。

提问者对于答案的评价:
谢谢

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc234364.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月1日 下午2:23
下一篇 2018年12月1日 下午2:23

相关推荐