關(guān)于300PLC在OB100中初始化參數(shù)
劉玉蓉
發(fā)布于2014-11-28 17:52
11
0
標(biāo)簽:
由于我想在PLC掉電或下次啟動時將當(dāng)前位置信息賦給DB數(shù)據(jù)塊,我想在OB100中去實現(xiàn),但沒成功,我想PLC調(diào)用OB100時,PLC還在初始化,沒有啟動,現(xiàn)場數(shù)據(jù)無法讀到PLC中,所以失敗。不知道是不?
為了能在PLC啟動后立刻將現(xiàn)場數(shù)據(jù)給DB數(shù)據(jù),我在OB100中設(shè)置了一個中繼M0.0,通過常閉實現(xiàn)自啟動,就是置位M0.0,在OB1中通過M0.0的上升沿將現(xiàn)場的數(shù)據(jù)給DB數(shù)據(jù)塊。在以前這樣是要你管好好的,但近發(fā)現(xiàn)不能實現(xiàn)這個功能了,PLC啟動后DB數(shù)據(jù)塊的數(shù)據(jù)是很大的數(shù),都超設(shè)置的數(shù)據(jù)類型了,這是什么原因?有更好的辦法嗎?
問題補(bǔ)充:
我是在OB100中使用M0.0常閉來置位M0.0的,在OB1中通過M0.0的上升沿出發(fā)MOV來給DB賦值的,但出現(xiàn)DB數(shù)據(jù)不能成功賦值。我想可能的原因是MOV的輸入IN數(shù)據(jù)在M0.0上升沿到來時,它的數(shù)據(jù)還沒有通過DP總線采集回來的緣故導(dǎo)致的,我是通過MOV將總線上絕對編碼器的當(dāng)前值給DB,可能PLC啟動后,編碼器數(shù)值還沒有傳到PLC,而M0.0上升沿已過了,所以賦給DB是個隨機(jī)數(shù)。大家認(rèn)為哪?
佳答案
1、在OB100中進(jìn)行初始化是佳的選擇。
2、我想PLC調(diào)用OB100時,PLC還在初始化,沒有啟動,現(xiàn)場數(shù)據(jù)無法讀到PLC中,所以失敗。不知道是不?
你的擔(dān)心是多余的。當(dāng)運行OB100,一定可以完成在B100中的所有指令。將將當(dāng)前位置信息賦給DB數(shù)據(jù)塊是沒有問題的。
見詳見《組織塊使用說明》下載:
https://218.93.112.166/ec/C23/dl/xxzl/%E7%BB%84%E7%BB%87%E5%9D%97%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E.pdf
3、PLC啟動后DB數(shù)據(jù)塊的數(shù)據(jù)是很大的數(shù),都超設(shè)置的數(shù)據(jù)類型了,這是什么原因?
這是PLC啟動后,這個DB數(shù)據(jù)塊被賦予了新的的值,是你的程序問題。
4、有更好的辦法嗎?
在OB100中進(jìn)行初始化是佳的選擇。