ステヌタ電流による鉱石重量の枬定。 緎習。 パヌト1. MKの信号凊理アルゎリズム

前の蚘事では、゚ンゞンを持ち䞊げるずきに発生する力を枬定するこずにより、サむロ容噚内の鉱石の重量を枬定する基瀎を理論的に調べたした。 回路は、MKで凊理するためにモヌタヌステヌタヌの電流信号ず電圧信号を準備したした。 この蚘事では、MKの持ち䞊げられた負荷の質量を蚈算する゜フトりェア実装を怜蚎したす。 MK甚のプログラムの䜜成を開始するには、MKでこれらの信号を適切に凊理する方法を理解する必芁がありたす。 それでは始めたしょう。



電流信号ず電圧信号は正匊波信号であり、基本的には䟛絊ネットワヌクの䞻芁な呚波数実際には50 Hzを含んでいたす。 電源電圧の高調波やその他のコンポヌネントに぀いおは説明したせん。それらは存圚し、ネットワヌクの品質ず電気モヌタヌの動的特性に圱響を䞎えたす。 どの生産においおも、圌らは可胜な限り戊われおいるので、それらの圱響は、取るに足らないものではないが、ただ小さい。 これにこだわるこずはありたせん。





そしお再び、匏ず少しの理論



アナログ入力MKに䟛絊される電圧信号のグラフを考えたす。 すべおの蚈算、結論は珟圚の信号に察しお完党に圓おはたりたす。







正匊波の仮想れロは、回路のオペアンプの人工アヌスである1.5ボルトのレベルにありたす。 実効電圧倀を蚈算するには、次の匏を䜿甚する必芁がありたす。



ご芧のずおり、正匊波党䜓が正であり、この匏を盎接䜿甚しおも実際のデヌタは埗られたせん。 ぀たり、ADCから読み取った読み取り倀は、正匊波信号の珟実に合わせお、぀たり正ず負の半波でスケヌリングする必芁がありたす。 このためには、読み取られたADCコヌドから、人工の土地、䞭間点に察応するADCコヌドを枛算する必芁がありたす。 ぀たり、匏は次の圢匏になりたす。



ADCコヌド蚈算は、いく぀かの方法で実装できたす。







この実装では、2番目の方法を䜿甚したすが、䜿甚する各チャネルのAOCの倀を決定するこの手順をわずかに自動化したす。 しかし、゚ンゞンの前を走らないようにしたしょう。



電源電圧の期間぀たり、サンプリング呚波数で枬定倀が倚いほど、蚈算の粟床が高くなりたす。 チャネルをスキャンした埌、新しい枬定を開始する前に取埗した結果を凊理するず、この呚波数に制限が課せられたす。 ここでは、このタスクが委任されるMKの垞識ずハヌドりェア機胜を䜿甚しおアプロヌチする必芁がありたす。 1぀の期間ではなく、耇数の期間で枬定を行うず、粟床が向䞊したす。 䞻な条件は、調査察象の信号の呚期の倍数が枬定回数に適合するこずです。



電流信号の堎合、電圧だけでなくすべおが正確です。



有効電力を蚈算するには、次の匏を䜿甚したす。



珟実を考慮しお曞き盎したす。



したがっお、同時に、2぀のADCチャネル電圧ず電流から読み取り倀を取埗し、必芁な蚈算を行っお、次の枬定などに進む必芁がありたす。 ここからそのようなアルゎリズムが生たれたす。



MKの倀を枬定するためのアルゎリズム。



  1. 信号レベルを倉曎するためのハヌドりェア割り蟌みハンドラヌでMKレッグに巻き䞊げられる枬定開始の怜出噚からの信号に埓っお、電流および電圧信号を枬定するずきにタむマヌを開始しお、等しい時間間隔をカりントしたす。 枬定カりンタヌを0に蚭定したす。
  2. タむマヌからの割り蟌みにより、2぀のアナログチャネルからADCコヌドを読み取りたす。 予備的な信号凊理に必芁な蚈算を行いたす。 枬定カりンタを1増やしたす。カりンタ倀がN枬定の目的の倀に達しおいない堎合は、手順2の最初に進みたす。
  3. 枬定数がNの堎合、タむマヌを停止したす。 枬定終了のフラグを蚭定したす。
  4. メむンサむクルでは、枬定終了のフラグにより​​、枬定デヌタに基づいお最終的な蚈算を行いたす。
  5. すべおの蚈算の埌、枬定の開始の怜出噚からの䞭断を開始し、すべおの反埩が再び繰り返されたす。




MKプログラムはそこで停止したせん。 枬定ず蚈算の結果は、ディスプレむの圢で人ずやり取りするか、むンタヌフェむスを介しおPCに送信するか、別のディスプレむデバむスたたはデバむスずの通信を敎理する必芁がありたす。 この実装では、MKはModBus RTUプロトコルを䜿甚するRS-232むンタヌフェむスを介しおPCず察話したす。 MKでのこのプロトコルの実装は耇雑ではなく、MKのハヌドりェアリ゜ヌスを必芁ずしたせん。



ハヌドりェアプラットフォヌムの遞択ず信号凊理サンプルレヌトの蚈算



このタスクのMKハヌドりェアプラットフォヌムの芁件は、それほど高くありたせん。 8ビットマむクロコントロヌラヌは、このタスクに完党に察応したす。 MKでのプログラムの動䜜ず埗られた結果を芖芚化するために、Proteusシミュレヌタヌを䜿甚したす。 この問題を解決するための原則を理解するには、これで十分です。 このシミュレヌタは、倚皮倚様なMKをサポヌトしおいたすが、すべおではありたせん。 この実装では、PIC18FファミリのMicrochip瀟のMKの䟋を瀺したす。 このMKのモデルはプロテりスです。



MK PIC18F2580。 その䞻な特城を考慮しおください。 メヌカヌのりェブサむトにアクセスしお、このファミリのデヌタシヌトをダりンロヌドしたす。 このMKの「機胜」の衚を次に瀺したす。





サンプリングレヌトを蚈算するには、぀たり 時間はハヌドりェアタむマヌからの割り蟌みであるため、2チャネルのADCの倉換時間、枬定の䞭間結果を実行し、プログラムコヌドの残りの実行に少し時間をかける時間を蚈算する必芁がありたす。 そしお、この時間が䞍十分であるこずが刀明した堎合、それを増やすこずは理にかなっおいたす。



䞭間蚈算では、枬定倀ず合蚈を二乗し、枬定数で陀算しお平方根を抜出する必芁がありたす。 敎数でさえ陀算するこずは、速床の点でMKにずっおかなり高䟡な操䜜であるため、ビットシフトに眮き換えるこずをお勧めしたす。぀たり、枬定数を2の倍数にする必芁がありたす。



他のすべおの倉換は、タむマヌが停止した埌、぀たりメむンプログラムルヌプの割り蟌みの倖偎で発生したす。

このMKのADCでの倉換結果は10ビット倀になり、2乗した埌、20ビット倀になりたす。 ADC枬定倀の2乗和、぀たり32ビットを保存する4バむトのレゞスタを定矩しおみたしょう。したがっお、32ビットのレゞスタがオヌバヌフロヌするたでの枬定倀の最倧数は2 ^ 12です。 たずもな倀。 笊号倀がある有効電力を蚈算するには、1ビットにアクセスできなくなりたす。 したがっお、枬定の数は2 ^ 11に削枛されたす。 垞識を加えお、枬定数N = 2 ^ 9 = 512に制限しおください。



ここで、枬定数に適合する完党な期間の数を決定したす。 たず最初に、5぀のフルピリオドを取りたす。 タむムラむンで100ミリ秒。 したがっお、ハヌドりェアタむマヌのオヌバヌフロヌ時間はT = 100ms / 512 = 195.3125ÎŒsです。 したがっお、サンプリング呚波数f = 1 / T = 1 / 195.3125 * 10-6 = 5120 Hz。 MKの粟床ず必芁な速床の䞡方に぀いお、かなり正気です。



特定のMKに察する1぀の呜什の実行時間は最倧0.1ÎŒsです。 したがっお、次の割り蟌みたでのハヌドりェアタむマヌの「チック」の間、1953,125呜什を凊理できたす。これは間違いなく、「頭」で十分です。 ただし、結果の数倀は敎数ではありたせん。 たた、ハヌドりェアタむマヌ8たたは16ビットのクロッキングは、PLLを4で割った埌の呚波数に等しいクロックから発生したす。぀たり、512の等しい枬定間隔で正確に100 msをカりントするようにタむマヌを蚭定するこずはできたせん。 。 い぀ものように、いく぀かの方法がありたす。







他のメヌカヌやアヌキテクチャのMKでは、このような問題は発生しない堎合がありたす。



この䟋では、「゚キゟチックな」氎晶振動子を探したせん。 そのため、数孊挔算を備えたMKプロセッサを少しロヌドしたす。



小蚈



電源電圧の党5呚期にわたる枬定数は500です。これは、ハヌドりェアタむマヌの時間間隔が200ÎŒsであるこずを意味したす。 この堎合のサンプリング呚波数は5000 Hzです。



ADCおよびMKタむマヌ蚭定



PIC18F2580ファミリのデヌタシヌト、特にADCに関連するすべおのものを芋おみたしょう。 ADCを䜿甚しお枬定を行うには、いく぀かの偎面をガむドする必芁がありたす。







デヌタシヌトによるず、10ビットの倉換には11 Tadが必芁です。 ここで、Tadは2ÎŒs以䞊である必芁がありたす。 これにより、倉換の最倧粟床が保蚌されたす。



チャネルをADCモゞュヌルに接続した埌、ADCモゞュヌルのコンデンサを充電するのに必芁な時間は、デヌタシヌトの䞊蚘の手順を䜿甚しお蚈算できたす。 ここでは、蚈算に必芁なデヌタを瀺す䟋を怜蚎したす。 時間の蚈算に含たれる倀は、回路の蚭蚈ずプリント基板のトポロゞに䟝存したす。 そのため、この蚘事ではそれらは考慮されず、デヌタシヌトから䟋を取り䞊げたす。



ADCモゞュヌルのコンデンサを充電するのに必芁な時間は、12.86ÎŒsの䟋から取られおいたす。 倉換の時間は、䞍等匏Tad> = 2ÎŒsに基づいお蚈算したす。 倉換クロックはADCON2レゞスタで蚭定されたす。 たた、次の意味がありたす。







私たちの堎合、PLLの埌にMKが40 MHzからクロックされるず、Tosc = 0.1ÎŒs、したがっおTad = 3.2ÎŒs、぀たり32 Toscです。



合蚈で、1぀のADC倉換には、Tacp = 12.86 + 11 * 3.2 = 48.06ÎŒsの時間がかかりたす。 2぀のチャネルの堎合、96.12ÎŒs。 200 usのハヌドりェアタむマヌオヌバヌフロヌがありたす。 その結果、すべおの蚈算に぀いお、200-96.12 = 103.88ÎŒsが残りたす。 十分なはずです。

ADCからの倀を凊理するためのタむマヌを蚭定したす。



TMR0モゞュヌルを䜿甚したす。 8ビットモヌドず16ビットモヌドの䞡方で機胜したす。 圌には仕切りがありたす。 倖郚゜ヌスず内郚゜ヌスの䞡方からクロックされたす。



200ÎŒsの正確な時間間隔を確保するには、タむマヌからの割り蟌み䞭に、0以倖のプリセット倀をロヌドする必芁がありたす。



結果を衚瀺する



倖郚ず通信するために、ModBus RTUプロトコルを実装した通垞のUSART呚蟺モゞュヌルを䜿甚したす。 この蚘事では、PIC16FファミリのMKの゜フトりェア実装に぀いお説明したす 。 プログラムを䜜成するずきに、レゞスタテヌブルに入力したす。



プロテりスシミュレヌタヌを䜿甚するず、仮想および物理の䞡方のシステムのCOMポヌトで動䜜するコンポヌネントを䜿甚できたす。 ModBus RTUプロトコルを䜿甚するデヌタの最終消費者ずしお、原則ずしお、あらゆる䌁業のOPCサヌバヌを䜿甚したす。 OPCサヌバヌはポヌリングを提䟛し、独自のツヌルこの堎合は完党なセットでポヌリング結果を衚瀺したす。 OPCデヌタを倚くのサヌドパヌティアプリケヌションに送信できたす。 たずえば、SCADAパッケヌゞ。



クロック呚波数ず必芁な亀換レヌトから開始しお、USARTモゞュヌルを構成したす。



叙情的な䜙談
ネットワヌクず䜿甚されおいるむンゞケヌタヌの䞡方で蚈算結果を曎新するこずは1秒に1回以䞊意味がないので、枬定粟床を高めるために8回の枬定の平均を蚈算しおメむンルヌプの䞭間倀を平均するこずは理にかなっおいたす。 ぀たり、100 msの枬定埌、電流、電圧、および有効電力倀のrms倀を蚈算し、8぀の枬定倀の平均を敎数挔算で蚈算しおから、必芁なすべおの数量の最終蚈算を行い、これらの倀をネットワヌク経由で送信するか、むンゞケヌタ。





䞭間点蚈算プロセスの自動化



蚘事の冒頭で、各チャネルの䞭点ADCコヌドの蚈算が自動化されるこずが発衚されたした。

「䜿甚する各チャネルのAOC0の倀を決定するために、この手順をわずかに自動化したす。」


そのような自動蚈算のアルゎリズムを芋おみたしょう。



rms倀を蚈算しお信号を枬定したす。 デバむスの電源を入れた最初の瞬間に、䞡方のチャネルのALCコヌドの䞍揮発性メモリにれロが蚘録されたした。 できれば゜ヌスで、信号、電流および電圧トランスの゜ヌスをオフにしおください。 これは、䞭点の定電圧がADCの入力に到達するこずを意味し、長いケヌブルラむンから䜕らかの干枉が生じる可胜性がありたす。 信号を枬定するための組み蟌みアルゎリズムに埓っお、定電圧のrms倀を蚈算したす。 たずえば、ModBus RTUプロトコルを䜿甚するネットワヌク経由のコマンドにより、これらの蚈算倀を察応するチャネルのASCに入力し、䞍揮発性メモリのデヌタを曎新したす。 安定化されたアナログ回路の䟛絊ず正確な電圧基準源の䜿甚によるこれらの倀は、実際には時間ずずもに倉化したせん。



将来、デバむスの操䜜䞭に、これらの䜜業を実行しおASCを修正するこずが可胜になりたす。 ここで、もしあれば、ケヌブルラむンの䞀定の成分をフィルタリングするこずができたす。 さらに、別の方法で、十分な粟床で、マむクロ回路の埌の電流入力の䞭点を蚈算するこずはできたせん。



おわりに



倉圧噚からの信号を枬定するためのアルゎリズムを怜蚎したした。 MKハヌドりェアモゞュヌルに必芁な蚭定を分析したした。 それでは、MKの実際のプログラムの䜜成を始めたしょう。



PS

この蚘事は非垞に広範囲にわたるこずが刀明したため、 次の出版物で、゜ヌスコヌドの䟋ずずもに、結果のプログラムの説明を盎接怜蚎したす。



All Articles