S7-1200PLC 连接单圈绝对值编码器(格雷二进制)

硬件:cpu1214C,编码器omron E6C3-AG5B(格雷码输出)
目的:将编码器接入PLC中,通过PLC实现对编码器实时位置的读取。
软件:Portal V14SP1

外部接线:
该编码器为8位格雷码输出,将0-7号信号线依次接入PLC I0.0-I0.7
区分编码器PNP与NPN类型,PLC的输入点公共端若极性接反,则可能会出现格雷码输出乱序的现象

在这里插入图片描述
硬件组态:插入1214C
在这里插入图片描述

在编程界面新建DB块,取消优化的块访问,在DB块内创建Int型变量greycode
在这里插入图片描述 在这里插入图片描述

格雷码转换到二进制可以采用异或运算来处理,以一个4位格雷码为例
将格雷码(1001)转位二进制数
在这里插入图片描述
C4= R4=1
C3= R4⊕R3=1⊕0=1
C2= R4⊕R3⊕R2= C3⊕R2=1⊕0=1
C1= R4⊕R3⊕R2⊕R1= C2⊕R1=1⊕1=0
最终结果为:格雷码(1001)→二进制(1110)

在PLC中,我们可以通过调用“与”,“或”,“非”指令,来实现“异或”运算
A ⊕B=A’ * B + A * B’ (左侧公式中用 ’ 来表示非运算)

所以我们现在需要的是将8位格雷码转换成8位二进制,转换的原则与上述公式一致,
具体程序如下:
在这里插入图片描述
在这里插入图片描述
此时进入监控界面,格雷码已经被换算成了二进制,转动编码器可以看到,编码器在单圈内其输出值在0-255之间均匀变化。
在这里插入图片描述

  • 8
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值