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