purshro
級別: 略有小成
|
圖片:
今天試了下臺達(dá)的,程序和上次信捷的類似。編碼器400線,1倍頻。轉(zhuǎn)一圈400個脈沖。8000個進(jìn)入中斷剛好20圈,復(fù)位高速計數(shù)器,F(xiàn)在的問題是進(jìn)入中斷復(fù)位高速計數(shù)器的時間是多少?在復(fù)位到0到重新計數(shù)的這段時間編碼器一直在轉(zhuǎn),丟脈沖不知道該如何避免了。從監(jiān)控上看知道一共是進(jìn)了10次中斷再加一圈整的也就是400個脈沖。實(shí)際上編碼器已經(jīng)走了一圈多一點(diǎn)了。也就是說RST C251這段時間沒有計數(shù)。 這個程序是定長用的。設(shè)定長度轉(zhuǎn)成脈沖數(shù),當(dāng)?shù)竭_(dá)設(shè)定脈沖(長度)時進(jìn)入中斷復(fù)位高速計數(shù)器,同時輸出動作。設(shè)備高速運(yùn)轉(zhuǎn)不停機(jī)的。低速誤差還可以,高速較大。用單片機(jī)(STC12c5a60s2 或者stm32f103)情況比用PLC好些。 麻煩各位高手指點(diǎn)下這樣的思路有沒有問題。或者有更好的方法。 [ 此帖被purshro在2014-06-14 21:41重新編輯 ] |
---|---|
|
sicsuilyijun
工控路上學(xué)習(xí)中
級別: 略有小成
|
這么復(fù)雜,如果你定長都是8千的話。你就把C251設(shè)為8千。當(dāng)計到8千時,由C251給自己復(fù)位。試一下看如何,我這么搞過,誤差不大,當(dāng)然不知道你的速度有好高。 |
---|---|
|
無人值班
級別: 探索解密
|
我不是做機(jī)械控制的 但這個問題在過程控制中不是問題啊 高速計數(shù)不存在什么補(bǔ)償 復(fù)位漏計的問題 高速計數(shù)模塊本身就是帶寄存器的 我們用的PLC是這樣 比如設(shè)400次進(jìn)一個高位給PLC處理器計數(shù) 處理器收到的數(shù)據(jù)就是高位計數(shù)圈+計數(shù)器中地位脈沖數(shù) 不會有什么誤差 當(dāng)然行業(yè)不同 不知道硬件有沒有區(qū)別 但是高低端PLC原理應(yīng)該都是一樣的 |
---|---|
|
無人值班
級別: 探索解密
|
就是說 你復(fù)位的是PLC處理器中的高位 而計數(shù)器一直是0-400計數(shù)著 不存在復(fù)位漏計的問題 |
---|---|
|
purshro
級別: 略有小成
|
主要是機(jī)器速度變化太大20-120米/分。難以把握。 |
---|---|
|
purshro
級別: 略有小成
|
謝謝指點(diǎn)!c251的計數(shù)值到8000還是會一直加啊,要復(fù)位還是要dhscr吧。原來在機(jī)器上試時低速誤差還算可以,高速差點(diǎn)。后來沒在機(jī)器上,單獨(dú)拿編碼器試才發(fā)現(xiàn)編碼器在轉(zhuǎn)整圈后回標(biāo)記點(diǎn)脈沖數(shù)不對。 |
---|---|
|
purshro
級別: 略有小成
|
謝謝指點(diǎn)!就是覺得比如400進(jìn)入中斷處理的時候,編碼器實(shí)際已經(jīng)到了401才復(fù)位的。所以才有累計誤差。還好機(jī)器誤差也不算大。 |
---|---|
|