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

已锁定

ZXC2011

  • 帖子

    627
  • 精华

    11
  • 被关注

    45

论坛等级:侠圣

注册时间:2011-08-10

钻石 钻石 如何晋级?

发布于 2023-05-26 17:21:49

12楼

展开查看
以下是引用xiatianyun在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。


完全正确. 

关于IEC部分受教了.

TIA里面好像一开始创建CPU的时候IEC如何设置就绑定了,中途修改IEC设置不起作用,也不知道算不算一个小Bug.导致我还在想怎么开关IEC检测都通过编译和仿真.

评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有15100条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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