用S7-200编写的格雷码转换为二进制码的梯形图 点击:6318 | 回复:12



wyb2866255

    
  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-16 11:22:34
楼主
     本帖是根据格雷码转换为二进制码的逻辑关系,为一网友求助,用S7-200编写的梯形图。见下图:



wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-16 11:46:21
1楼

    说明:梯形图中

       1、MW0 为格雷码存数区,本图是置入格雷码值为“0001_1101”,转换后的格雷码为“0001_0110”。在实际应用时,可改为将你要转换的格雷码送入MW0就可以了。

      2、MW2为二进制数存数区,即转换后的二进制数存入此区。

      3、I1.0 为手控转换按钮,是为试验用的,T101断电延时定时器是为防按钮颤抖用的。实际应用时可不用,选用内部的一“位信号”来控制程序运行就可以了。

     4、试验此程序,你可先将要转换的格雷码写入MW0,存盘下载,运行时,监视程序最后一条,按下按钮(I1.0),按钮抬起时,MW2的数值就是转换后的各格雷码数值。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-16 11:57:17
2楼
      本程序,格雷码容量为一个字,即16位数。只要看懂程序,了解格雷码与二进制码的转换关系,此梯形图稍加改动,就可实现容量为字节数或双子数的格雷码转换。

dunchangshun

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 9回
  • 年度积分:0
  • 历史总积分:122
  • 注册:2008年9月11日
发表于:2010-12-16 20:13:27
3楼
程序是不是有问题,我怎么没看到m20.1的置位信号???

WU01234

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 40回
  • 年度积分:0
  • 历史总积分:84
  • 注册:2008年12月13日
发表于:2010-12-16 20:36:20
4楼

有点看不懂唉,详细的说明一下好吗?

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-16 21:30:12
5楼
3楼:“程序是不是有问题,我怎么没看到m20.1的置位信号??”,请见第2条,对M20.0置1,下面的“2”,就包括了对M20.1的置位。这个程序是经过上机运行验证正确的,你不妨试试。

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-16 21:59:57
6楼

4楼:“有点看不懂唉,详细的说明一下好吗? ”这个程序是以据格雷码转换为二进制码的逻辑运算关系编写的,如:

         本程序就是根据上述二者的关系式编写的。

miy_gongkong

  • 精华:0帖
  • 求助:2帖
  • 帖子:23帖 | 3065回
  • 年度积分:0
  • 历史总积分:12421
  • 注册:2008年9月18日
发表于:2010-12-17 18:24:09
7楼

做成子程序形式,要考虑调用重用时,方便!

顺便说一下,现在有西门子官方 发布的格雷码转换指令库;

wyb2866255

  • 精华:57帖
  • 求助:0帖
  • 帖子:148帖 | 2872回
  • 年度积分:1
  • 历史总积分:31450
  • 注册:2010年7月01日
发表于:2010-12-17 20:29:27
8楼

谢谢7楼的建议,我平时是不用格雷码的,是看到一网友的求助,好几天没有人帮助解答,我才帮助编写的。把这一段程序放在一个子程序包里就是一个子程序,在主程序里用以一个位开关信号(如M20.7)连接二个延时0.1S的定时器,一个是断电延时定时器(T0F),用它调子程序,另一个是通电延时定时器(TON),用它代替I1.0,进行转换。程序里将“16#1D-->vw0”的语句和为监视看的最后的一条语句不要,在主程序里加一条将要转换二进制数的格雷码送入VW0就可以了。

ljy1054

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:73
  • 注册:2009年3月02日
发表于:2011-05-03 19:51:46
9楼
慢慢看看kan  看   是什么

战场骑士

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 13回
  • 年度积分:0
  • 历史总积分:6
  • 注册:2015年12月21日
发表于:2016-01-31 21:01:33
10楼

这个程序我什么看着MW0T和MW2没一点关联呀!!!要是有高人说明一下这个程序多好呀

yhhgogo1981

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 33回
  • 年度积分:116
  • 历史总积分:131
  • 注册:2015年10月21日
发表于:2017-06-14 20:16:30
11楼

谢谢    格雷码转换为二进制码的逻辑关系

子默

  • 精华:0帖
  • 求助:5帖
  • 帖子:11帖 | 122回
  • 年度积分:1239
  • 历史总积分:3813
  • 注册:2014年1月13日
发表于:2023-05-05 22:12:43
12楼

5112好几个预防TV i一


热门招聘
相关主题

官方公众号

智造工程师