Acasă > forum > controlerele SlimLine e Netsyst (LogicLab) > Informații privind administrarea CAN bus
- Acest subiect are 9 răspunsuri, 3 participanți și a fost actualizat ultima dată 4 ani, acum 10 luni da Sergio Bertana.
-
AutorPost
-
Septembrie 6, 2013 la 9: 50 am #35409Rubenparticipant
Bună ziua, am nevoie de informații mai detaliate despre autobuzul CAN al Slimline. Am citit manualul de programare, dar nu pot înțelege pe deplin.
SYSCANMESSAGE.MsgID: Ce înseamnă FF: Bit 31?
SysCANTSetMode: Filtru și mască se referă la ID-ul mesajului? Logică între ele? Sunt filtre Rx și Tx?
SysCANRxMsg: În exemplu, Masca este 16 # 3FFFFFFF. Pentru 29 de biți nu ar trebui să fie 16 # 1FFFFFFF? ID-ul din exemplu este 16 # 00000000. Aceasta permite numai Rxing-ul pachetelor cu SYSCANMESSAGE.MsgID 16 # 00000000 nu toate pachetele. E adevarat ?
Aveți documentație mai detaliată?
Care sunt timpii de execuție pentru SysCANTxMsg () și SysCANRxMsg ()?
Controlerul magistralei CAN și cel al lui Freescale MX257?Septembrie 10, 2013 la 9: 06 am #37760Sergio BertanaAdministrator al forumuluiÎncerc să clarific modul în care funcționează CAN Bus SlimLine, să începem spunând că controlerul CAN 1 prezent în controlerul ARM este folosit ca controler CAN (I atașează extrage foaie de date). Bitul de biți 31 (FF) al SYSCANMESSAGE.MsgID indică dacă mesajul are un identificator pentru un bit 11 sau un bit 29.
Pentru a utiliza CAN este necesar să-l inițializăm definind viteza și filtrele, de obicei este setat să primească toate mesajele SysCANSetMode(CAN_500KBIT, 16#00000000, 16#00000000);
Primirea mesajelor CAN
Mesajele sunt recepționate întrerupte și stocate în memoria tampon de recepție (mesaje 32 până la 8 octeți de date fiecare). Programul de utilizator cu funcția SysCANRxMsg(Mask, ID, ADR(Msg)); extrage mesajul dorit din buffer și îl stochează în variabilă msg. Este necesar să executați funcția până când bufferul de recepție este complet gol, gestionând toate mesajele primite. Timpul de execuție al funcției este de câteva, dar pentru a nu pierde mesaje, acesta trebuie executat ciclic într-un timp mai mic decât timpul de umplere a tamponului (32 de mesaje).Transmiterea mesajelor CAN
Mesajele sunt încărcate în memoria tampon de transmisie (mesaje 32 până la 8 octeți de date fiecare) cu funcția SysCANTxMsg(ADR(Msg)); mesajele sunt apoi transmise prin întrerupere de către sistem.Iunie 15, 2019 la 6: 12 am #48173RuboxparticipantAm îndoieli cu privire la utilizarea comunicării CAN, am un procesor RS485 extins (deci nu gestionează CAN, nu-i așa?) Și un modul de expansiune PCB126C130 care are caracteristici de bus de câmp CAN / RS485.
Pot folosi modulul de expansiune pentru a citi valorile folosind CAN?
Cum se face totul? În funcțiile de citire / scriere CAN nu văd un fel de adresă a modulului pe care să se facă citirile și scrie: este ceva gestionat automat de CPU?
Vă mulțumim pentru ajutorul pe care veți dori să-l acordați.
Iunie 15, 2019 la 6: 21 am #48178Sergio BertanaAdministrator al forumuluiModulul CPU cu port RS485 nu poate gestiona CAN-ul, spațiul din modulul CPU este redus, astfel încât am împărțit spațiul dintre RS485 și CAN, trebuie să alegem versiunea dorită.
Pe modulul de extindere PCB126C130 există un port RS232 care poate fi utilizat de accesul programului este exact același cu cel al porturilor de pe modulul CPU care utilizează FB SysSerialPort, definind definiția în câmpul COM PCOMx.y unde x este adresa modulului și cu y numărul de port pe formularul în cazul tău numărul 0.
Iunie 15, 2019 la 6: 47 am #48191RuboxparticipantBună ziua, mulțumesc pentru răspuns: nu am găsit niciodată cum să adresez portul serial al modulelor. Deci, pot folosi conectorul P1 de pe modulul de expansiune.
Pentru a utiliza conectorul P12 al acelui modul pentru comunicații CAN cum pot să fac, întotdeauna dacă este posibil?
Iunie 15, 2019 la 6: 50 am #48194Sergio BertanaAdministrator al forumuluiDa, portul serial RS232 poate fi folosit, dar modulul pe care îl aveți (Model PCB126C130) are 1 ca primul număr după nivelul C, este un modul cu RS232 numai, numărul 3 indică canalele de intrare analogice 10.
De fapt, în modulul dvs. conectorul P12 nu este montat.
Iunie 15, 2019 la 8: 02 am #48198RuboxparticipantEmh ... (există chipul care se îngropă?): Acestea sunt întrebările pe care le puneți când nu aveți hardware-ul la îndemână, ci doar ceea ce vă spune clientul că a citit despre caracteristici.
Mă îndoiam dacă să accesez sistemul care iese cu CAN și RS232 ... și am eliminat toate îndoielile 🙂
Înainte de a pune alte întrebări ca idiot, voi citi documentația de două ori, promit!
Mulțumesc și lucrează bine
Iunie 15, 2019 la 8: 04 am #48202Sergio BertanaAdministrator al forumuluiÎntrebările clienților sunt întotdeauna utile ... o întrebare ne poate oferi răspunsuri utile pentru a înțelege mai bine cum funcționează sistemul.
Iunie 17, 2019 la 6: 06 am #48208RuboxparticipantAșa că îmi permit o altă întrebare, presupunând că CAN-ul nu l-am folosit niciodată. Am citit ceva pe net ca să înțeleg ceva mai mult.
Dacă am avut un modul de extindere cu portul CAN și am conectat un sistem care comunică pe acesta la acesta, este corect că în FB nu există „adresare” a portului CAN? Ar trebui să fie un fel de „TCP” care trimite pachetul de date prin porturile CAN și așteaptă răspunsul, nu?
Cu toate acestea, ar trebui să am încă CPU-ul principal care gestionează protocolul CAN, altfel nu aș putea să citesc nimic oricum?
Iunie 17, 2019 la 6: 14 am #48225Sergio BertanaAdministrator al forumuluiÎn prezent, singura modalitate de a gestiona magistrala CAN este de a avea versiunea CAN a modulului CPU, (Consiliul MPS054B200). Dacă te uiți la Manual de programare IEC61131-3, veți găsi indicații despre modul de utilizare a funcțiilor SysCANTxMsg e SysCANRxMsg.
Un mesaj CAN este format dintr-un identificator unic la 11 sau 29 de biți și un cadru de date care poate atinge maximum 8 octeți. Toate dispozitivele din rețea sunt master și slave, fiecare mesaj transmis este primit de toate sistemele din rețea care îl filtrează cu ID-ul dorit.
-
AutorPost
- Trebuie să fiți autentificat pentru a răspunde la acest subiect.