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