風(fēng)之鈴音
人法地,地法天,天法道,道法自然~
級(jí)別: 探索解密
![]() |
前幾天領(lǐng)導(dǎo)布置下來任務(wù),說原來轉(zhuǎn)速控制精度不夠,要求至少能達(dá)到小數(shù)點(diǎn)后一位,于是我就開始琢磨這個(gè)問題,并參考了《高手請指教觸摸屏問題》一帖中諸位高手的建議,并在YMMFA的幫助下解決了部分問題,現(xiàn)在將已解決和未解決的問題一并放在這里,希望能有路過的高手幫忙解決,萬分感謝!也希望遇到類似問題的朋友可以有所借鑒,大家一起交流提高。先說已解決的問題,在GT Designer2中把數(shù)據(jù)長度設(shè)置成32位,小數(shù)位置自動(dòng)調(diào)整選中,這時(shí)GOT1000上可以輸入帶小數(shù)點(diǎn)的浮點(diǎn)數(shù),但傳到PLC里的還是整數(shù),例如輸入11.2,觸摸屏上顯示11.2,傳到PLC中的數(shù)據(jù)寄存器里卻還是112,于是我設(shè)置了個(gè)中間寄存器來進(jìn)行運(yùn)算處理,DIV D650 K10 D600,這時(shí)候D600里存的是整數(shù)11,D601里存的是余數(shù)2(這里其實(shí)也就是小數(shù)部分),本來我還想分開處理,后來YMMFA告訴我應(yīng)該轉(zhuǎn)成二進(jìn)制然后用EDIV來進(jìn)行二進(jìn)制浮點(diǎn)運(yùn)算,處理完后再轉(zhuǎn)回十進(jìn)制,也就是說三菱的FX2N的PLC必須轉(zhuǎn)成二進(jìn)制才可以進(jìn)行浮點(diǎn)數(shù)運(yùn)算,在此十分感謝YMMFA的幫助!現(xiàn)在仍存在的問題是,我用SPD X000 K3000 D106取電機(jī)的轉(zhuǎn)速顯示到觸摸屏上,齒輪有20個(gè)齒,領(lǐng)導(dǎo)給的要求是要精確到小數(shù)點(diǎn)后一位,但SPD好像不支持浮點(diǎn)數(shù),那該如何解決呢?麻煩諸位高手在百忙之中能夠抽空賜教,萬分感謝!:) |
|
---|---|---|
|
ymmfa
不想大江大河,不想浪起潮落,只愿一灣小湖,靜待歲月安好。
級(jí)別: 管理員
![]() ![]() |
“說原來轉(zhuǎn)速控制精度不夠,要求至少能達(dá)到小數(shù)點(diǎn)后一位” 1,如果用一圈1000個(gè)脈沖的編碼器,那么一個(gè)脈沖是0.001 圈 2,然后用SPD指令得到單位時(shí)間的脈沖量 3,把得到的數(shù)值放到到D10(用MUL指令),觸摸屏上小數(shù)點(diǎn)選擇2位 4,這樣,PLC里的D10是1230個(gè)脈沖,在屏上就是1.230 圈 5,有的時(shí)候,可能要把PLC里的D10放大10倍 |
|
---|---|---|
本帖最近評(píng)分記錄:
|
ymmfa
不想大江大河,不想浪起潮落,只愿一灣小湖,靜待歲月安好。
級(jí)別: 管理員
![]() ![]() |
如果編碼器是360度這樣的,不好計(jì)算,要用DIV 收到的脈沖=D1 DIV D1 K360 D2 D2 是圈數(shù) 如果計(jì)算超過了32767 需要用32位的指令,比如DDIV 有的時(shí)候,適當(dāng)把脈沖數(shù)*10,或者100 這樣比較好 FX1S,F(xiàn)X1N不能計(jì)算小數(shù)點(diǎn),比如12.38 但乘100后就是1238,這樣就可以了,屏上設(shè)置2位小數(shù)點(diǎn),就是12.38顯示出來。 ````````````````````````````````````````````````````````````````````````````````````````````` FX2N根據(jù)每人的編程習(xí)慣,用EDDIV,就可以算出有小數(shù)點(diǎn)的數(shù)值,可以實(shí)驗(yàn)“EDDIV K7 K8 D0”看效果 |
|
---|---|---|
|