|
|
"Plc_cnt" := "Plc_cnt" + 1; IF "Plc_cnt" > 100 THEN "Plc_cnt" := 0; ; END_IF; // Calculez valoarea "Digi" "Digi" := 0; IF "B00" THEN "Digi" := "Digi" + 1; END_IF; IF "B01" THEN "Digi" := "Digi" + 2; END_IF; IF "B02" THEN "Digi" := "Digi" + 4; END_IF; IF "B03" THEN "Digi" := "Digi" + 8; END_IF; IF "B04" THEN "Digi" := "Digi" + 16; END_IF; IF "B05" THEN "Digi" := "Digi" + 32; END_IF; IF "B06" THEN "Digi" := "Digi" + 64; END_IF; IF "B07" THEN "Digi" := "Digi" + 128; END_IF; IF "B08" THEN "Digi" := "Digi" + 256; END_IF; IF "B09" THEN "Digi" := "Digi" + 512; END_IF; IF "B10" THEN "Digi" := "Digi" + 1024; END_IF; IF "B11" THEN "Digi" := "Digi" + 2048; END_IF; IF "B12" THEN "Digi" := "Digi" + 4096; END_IF; IF "B13" THEN "Digi" := "Digi" + 8192; END_IF; IF "B14" THEN "Digi" := "Digi" + 16384; END_IF; IF "B15" THEN "Digi" := "Digi" + 32768; END_IF; // Activez cele doua led-uri "k" := "k" + 1; IF "k" > 10 THEN "k" := 1; END_IF; IF ("k" MOD 2) = 0 THEN "C16" := TRUE; "C17" := FALSE; ELSE "C16" := FALSE; "C17" := TRUE; END_IF; // Actualizez C0-C15 din valoarea "Com" IF (NOT "Loc") THEN #vl := "Com"; FOR #j := 0 TO 15 DO IF (#vl MOD 2) = 0 THEN #b := FALSE; ELSE #b := TRUE; END_IF; #vl := #vl / 2; CASE #j OF 0: "C00" := #b; 1: "C01" := #b; 2: "C02" := #b; 3: "C03" := #b; 4: "C04" := #b; 5: "C05" := #b; 6: "C06" := #b; 7: "C07" := #b; 8: "C08" := #b; 9: "C09" := #b; 10: "C10" := #b; 11: "C11" := #b; 12: "C12" := #b; 13: "C13" := #b; 14: "C14" := #b; 15: "C15" := #b; END_CASE; END_FOR; END_IF; |
<!-- AWP_In_Variable Name='"Nume_var"' --> |
:="Nume_var": |
<!-- AWP_In_Variable Name='"Com"' --> <!-- AWP_In_Variable Name='"AO0"' --> <!-- AWP_In_Variable Name='"AO1"' --> <form method="get" action="set_val.html"> <input type="submit" value="Modific"> Com <input type="text" name='"Com"'value=':="Com":'> AO0 <input type="text" name='"AO0"'value=':="AO0":'> </form> |
Capitol realizat cu contributia asist: Tudor Covrig |
Capitol realizat cu contributia stud:Iordache Andrada-Bianca- AIA IV |
Se va realiza in continuare conectarea PLC-ului Siemens S7-1200
la o baza de date de tip SQL. Pentru
a realiza conectarea s-a utilizat libraria LSql, care poate fi descarcata de la adresa: https://support.industry.siemens.com/cs/document/109779336/connecting-a-s7-1200-s7-1500-to-a-sql-database-?dti=0&lc=en-WW
Configurarea PLC-ului:
1.
Se descarca libraria LSql
2. Se creeaza un nou proiect in TIA Portal, unde se adauga configuratia PLC-ului. In paralel se dezarhiveaza proiectul descarcat si se deschide. Din proiectul descarcat se copiaza urmatoarele elemente in noul proiect creat:
·
"LSql" block folder
·
Data
block "SqlConfig"
·
Data
block "SqlCommand"
·
Data
block "SqlReceive"
·
PLC
data types folder
·
X1NetworkToSQLServer
(din meniul Device and Networks)
3. Blocul LSql_Microsoft este apelat intr-un
block ciclic (de exemplu
Main) si se conecteaza intrarile si iesirile
conform figurii urmatoare:
Acest bloc este controlat prin intermediul intrarilor "enableLSql" si "executeSqlCommand". Astfel cand intrarea "enableLSql" este setata "TRUE" se realizeaza
conexiunea la baza de date iar cand "executeSqlCommand" este setata "TRUE" se executa
query-ul selectat.
4.
Se seteaza urmatorii parametrii in blocul de date SqlConfig:
Configurarea Server-ului Microsoft SQL Server Express
Se descarca si se instaleaza Microsoft SQL
Server Express basics de la adresa:
https://www.microsoft.com/en-US/download/details.aspx?id=55994
Se descarca si se instaleaza Microsoft SQL
Server Management Studio
Loggarea in SQL server
1.
Porniti Microsoft SQL Server Management Studio
2.
Deschideti meniul
"Properties" a SQLEXPRESS
3.
In meniul Security activati
"SQL Server Authentication Mode" si confirmati modificarile
4.
Creati un nou user: Security
> Logins > New Login
5.
Selectati SQL Server authentication si
adaugati un user name si o parola
Asigurati-va ca
user-ul creat are dreptul de a accesa baza de date
Setarea portului pentru SQL server
1. Se deschide
“Microsoft SQL Server Configuration Manager” si se cauta “Protocols for SQLEXPRESS”. Se deschide
TCP/IP
2. Se activeaza
TCP/IP
3. Se deschide IP3,
se configureaza adresa IP si se seteaza portul
1433. Se activeaza si apasa OK.
4. Se restarteaza
server-ul SQL.
5. Se deschide wf.msc
6. Se adauga o noua regula in sectiunea “Inbound Rules” > “New Rule”
7. Se selecteaza
“Port” > “TCP” > “Specific local ports: 1433” > “Allow the connection”
> “Domain, Private, Public” > Finish
8. Se repeta pasul 7, dar de data aceasta se creeaza o noua regula pentru
portul 1434, UDP:
9. Urmatoare regula care trebuie creata este “Custom Rule”, astfel selectam “New Rule” >”Custom
rule” > “Customize…” > “Apply to this service” . Se apasa
OK si Next pana la final.
Exemplu aplicatie
de scriere in baza de date
Dupa ce s-au realizat pasii descrisi anterior, se deschide Microsoft SQL Server Management Studio si se acceseaza baza de date creata
1. In interiorul bazei de date se creaza un nou tabel de forma celui prezentat in figura urmatoare, cu numele “PLCDATA1”
2.
3. In proiectul creat se adauga un bloc de tip “Function Block” iar ca limbaj se selecteaza SCL
4. Functia se completeaza cu urmatoarele date si se apeleaza in Main
#sep := ',';
#close := ')';
#data := 'insert into PLCDATA1 values(';
#data1str := INT_TO_STRING(IN := #data1);
#data2str := INT_TO_STRING(IN := #data2);
#data3str := INT_TO_STRING(IN := #data3);
#data := CONCAT_STRING(IN1 := #data, IN2 :=
#data1str);
#data := CONCAT_STRING(IN1 := #data, IN2 := #sep);
#data := CONCAT_STRING(IN1 := #data, IN2 :=
#data2str);
#data := CONCAT_STRING(IN1 := #data, IN2 := #sep);
#data := CONCAT_STRING(IN1 := #data, IN2 :=
#data3str);
#data := CONCAT_STRING(IN1 := #data, IN2 :=
#close);
5. Se adauga HMI-ul in proiect si se conecteaza la PLC
6. Se adauga urmatoarele HMI tags
7. In Root Screen de adauga urmatoarele elemente
8. Elementele de tip “I/O Field” se conecteaza cu datele de intrare ale functiei create si se modifica tipul elementului > “Input”
9. Pentru butonul de “Start” se adauga un eviniment de tip “Click”, pe care se adauga functia “SetBit” la care ii se atribuie tag-ul “enable_db”. Acest tag se conecteaza cu tag-ul din PLC conform figurii.
10. Pentru switch se adauga pe evenimenul “Switch ON” functia SetBit si ii se atribuie tag-ul write_to_db. Pe evenimentul “Switch OFF” se adauga functia “ResetBit” careia ii se atribuie tag-ul “write_to _db”
11. Se incarca programul creat in PLC si in HMI si se testeaza astfel: se apasa butonul “Start DB” > se inscriu valorile dorite > se comuta switch-ul in pozitia ON > se cauta inregistrarile in baza de date.
<!-- AWP_In_Variable Name='"Nume_var"' --> |
:="Nume_var": |
|
Termen | Descriere |
SCADA | Supervisory Control And Data Aquisition |
OPC | Open Platform Communications |
SQL | Structured Query Language |
SCL (Structured Control Language) | Limbaj pentru programarea PLC-urilor de tipul SIMATIC S7-1200/1500 |
|