SCL创建FB的问题

SCL创建FB,希望在FB101中操作共享DB10数据块中的数组型数据,编译时出现变量未声明的报错,希望各位大神支招,小弟为初学SCL
还有一个问题:FB块的输入引脚接连DB地址时,在仿真模式下,为何在变量表里赋值就会报错,求解
程序如下:
DATA_BLOCK DB10
    STRUCT
Temp:ARRAY[1..10]OF REAL;
    END_STRUCT
BEGIN
END_DATA_BLOCK
FUNCTION_BLOCK FB101
VAR_TEMP
END_VAR
VAR
END_VAR
VAR_INPUT
    ID:INT;
    Real_in:REAL;
END_VAR
VAR_OUTPUT
    Result: REAL;
END_VAR
       IF ID<=10 THEN
      Temp[ID]:=Real_in; //编译时报这里的"Temp"变量未声明错误,我创建DB10的时候不是已经声明过了么?求解
       END_IF;   
END_FUNCTION_BLOCK

问题补充:
“ IF ID<=10 THEN
      Temp[ID]:=Real_in; //编译时报这里的"Temp"变量未声明错误,我创建DB10的时候不是已经声明过了么?求解
       END_IF;   ”
这部分我改为:
IF ID<=10 THEN
     DB10.Temp[ID]:=Real_in; 
       END_IF;  
编译没问题了..但我模拟的时候,报SF并且处于STOP,RUN不了,查CPU信息为写命令时区域长度错误
请大神们,给予帮忙

图片说明:

SCL创建FB的问题   

最佳答案

IF ID<=10 THEN
      Temp[ID]:=Real_in; //编译时报这里的"Temp"变量未声明错误,我创建DB10的时候不是已经声明过了么?求解
       END_IF;   
----------------------------------------
这里你的写法不对,这么写是指fb本身创建的变量,如果需要调用外部全局db的数组,则可以写成DB10.TEMP[ID],而且最好给db10取个符号名(符号表中)

---------------------------------------------
所谓长度错误,就是cpu寻址错误,也就是找不到程序中要访问的地址,你的fb中定义ID参数的时候没有指定一个合理范围的初始值,或者调用的时候没有填一个正确的参数,你这段程序中,为了访问之前建的db10,id的范围应当在1-10,而你的id默认值没有指定,可能就为0了。

提问者对于答案的评价:
谢谢..

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc150024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月4日 上午7:37
下一篇 2017年6月4日 上午7:37

相关推荐

  • PCS 7种子

    种子你懂的,大神 最佳答案 我本来懂得被你一句你懂的,弄得我懵了PCS7 V8.2种子:链接:http://pan.baidu.com/s/1kVPohYB 密…

    SIMATIC PCS 7 2017年5月29日
  • sql2000sp3a密码

    因为想要重新连接注册sql名称,需要帐号及密码,可是安装的时候并没有设置密吗啊? 请问大家知不知道默认的账号及密码吗? 最佳答案 关于这个问题,PCS7里的SQL&nbs…

    SIMATIC PCS 7 2017年7月30日
  • PCS7系统中,往服务器download changes时出现的故障

    在C/S结构的系统中,一台工程师站ES,一台操作员站,一台主服务器,一台冗余服务器。现在从工程师站编译好服务器之后,往服务器download changes时,出现了故障…

    2017年6月10日
  • PCS7 硬件错误CRC

    刚安装完的PCS7 v8.0 在打开的时候出现提示硬件错误CRC 从新安装系统后再次安装PCS7V8.0还是这个问题. 问题补充:我的问题解决了&nb…

    2017年6月8日
  • pcs7应用向导新建项目出错

    因为刚接触pcs7在用向导新建一个项目选择cpu 是as416-2,层深三,cfc,sfc及pcs7单站系统,项目名及存储目录都是默认的。但是点击完成后出现:硬件错误:G…

    2017年6月13日
  • wincc画面连接问题

    PC(ES站)与PLC已经建立了连接,但是在运行画面时,显示没有到数据服务器的连接!在Netpro中查看发现,ES站的wincc application的连接显示为不可用…

    SIMATIC PCS 7 2017年8月16日
  • 称重数据如何清零

    我公司使用S7-400做主站,ET200M做从站,系统使用PCS7编程。称重传感器通过4~20mA接入AI。现在主要问题是在WINCC上一直会有个差值,我不想通过校冷去归零,想在W…

    SIMATIC PCS 7 2017年6月29日
  • 在项目的工程师站编译时,为什么程序里的点传不到上位

    在项目的工程师站编译时,为什么程序里的点传不到上位 最佳答案 不是很理解你的意思。参考一下相关链接:《上位机PLC程序和运行程序不一致,造成无法连机》http://www.ad.s…

    SIMATIC PCS 7 2017年6月10日
  • Y-LINK读过来的数据不会做到WINCC花面狸

    400H通过Y-LINK读取300的数据,读取到了,在400H变量便在线监控到了,倒是我不会把数据编译到PCS7画面中。就是不会连接变量,和普通WINCC不一样 最佳答案 1.通过…

    SIMATIC PCS 7 2017年6月12日
  • PCS7硬件升级

    现有pcs7的版本为v7.1SP3,原有卡件138-4FB03-0AB0买不到了,新的备件138-4FB04-0AB0插入后显示组态与实际不一致,卡上有SF报警,更新硬件组态的硬件…

    SIMATIC PCS 7 2017年5月31日