您的位置:控制工程论坛网论坛 » 西门子社区 » STL语言编程300PLC正常1500PLC运行出错

sweect

sweect   |   当前状态:在线

总积分:5941  2024年可用积分:0

注册时间: 2007-11-07

最后登录时间: 2023-08-21

空间 发短消息加为好友

STL语言编程300PLC正常1500PLC运行出错

sweect  发表于 2016/5/6 15:59:26      2077 查看 3 回复  [上一主题]  [下一主题]

手机阅读

以下STL语言编程在300PLC运行正常转换到1500PLC运行出错,下面有错误截图,请帮忙分析原因,改进方法。

 

1楼 0 0 回复
  • zhangmengmeng

    zhangmengmeng   |   当前状态:在线

    总积分:1958  2024年可用积分:2

    注册时间: 2013-12-26

    最后登录时间: 2023-08-14

    空间 发短消息加为好友

    zhangmengmeng   发表于 2016/5/7 14:52:32

    操作哪个数据块?

    2楼 回复本楼

    引用 zhangmengmeng 2016/5/7 14:52:32 发表于2楼的内容

  • a1123

    a1123   |   当前状态:在线

    总积分:5620  2024年可用积分:0

    注册时间: 2013-06-20

    最后登录时间: 2023-08-11

    空间 发短消息加为好友

    a1123   发表于 2016/5/16 23:02:16

    FC645里 在引用DBX[] 之前没看到 打开数据块指令!

    难道是在调用FC645前 打开的?


    3楼 回复本楼

    引用 a1123 2016/5/16 23:02:16 发表于3楼的内容

  • hebby

    hebby   |   当前状态:在线

    总积分:1990  2024年可用积分:0

    注册时间: 2013-06-20

    最后登录时间: 2023-08-10

    空间 发短消息加为好友

    hebby   发表于 2016/5/18 20:35:49

    原因是s7-300/400和S7-1500系统底层架构不同造成的。

    300,400CPU有DB寄存器,地址寄存器,而1500的CPU内部实际是没有DB寄存器和地址寄存器的,其DB寄存器和地址寄存器是虚拟出来的,实际是为了照顾300/400到1500程序移植的。

    但实际使用差别确比较大,需要特别小心!

    虚拟的寄存器,其中存放的数值,会在调用结束后立即释放。

    而真实的寄存器,调用结束后,数值是存在真实的寄存器中的。


     

    4楼 回复本楼

    引用 hebby 2016/5/18 20:35:49 发表于4楼的内容

总共 , 当前 /