技术论坛

如何在step7中批量给DB块中的连续地址赋值

作者 主题
新手

经验值: 37
发帖数: 5
精华帖: 0
主题:【求助】如何在step7中批量给DB块中的连续地址赋值


只看楼主 楼主 2022-03-29 13:31:54

想实现一个功能,在DB块里的2560的地址批量赋值,如何实现?

我做了一个scl FB的程序,但报错Invalid data type的错误

FUNCTION_BLOCK FB100

VAR_INPUT

    Input_Value : REAL;

END_VAR


VAR

    I : INT;

END_VAR


BEGIN

    FOR I := 0 TO 314  DO

         DB501.DBD[2560+I*4]:=Input_Value;

    END_FOR;

END_FUNCTION_BLOCK



 
以下网友喜欢您的帖子:

  
重要声明:

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

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

侠士

经验值: 1119
发帖数: 2
精华帖: 0
回复:如何在step7中批量给DB块中的连续地址赋值


只看楼主 1楼 2022-03-29 14:14:10
FUNCTION FC100

VAR_IN_OUT

Input_Value : REAL;

END_VAR

VAR_TEMP
Input_Dword:DWORD;
I : INT;
END_VAR



BEGIN
Input_Dword:=real_to_dword(Input_Value);
FOR I := 2650 TO 3816 BY 4 DO

DB501.DBD[I]:=Input_Dword;

END_FOR;

END_FUNCTION


修改过了,我试过没问题,你再试试看吧。
我选择我中意。
以下网友喜欢您的帖子:

  
新手

经验值: 37
发帖数: 5
精华帖: 0
回复:如何在step7中批量给DB块中的连续地址赋值


只看楼主 楼主 2楼 2022-03-29 14:25:29
以下是引用玫瑰在2022-03-29 14:14:10的发言 >1楼:FUNCTION FC100 VAR_IN_OUT Input_Value : REAL; END_VAR VAR_TEMP I : INT; END_VAR BEGIN FOR I := 2650 TO 3816 BY 4 DO DB501.DBD[I]:=Input_Value; END_FOR; END_FUNCTION

我看说明是意仅当数据类型为 BOOL, BYTE, WORD 和 DWORD 时,允许对 DB 块的绝对地址访问。那我要怎么统一修改DB块里REAL类型的数呢?


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1119
发帖数: 2
精华帖: 0
回复:如何在step7中批量给DB块中的连续地址赋值


只看楼主 3楼 2022-03-29 14:48:50
应该可以直接访问吧,我记得是可以的,你去模拟一下。万一不行你新建一个array of real数组DB块,这个DB块数组直接赋值给你的那个DB块,办法有的是。
我选择我中意。
以下网友喜欢您的帖子:

  
侠圣

经验值: 3816
发帖数: 730
精华帖: 3
回复:如何在step7中批量给DB块中的连续地址赋值


只看楼主 4楼 2022-03-29 16:47:28

EXCEL可以很快的生成这些有规律的代码的,直接使用EXCEL把需要的代码全部生成,然后复制到SCL中,也是很方便的。


 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
如何在step7中批量给DB块中的连续地址赋值
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。