回复:格雷码和二进制怎么转换?

头号笨笨

  • 帖子

    147
  • 精华

    0
  • 被关注

    6

论坛等级:侠客

注册时间:2006-03-28

普通 普通 如何晋级?

发布于 2011-10-26 17:00:35

3楼

FUNCTION FC1 : INT
//FC1为格雷码转二进制
VAR_INPUT
INPUT:DWORD; //输入变量类型为DWORD
END_VAR

VAR_IN_OUT
OUT:DWORD;
END_VAR

VAR_OUTPUT

END_VAR



VAR_TEMP
TEMP:DWORD; //局部变量类型为DWORD
SHILETEMP:DWORD; //局部变量类型为DWORD

END_VAR

FC1:=100;
TEMP:=INPUT;
SHILETEMP:=SHR(IN:=temp,N:=1);
out:=SHILETEMP XOR INPUT;
END_FUNCTION





FUNCTION FC2 : INT //FC2为和二进制转换到格雷码
VAR_INPUT
input:DWORD;
END_VAR

VAR_IN_OUT
GRAY_TO_BIN:DWORD;
End_var


VAR_TEMP
TEMP:DWORD; //局部变量类型为DWORD
INPUT1:DWORD; //局部变量类型为DWORD

END_VAR

FC2:=100;


TEMP:=INPUT;
INPUT1:=INPUT;
IF TEMP=DWORD#0 THEN
INPUT1:=DWORD#0;
GRAY_TO_BIN:=INPUT1;
RETURN;
ELSE
WHILE TEMP<>DWORD#1 DO
TEMP:=SHR(in:=TEMP,N:=1);
INPUT1:=TEMP XOR INPUT1;
END_WHILE;
END_IF;
GRAY_TO_BIN:=INPUT1;

END_FUNCTION

此语言为SCL语言,该FC1,FC2已通过仿真测试
我爱西门子
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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