plc300 移位指令请教 点击:2069 | 回复:8



心小不一

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 70回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2015年5月21日
发表于:2016-05-27 08:31:49
楼主

我用左移指令SHL和右移指令SHR实现每隔一秒依次顺序启动(Q0.0-Q0.7)和停止(Q0.7-Q0,0),实现过程中有两个疑问,恳请各位大神帮忙解决

1、300系列里面的这两个指令要移位的值和移位指令的结果数据类型不能是字节,这样右移的时候值就会溢出,将梯形图改成语句表后,可以修改数据类型为字节,可以正常运行,不会溢出,但是不能转换成梯形图,有没有什么办法可以解决这个问题吗?

2、这两个指令只能移位8个数据吗??指令的IN和OUT数据类型为字的话,那QW0就是QB0和QB1,因该是可以移动16位的呀,但是我试了都不行,下面放仿真图,请各位大大指点,谢谢!





supersnail2005

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 36回
  • 年度积分:0
  • 历史总积分:31
  • 注册:2004年7月30日
发表于:2016-05-27 10:22:25
1楼

我刚才用你的程序做了一下仿真,发现你的程序影响QB1,QB0执行的顺序是对的,在开始QB1全部为0,执行完程序后影响了QB1。建议用MW代替,再将MB  move到QB,应该没有问题,不需要转换成梯形图。

supersnail2005

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 36回
  • 年度积分:0
  • 历史总积分:31
  • 注册:2004年7月30日
发表于:2016-05-27 10:24:30
2楼

就是先用MW代替你的QW0,再将其中的低位字节赋值给QB0,就完成了功能。

心小不一

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 70回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2015年5月21日
发表于:2016-05-27 10:43:07
3楼


回复内容:

对: supersnail2005 就是先用MW代替你的QW0,再将其中的低位字节赋值给Q... 内容的回复!

这样就是程序需要加上一个move指令,是这样的吗?还有第二个问题,这个移位不能移动16位吗,或者更多,谢谢

supersnail2005

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 36回
  • 年度积分:0
  • 历史总积分:31
  • 注册:2004年7月30日
发表于:2016-05-27 15:02:03
4楼

移位指令的数据格式只有I,DI,W,DW,

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-27 19:24:49
5楼

注意西门子S7 300/400中字、双字的结构。在QW0这个字中,包含QB0,和QB1两个字节,但是它们的排列顺序是QB0在高8位,QB1在低8位,所以你移位时每位处理的顺序和你想的是不一样的,在QW0中,最高位(bit15)是Q0.7,最低位(bit0)是Q1.0,很别扭吧。

心小不一

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 70回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2015年5月21日
发表于:2016-05-27 21:20:50
6楼


回复内容:

对: 机器熊 注意西门子S7 300/400中字、双字的结构。在QW... 内容的回复!

确实是这样子的

心小不一

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 70回
  • 年度积分:0
  • 历史总积分:62
  • 注册:2015年5月21日
发表于:2016-05-27 21:22:59
7楼


回复内容:

对: supersnail2005 移位指令的数据格式只有I,DI,W,DW, 内容的回复!

用move指令中转下是可以的

鲜花属于牛粪

  • 精华:6帖
  • 求助:5帖
  • 帖子:162帖 | 802回
  • 年度积分:367
  • 历史总积分:12484
  • 注册:2006年10月16日
发表于:2017-10-03 08:01:04
8楼

回复内容:

对:机器熊 注意西门子S7 300/400中字、双字的结构。在QW0这个字中,包含QB0,和QB1两个字节,但是它们的排列顺序是QB0在高8位,QB1在低8位,所以你移位时每位处理的顺序和你想的是不一样的,在QW0中,最高位(bit15)是Q0.7,最低位(bit0)是Q1.0,很别扭吧。     内容的回复:

这个说的没错


热门招聘
相关主题

官方公众号

智造工程师