h30631
級別: 略有小成
![]() |
請問(wèn)各位大師們,為什麼用GX 模擬PLC 去跑程式時(shí),DADDP 指令時(shí),數字會(huì )亂跳,如圖片 但是實(shí)際上監控實(shí)體PLC 就不會(huì )有這個(gè)問(wèn)題,請問(wèn)是哪裡出錯了?? ![]() [ 此帖被h30631在2013-01-03 17:03重新編輯 ] |
---|---|
|
hefei3903
級別: 略有小成
![]() |
T0,T1組成的是脈沖輸出程序,D350中的值應該會(huì )每隔0.22s跳一次。 |
---|---|
|
h30631
級別: 略有小成
![]() |
樓上說(shuō)的沒(méi)錯,但是我的重點(diǎn)是在於 一次只能+20 ,但是他一次加了不只20,反而加了好幾萬(wàn)去了 實(shí)際接plc 實(shí)體去跑卻又是正常的,一次加20,因為仿真軟件設定沒(méi)有設定好嗎? |
---|---|
|
sjm213
有小知識,無(wú)大學(xué)問(wèn)。
級別: 論壇版主
![]() ![]() ![]() ![]() |
1,根本原因在于你用了DADDP,這是個(gè)32位的指令。實(shí)際計算過(guò)程是把[D351 D350]與[T1 T0]相加后放入了[D351 D350]; 2,仿真與實(shí)機的區別在于,仿真默認掃描周期是100ms的,而實(shí)機的掃描周期會(huì )原低于這個(gè)數。這就造成仿真在T0計時(shí)到后,其輸出觸點(diǎn)驅動(dòng)了T1計時(shí),T1的數值馬上變成了1,所以?huà)呙璧竭_T0的上升沿,執行加法處理時(shí),就是00000000+00010014--》00010014(都用16進(jìn)制表示)的計算過(guò)程,這個(gè)十六進(jìn)制的數換成十進(jìn)制就是65556;執行到第八遍的時(shí)候,這個(gè)數就是65556*8=524448。而因實(shí)機的掃描周期遠低于100ms,則在實(shí)機上執行該程序,T0計時(shí)到達,掃描到T1時(shí),該數值還沒(méi)有累積到0.1S,所以T1的數值還是0沒(méi)有變成1,繼續執行加法處理時(shí),就是00000000+00000014--》00000014的計算過(guò)程,這個(gè)十六進(jìn)制的數換成10進(jìn)制就是20,得到了想要的結果; 3,將DADDP指令換成16位的ADDP指令可以避免這種情況; 4,將T0上升沿后做加法運算這一句緊放在T0輸出線(xiàn)圈這一句后面可以避免這種情況;T0輸出線(xiàn)圈這一句放在RST T0這段后面更好。 |
---|---|
|
h30631
級別: 略有小成
![]() |
感謝版主大師的指導~ 依照指示,真的如板大所說(shuō),原來(lái)是時(shí)序的問(wèn)題 所以我這種寫(xiě)法會(huì )有編寫(xiě)的順序問(wèn)題, 可以在請問(wèn)一下,執行 dadd這個(gè)指令 我知道的是會(huì )有一個(gè)D上位&D下位,與他相加的T也會(huì )自動(dòng)有一個(gè)上位&下位嗎? [ DADDP D0 T0 D0 ] = D1 D0 + "T1 T0 " ?? 因為我在煩惱,T 如果計時(shí)超過(guò)16位元的範圍,該如何讓他"先存到D後再重新計時(shí)" |
---|---|
|
guochunyi
直讀解西門(mén)屏HMI口令 。。。
級別: 論壇版主
![]() ![]() ![]() ![]() |
來(lái)這里說(shuō)自己有教程,卻又遮遮掩掩不肯給你共享的,,騙子居多。。 |
|
---|---|---|
|
sjm213
有小知識,無(wú)大學(xué)問(wèn)。
級別: 論壇版主
![]() ![]() ![]() ![]() |
今天在實(shí)機上調試了這個(gè)程序,現象與樓主所講一樣。 再仔細想了一下,在三樓講的第二條有問(wèn)題。 PLC中無(wú)論掃描周期如何修改,執行的結果都是樓主期望的那樣,T1對ADD之后的D350不會(huì )產(chǎn)生影響,因為T(mén)0狀態(tài)ON的這個(gè)掃描周期,T1才剛開(kāi)始計時(shí),PLC工作的原理是下一次掃描到T1輸出觸點(diǎn)時(shí)才會(huì )更新當前值,所以T1現在的值是0,不會(huì )影響到T0和D350值的相加。 仿真中,無(wú)論掃描周期如何修改,T1在T0為ON開(kāi)始計時(shí)的這個(gè)周期都是已經(jīng)有了一個(gè)數值“1”,這就對D350的數值產(chǎn)生了附圖中顯示的影響。 說(shuō)明仿真和PLC實(shí)機運行是不一樣的。 |
---|---|
|
sjm213
有小知識,無(wú)大學(xué)問(wèn)。
級別: 論壇版主
![]() ![]() ![]() ![]() |
但是32位指令執行時(shí)是 D1 D0 + T1 T0這是確確實(shí)實(shí)的。 |
---|---|
|
rockyhuo
專(zhuān)業(yè)制造全伺服高速衛生巾機器
級別: 論壇先鋒
![]() ![]() |
簡(jiǎn)單吧T1改成T3就可以了,怎樣的都是加20 |
|
---|---|---|
|