西門子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?


分享到:


相關文章: