Acasă > forum > controlerele SlimLine e Netsyst (LogicLab) > Actualizare I / O prin FB sau pe imagine proces
- Acest subiect are 4 răspunsuri, 3 participanți și a fost actualizat ultima dată 9 ani, acum 10 luni da Sergio Bertana.
-
AutorPost
-
Aprilie 26, 2011 la 10: 38 am #35000AnonimInactiv
Lucrez cu o linie Slim și un terminal Weintek conectat prin ethernet modbus.
Lucrând la proiectul meu, mă confrunt cu această îndoială, ce se schimbă între gestionarea I / O a sistemului prin imaginea procesului și apoi indicarea variabilei de intrare ca% IX3.1 de exemplu și variabila de ieșire ca% QX1.0 de exemplu. XNUMX și, în schimb, să le gestionați prin blocurile funcționale I / O get / set?
Poate că diferența este că, dacă activez o ieșire prin blocul funcțional, acesta este activat imediat (în afară de 300us pentru a executa comanda), în timp ce, dacă îl gestionez în imaginea procesului, va fi activat la sfârșitul sarcinii plc?
Dacă da, la ce sarcină se referă imaginile procesului, la cea lentă sau la cea din spate?
Aprilie 26, 2011 la 10: 45 am #36714Sergio BertanaAdministrator al forumuluiÎntrebarea este interesantă și oferă o modalitate de a clarifica modul în care sistemul Slim Line actualizează I / O.
Toate modulele I / O logice conectate la modulul CPU sunt actualizate automat (imagine proces) și mapate în tabelele% IX și% QX din sarcină lentă. Intrările sunt achiziționate înainte și ieșirile sunt gestionate după executarea programului utilizator. Deci imaginea stării unei I / O este valabilă pentru întreaga execuție a sarcinii lente.
Pentru sarcina înapoi, se creează o imagine de proces „paralelă” care raportează starea intrărilor înainte de execuție și gestionează ieșirile după executarea programului utilizator, această „imagine” a stării unei I / O este valabilă și pentru întreaga execuție a sarcinii din spate. Atenție! gestionarea aceleiași ieșiri logice atât în sarcina lentă, cât și în cea din spate creează dezechilibre între cele două sarcini ed è da evitare.
nella sarcină rapidă dacă doriți să gestionați I / O la viteza de execuție a sarcinii, este necesar să obțineți valoarea acesteia și să gestionați activarea acesteia cu FB-urile corespunzătoare. Dacă utilizați cele mapate în tabelele% IX și% QX, acestea vor fi actualizate oricum la viteza de execuție a sarcinii lente. Atenție! executarea sarcinii rapide întrerupe executarea sarcinii lente, acționând astfel asupra variabilelor% IX și% QX „murdare” imaginea procesului sarcinii lente.
Utilizarea FB-urilor de gestionare I / O așa cum ați spus vă permite să achiziționați și să gestionați modulele I / O direct, indiferent de imaginea procesului. Atenție! gestionarea unui modul de ieșire trebuie făcută având în vedere că sarcina lentă va gestiona imaginea procesului, prin urmare ar putea seta în ieșiri o valoare diferită de cea setată de FB determinând ieșirile să clipească.
Aprilie 26, 2011 la 1: 26 pm #36715Sergio BertanaAdministrator al forumuluiÎn ceea ce privește gestionarea I / O analogică, trebuie utilizate FB-urile corespunzătoare. Este posibil să introduceți FB-uri indiferent în toate sarcinile, dar dacă nu pentru cazuri excepționale, sfatul meu este să introduceți apelul în sarcina înapoi.
De asemenea, este posibil să obțineți o intrare și / sau să gestionați o ieșire pe un modul analogic într-o sarcină și să obțineți o altă intrare și / sau să gestionați o altă ieșire din același modul într-o altă sarcină.
Dacă o valoare de intrare analogică este utilizată în mai multe sarcini, aceasta este dobândită în sarcina executată mai rapid și se folosește valoarea dobândită în cealaltă sarcină, fără a rula din nou FB.
Iunie 27, 2014 la 11: 27 pm #38296FabioparticipantNu înțeleg de ce exemplele precum FBOnOffCycle nu arată intrările în schimbare nici în simulare, nici în încercarea de a da tensiune terminalului DI00 al procesorului. M-am gândit că declarând% XI0.0 ar fi suficient ca intrarea să fie citită fără a fi nevoie să adăugați FB-uri de citire corespunzătoare. Fac ceva greșit?
Iunie 28, 2014 la 6: 20 am #38297Sergio BertanaAdministrator al forumuluiDeoarece 16 module pot fi conectate la magistrala de extensie a modulului CPU (Adresele de la 0 la 15), I / O ale modulului CPU sunt adresate cu adresa modulului 255. Deci, dacă utilizați procesarea imaginii de mapare, trebuie să mapați intrările ca % IX255.0,% IX255.1,… și ieșiri precum% QX255.0,% QX255.1,… Dacă gestionați I / O direct cu blocurile funcționale relative, trebuie să definiți adresa modulului 255.
Atenție, această regulă nu se aplică modulelor CPU NetlogIII, în acest caz, I / O din modulul CPU sunt mapate la adresa 0.
Motivul acestei diferențe este că forma NetlogIII se bazează pe un Modulul procesorului OEM, care are deja I / O cu fir (adresa modulului 255). Partea hardware fizică a I / O nu este altceva decât un Modul de expansiune I / O 20 (Cu adresa 0) conectat la magistrala de extensie a modulului CPU. Orice alte module de expansiune conectate la autobuz vor lua automat adrese de la 1 la 15.
-
AutorPost
- Trebuie să fiți autentificat pentru a răspunde la acest subiect.