回复:S7-300有没有指令可以对字节里面数据进行提取?

幸福的方向

  • 帖子

    227
  • 精华

    0
  • 被关注

    16

论坛等级:侠士

注册时间:2010-04-11

普通 普通 如何晋级?

发布于 2016-10-14 00:32:31

35楼

展开查看
以下是引用emil128在2016-05-06 12:46:08的发言 >27楼

用数学方法代替了部分逻辑指令,其实做的事是一样的

4个字节分别AND 16#0F,就是高4位清零

*16      相当于SLW4     SHL(IN:="Tag_5", N:=4)

*256     相当于SLW8     SHL(IN:="Tag_8", N:=8)

*4096    相当于SLW12    SHL(IN :="Tag_9" ,N:=12)

然后都加起来,就相当于把4个字节OR


用SCL一行就实现了,好方法

db1.dbw20 := (MB1 AND 16#0F)+(MB2 AND 16#0F)*16+(MB3 AND 16#0F)*256+(MB3 AND 16#0F)*4096

以下是引用男的小小号在2016-05-05 15:55:36的发言 >25楼:db1.dbw20=(MB1 A...

引用25楼详细内容:

db1.dbw20=(MB1 AND 16#0F)+(MB2 AND 16#0F)*16+(MB3 AND 16#0F)*256+(MB3 AND 16#0F)*4096

SCL指令一行实现,不知道有没有经过验证? 在STL中,好像只有I和DI和R(整数双整数实数)可以加减乘除,w和DW(字双)字可以做乘法吗?  这个我真的不敢肯定。也望知道的回答一下,谢谢!

另外,在SCL中:db1.dbw20 := (MB1 AND 16#0F)+(MB2 AND 16#0F)*16+(MB3 AND 16#0F)*256+(MB3 AND 16#0F)*4096  这里面(字节字)用到了数学运算的乘法,不知道在SCL里面是不是合法的?懂的讲解一下,谢谢。

雨过分洼种瓜,旱时饮水浇麻。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54621条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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