签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
以前一直用梯形图,现在想尝试SCL编程,就想把原来自己用的梯形图功能块使用SCL编写出来。结果发现在使用的时候报错。
大致情况是,
编写了一个具有起保停+报警+连锁动作的功能块FB1;
FB2中调用了三次FB1,在FB2的静态变量里就有了三次调用FB1的三个背景数据;
在FB2中手动建立两个bool型静态变量分别是“报警消音”和“故障复位”
在OB1中调用FB2,自动生成DB1
当把DB1中的静态变量“报警消音”和“故障复位”这两个变量赋给FB2中调用的FB1的形参时,系统报错,说“不允许访问自己的背景数据块”。
以前用梯形图编程时没有这个问题,但换成SCL就不行了,请高人指点一二,是我哪里做错了吗?
如果是SCL就不允许这样做,那能有什么好办法吗?
不胜感激!
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1823667&b_id=66&s_id=0&num=6
你这种做法FB1的管脚根本就不需要填,直接用DB1里对应的变量不就好了
你fb2中直接只用自己的程序内部变量就行了呀。为什么要使用自己的背景db的变量呢?
使用静态变量的名称就可以了
楼上说了,就是调用背景数据方式有误
可以从其他块访问
为什么通过DB1直接付给 FB2内部多重背景FB1的形参?不应该是 FB2的形参相关形参直接赋值给FB1形参吗?
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录