• «
  • 1
  • 2
  • »
  • Pages: 2/2     Go
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6741 个
工控威望: 37096 点
下载积分: 9356 分
在线时间: 9409(小时)
注册时间: 2006-09-13
最后登录: 2024-05-23
查看cvlsam的 主题 / 回贴
12楼  发表于: 2012-12-21 23:21
引用
引用第8楼qiaoshougang于2012-12-20 16:30发表的  :
[attachment=98566]


很明显,地址越界……
qiaoshougang
级别: 略有小成
精华主题: 0
发帖数量: 265 个
工控威望: 397 点
下载积分: 5178 分
在线时间: 321(小时)
注册时间: 2007-05-18
最后登录: 2024-05-22
查看qiaoshougang的 主题 / 回贴
13楼  发表于: 2012-12-22 12:27
引用
引用第12楼cvlsam于2012-12-21 23:21发表的  :


很明显,地址越界……


谢谢回答,就是这个错误,可是怎么弄才能解决这个问题呢?我弄了好长时间了,望赐教,谢谢!!
夜游神
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6741 个
工控威望: 37096 点
下载积分: 9356 分
在线时间: 9409(小时)
注册时间: 2006-09-13
最后登录: 2024-05-23
查看cvlsam的 主题 / 回贴
14楼  发表于: 2012-12-22 13:30
引用
引用第13楼qiaoshougang于2012-12-22 12:27发表的  :


谢谢回答,就是这个错误,可是怎么弄才能解决这个问题呢?我弄了好长时间了,望赐教,谢谢!!


解决你的程序,那是你的编程错误,增加对数据块长度的检测,然后通过比较指令将你的寻址范围控制在可控范围内……

Regards
qiaoshougang
级别: 略有小成
精华主题: 0
发帖数量: 265 个
工控威望: 397 点
下载积分: 5178 分
在线时间: 321(小时)
注册时间: 2007-05-18
最后登录: 2024-05-22
查看qiaoshougang的 主题 / 回贴
15楼  发表于: 2012-12-22 13:59
引用

解决你的程序,那是你的编程错误,增加对数据块长度的检测,然后通过比较指令将你的寻址范围控制在可控范围内……

Regards

首先谢谢指教!
1.数据块长度检测:

2.寻址范围绝对超不过255 一个字节  
是否是因为  
    L     MD   116
      SLD   3                           //左移3位,形成指针格式,用于间接寻址。
   T     MD   120
      OPN   DB     1
      L     DBD [MD   120]
      T     MD   124
中的MD 120 本身是一个32位的数据?而CPU误以为越界了呢?请指教.......谢谢!
夜游神
qiaoshougang
级别: 略有小成
精华主题: 0
发帖数量: 265 个
工控威望: 397 点
下载积分: 5178 分
在线时间: 321(小时)
注册时间: 2007-05-18
最后登录: 2024-05-22
查看qiaoshougang的 主题 / 回贴
16楼  发表于: 2012-12-22 14:03

夜游神
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6741 个
工控威望: 37096 点
下载积分: 9356 分
在线时间: 9409(小时)
注册时间: 2006-09-13
最后登录: 2024-05-23
查看cvlsam的 主题 / 回贴
17楼  发表于: 2012-12-22 14:11
唉~~~~~

数据块长度检测并不是通过页面设定,而是通过编程来决定的。

通过装入DBLG来得到数据块的长度,因为长度的反馈值为字节,因此,如果你的数据块的数据为4个字节的Real类型的话,你就要除以4,那就是一个块中的最大寻址,然后用比较去控制你的寻址指针。

正如你表示的,不超过255,可是,你显示的数据块中数据才51条,你寻址寻址52就越界,Ok?

对于这个问题已经讨论的足够深度了,你或许的编程水平还没有达到这个水平,你需要花足够的时间参阅StL手册。

Regards
qiaoshougang
级别: 略有小成
精华主题: 0
发帖数量: 265 个
工控威望: 397 点
下载积分: 5178 分
在线时间: 321(小时)
注册时间: 2007-05-18
最后登录: 2024-05-22
查看qiaoshougang的 主题 / 回贴
18楼  发表于: 2012-12-22 15:04
嘿嘿,首先我承认我的水平一般(刚开始学习西门子PLC),的确小白一个,

可是:我确定MD116中的数据不会超过204的

即使MD116中的数据是4,还是不行,但是读取MD124中的数据是正确的,如图:


夜游神
qiaoshougang
级别: 略有小成
精华主题: 0
发帖数量: 265 个
工控威望: 397 点
下载积分: 5178 分
在线时间: 321(小时)
注册时间: 2007-05-18
最后登录: 2024-05-22
查看qiaoshougang的 主题 / 回贴
19楼  发表于: 2012-12-23 09:46
终于成功了:



感谢所有回答问题的人,谢谢指教了。
夜游神
  • «
  • 1
  • 2
  • »
  • Pages: 2/2     Go