熱門(mén): 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂(lè)園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
這是跑馬燈程序 ,M0=1有效時(shí),從Y1開(kāi)始 ,每個(gè)燈亮2S SM13上升沿每個(gè)掃描周期動(dòng)作一次 復(fù)位上一個(gè)亮的燈 +1后 點(diǎn)亮下一位的燈 1-7位的燈依次點(diǎn)亮 D0>7時(shí)重新開(kāi)始點(diǎn)亮 反復(fù)執(zhí)行 |
第一句的意思是當(dāng)SM2閉合的時(shí)候,把立即數(shù)7送到D4000數(shù)據(jù)存儲(chǔ)器中,這里MOV是傳送指令,我沒(méi)學(xué)過(guò)信捷,SM2有可能跟西門(mén)子的系統(tǒng)特殊寄存器類(lèi)似,有可能是在PLC上電的第一掃描周期ON,這樣的話,就是在PLC初次掃描時(shí),把7賦給D4000。 第二行這里有個(gè)M0串了個(gè)SM13上升沿,SM13就類(lèi)同于西門(mén)子的SM0.5,半秒ON,半秒OFF,如果沒(méi)有上升沿,SM13和M0在ON時(shí)就會(huì)執(zhí)行下面的程序,那半秒ON的時(shí)候可能執(zhí)行不止一遍程序,這是不可取的,所以要加個(gè)上升沿,這樣只能執(zhí)行一次,要再次執(zhí)行,得上SM13 OFF后,再ON,這樣就能使程序執(zhí)行周期變成1秒。 接下來(lái)看一下下面程序執(zhí)行情況: 第一句:R就是復(fù)位,就是把Y0[D0]的值復(fù)位,變成OFF。這句怎么理解,方括號(hào)里表示的是偏移量,如果PLC一上電,數(shù)據(jù)區(qū)里的存儲(chǔ)體值如果沒(méi)有設(shè)置掉電保持的話,它的初始值為0,Y0[0]表示的就是Y0。 第二句:INC D0,就是把D0的值加1后再送回到D0去,就是自增1。 第三句判斷和賦值,如果D0大于D4000的話,執(zhí)行后面的賦值語(yǔ)句,也即傳送指令,現(xiàn)在的D4000的值為7,所以如果D0加到7后又加了后變成8時(shí),條件滿足,就會(huì)把D0的值變?yōu)?,其實(shí)這里有錯(cuò),應(yīng)該是0才對(duì),要不然,第一盞燈Y0就不會(huì)亮了。 第四句就是把對(duì)應(yīng)的燈點(diǎn)亮,置位指令,Y0[D0],就是以Y0為基地址,以D0為偏移量,把對(duì)應(yīng)的輸出置為ON.如果現(xiàn)在使Y3 ON了,第四盞燈亮了,它是最后一條指令,然后又會(huì)從頭執(zhí)行上面所有的指令。 最先一條把7賦值給D4000的指令因?yàn)椴皇鞘状螔呙瑁筒粓?zhí)行了。 如果SM13沒(méi)OFF,所有指令不執(zhí)行,只有等SM13 OFF后,又SM13 ON的第一掃描周期,第會(huì)執(zhí)行下面的四條指令。那是過(guò)了一秒后的事了,因?yàn)镈0的值保持上次執(zhí)行時(shí)的值,所以把上次值位的,現(xiàn)在復(fù)位了,這樣Y3 ON了一秒。 |
多年前我還用過(guò)信捷呢,都忘了,不會(huì)用了 |
測(cè)試輸出的DO.1-do.12 |
1. **使用偏移量實(shí)現(xiàn)Y1-Y7依次點(diǎn)亮**:這句話是對(duì)這個(gè)梯形圖功能的描述,意味著梯形圖的目的是使用偏移量來(lái)控制輸出Y1到Y(jié)7依次點(diǎn)亮。 2. **SM2**:這通常代表一個(gè)特殊輔助繼電器(Special Memory,SM),SM2是PLC中的一個(gè)存儲(chǔ)位,可能在這里用于控制程序的某些特定功能。 3. **MOVK7D4000**:這是一個(gè)數(shù)據(jù)移動(dòng)指令。"MOVK"代表移動(dòng),"7"是偏移量,"D4000"是目標(biāo)數(shù)據(jù)寄存器。這條指令的作用是將偏移量7的值移動(dòng)到D4000寄存器中。 4. **初始正向脈沖線**:這可能是對(duì)梯形圖中某個(gè)特定部分的描述,指的是一個(gè)初始的正向脈沖,可能用于啟動(dòng)或觸發(fā)某個(gè)過(guò)程。 5. **YODO**:這可能是一個(gè)縮寫(xiě)或特定于某個(gè)PLC品牌的指令,但根據(jù)上下文,它可能表示一個(gè)輸出操作,Y可能代表輸出(Output),ODO可能是指特定的操作或功能。 6. **1s時(shí)鐘脈沖:0.5sON0.5sOFF**:這描述了一個(gè)時(shí)鐘脈沖的周期,即1秒的周期內(nèi),有0.5秒是ON(激活)狀態(tài),0.5秒是OFF(非激活)狀態(tài)。 7. **信捷PLC**:信捷是一個(gè)PLC品牌的名稱(chēng),這里指明了使用的是信捷品牌的PLC。 8. **D4000**:這通常是一個(gè)數(shù)據(jù)寄存器的地址,用于存儲(chǔ)數(shù)據(jù)或作為程序中的數(shù)據(jù)操作目標(biāo)。 9. **MOV**:這是一個(gè)移動(dòng)指令的縮寫(xiě),用于將數(shù)據(jù)從一個(gè)位置移動(dòng)到另一個(gè)位置。 由于沒(méi)有提供完整的梯形圖,上述解釋只能基于文本內(nèi)容進(jìn)行推測(cè)。如果需要更詳細(xì)的解釋或具體的編程幫助,建議提供完整的梯形圖或進(jìn)一步的上下文信息。 |
參與人數(shù) 1 | 黑幣 +12 | 收起 理由 |
---|---|---|
![]() | + 12 | 感謝大神的講解,謝謝! |
Powered by 單片機(jī)教程網(wǎng)