技术论坛

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

返回主题列表
作者 主题
must努力
侠士

经验值:1912
发帖数:192
精华帖:1
楼主    2016-04-21 15:33:26
主题:S7-300有没有指令可以对字节里面数据进行提取?

西门子有没有指令可以把四个字节中的数据提取出来放到一个字里面的,例如我有四个字节的数据,
例如:字节1:0000_0011,字节2:0000_0001,字节3:0000_0001,字节4:0000_0011,现在我要把四个字节的里面的低四位数据提取到DB1.DBW20里面,提取之后,DB1.DBW20里面的数据                    就是0011  0001  0001  0011 了,有没有相关的指令可以这样提取数据。

多点努力,少点依赖
emil128
侠圣

经验值:3827
发帖数:271
精华帖:10
14楼    2016-04-23 00:05:40
精华帖  主题:回复:S7-300有没有指令可以对字节里面数据进行提取?

抽空也测试了下N侠的程序,修正个小BUG

      OPN   DB     1                    //打开DB1

      LAR1  P#0.0                       //初始化地址寄存器1

      LAR2  P#20.0                      //初始化地址寄存器2

      L     4                           //装载循环次数

NEX2: T     LW    20                    //存储当前的循环次数


      L     4                           //装载循环次数

NEX1: T     LW    22                    //存储当前的循环次数

      A     M [AR1,P#0.0]               //读取当前的位的状态

      =     DBX [AR2,P#0.0]             //将当前位的状态赋给目标位

      +AR1  P#0.1                       //源地址递增1个位

      +AR2  P#0.1                       //目标地址递增1个位

      L     LW    22                    //装载当前的循环次数

      LOOP  NEX1                        //循环次数减一,跳转到NEX1标签,当循环次数减至0,往下执行


      +AR1  P#0.4                       //源地址递增半个字节

      +AR2  P#0.0                       //目标地址无需递增

      L     LW    20                    //装载当前的循环次数

      LOOP  NEX2                        //循环次数减一,跳转到NEX2标签,当循环次数减至0往下执行


不过得到的是

字节2.字节1.字节4.字节3

must努力
侠士

经验值:1912
发帖数:192
精华帖:1
19楼    2016-04-24 15:04:27
精华帖  主题:回复:S7-300有没有指令可以对字节里面数据进行提取?

不好意思,这两天忙着调程序,没有看帖,这是SCL 写的代码

"Tag_6" := 16#0F0F0F0F AND "Tag_6";//屏蔽MB0~MB3的高四位数据  tag_6:=MD0;

//byte 0 

"Tag_1" := "Tag_7";//MW10:=MB0 Tag_1:=%mw10

//byte 1

#TEMP[1]:=SHL(IN:="Tag_5", N:=4);   //MB1移位;

"Tag_1" := "Tag_1" OR #TEMP[1]; //字或

//byte 2 

#TEMP[2] := SHL(IN := "Tag_8", N := 8);   //MB2移位;"Tag_8":=mb2

"Tag_1" := "Tag_1" OR #TEMP[2]; //字或


//Byte 3

#TEMP[3] := SHL(IN :="Tag_9" , N := 12);   //MB3移位;"Tag_9":=mb3

"Tag_1" := "Tag_1" OR #TEMP[3]; //字或,MW10结果输出



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