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

emil128

  • 帖子

    271
  • 精华

    10
  • 被关注

    21

论坛等级:侠圣

注册时间:2011-05-16

普通 普通 如何晋级?

发布于 2016-05-06 12:46:08

27楼

展开查看
以下是引用男的小小号在2016-05-05 15:55:36的发言 >25楼

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

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

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

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54618条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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