當(dāng)前位置:機(jī)電之家首頁 >> PLC技術(shù)>> PLC文案資料 >> PLC試題庫 >> 西門子S7-200PLC帶參數(shù)調(diào)用的子程序運(yùn)行為什么異常
西門子S7-200PLC帶參數(shù)調(diào)用的子程序運(yùn)行為什么異常

西門子S7-200PLC兩個(gè)子程序的局部變量和程序完全相同(見下面的右圖),運(yùn)行時(shí)發(fā)現(xiàn)I0.0為1時(shí)Q0.0和Q1.0同時(shí)變?yōu)?。將置位指令改為對(duì)L0.1的賦值(線圈)指令后運(yùn)行正常,將OUT參數(shù)“輸出”改為IN_OUT參數(shù)運(yùn)行也正常。為什么?
1.出錯(cuò)的原因
S線圈(置位指令)斷開時(shí),L0.1的值保持不變。
從子程序的局部變量表可以看出,輸入?yún)?shù)IN和輸出參數(shù)OUT均用L區(qū)的局部變量保存。這兩個(gè)子程序?qū)儆谕患?jí),它們的局部變量使用同一片物理存儲(chǔ)區(qū)。換句話說,兩個(gè)子程序的L0.1先后使用同一個(gè)物理存儲(chǔ)器位。
OB1中的I0.0為1時(shí), 子程序SBR_0中的L0.1和它的實(shí)參Q0.0被置位。在執(zhí)行SBR_1時(shí),因?yàn)閮蓚€(gè)子程序的L0.1先后使用同一個(gè)物理存儲(chǔ)器位,SBR_1的L0.1仍然為1,使它的實(shí)參Q1.0也變?yōu)?。Q1.0變?yōu)?不是因?yàn)槌绦虻淖饔?,而是兩個(gè)子程序的L0.1共用同一個(gè)物理存儲(chǔ)器位引起的。
2.將OUT參數(shù)改為IN_OUT參數(shù)未出錯(cuò)的原因
在Q1.0為0,I0.0為1時(shí),L0.1因?yàn)槭荌N_OUT參數(shù),剛開始執(zhí)行SBR_1時(shí),L0.1的輸入值為0,與SBR_0執(zhí)行后L0.1的值無關(guān)。因?yàn)镮1.0為0,SBR_1執(zhí)行完后,L0.1的值不變,仍然為0。所以Q1.0的值為0,不會(huì)變?yōu)?。
3.置位指令改為賦值指令(線圈)未出錯(cuò)的原因
假設(shè)I0.0為1時(shí),I1.0為0,執(zhí)行SBR_1的程序時(shí),L0.0的觸點(diǎn)斷開,使L0.1的線圈斷電,所以Q1.0為0。
4.同樣的程序?yàn)槭裁碨7-300不會(huì)出錯(cuò)
S7-300的功能(FC)和S7-200的子程序差不多,S7-300的FC1和FC2中同樣的置位程序運(yùn)行時(shí)不會(huì)出錯(cuò)。這是因?yàn)镾7-300和S7-200保存IN、OUT參數(shù)的方法不一樣。S7-300同一級(jí)的FC的臨時(shí)局部變量(TEMP)使用同一片物理存儲(chǔ)區(qū),它們的IN、OUT參數(shù)沒有標(biāo)出L區(qū)的地址,與臨時(shí)變量的保存方法不同。因此同樣的程序S7-300不會(huì)出錯(cuò)。
作者:未知 點(diǎn)擊:518次 [打印] [關(guān)閉] [返回頂部]
本文標(biāo)簽:西門子S7-200PLC帶參數(shù)調(diào)用的子程序運(yùn)行為什么異常
* 由于無法獲得聯(lián)系方式等原因,本網(wǎng)使用的文字及圖片的作品報(bào)酬未能及時(shí)支付,在此深表歉意,請(qǐng)《西門子S7-200PLC帶參數(shù)調(diào)用的子程序運(yùn)行為什么異?!废嚓P(guān)權(quán)利人與機(jī)電之家網(wǎng)取得聯(lián)系。
電子樣本

SN系列樣冊(cè)
:鞏經(jīng)理
:13915946763
:南京塞姆泵業(yè)有限公司
個(gè)人求購

孫晉文 【求購】  排氣閥  2025-12-30
馬經(jīng)理 【求購】  信號(hào)集成端...  2025-12-30
李總 【求購】  電動(dòng)升降車  2025-12-30
于蓬 【求購】  HPV-S...  2025-12-29
張俊杰 【求購】  縫紉線自動(dòng)...  2025-12-25
易賽群 【求購】  NANOC...  2025-12-25
張經(jīng)理 【求購】  浪涌保護(hù)器  2025-12-25
陳蓮 【求購】  日本住友閥  2025-12-24
VIP公司推薦