回复:SCL := 和Move指令还有区别?

已锁定

xiatianyun

  • 帖子

    852
  • 精华

    10
  • 被关注

    25

论坛等级:奇侠

注册时间:2020-05-09

钻石 钻石 如何晋级?

发布于 2023-05-24 19:35:13

9楼

我猜想楼主关闭了IEC检查,如果打开,你连Move都通不过。

SCL的赋值运算符确实和LAD的Move有区别,MOVE更倾向于底层位串的复制,而 := 和算术复制相当,需要考虑数据类型,如果类型不一致,除了隐式转换的情况外需要手工转换数据类型,匹配了才能:=。

:= 是值赋值,位串表示的Dword的数值显然不等于需要的Real值,如果强行:=,则只会把整数简单转换为浮点数,就像21转换为21.0一样。

如果打开IEC检查,MOVE也和:=一样需要类型匹配才能Move。

我一般都打开IEC检查,遇到类似问题反而麻烦,不能像200Smart一样简单Move就把通讯传过来的DWord复制给一个Real。


评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15205条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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