![]() |
這是跑馬燈程序 ,M0=1有效時,從Y1開始 ,每個燈亮2S SM13上升沿每個掃描周期動作一次 復位上一個亮的燈 +1后 點亮下一位的燈 1-7位的燈依次點亮 D0>7時重新開始點亮 反復執行 |
第一句的意思是當SM2閉合的時候,把立即數7送到D4000數據存儲器中,這里MOV是傳送指令,我沒學過信捷,SM2有可能跟西門子的系統特殊寄存器類似,有可能是在PLC上電的第一掃描周期ON,這樣的話,就是在PLC初次掃描時,把7賦給D4000。 第二行這里有個M0串了個SM13上升沿,SM13就類同于西門子的SM0.5,半秒ON,半秒OFF,如果沒有上升沿,SM13和M0在ON時就會執行下面的程序,那半秒ON的時候可能執行不止一遍程序,這是不可取的,所以要加個上升沿,這樣只能執行一次,要再次執行,得上SM13 OFF后,再ON,這樣就能使程序執行周期變成1秒。 接下來看一下下面程序執行情況: 第一句:R就是復位,就是把Y0[D0]的值復位,變成OFF。這句怎么理解,方括號里表示的是偏移量,如果PLC一上電,數據區里的存儲體值如果沒有設置掉電保持的話,它的初始值為0,Y0[0]表示的就是Y0。 第二句:INC D0,就是把D0的值加1后再送回到D0去,就是自增1。 第三句判斷和賦值,如果D0大于D4000的話,執行后面的賦值語句,也即傳送指令,現在的D4000的值為7,所以如果D0加到7后又加了后變成8時,條件滿足,就會把D0的值變為1,其實這里有錯,應該是0才對,要不然,第一盞燈Y0就不會亮了。 第四句就是把對應的燈點亮,置位指令,Y0[D0],就是以Y0為基地址,以D0為偏移量,把對應的輸出置為ON.如果現在使Y3 ON了,第四盞燈亮了,它是最后一條指令,然后又會從頭執行上面所有的指令。 最先一條把7賦值給D4000的指令因為不是首次掃描,就不執行了。 如果SM13沒OFF,所有指令不執行,只有等SM13 OFF后,又SM13 ON的第一掃描周期,第會執行下面的四條指令。那是過了一秒后的事了,因為D0的值保持上次執行時的值,所以把上次值位的,現在復位了,這樣Y3 ON了一秒。 |
多年前我還用過信捷呢,都忘了,不會用了 |
測試輸出的DO.1-do.12 |
1. **使用偏移量實現Y1-Y7依次點亮**:這句話是對這個梯形圖功能的描述,意味著梯形圖的目的是使用偏移量來控制輸出Y1到Y7依次點亮。 2. **SM2**:這通常代表一個特殊輔助繼電器(Special Memory,SM),SM2是PLC中的一個存儲位,可能在這里用于控制程序的某些特定功能。 3. **MOVK7D4000**:這是一個數據移動指令。"MOVK"代表移動,"7"是偏移量,"D4000"是目標數據寄存器。這條指令的作用是將偏移量7的值移動到D4000寄存器中。 4. **初始正向脈沖線**:這可能是對梯形圖中某個特定部分的描述,指的是一個初始的正向脈沖,可能用于啟動或觸發某個過程。 5. **YODO**:這可能是一個縮寫或特定于某個PLC品牌的指令,但根據上下文,它可能表示一個輸出操作,Y可能代表輸出(Output),ODO可能是指特定的操作或功能。 6. **1s時鐘脈沖:0.5sON0.5sOFF**:這描述了一個時鐘脈沖的周期,即1秒的周期內,有0.5秒是ON(激活)狀態,0.5秒是OFF(非激活)狀態。 7. **信捷PLC**:信捷是一個PLC品牌的名稱,這里指明了使用的是信捷品牌的PLC。 8. **D4000**:這通常是一個數據寄存器的地址,用于存儲數據或作為程序中的數據操作目標。 9. **MOV**:這是一個移動指令的縮寫,用于將數據從一個位置移動到另一個位置。 由于沒有提供完整的梯形圖,上述解釋只能基于文本內容進行推測。如果需要更詳細的解釋或具體的編程幫助,建議提供完整的梯形圖或進一步的上下文信息。 |