西门子SCL程序出现参数无法初始化怎么解决?

pcf1088


又遇到一个专业问题,再来答一答,看看有人看么?

你这个第三个图片程序怎么写的看不清楚,所以很可能你的程序写的有问题?

我做了一个你的程序,当然和你的相似但是不一样,你可以看看:

这个是FC1中的SCL程序,我估计你这里的程序写的有问题,或者变量的名义有问题!

下边就是在OB1中调用的程序监控图:

我这个程序运行起来没有问题,M0.0为1后,10S钟后M10.0就会为1!


我有看到你的CPU型号是CPU315,所以不知道你的FC程序是你自己做的?还是你从STEP7相关转换过来的,STEP7项目转换过来的IEC定时器是有问题的,在控制研究控的专栏TIA博图的使用记录中有写过一篇文章说这个定时器的事情,有兴趣的可以去看一下!


另外,你的图片挡住了你的程序,如果是如说的IEC定时器的问题,建立你重新写一下FC1中的程序!因为STEP7中的IEC定时器和博图中的定时器有些不一样,因此如果你是从STEP7中转过来的就需要再自己重新处理一下!

(我的悟空问答不欢迎电工之家这个SB搬运,谢谢合作!)

就简单说这么多了,如果还有问题请留言,并且把你FC1中的详细图片,发一张比较全的出来,我们再讨论!

我就是做PLC电气自动化的,有兴趣的话可以关注一下,遇到问题,大家可以交流一下!


控制研究控


这个警告的中文提示翻译上有点问题,英文原文是parameter #xxx might not be initialized.

意思是参数xxx可能未被初始化。

在函数或函数块中,output参数一般只用来被赋值,不用来读操作,因为存在未被初始化的风险,

如果你的程序是这样:

if 条件1 then

o_output1:=true;

end_if;

if o_output1 then

xxxxx;

end_if;

这么写第四行肯定会报warning,因为o_output1只有在条件1满足的情况下才会被赋值true,如果条件1不满足,它的值是多少呢?true?false?答案是不确定,它的值将是上一次扫描周期的值

这种不确定可能会对程序运行带来风险,所以博途编译时会有warning提示

供参考,欢迎讨论


Silence46400710


这是scl?


分享到:


相關文章: