工控康
級別: 略有小成
|
圖片:
圖片:
用仿真運行兩個程序運行的結果是一樣的 就是不明白 為什么INCP K4Y000Z0 和MOV Z0 K4Y0這兩個程序運行是一樣的 求解釋 麻煩您講得詳細點 謝謝 |
|
---|---|---|
|
mov110
級別: 探索解密
|
:mov Z0 K4y0 打個比方說你試一下mov K10 K4Y0 , 用8421碼去理解,點亮的是y1和Y3 |
---|---|
本帖最近評分記錄: |
wu32u2
耐得住挫折的打磨,我們將迸發出比鉆石還璀璨的光芒——
級別: 論壇先鋒
|
2樓
發表于: 2011-08-08 08:15
沒理由會一樣啊, MOV Z0 K4Y0中Z0相當于普通的寄存器D,K4Y0相當于一個16位的寄存器D,即把Z0=0,Y全滅,Z0=1Y0接通,Z0=2Y1接通,Y0滅,Z0=3,Y0Y1接通。此程序的結果是每次加1的變化1.2.3.4.5.6.7.8.9.。。。。。。。 INCP K4Y0Z0則根據Z0變址,Z0=0,對應Y0~Y17,輸出全滅,Z0=1對應Y0~Y17,Y0接通,Z=2對應Y1~Y20,Y1接通,Z=3對應Y2~Y21,Y2接通,因此每接通一次就多一個輸出點接通,之前的輸出點不滅,變化應該是1.3.7.15。。。。。 樓主留言:你上面MOV ZO K4Y0的解釋我能看的懂。 就是底下INCP K4Y0Z0的解釋不是很清楚,為什么Z0=0,對應Y0~Y17,輸出全滅,Z0=1對應Y0~Y17,Y0接通,Z=2對應Y1~Y20,Y1接通,Z=3對應Y2~Y21,Y2接通,因此每接通一次就多一個輸出點接通,之前的輸出點不滅,變化應該是1.3.7.15。。。。。,,,,,, Z0值的不同,(對應 Y0~Y17,Y0接通,對應Y1~Y20,Y1接通,對應Y2~Y21,Y2接通)Y的對應也不同,Z0=0和=1時,都是對應的Y0~Y17。還有 |
|
---|---|---|
本帖最近評分記錄:
|
gcbplc
QQ3130569178 PLC編程、登錄口令修改刪除、調試
級別: 工控俠客
|
學習了 |
|
---|---|---|
|
wu32u2
耐得住挫折的打磨,我們將迸發出比鉆石還璀璨的光芒——
級別: 論壇先鋒
|
Y0Z0=Y(0+Z0),所以Z0=1時,Y0Z0=Y1,那么K4Y0Z0=Y1~Y20,但是因為脈沖形式,一個掃描周期接通一次,所以第一行接通時Z0=0,執行到第二行的時候Z0才自加1。 |
|
---|---|---|
本帖最近評分記錄:
|
銘杰工控
溫嶺市正凱自動化設備有限公司
級別: 網絡英雄
|
樓主光留言不加分,未免說不過去。我來加分吧。 樓主留言:不是不加, 之前我根本不知道,麻煩你再告訴我怎么加分,,,,謝謝,我 新人一個 呵呵 |
|
---|---|---|
本帖最近評分記錄:
|
qlin
學過一點FX型PLC基本知識
級別: 家園常客
|
仿照樓主的程序編制了以下程序: 仿真(按FX2N編程),通斷X0,以下僅示出接通者: 1次,Y0、M0 2次,Y1、M0、M1 3次,Y0、Y1、M0、M1、M2 4次,Y2、M0、M1、M2、M3 …… 所以,兩段程序的運行結果是不一樣的;原因如2樓wu32u2所解釋的。 對于INCP K4M0Z0(對應于樓主的INCP K4Y0Z0)、INCP Z0,其執行過程是: 第一次接通X0時,(Z0)=0,(K4M0Z0)+1=(K4M0)+1=1,所以M0接通;此后(Z0)=1。 第二次接通X0時,(Z0)=1,(K4M0Z0)+1=(K4M1)+1=1;雖然,加1前、(K4M0)=1但 (K4M1)=0,而加1后、(K4M1)=1,所以M1接通;而之前M0已接通,并無指令將其復位,所以M0保持接通,從而得到仿真的結果;此后(Z0)=2。 ……余下類推。 樓主留言:我到現在還是有點迷糊,為什么Z0=0時m0接通,z=1時m0和m1接通,z=2時m0,m1和m2接通等等,INCP Z0是給寄存器內數據加一,那INCP K4M0Z0 是給什么加一呢,有點笨,麻煩說得詳細點, 謝謝 [ 此帖被qlin在2011-08-08 16:02重新編輯 ] |
|
---|---|---|
本帖最近評分記錄:
|
qlin
學過一點FX型PLC基本知識
級別: 家園常客
|
呵呵,不能說笨,只是一時沒有轉過彎來。 Z0是變址寄存器,INCP Z0每執行一次,Z0內容加1,這個已經理解。 同樣地,INCP K4M0Z0,將K4M0Z0看成一個(由位元件組成的)數據寄存器,執行一次該條指令,則K4M0Z0的內容加1。 若K4M0Z0中的Z0保持不變,例如為0,則K4M0Z0就是K4M0Z0=K4M(0+0)=K4M0,那么K4M0Z0內容加1、就是K4M0內容加1,這個也可以理解。 現在的問題是,K4M0Z0中的Z0,每次都是變化的;若(Z0)=0,則K4M0Z0=K4M(0+0)=K4M0;若(Z0)=1,則K4M0Z0=K4M(0+1)=K4M1,依此類推;這個關系,可參閱編程手冊。 有了上面的關系,再看INCP K4M0Z0的加1操作: 當(Z0)=0時,執行INCP K4M0Z0,就是K4M0Z0即K4M0內容加1;當(Z0)=1時,執行INCP K4M0Z0,就是K4M0Z0、此時為K4M1的內容加1;依次類推。 設開始時,M0~M15均是斷開的,即K4M0的內容為0,則在(Z0)=0時執行一次加1操作后,K4M0的內容為0+1=1,所以M0為1、即M0接通。 在(Z0)=1時執行的K4M0Z0加1操作,是K4M1的加1操作,假設M16是斷開的(不妨假設涉及到的M15以后的M全是斷開的),則在進行加1操作前,K4M1為0,所以加1后,K4M1為1,新增加了M1接通; 而之前M0是接通的;應用指令的特點是,執行條件斷開后,其結果會保持,所以M0保持接通;又在執行K4M1加1操作時,沒有牽涉到M0,也無其他指令使M0復位,所以M0是保持接通的。 于是,此時得到的結果是:M0接通、M1接通。 其余類推。 樓主留言:底下有我看了你的解釋自己理解的,你看我寫的對不對,謝謝你對我的幫助,耐心的為我解釋,加你為好友,謝謝 |
|
---|---|---|
本帖最近評分記錄:
|
yangyuzhen
知道沒有結果也要繼續,就像我們明知道會死還要活著。
級別: 略有小成
|
學習了 |
|
---|---|---|
|