技术论坛

 • 产品分类
 • 咱工程师的故事
 • 培训与认证答疑专区
 • 服务合作伙伴专区

 求助用二个开关量的先后动作识别方向的编程思路?

返回主题列表
作者 主题
为修修为
侠士

经验值:1268
发帖数:292
精华帖:2
楼主    2023-10-13 15:15:59
主题:求助用二个开关量的先后动作识别方向的编程思路?

有一个轨道运输,车辆来来回走,想通过两个开关量的动作的先后,来识别车辆的运行方向,这个应该采用什么方式的编程思路呢。初步的想法,是借鉴一下编码器的AB信号的方式,编码器的AB信号相差90度,也是一个先后动作的过程。程序应该怎么编写没有思路。请教一下大家给个思路。

yming
至圣

经验值:130918
发帖数:22347
精华帖:847
33楼    2023-10-17 17:32:56
精华帖  主题:回复:求助用二个开关量的先后动作识别方向的编程思路?

在车上,通常是在(轮)传动轴上贴两条(错位)反光贴,用两传感器(AB)实现。

在外部,只能是实现 通过一点的方向。

判断按沿跳变锁存四个状态确定方向:

00 01 11 10 00 方向一;

00 10 11 01 00 方向二;

其他,无效。

记得当年用的是沿跳变触发位移。

学而时习之,不亦说乎?温故而知新,不亦乐乎?
Zane
至圣

经验值:79022
发帖数:19753
精华帖:383
41楼    2023-10-18 22:48:42
精华帖  主题:回复:求助用二个开关量的先后动作识别方向的编程思路?

楼主用户的应用是AGV小车,请问用于方向辨识的光电装在哪里?装小车上吗?

那小车如何把正反转信号告诉地面呢?

既然能告诉地面,AGV小车的控制系统,能控制小车运动,难道不知道正反方向吗?难道不能直接告诉地面吗?

如果是小车上的另一套独立的控制系统,AGV控制系统通过IO或通信告诉另一套系统就行了。

除非,AGV控制系统没有多余的IO,也没有通信功能,除了管自己就再也没能力对外输出一点信息了。那就只有借助另一套系统侦测AGV小车的运动方向,然后再传送给地面了,当然还是有其他方案的,我们只是就事论事地基于两个光电的在小车上或在地面的可能的解决方案。


如果,轮径比较大,AGV小车运动距离又比较短,运行速度又很低,在这样的而运动过程中,你的方案能有效辨识运动方向吗?


楼主至始至终都是语焉不详的,这才是坑!


如果很简单,楼主又何必来问?


说不定楼主早已抛弃这个想法了!

Zane 注册自动化系统工程师 Always save before download
yming
至圣

经验值:130918
发帖数:22347
精华帖:847
49楼    2023-10-20 09:51:57
精华帖  主题:回复:求助用二个开关量的先后动作识别方向的编程思路?

对于AB正交检测方法,深入一点说一下。

毫无疑问,AB错位(正交)得到的一定是两位格雷码

B   A   码值

0   0      0

0   1      1

1   1      2

1   0      3

0   0      0

0-1-2-3-0  过程:方向一

0-3-2-1-0  过程:方向二

这样就容易理解了。

更简单些:

起始 0->1;结尾 3->0 方向一通过一次;

起始 0->3;结尾 1->0 方向二通过一次;

00->00 复位

至于方向:比较前后两个状态值就可以了。

这样处理,是为了应对一些准静态过程。

在极低速、停止中,可能刚好处于信号沿跳变位置;由于振动等原因,你可能得到多个沿跳变。


程序处理,并不需要对格雷码去解码。

需要解码也很容易:

高位B1 不变;=B

低位A1=A XOR B


学而时习之,不亦说乎?温故而知新,不亦乐乎?
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。