2021-10-10

标题 关于舵轮限位如何添加在代码中使用

问题:在使用过程中,手动开AGV切换横移和旋转按钮过于频繁造成小车限位报警,而报警后就断开动力电,这时只能手动打开按钮接除报警,拍下急停,复位上动力电,此时小车转向容易在死驱,按下前进后朝一个方向不停旋转,连续旋转后没有停止意思,造成内部绕线拧成麻花状态,轻度容易破皮,重度烧坏驱动器。上海兰钧现场,已经更换两台驱动器。
解决:舵轮顺时针和逆时针分别有两个压力开关(转向突出部分可以压到)即限位
如何添加:比如后轮,按钮顺时针旋转,
1)看那个限位开关最先触碰,2)观察顺时针旋转速度正负,即写如下判断

if((!BackSteerWheel_N && StrWhlTurn[1].StrWhl_Speed <0)||(!BackSteerWheel_P && StrWhlTurn[1].StrWhl_Speed > 0)||(!BackSteerWheel_P && !BackSteerWheel_N) )
{
  StrWhlTurn[1].StrWhl_Speed = 0;//后轮转向速度=0
}

BackSteerWheel_N:后轮转向限位(顺时针旋转:从车体上方俯视)最先触碰其开关
开关触碰后为:0 且顺时针速度为-
即:!BackSteerWheel_N && StrWhlTurn[1].StrWhl_Speed <0
顺时针限位触碰,如果速度依然为负,则不允许转了,只可以反方向转回
同理逆时针触碰另外限位

//************************舵轮转向限位保护V1.0********************//

if((!FrontSteerWheel_P && StrWhlTurn[0].StrWhl_Speed <0)||(!FrontSteerWheel_N && StrWhlTurn[0].StrWhl_Speed > 0)||(!FrontSteerWheel_P && !FrontSteerWheel_N) )
{
  StrWhlTurn[0].StrWhl_Speed = 0;//前轮转向速度=0
}
if((!BackSteerWheel_N && StrWhlTurn[1].StrWhl_Speed <0)||(!BackSteerWheel_P && StrWhlTurn[1].StrWhl_Speed > 0)||(!BackSteerWheel_P && !BackSteerWheel_N) )
{
  StrWhlTurn[1].StrWhl_Speed = 0;//后轮转向速度=0
}
if((!CentreSteerWheel_N && StrWhlTurn[2].StrWhl_Speed <0)||(!CentreSteerWheel_P && StrWhlTurn[2].StrWhl_Speed > 0)||(!CentreSteerWheel_N && !CentreSteerWheel_P) )
{
  StrWhlTurn[2].StrWhl_Speed = 0;//中间轮转向速度=0
}

![在这里插入图片描述](https://img-blog.csdnimg.cn/890593cdbc2a4413b51cce274b9aee9e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA55qu55qu6bKBLWVjaG8=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)

自动部分舵轮保护

/舵轮转向限位保护V1.0*****/
if((!FrontSteerWheel_P && StrWhlTurn[0].StrWhl_Speed <0)||(!FrontSteerWheel_N && StrWhlTurn[0].StrWhl_Speed > 0)||(!FrontSteerWheel_P && !FrontSteerWheel_N) )
{
SteerLimit_exception[0] = 1;
}
else
{
SteerLimit_exception[0] = 0;
}
if((!BackSteerWheel_N && StrWhlTurn[1].StrWhl_Speed <0)||(!BackSteerWheel_P && StrWhlTurn[1].StrWhl_Speed > 0)||(!BackSteerWheel_P && !BackSteerWheel_N) )
{
SteerLimit_exception[1] = 1;
}
else
{
SteerLimit_exception[1] = 0;
}
if((!CentreSteerWheel_N && StrWhlTurn[2].StrWhl_Speed <0)||(!CentreSteerWheel_P && StrWhlTurn[2].StrWhl_Speed > 0)||(!CentreSteerWheel_N && !CentreSteerWheel_P) )
{
SteerLimit_exception[2] = 1;
}
else
{
SteerLimit_exception[2] = 0;
}

	if(SteerLimit_exception[0] || SteerLimit_exception[1] || SteerLimit_exception[2])
	{
	  targetWheelSpeed.wheel_vel[0] = 0;
		targetWheelSpeed.wheel_vel[1] = 0;
		StrWhlTurn[0].StrWhl_Speed = 0;
		StrWhlTurn[1].StrWhl_Speed = 0;
		StrWhlTurn[2].StrWhl_Speed = 0;
		//SysError.Error.SteerLimit=1;
		music_custom_made = 12;
	}
	else
	{
	  //SysError.Error.SteerLimit=0;
		music_custom_made = 0;
	}

//************************************************************//

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值