Acasă > forum > controlerele SlimLine e Netsyst (LogicLab) > Încărcare și încărcare de sarcină de viteză PENTRU execuția ciclului
- Acest subiect are 3 răspunsuri, 4 participanți și a fost actualizat ultima dată 9 ani, acum 6 luni da maxim.
-
AutorPost
-
Aprilie 27, 2011 la 3: 14 pm #35001Alessandroparticipant
Mă întrebam dacă în linia PLC Slim Line există un card pentru a citi celulele de încărcare și dacă doriți mai multe informații tehnice, tipul de conexiune, filtrele utilizate etc. din moment ce lucrez la o scară de greutate.
De asemenea, am vrut să înțeleg performanța procesorului, pentru acest proiect trebuie să fac bucle FOR, în special că, chiar dacă este optimizat, poate atinge și depăși 35000 de cicluri, în interiorul buclei, unele adăugări și comparații nu mai sunt, de făcut în câteva zecimi de al doilea.
Aprilie 27, 2011 la 3: 23 pm #36717Sergio BertanaAdministrator al forumuluiIl modul de extensie I / O analogic care are intrări diferențiale cu achiziție pe 23 de biți va fi în curând actualizat cu un nou firmware și pentru citirea tensometrului. Chiar dacă este dat numărul mare de biți ai convectorului, este deja posibil să se obțină valorile analogice în ieșire de pe puntea de măsurare și să se obțină valoarea greutății.
În ceea ce privește filtrarea valorii greutății dobândite, este posibilă implementarea algoritmului de filtrare din limbajul ST. Avem câteva exemple de filtre pe care le putem oferi la cerere.
În ceea ce privește bucla FOR, 35000 de bucle sunt destul de multe, dar dacă nu este posibil să se efectueze algoritmi de simplificare, jocul forțat este să realizeze numărul necesar de bucle. Am realizat un program ST simplu, care execută 40000 de cicluri cu trei sume și o comparație în interior, toate pe variabile pe 32 de biți, iar timpul de execuție este de 56 mSec.
PROGRAMUL ST
VAR
i: UINT; {DE: "Contor auxiliar"}
AddArray: ARRAY [0..3] OF UDINT; {DE: "Adăugarea matricei"}
END_VARFOR i: = 0 TO 40000 DO
AddArray [0]: = AddArray [0] + 1;
AddArray [1]: = AddArray [1] + 1;
AddArray [2]: = AddArray [2] + 1;
IF (AddArray [2] = AddArray [3]) Apoi AddArray [3]: = AddArray [3] + 1; end_if;
END_FOR;END_PROGRAM
Octombrie 7, 2014 la 4: 48 pm #38447RobertoparticipantO întrebare rapidă, deoarece ar trebui să ne confruntăm cu un sistem de cântărire: am văzut că cardul scade la 17 biți cu o sibilină (min) scrisă alături. Cum ar trebui interpretat?
A doua întrebare, trișăm puțin pentru semn sau este posibil să-l folosim ca unipolar folosind toate cele 130 de puncte K?
Octombrie 7, 2014 la 6: 02 pm #38448maximModeratorCei 17 biți (min) se referă la cel mai rău caz care este atunci când se utilizează GAIN = 128. Pentru celelalte câștiguri aici sunt diferitele rezoluții:
- AD_VIN_VREF_G_1: 19.5 biți
- AD_VIN_VREF_G_2: 18.5 biți
- AD_VIN_VREF_G_4: 19.0 biți
- AD_VIN_VREF_G_8: 19.0 biți
- AD_VIN_VREF_G_16: 18.5 biți
- AD_VIN_VREF_G_32: 18.5 biți
- AD_VIN_VREF_G_64: 18.0 biți
- AD_VIN_VREF_G_128: 17.0 bițiAcestea sunt biții reali, adică eliminând deja bitul de semn. În mod clar, câștigul de a alege depinde de caracteristicile tensometrului. Mai multe informații în acest subiect.
-
AutorPost
- Trebuie să fiți autentificat pentru a răspunde la acest subiect.