slik
級(jí)別: 論壇先鋒
![]() |
如題,在如下的梯形圖中,為什么用LD M404不能觸發(fā)M908,而需要改為M404的下降沿,即LDF M404,按理說,因?yàn)镸908回路在M404回路的前面,所以程序上個(gè)周期掃描時(shí)如果 X10012還是正常的(OFF),M404為ON,因?yàn)檩斎胼敵鲇诚袼⑿率窃诔绦驋呙璧淖钋邦^的,所以,當(dāng)要到下一個(gè)周期掃描的前端,刷新輸入點(diǎn),這時(shí)X10012變?yōu)镺N,那么因?yàn)樯蟼(gè)掃描周期中保存的M404還是為ON,所以,這時(shí)是可以觸發(fā)M908為ON的,理論分析是這樣的,但是實(shí)際上是不行的,用 LD M404 AND X10012 SET M908 不行,而需要改為 LDF M404 AND X10012 SET M908 我想問的是為什么LD M404不行,而改為L(zhǎng)DF M404,即用M404的下降沿就可以觸發(fā),請(qǐng)大家討論討論,謝謝!如下圖: ![]() |
---|---|
|
lvpretend
級(jí)別: 論壇先鋒
![]() |
有結(jié)果嗎?看了這個(gè)PLC的手冊(cè),輸入輸出掃描很常規(guī)。輸入信號(hào)是在程序執(zhí)行前掃描的,整個(gè)周期都不會(huì)變化。輸出信號(hào)是程序執(zhí)行完畢再輸出的,會(huì)一直保持,直到下個(gè)周期輸出。 所以你說的這個(gè)情況有點(diǎn)詭異,建議單獨(dú)寫幾個(gè)指令,然后把PLC清除內(nèi)存再恢復(fù)出廠值,測(cè)試一下。 另外,PLC邊沿觸發(fā)并不是直接用這個(gè)觸點(diǎn)(原觸點(diǎn)),而是自動(dòng)分配一個(gè)(或多個(gè))其它的內(nèi)存單元(邊沿觸點(diǎn)),系統(tǒng)根據(jù)原觸點(diǎn)去置邊沿觸點(diǎn)。那么就會(huì)存在2種方法,一是在程序開始前或執(zhí)行完畢來進(jìn)行這個(gè)計(jì)算,就是一個(gè)周期只變化一次。另一種是實(shí)時(shí)計(jì)算(也就是一個(gè)周期可能變化多次),這種對(duì)PLC資源要求大。 這個(gè)PLC,兩種都在用,如果用指定位或BIT類型變量,會(huì)滯后一個(gè)周期。用BOOL類型變量就是當(dāng)個(gè)周期有效。 |
---|---|
|