回复:S7300的 L 指令请教:

万泉河

  • 帖子

    10900
  • 精华

    132
  • 被关注

    1008

论坛等级:至圣

注册时间:2003-06-06

钻石 钻石 如何晋级?

发布于 2003-08-14 12:42:03

0楼

在装入的时候,如果被装入的数太短,达不到4BYTE(大多情况这样),则在装入的时候,会自动填0
而在取出的时候,如果目标是4BYTE,则全盘复制,如果短了,就只复制需要的长度,另外的就被抛弃了,其实被抛弃的部分一般是0的,编程时候需要知道的。

比如L L#16#01020304,这是一个32位的DWORD
然后T MW0,
长出的部分被丢掉,最终MW0的内容为16#0304
除非有意这样做,否则做之前是要保证数据没有溢出的。否则计算就乱套了。

反过来,L 16#FFFE (INT -2)
T MD0
则MD0的值为 L#16#0000FFFE (DINT 65534)
数据虽然没有溢出,但数据格式不能继承了。

这种时候,分别需要DTI 和ITD命令进行转换。

至于200里面的MOVB,MOVW,MOVD等的命令,我想,在300里面它是自动的,根据目标数的尺寸,自动实现不同的MOVE功能,与200对应。

微信公众号:PLC标准化编程,ZHO6371995
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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