技术论坛

S7-200SMART多重调用中间接寻址问题

作者 主题
游民

经验值: 77
发帖数: 8
精华帖: 0
主题:【求助】S7-200SMART多重调用中间接寻址问题


只看楼主 楼主 2022-02-06 22:22:07

测试过每个子程序最多可以编辑的内部存储区地址是60个字节

因为每个外部变量最多可以有16个拐角,

所有我希望有数据地址累加的变量用间接寻址直接用一个IN变量用&VB寻址

问题就如下了:

第一 我把LD0 MOV 到AC1中 然后改他的地址码 ADD-DI,因为地址码是16位的所以必须是DI

这样一弄 我算了下如果不算其他内部地址,就间歇寻址一个拐角最多就只有15个内部变量可以和外部做数据交换 (我需要INOUT变量)

如果就是写进去的变量 我就可以直接用*AC1 MOV  B/W/D 没啥问题

但是我用地址码偏移,用AC+偏移 偏移到LD20 22 24 ....(我需要很多个INT变量,所以这么测试的)然后  用*去寻址发现数据有点混乱,

但是我用AC+偏移 偏移到LD20 24 28 ....(跳开4个字节寻址)发现数据就正常 ,但是无法把一个子程序全部编辑完成(我有洁癖,希望很多数据能在一个子程序中间完成),偏移到LD20 我用*LD20 MOV  B/W 就浪费了大量的L存储区。

请问各位大神 有没有好的办法,我是初学者,在这个问题上卡了很久了,谢谢各位大神知道讲解。

自学,我还在TIA SCL中FOR中卡壳了大半个月。。。



 

 


 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1746836&b_id=64&s_id=0&num=4

至圣

经验值: 67551
发帖数: 14784
精华帖: 100
回复:S7-200SMART多重调用中间接寻址问题


只看楼主 1楼 2022-02-07 21:09:23

没发觉你有什么问题。还是我不明白?有些描述上不理解。间距四个地址是对的。

无法编辑完是何解?


 
以下网友喜欢您的帖子:

  
游民

经验值: 77
发帖数: 8
精华帖: 0
回复:S7-200SMART多重调用中间接寻址问题


只看楼主 楼主 2楼 2022-02-07 22:14:04
我的意思就是 TEMP只能60字节,如果一个偏移4个字节的活,一个子程序最多15个变量,请问有没有办法让它多几个变量
 
以下网友喜欢您的帖子:

  
至圣

经验值: 13023
发帖数: 1815
精华帖: 22
回复:S7-200SMART多重调用中间接寻址问题


只看楼主 3楼 2022-02-10 16:15:13

多用间接寻址不需要太多L区数量,多了有多的烦恼,少了有少的好处.

小容量的电容用来通高频,小容量的L就是高频的作缓存容器使用的.

大容量的电容用来稳输出,大容量的V就是用来作稳定的全局输出的.


 
以下网友喜欢您的帖子:

  
至圣

经验值: 67551
发帖数: 14784
精华帖: 100
回复:S7-200SMART多重调用中间接寻址问题


只看楼主 4楼 2022-02-12 08:21:11

你一个D指定装载一个指针就肯定是只能这么多。你用完了的指针就从新再算过新的指针再覆盖原来的,就够用啦。

例如:a+[(b+c)+(d+e)]=?

a最后计算,要占住一条指针。

bc先计算,各用了一个指针。算完了,de可以用bc的指针的L。这样5个变量就三个指针。

bc用完了,不用再使用了,就把指针的空间释放了给别个用啦。

你是不是这个意思?

我有一帖:无限次调用无限个参数什么的。你找找,可能对你有用。



 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
S7-200SMART多重调用中间接寻址问题
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。