1 Introducere
Microcontrolerele sunt aplicate din ce în ce mai mult în dispozitivele de control automatizate, sistemele de protecție integrate bazate pe microprocesoare-pentru rețelele electrice și în alte domenii de control al automatizării industriale, complexitatea acestor dispozitive crescând constant. Pentru a răspunde cerințelor în timp real, cu mai multe sarcini ale obiectivelor de dezvoltare, modelul unic-CPU, un singur-dezvoltator este înlocuit cu o abordare colaborativă care implică mai multe procesoare de diferite tipuri și mai mulți dezvoltatori. Această nouă paradigmă de dezvoltare introduce o provocare critică: standardizarea hardware-ului și software-ului pentru schimbul de informații între procesoare în timpul implementării. Această standardizare este esențială pentru adoptarea cu succes a acestui nou model. Printre numeroasele metode de comunicare, protocolul de comunicație serială RS-485 bazat pe UART-este adoptat pe scară largă datorită cablajului său simplu, fiabilității ridicate și capacității de a suporta mai multe procesoare. În ceea ce privește protocoalele de comunicație software, protocolul Modbus oferă avantaje semnificative utilizatorilor datorită naturii sale universale și software-ului matur de depanare. Prin urmare, în timpul dezvoltării noului dispozitiv de protecție cuprinzătoare a motorului, au fost adoptate metoda de comunicare serială RS-485 și protocolul de comunicare Modbus pentru a realiza schimbul de date și de comandă de control între mai multe procesoare. Pentru a spori eficiența și coordonarea comunicației seriale, autorul a implementat numeroase măsuri în arhitectura hardware și software a mecanismului de comunicare, obținând rezultate excelente. În timpul fazei de depanare a comunicării sistemului, a fost folosită o metodă în care fiecare modul CPU a comunicat mai întâi cu software-ul de testare Modbus standard înainte de a fi supus depanării interconexiunii reciproce, îmbunătățind semnificativ eficiența dezvoltării colaborative. Practica a demonstrat că această filozofie de proiectare simplifică structura sistemului, sporind în același timp mult eficiența și fiabilitatea operațională a dispozitivului.
2 Caracteristici ale dispozitivului de protecție completă a motorului
Dincolo de funcțiile cuprinzătoare de protecție, dispozitivul de protecție a motorului integrează capabilități de măsurare, telecontrol și comunicare. Ecranul său mare-Afișajul LCD cu caractere chinezești permite o interfață-focută pentru utilizator. Utilizând comunicarea magistrală CAN cu gazda de monitorizare, acesta formează un subsistem într-un sistem de automatizare ierarhic, distribuit. Pentru a optimiza funcționalitatea sistemului pentru cerințele sale multi-tasking, a fost adoptată o arhitectură cu mai multe-CPU. Un CPU se ocupă de eșantionarea și transmiterea periodică a impulsurilor; modulul CPU principal gestionează procesarea datelor, calculul parametrilor electrici, diagnosticarea defecțiunilor și operațiunile de comutare; în timp ce CPU-ul modulului de placă supraveghează interacțiunea uman-mașină și facilitează comunicarea cu modulul principal de protecție și gazda de monitorizare. Fiecare modul CPU are sarcini clar definite, facilitând dezvoltarea colaborativă de către mai mulți ingineri în timpul implementării. Comunicația serială leagă CPU-ul principal și CPU-ul panoului, permițând interacțiunea dintre om-mașină și astfel ocupând o poziție critică. Stabilirea unui mecanism de comunicare rațional este nucleul secțiunii de comunicații seriale, determinând coordonarea comunicării și eficiența depanării în timpul etapelor ulterioare ale dezvoltării sistemului.
3 Introducere în mecanismele de comunicare
3.1 Proiectarea hardware a mecanismului de comunicare
Mecanismul de comunicare propus pentru acest sistem vizează eficiență și fiabilitate ridicate. RS-485 folosește o structură semi-duplex, care este adesea mai practică decât full-duplex în aplicațiile de teren. Aici se adoptă o conexiune simplificată folosind doar două linii de semnal. Schema circuitului interfeței sistemului este prezentată în Figura 1. Nivelurile logice TTL ieșite de microcontrolerul 8051 de pe modulul de protecție principal sunt izolate optic, apoi sunt convertite la niveluri RS-495 de către cipul MAX485. Ulterior, cipul MAX485 de pe modulul panoului le convertește înapoi la niveluri logice TTL pentru citire de către microcontrolerul 8031. Pe partea microcontrolerului 8051, pinul P2.7 al portului I/O paralel 2 controlează pinul de activare a intrării MAX RE și pinul de activare a ieșirii DE. După cum se arată în Figura 1, când P2.7 scoate un nivel înalt, RE este activat, permițând părții microcontrolerului să primească date. Când P2.7 emite un nivel scăzut, DE este activat, permițând părții microcontrolerului să transmită date. Această abordare previne pierderea datelor din cauza suprapunerii cauzate de transmisia oarbă, asigurând o calitate ridicată a comunicației și o viteză de transmisie fiabilă.

3.2 Protocolul de comunicare
Pentru a asigura transmisia exactă a datelor între două module din cadrul dispozitivului de protecție, este esențial un set de specificații care reglementează transferul de informații-inclusiv modurile de transmisie, formatele de date și conținutul-. Acesta constituie protocolul sau protocolul de comunicare. Fără un software de depanare matur, ușor disponibil, modulul CPU principal funcționează în esență ca o cutie neagră, ceea ce duce la provocări numeroase și dificil de-de-depășit în timpul testării integrării sistemului. Prin urmare, protocolul de comunicare Modbus adoptat pe scară largă a fost selectat și simplificat pentru a se potrivi cerințelor specifice ale dispozitivului, permițând comunicarea inter-module cu succes cu eficacitate dovedită. Modbus utilizează un model de comunicare master-slave. Masterul trimite mai întâi o comandă de solicitare de comunicare către slave. Sclavul răspunde apoi masterului cu date bazate pe codul funcției din comanda de solicitare. Fiecare sclav are o adresă unică. Atât cadrele de cerere trimise de master, cât și cadrele de răspuns trimise de slave încep cu adresa slave. Sclavii citesc doar comenzile adresate lor înșiși și ignoră mesajele care încep cu alte adrese slave. Această funcționalitate este implementată folosind Modul 2 sau Modul 3 al portului serial 8051. Acest model de comunicare cu întrebare-și-răspuns îmbunătățește semnificativ acuratețea comunicării. Modul de transmisie RTU al Modbus este adoptat în acest dispozitiv.
4 Măsuri pentru îmbunătățirea fiabilității comunicării
Ultimii doi octeți ai unui mesaj Modbus servesc drept sumă de control. Comunicarea RTU folosește verificarea redundanței ciclice CRC-16 pentru detectarea erorilor. Mecanismul său de codificare/decodare este relativ simplu, cu o rată de eroare scăzută, realizabil prin metode de calcul sau de programare. Mai jos sunt prezentate mai multe abordări:
4.1 Algoritm de bază (calcul manual)
Folosind CRC16-CCITT ca exemplu: suma de control CRC este de 16 biți, iar polinomul generator este de 17 biți. Să presupunem că fluxul de date este de 4 octeți: BYTE, BYTE, BYTE, BYTE[0];
Schimbați fluxul de date la stânga cu 16 biți, extinzându-l efectiv cu un factor de 256×256. Apoi, efectuați împărțirea după polinomul generator 0x11021 folosind divizarea non-de împrumut (echivalent cu XOR pe biți). Restul rezultat este suma de control CRC. Fluxul de date transmis este format din 6 octeți: BYTE, BYTE, BYTE, BYTE[0], CRC, CRC[0].
4.2 Algoritmul computerului 1 (Algoritmul tip-biți)
1) Plasați cei 16 biți superiori (BYTE, BYTE) ai fluxului de date extins (6 octeți) într-un registru de 16 biți;
2) Dacă bitul cel mai semnificativ al registrului este 1, deplasați registrul la stânga cu un bit (obținând bitul cel mai puțin semnificativ din octetul următor), apoi efectuați o operație XOR cu forma simplificată a polinomului generator; în caz contrar, pur și simplu deplasați registrul la stânga cu un bit (obținând bitul cel mai puțin semnificativ din octetul următor);
3) Repetați pasul 2 până când întregul flux de date (6 octeți) este mutat în registru;
4) Valoarea din registru este suma de control CRC CRC, CRC[0].
4.3 Algoritmul computerului 2 (Algoritmul de tip byte-) (256^n denotă 256 ridicat la puterea lui n)
Reprezentați fluxul de date ordonat în octeți-ca un polinom matematic. Fie fluxul de date BYTE[n] BYTE[n-1] BYTE[n-2] ... BYTE[0] este reprezentat ca expresie matematică
BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0], unde „+” indică operația XOR. Fie polinomul generator G17 (17 biți), atunci codul CRC este CRC16.
CRC16=(BYTE[n] × 256^n + BYTE[n-1] × 256^(n-1) + ... + BYTE × 256 + BYTE[0]) × 256^2/G17
Aceasta implică deplasarea fluxului de date rămas cu 16 biți și apoi împărțirea la polinomul generator G17.
Derivarea arată că codul de verificare CRC pentru BYTE[n-1] este egal cu rezultatul XOR al celor 8 biți superiori ai codului de verificare CRC al octetului anterior Y[n] (YH8[n]) și octetul curent BYTE[n-1].
Algoritmul de tip-octet este următorul:
1) Inițializați grupul de registre CRC la toate „0” (0x0000).
2) Deplasați grupul de registre CRC cu 8 biți la stânga și stocați-l în grupul de registre CRC.
3) Efectuați o operație XOR între cei 8 biți înalți ai grupului de registre CRC inițial (deplasați cu 8 biți la dreapta) și octetul de date pentru a obține un index care indică tabelul de valori.
4) Efectuați o operație XOR între valoarea tabelului indicată de index și grupul de registre CRC.
5) Creșteți indicatorul de date. Dacă procesarea datelor nu este completă, repetați pasul 2).
6) Obțineți CRC.
5 măsuri pentru îmbunătățirea eficienței comunicării
5.1 Activități separate de recepție și transmisie de comunicare
Microcontrolerul 8051 poate transmite și primi date prin portul serial folosind întreruperi. Controlerul de port serial SCON acceptă inițializarea și adresarea de biți. Când apare o solicitare de întrerupere a portului serial, cei doi biți inferiori ai SCON blochează întreruperile de transmisie și recepție. Când CPU scrie date sau un caracter în bufferul de transmisie al portului serial SUBF (instrucțiune: MOV SUBF, A), transmițătorul începe să trimită. După finalizarea unui cadru de date, hardware-ul setează indicatorul TI la „1”, indicând că portul serial solicită o întrerupere de la CPU pentru a trimite următorul cadru de date. În mod similar, dacă receptorul portului serial este activat pentru recepție, la primirea unui cadru de date, indicatorul RI este setat la 1, indicând faptul că portul serial solicită o întrerupere de la CPU pentru a citi datele din bufferul de date de recepție.
5.2 Reducerea duratei de întrerupere
Deoarece în proiectarea arhitecturii software sunt utilizate mai multe întreruperi, pentru a asigura funcționarea fiabilă a programului și pentru a minimiza probabilitatea conflictelor între diferitele sarcini, implementarea software-ului ar trebui să se străduiască să simplifice sarcinile diferitelor întreruperi și să scurteze timpul de execuție a acestora. În cadrul subrutinei de întrerupere a comunicației, efectuați sarcini esențiale la introducerea întreruperii, cum ar fi: ștergerea biților de stare corespunzători din registrul de control al portului serial, citirea caracterelor primite sau scrierea caracterelor care urmează să fie transmise din/în buffer, creșterea numărului de caractere primite sau transmise etc. Apoi ieșiți imediat din întrerupere. Alte sarcini, cum ar fi validarea cadrelor, răspunsul la comenzile de cadre primite (telemetrie/telecomandă) și pregătirea cadrelor de transmisie, ar trebui gestionate în cadrul programului principal.
5.3 Detectare eficientă a terminării cadrului pentru a preveni stagnarea comunicării
Utilizarea unui temporizator software dedicat pentru a detecta sfârșitul unui cadru primit împiedică sarcinile de comunicare să persistă dacă un cadru este primit incomplet, asigurând astfel recepția în timp util a cadrelor ulterioare. Deoarece intervalul de timp dintre octeți dintr-un cadru este mult mai scurt decât intervalul dintre cadru-la-cadru, temporizatorul software este pornit de fiecare dată când este primit un nou octet. Cronometrul este setat la intervalul minim-la-cadru. Acest interval variază în funcție de ratele baud diferite. Dacă următorul octet este primit înainte de expirarea timpului prestabilit, acesta indică cadrul incomplet și temporizatorul repornește. Dacă cronometrul numără invers până la timpul prestabilit, acesta declanșează numărul de întrerupere corespunzător. În cadrul subrutinei de întrerupere a temporizatorului, octetul de semnalizare de sfârșit al cadrului este setat, ceea ce înseamnă că recepția cadrului este completă. După ce programul master detectează finalizarea recepției unui cadru, validează integritatea cadrului prin verificarea adresei slave și a octetului de verificare a redundanței ciclice (CRC). Dacă este confirmat ca un cadru valid destinat masterului, acesta procesează comanda de cadru pe baza codului său de funcție și se pregătește să trimită un cadru. Când slave primește un mesaj incorect, trimite înapoi un cadru de eroare. Dacă mesajul primit are un CRC incorect, slave poate alege să nu răspundă. Dacă masterul nu primește un răspuns de la slave în timpul specificat, va retransmite mesajul de solicitare. Dacă mai multe retransmisii nu reușesc să primească un răspuns de la slave, este raportată o eroare de comunicare.
5.4 Determinarea vitezei de comunicare
Deoarece toate dispozitivele se află în același șasiu, distanța dintre module este minimă. Modbus funcționează pe RS485 pentru comunicații la distanță lungă-, eliminând nevoia de a lua în considerare efectele distanței asupra ratei de transmisie. În plus, modul de comunicare master-slave previne congestionarea liniei. Prin urmare, din perspectiva eficienței comunicării, atâta timp cât rata de transmisie setată nu depășește limita maximă a vitezei de transmisie a cipului utilizat în modul, o viteză de transmisie mai mare are ca rezultat un schimb de informații mai rapid și o eficiență de comunicare mai mare. Setarea vitezei de transmisie pentru a fi exact aceeași pentru ambele părți de comunicare asigură că capătul de recepție prelevează fiecare bit de date la mijlocul ciclului de biți, obținând astfel o comunicare fiabilă.
5.5 Metode rezonabile de depanare
În timpul depanării, mai întâi testați comunicarea dintre fiecare modul CPU și microcomputer prin modulul de conversie a datelor RS485/RS232. După testarea individuală cu succes, treceți la depanarea inter-module, îmbunătățind semnificativ eficiența generală a depanării. În timpul depanării comunicațiilor modul-la-computer, computerul folosește software de depanare Modbus pentru a simula procesul de comunicare al masterului, solicitând în mod activ informații de la slave. Acest lucru face ca întregul proces de recepție și transmisie să fie transparent și clar, permițând rezolvarea în timp util a problemelor modulelor. În timpul depanării comune, software-ul de monitorizare a magistralei observă datele din ambele părți pentru a identifica și rezolva rapid problemele.
6 puncte de inovare ale acestei lucrări
În primul rând, această lucrare adoptă Modbus, un standard industrial universal, în dispozitivul de protecție. Instrumentul software necesar poate fi obținut direct de pe site-urile web relevante fără a suporta costuri de proprietate intelectuală. În al doilea rând, dispozitivul de protecție implementează multitasking și utilizează protocolul Modbus pentru a crea un mecanism comun rezonabil de depanare între modulele CPU, îmbunătățind considerabil eficiența dezvoltării sistemului colaborativ.




