找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问题。
小程序查看
手机扫码追踪该问题
手机扫码追踪该问题,
觉得实用,立即去分享!
点击复制链接
你调用SFC20就可以了,源数据如P#M10.0 BYTE 20 目的数据P#db100.dbx30.0 BYTE 20 就可以了
问题:
如何用一个指定初始值的数据块来预先分配(初始化)一个区域?
解答:
该条目对如何预先分配有初始值的存储区描述了三种方法。
有两种方法使用系统函数SFC 21“FILL”。
在第三种方法中回路作为可用于初始化的可装载函数“INIT_LOOP” (FC 1)被执行。
SFC 21的接口描述: 声明 名称 类型 描述
IN BVAL 任何 域值或域描述,域内容被分配到目标域.
OUT RET_VAL 整型 如果在函数处理时出现故障,返回值包括一个错误代码。
OUT BLK 任何 预先分配的域描述(目标域)
"INIT_LOOP" 的接口描述(FC 1): 声明 名称 类型 描述
IN DB_NR 整型 将被初始化的DB号(例如1)
IN START_ADDR 整型 初始化由本数据字节开始启动(例如10)
IN LEN_INI 整型 将要初始化的字节数量(例如10)
IN DB_WERT_INI 字节 数据由这个数值初始化(例如99)
OUT ERR 布尔型 错误:!例如 DB号无效,长度无效
利用函数“INIT_LOOP” (FC 1)可以间接初始化并通过基本数据类型。所有必要参数传送到该函数。该函数还可检验初始化的DB是否实际存在(用系统函数SFC 24“TEST_DB”)以及参数化长度是否有效。
FC 1用STL编程并在可在源代码中得到。
实例程序描述
附件实例程序预先分配了三个数据块区域(DB1):
在第一个网络中,使用函数FC 1(“INIT_LOOP”)在预分配数据块(数据类型字节)中初始化20个字节(“ INIT_LOOP”)。
在第二个网络中,使用系统函数SFC 21在预分配数据块(数据类型字节)初始化20个字节。
在第三个网络中,也可以用SFC21初始化数据块中的5个整数。
但是,同以前情况的不同之处在于不是用一个数值初始化,而是用一定范围内的数值初始化。
要写入DB 1内的数据存储到DB 4。预分配值可以指定到变量表和观测到的初始化数据中。
收费软件(由SIMATIC卡/AVC卡支付):
下载内容包括STEP 7 程序“Init_DB”,在该程序中上述用于初始化数据块区域的方法作为实例被编程。程序代码写入STL。
Init_DB.exe (260 KB, 25 units)
复制"Init_DB.exe"文件到单独目录然后双击启动。STEP 7项目及所有相关子目录自动解压缩。然后可以使用SIMATIC管理器打开并处理解压后的项目。
更多信息:
关于函数调用SFC 21的更多信息可见STEP 7在线帮助和条目ID'1214574'中的手册“ SIMATIC System Software for S7-300/400系统功能和标准功能的SIMATIC系统软件”。
可运行性和测试环境:
实例可用在SIMATIC S7-300,S7-400,C 7和WinAC的所有CPU上.
下表显示了用于该条目和检验所描述功能的组件: 测试环境 版本
PC 平台 奔腾 III 800MHz, 264 MB
操作系统 Windows XP
STEP 7 V5.2
S7-CPU 315-2DP
(6ES7 315-2AF03-0AB0)
过滤标准:
硬件平台: SIMATIC S7-300/S7-400
软件: STEP 7
帖子内容: 功能组件/工具
条目号:15399291 日期:2005-07-11
http://support.automation.siemens.com/CN/llisapi.dll?func=cslib.csinfo&lang=zh&siteid=cseus&objid=15399291
首次回答问题,获得
双倍西币积分!
立即成为技术知识分享的一员!
找答案微信小程序
提问
搜索
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!