回复:有关格雷码处理的问题

伊默

西门子1847工业学习平台

  • 帖子

    4271
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

发布于 2006-03-07 16:43:31

0楼

S7-300/400相对来说容易处理些,因为它可以直接对"位"进行异或运算,S7-200最多才支持对字节的异或运算....... 网上有很多关于格雷码和二进制转换的算法. 用S7-200表示出来如下:
SUBROUTINE_BLOCK GRAY_BIN:SBR0
TITLE=格雷码转换成二进制(八位)
VAR_INPUT
IN_BYTE_GRAY:BYTE;
END_VAR
VAR_OUTPUT
OUT_BYTE_BIN:BYTE;
END_VAR
VAR
N:INT;
TMP1:BYTE;
TMP2:BYTE;
TMP3:BYTE;
END_VAR
BEGIN
Network 1
LD SM0.0
MOVB #IN_BYTE_GRAY, #TMP1
Network 2
LD SM0.0
FOR #N, 1, 7
Network 3
LD SM0.0
MOVB #TMP1, #TMP2
SRB #TMP1, 1
XORB #TMP1, #TMP2
SHRB L5.0, L6.6, -7
Network 4
NEXT
Network 5
LD L4.0
= L6.7
Network 6
LD SM0.0
MOVB #TMP3, #OUT_BYTE_BIN
END_SUBROUTINE_BLOCK
I can do it
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33274条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
X 图片
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。