技术论坛

求助关于STL指令使用问题

作者 主题
游侠

经验值: 364
发帖数: 29
精华帖: 0
主题:【探讨】求助关于STL指令使用问题


只看楼主 楼主 2020-08-12 11:40:56

关于指针使用的问题,能不能将指针设为变量。我这段程序就是想做一个累加计算,要求起始地址是可改变的,必须是一个变量。我程序中直接做了一个Pointer的变量接口,但是使用时提示错误,求教如何实现,谢谢。程序如下图

将FC块取消优化了,就不报错了。


又试着将N移动到下面那个偏移量那里,直接报错:


有没有大神知道为什么把#N移到下面会报错的?



 
以下网友喜欢您的帖子:

  
重要声明:

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

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

2v
侠圣

经验值: 4119
发帖数: 413
精华帖: 2
回复:求助关于STL指令使用问题


只看楼主 1楼 2020-08-12 13:11:16
L ##N

小石头
以下网友喜欢您的帖子:

  
侠圣

经验值: 2625
发帖数: 734
精华帖: 3
回复:求助关于STL指令使用问题


只看楼主 2楼 2020-08-12 14:41:21

input里面定义变量offset,类型dint。程序:L offset, sld 3,lar1


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1401
发帖数: 148
精华帖: 6
回复:求助关于STL指令使用问题


只看楼主 3楼 2020-08-12 14:51:42

地址寄存器需要有实际地址。

比如FB取消优化访问的接口。


 
以下网友喜欢您的帖子:

  
游侠

经验值: 364
发帖数: 29
精华帖: 0
回复:求助关于STL指令使用问题


只看楼主 楼主 4楼 2020-08-12 15:08:40
以下是引用2v在2020-08-12 13:11:16的发言 >1楼:L ##N

取消FC优化,就不报错了,但是依然没得到通过改变N来实现变址。试着把下面指针改成N,结果还是报错。





 
以下网友喜欢您的帖子:

  
游侠

经验值: 364
发帖数: 29
精华帖: 0
回复:求助关于STL指令使用问题


只看楼主 楼主 5楼 2020-08-12 15:27:10
以下是引用kenshinguo在2020-08-12 14:41:21的发言 >2楼

input里面定义变量offset,类型dint。程序:L offset, sld 3,lar1

我那个N是偏移的字的数量,比如我db接口是DB5,N是2,然后里面的数据是DWord类型,那么我第一个数据是DB5.DBD2.


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1401
发帖数: 148
精华帖: 6
回复:求助关于STL指令使用问题


只看楼主 6楼 2020-08-12 16:14:52

DB_ANY+Point

直接用ANY不就好了。

在TEMP里声明一个ANY,

然后用Input里的DB号,偏移量去拼ANY。


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1401
发帖数: 148
精华帖: 6
回复:求助关于STL指令使用问题


只看楼主 7楼 2020-08-12 16:22:45
 
以下网友喜欢您的帖子:

  
侠士

经验值: 1401
发帖数: 148
精华帖: 6
回复:求助关于STL指令使用问题


只看楼主 8楼 2020-08-12 16:34:12


不用ANY也可以,但还是得按照格式去拼。


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1401
发帖数: 148
精华帖: 6
回复:求助关于STL指令使用问题


只看楼主 9楼 2020-08-13 10:26:03

不要钻到自己的死胡同不出来。

接口想要填什么?

想要填DB5.DBD4?

那为什么不干脆补全DB5.DBX4.0 BYTE X?


实际上想要填什么?

填5,填4,填X

然后拼成DB5.DBX4.0 BYTE X


想要填“Tag_1”(DB5.DBD4)?

输入是符号寻址,程序凭什么按绝对寻址运算指针?

首先就要把变量的地址读出来,VARIANT应该可以,用REF()

但是VARIANT操作起来权限很低,没什么操作的空间。

综合判断填“Tag_1”非常难实现。


7楼链接里我写的Modus块,照着那个写就能解决你的问题。

至于截图,先观察左边的DB。Before是数组的索引号。

为什么左移8位?

实际上是先左移5位再左移3位。

比如Before=4,左移5位等于128。Band[4]的起始地址就是128。

再左移3位是补0,代表128.0。具体参考AR1的格式。


 
以下网友喜欢您的帖子:

  
版主

经验值: 76239
发帖数: 19148
精华帖: 378
回复:求助关于STL指令使用问题


只看楼主 10楼 2020-08-13 21:31:18

1500为什么还要坚持用语句表呢?


抄来的程序,自己看不懂也改不了!


Zane 注册自动化系统工程师 Always save before download
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
求助关于STL指令使用问题
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。