Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • televizoare
  • Exemplu de ghid al programatorului de sisteme informatice. Documentatie tehnica

Exemplu de ghid al programatorului de sisteme informatice. Documentatie tehnica

Manualul de utilizare este compilat pe baza GOST 19.504-79. Ghidul programatorului este dezvoltat în trei cazuri:

– produsul software, prin scopul său principal, este un mediu de dezvoltare sau o bibliotecă (cum ar fi Delphi sau Qt);

– un produs complex sau software servește drept platformă pentru dezvoltarea de programe sau sisteme de un anumit tip (cum ar fi 1C sau Axapta);

– programul este distribuit împreună cu codul sursă sau este modificat constant de către dezvoltatori înșiși.

Sarcina evidentă a conducerii programatorului este de a oferi dezvoltatorului informații care îi vor fi suficiente pentru a-și crea propriile programe sau sisteme bazate pe produsul software dezvoltat.

Manualul programatorului ar trebui să explice:

– Cu ce ​​obiecte se ocupă programatorul, unde se află, cât timp există și cum interacționează între ele. Pe care dintre ele le creează el însuși și care îi sunt oferite inițial de mediu, cadru, bibliotecă.

– Ce alte instrumente de dezvoltare (în afară de produsul software dezvoltat) sunt necesare pentru a crea o aplicație sau un sistem. De exemplu, dacă produsul software dezvoltat este o bibliotecă, programatorul va avea nevoie de un compilator, un fel de mediu de dezvoltare și alte instrumente.

– În ce mediu funcționează aplicația sau sistemul. Care vor fi cerințele sale minime de sistem? Veți avea nevoie de vreun software suplimentar pentru a-l rula: cadre, runtime, interpreți.

– Ce reprezintă o aplicație minimă operabilă sau un sistem minim operabil. Ce obiecte trebuie create și în ce secvență, cum să le conectați între ele, astfel încât aplicația să poată realiza o parte din rezultatul minim.

– Cum (pas cu pas) să compilați o aplicație de lucru sau să implementați un sistem de lucru.

În plus, manualul programatorului trebuie să conțină descrieri complete ale tuturor obiectelor furnizate în produsul software. Dacă acestea sunt funcții, atunci ar trebui date rezumatele lor, dacă sunt clase, atunci descrieri ale interfețelor lor etc.

Dacă un produs software implică utilizarea unui limbaj de programare original și este echipat cu propriul compilator sau interpret, o descriere a acestuia trebuie inclusă în manualul programatorului.

Următoarele reguli trebuie respectate în textul manualului:

– Când introduceți un concept nou, ar trebui să vă bazați numai pe acele concepte care au fost introduse anterior sau sunt în mod evident familiare cititorului.

– Introducerea fiecărui concept trebuie justificată într-un fel.

Principala cerință la descrierea obiectelor individuale este caracterul complet al descrierii fiecăruia dintre ele.


Când descrieți obiecte, trebuie acordată o atenție deosebită următoarelor aspecte:

– Ceea ce trebuie neapărat să preceadă crearea și utilizarea unui obiect.

– Care sunt efectele secundare ale accesării obiectului.

– Caracteristici ale interpretării de către obiect a datelor transmise acestuia.

– Unde se află „fizic” (în ce fișier, în ce bibliotecă) obiectul.

– Este recomandabil să se furnizeze exemple de utilizare pentru fiecare obiect, mici fragmente de cod care să demonstreze crearea obiectului (dacă trebuie creat înainte de utilizare), transmiterea datelor de intrare către obiect, primirea datelor de ieșire și interpretarea acestora.

Este posibil să executați manualul programatorului în hipertext.

Structura ghidului programatorului:

1. Scopul și condițiile de utilizare ale programului.

2. Caracteristicile programului.

3. Acces la program.

4. Date de intrare și de ieșire.

5. Mesaje.

Ghidul programatorului poate fi completat cu diverse diagrame, de exemplu, diagrame de baze de date, diagrame de clasă, grafice de apel

Ca exemplu, este prezentat conținutul manualului de programare a sistemului dealerului e-port. Protocol client-server.

Sistemul „e-port dealer” este conceput pentru a primi și a efectua plăți instantanee la plata serviciilor de comunicații mobile, acces la internet etc. Serverul central al sistemului aparține grupului e-port și oricine poate deschide un punct de acceptare a plăților prin instalarea programului client pe computerul lor (conectat la Internet). Schimbul de date între serverul central și programul client se realizează folosind un protocol special. Protocolul este deschis, ceea ce permite diferitelor organizații: bănci, lanțuri de retail, rețele de terminale de plată, să efectueze plăți direct din propriile sisteme. Protocolul a fost dezvoltat de e-port Group, iar documentația tehnică a fost comandată de Philosoft.

INTRODUCERE

sistem e-port dealer: protocol client-server. Scopul și prezentarea generală a capacităților

Obiectivele protocolului

Principalele avantaje ale utilizării protocolului

1 Implementarea protocolului (gateway)

1.1 Informații generale

1.2 Structura aplicației

2. Cum funcționează gateway-ul

2.1 Înregistrare și raportare

2.1.1 Înregistrare

2.1.2 Raportare

2.2 Schimb de date cu serverul

2.2.1 Structura pachetului

2.2.2 Directoare

2.2.3 Ordine de schimb de pachete

2.3 Ciclul de procesare a operațiunii

2.3.2 Coadă

2.3.3 Analiza răspunsului serverului

2.3.4 Situații non-standard

3 Specificația protocolului

3.1 Elemente structurale ale pachetului

3.2 Antetul cererii

3.3 Antetul răspunsului

3.4 Completarea contului

3.5 Achiziționarea unui cod PIN

3.6 Întreruperea procesului de procesare a tranzacției

3.7 Proprietățile tranzacționale ale operațiunii

3.9 Director

3.11 Starea de funcționare

3.11.1 Exemple de mesaje privind starea tranzacției

3.11.2 Codurile de stare pentru tranzacțiile în așteptare sau finalizate

3.11 Notificări de sistem

4 GLOSAR

APLICAȚII

Anexa 1. DTD cerere XML și comentariu

Manualul programatorului se referă la documentația operațională și tehnică. Un astfel de document este în curs de dezvoltare pentru produse software. Destinat familiarizării de către un programator care va rezolva anumite probleme legate de funcționarea acestui program.

Când este nevoie de îndrumarea programatorului?

Îndrumarea programatorului este necesară în mai multe cazuri:

Programul pentru care este compilată documentația este un mediu de dezvoltare sau o bibliotecă.
Acest produs software oferă o platformă pentru scrierea de programe sau sisteme standard.
Produsul este distribuit împreună cu codul programului sau este modificat constant de către dezvoltator.

Cu ajutorul unui astfel de document, programatorului ar trebui să i se ofere toate informațiile necesare care pot fi folosite pentru a-și crea propriile produse software bazate pe acest sistem. Informațiile trebuie furnizate în cantitate suficientă. Dezvoltatorii, cu ajutorul manualului programatorului, au posibilitatea de a înregistra starea curentă a produsului lansat pentru a evita confuzia la lansarea de noi produse.

Sarcinile tipice ale unui astfel de document includ:

Clarificarea și explicarea către specialist a stării actuale a obiectelor, amplasarea acestora și metodele de interacțiune. De asemenea, conducerea programatorului trebuie să facă distincția clară între obiectele care sunt incluse inițial în sistem și obiectele pe care programatorul le creează independent.
O listă de instrumente de dezvoltare suplimentare care vor fi necesare atunci când lucrează, pe lângă produsul actual.
Clarificarea cerințelor de sistem, a mediului software și a instrumentelor necesare pentru lansare.

Mai jos este un exemplu (eșantion) de document " Manualul utilizatorului”, elaborată în baza ghidurilor RD 50-34.698-90.

Acest document este format dintr-un specialist IT, sau un specialist funcțional sau un redactor tehnic în timpul elaborării documentației de lucru pentru sistem și părțile sale la etapa „Documentație de lucru”.

Pentru a crea manualul de utilizare, instrumentul a fost luat ca exemplu Oracle Discoverer sistem informatic și analitic „Corporate Data Warehouse”.

Mai jos este compoziția manualului de utilizare în conformitate cu GOST. Pe scurt în cadrul fiecărei secțiuni Sunt date cerințele de conținut și textul exemplului de umplere.(evidențiat cu o linie verticală).

Secțiunile manualului de utilizare:

1. Introducere

În secțiunea „Introducere” indicați:

  1. zona de aplicare;
  2. o scurtă descriere a capacităților;
  3. nivelul de instruire al utilizatorului;
  4. o listă de documentație operațională pe care utilizatorul trebuie să o citească.

1.1. Zona de aplicare

Cerințele acestui document se aplică atunci când:

  • teste preliminare complete;
  • operațiune de probă;
  • teste de acceptare;
  • operare industriala.

1.2. Scurtă descriere a caracteristicilor

Sistemul informatic și analitic Corporate Data Warehouse (IAS KHD) este conceput pentru a optimiza tehnologia de luare a deciziilor de management tactic și strategic de către utilizatorii finali de afaceri pe baza informațiilor despre toate aspectele activităților financiare și economice ale Companiei.

IAS QCD oferă capacitatea de a lucra cu raportări reglementate și nereglementate.

Când lucrați cu raportare, se utilizează instrumentul de utilizator Oracle Discoverer Plus, care oferă următoarele capabilități:

  • generarea de rapoarte tabulare și încrucișate;
  • construirea diferitelor diagrame;
  • exportul și importul rezultatelor analizelor;
  • imprimarea rezultatelor analizei;
  • diseminarea rezultatelor analizei.

1.3. Nivel de utilizator

Utilizatorul IAS QCD trebuie să aibă experiență de lucru cu sistemul de operare MS Windows (95/98/NT/2000/XP), abilități de lucru cu Internet Explorer, software-ul Oracle Discoverer și, de asemenea, să aibă următoarele cunoștințe:

  • cunoașteți domeniul relevant;
  • cunoașteți elementele de bază ale analizei multivariate;
  • să înțeleagă modelul multidimensional al domeniului relevant;
  • să cunoască și să aibă abilități de lucru cu aplicații analitice.

Calificările utilizatorului trebuie să permită:

  • generați rapoarte în Oracle Discoverer Plus;
  • efectuarea analizei datelor.

1.4. Lista documentației operaționale pe care utilizatorul trebuie să o citească

  • Sistem informatic și analitic „Depozitul de date corporative”. PAȘAPORT;
  • Sistem informatic și analitic „Depozitul de date corporative”. DESCRIEREA GENERALĂ A SISTEMULUI.

2. Scopul și condițiile de utilizare a Oracle Discoverer Plus

În secțiunea „Scopul și condițiile de utilizare” indicați:

  1. tipuri de activități, funcții de automatizare cărora le este destinat acest instrument de automatizare;
  2. condiții, la îndeplinirea (îndeplinirea, apariția) cărora, utilizarea echipamentelor de automatizare este asigurată în conformitate cu scopul propus (de exemplu, tipul calculatorului și configurația mijloacelor tehnice, mediul de operare și software-ul general al sistemului, informațiile de intrare, stocarea mass-media, baza de date, cerintele de pregatire a specialistilor etc. .P.).

Oracle Discoverer Plus, ca parte a IAS QCD, este conceput pentru a automatiza pregătirea și personalizarea formularelor de raportare pentru indicatorii de performanță, precum și pentru cercetarea aprofundată a datelor bazată pe informațiile din depozitul de date corporative.

Lucrul cu Oracle Discoverer Plus ca parte a IAS QCD este posibil ori de câte ori este nevoie de a obține informații pentru analiză, control, monitorizare și luare a deciziilor pe baza acestora.

Lucrul cu Oracle Discoverer Plus ca parte a IAS QCD este disponibil pentru toți utilizatorii cu drepturi de acces stabilite.

3. Pregătirea pentru muncă

În secțiunea „Pregătirea pentru muncă” indicați:

  1. compoziția și conținutul mediilor de distribuție;
  2. ordinea de încărcare a datelor și a programelor;
  3. procedura de verificare a functionalitatii.

3.1. Compoziția și conținutul mediului de distribuție

Pentru a lucra cu IAS QCD, este necesar următorul software:

  1. Internet Explorer (inclus cu sistemul de operare Windows);
  2. Oracle JInitiator este instalat automat prima dată când un utilizator accesează QCD IAS.

3.2. Ordinea de încărcare a datelor și a programelor

Înainte de a începe să lucrați cu IAS QCD la locul de muncă al utilizatorului, trebuie să efectuați următorii pași:

  1. Trebuie să accesați site-ul web IAS QCD ias-dwh.ru.
  2. În timpul pornirii, va apărea o fereastră „Avertisment de securitate”, care va conține următoarele: „Doriți să instalați și să rulați „Oracle JInitiator”...” Faceți clic pe butonul „Da”.
  3. Apoi va începe instalarea Oracle JInitiator pe computer. Selectați butonul Următorul și apoi OK.

3.3. Procedura de verificare a funcționalității

Pentru a verifica disponibilitatea IAS QCD de la locul de muncă al utilizatorului, trebuie să efectuați următorii pași:

  1. Deschideți Internet Explorer; pentru a face acest lucru, faceți clic pe comanda rapidă „Internet Explorer” de pe desktop sau apelați-o din meniul „Start”.
  2. Introduceți adresa: ias-dwh.ru în bara de adrese Internet Explorer și faceți clic pe „Go”.
  3. În formularul de autentificare, introduceți numele de utilizator și parola. Faceți clic pe butonul „Următorul”.
  4. Asigurați-vă că aplicația Oracle Discoverer Plus este deschisă în fereastră.

Dacă aplicația Oracle Discoverer Plus nu pornește, trebuie să contactați asistența.

4. Descrierea operațiunilor

În secțiunea „Descrierea operațiunilor” indicați:

  1. descrierea tuturor funcțiilor, sarcinilor, seturilor de sarcini, procedurilor îndeplinite;
  2. descrierea operațiunilor procesului tehnologic de prelucrare a datelor necesare îndeplinirii funcțiilor, seturi de sarcini (sarcini), proceduri.

Pentru fiecare operațiune de prelucrare a datelor indicați:

  1. Nume;
  2. conditiile in care operatia poate fi efectuata;
  3. acțiuni pregătitoare;
  4. acțiunile principale în ordinea necesară;
  5. acțiunile finale;
  6. resursele cheltuite pentru operațiune.

4.1. Funcții și sarcini îndeplinite

Oracle Discoverer Plus, ca parte a IAS QCD, îndeplinește funcțiile și sarcinile prezentate în tabelul de mai jos:

4.2. Descrierea operațiunilor de proces tehnologic de prelucrare a datelor necesare îndeplinirii sarcinilor

Mai jos este o descriere a operațiunilor utilizatorului pentru a efectua fiecare sarcină.

Sarcină: „Vizualizarea raportării”

Operațiunea 1: Înregistrare pe portalul IAS QCD

  1. Computerul utilizatorului este conectat la rețeaua corporativă.
  2. Portalul IAS QCD este disponibil.
  3. IAS QCD funcționează în modul normal.

Etape pregătitoare:

Pe computerul utilizatorului, este necesar să se efectueze setări suplimentare date în paragraful 3.2 al acestui document.

  1. Faceți dublu clic pe butonul stâng al mouse-ului pe pictograma „IAS QCD” de pe desktop.
  2. În fereastra care se deschide, introduceți numele de utilizator în câmpul „Autentificare” și introduceți parola utilizatorului în câmpul „Parolă”. Faceți clic pe butonul „Următorul”.

Pasi finali:

Nu este necesar.

15-30 de secunde.

Pasul 2: Selectați un raport

Condiții în care poate fi efectuată operația:

Înregistrare cu succes pe portalul IAS QCD.

Etape pregătitoare:

Nu este necesar.

Acțiuni de bază în secvența necesară:

1. În fereastra „Workbook Creation Wizard” care apare, plasați un punct lângă elementul „Deschideți un registru de lucru existent”.


2. Selectați registrul de lucru dorit și faceți clic pe butonul „Deschidere”:


Pasi finali:

După ce ați terminat de lucrat cu raportul, trebuie să selectați elementul de meniu „Fișier”, apoi să selectați elementul „Închidere”.

Resurse cheltuite pentru operațiune:

15 secunde.

Sarcină: „Generarea formularelor de raportare tabelară și grafică”

Completați prin analogie.

5. Situații de urgență

În secțiunea „Situații de urgență” indicați: 1. acțiuni în cazul nerespectării condițiilor procesului tehnologic, inclusiv defecțiuni pe termen lung ale echipamentelor tehnice; 2. actiuni de refacere a programelor si/sau datelor in cazul defectarii suportului magnetic sau detectarii erorilor in date; 3. acțiuni în cazurile de detectare a interferențelor neautorizate cu datele; 4. acţiuni în alte situaţii de urgenţă.

Dacă apar erori în timpul funcționării IAS QCD care nu sunt descrise mai jos în această secțiune, trebuie să contactați un angajat al unității de suport tehnic a DIT (HelpDesk) sau administratorul responsabil al IAS QCD.

Clasa de eroare Eroare Descrierea erorii Acțiunile necesare ale utilizatorului atunci când apare o eroare
Portalul IAS QCD Serverul nu a fost gasit. Pagina nu poate fi afisata Pot exista probleme cu rețeaua sau cu accesul la portalul IAS QCD. Pentru a depana problemele de rețea, contactați un angajat de asistență tehnică (HelpDesk). În alte cazuri, contactați administratorul IAS KHD.
Eroare: este necesar un nume de utilizator valid La înregistrarea pe portalul IAS QCD, numele de utilizator nu a fost introdus. Introduceți numele de utilizator.
Eroare: Este necesară o parolă pentru înregistrare La înregistrarea pe portalul IAS QCD nu a fost introdusă o parolă. Introduceți parola.
Eroare: autentificarea eșuată. Încearcă din nou Numele de utilizator sau parola introduse sunt incorecte sau contul nu este înregistrat. Trebuie să vă reintroduceți numele de utilizator și parola, dar după a treia încercare de înregistrare nereușită, contul dvs. este blocat. Dacă contul dvs. este blocat, trebuie să contactați administratorul IAS KHD.
Pana de curent la stația de lucru Nu există curent la stația de lucru sau a avut loc o pană de curent. Stația de lucru s-a oprit sau a repornit.

- apăsați butonul „Start”.
- selectați „Run”


Încercați să vă conectați (autentificați) la IAS QCD din nou
Eroare LAN Nu există nicio interacțiune în rețea între stația de lucru și serverul de aplicații IAS QCD Nu există posibilitatea de a începe (continua) lucrul cu QCD IAS. Nu există nicio conexiune de rețea la serverul IAS KHD Reporniți stația de lucru.
Verificați disponibilitatea serverului IAS KHD pe portul 80 rulând următoarele comenzi:
- apăsați butonul „Start”.
- selectați „Run”
- în linia de intrare tastați comanda telnet ias_dwh.ru 80
- dacă se deschide fereastra Telnet, atunci conexiunea este posibilă.
După ce rețeaua locală a fost restaurată, încercați din nou să vă conectați (autentificarea) la IAS QCD.

Kovtun M.V. ianuarie 2012.

Software și hardware
blocarea și protecția nivelului apei

Ghidul programatorului
Structura programului controlerului

ADNOTARE

Acest document descrie scopul, condițiile de utilizare și caracteristicile aplicației software (ASW) al unui controler logic programabil (PLC). Software-ul aplicației pentru computer industrial (PC) este descris în Manualul operatorului. Legăturile către software-ul pentru computer sunt furnizate în acest document, după cum este necesar.

CONŢINUT
1. SCOPUL ŞI CONDIŢIILE DE UTILIZARE A PROGRAMULUI
1.1.Scopul software-ului PLC
1.2.Condiții pentru utilizarea PPO PLC
2. CARACTERISTICILE PROGRAMULUI
2.1. Structura PPO PLC

2.3. Blocuri funcționale personalizate utilizate în software-ul Unity
3. ACCES LA PROGRAM
4. DATE DE INTRARE ŞI IEŞIRE
5. MESAJE

1. SCOPUL ŞI CONDIŢIILE DE UTILIZARE A PROGRAMULUI
PTS de blocare și protecție a nivelului apei în generatoarele de abur ale unităților de putere nr. 1, 2 ale centralei electrice este proiectat pentru a proteja sistemul de conducte al generatoarelor de abur atunci când nivelul apei scade, precum și pentru a proteja sistemul de afluxul de alimentare. apă în partea de curgere a turbinei atunci când nivelul generatorului de abur este crescut.
Protecția procesului tehnologic este asigurată de un complex de echipamente tehnologice:
Fitinguri pe conducta principală de alimentare cu apă (VP-9);
Fitinguri pe conducta principală de alimentare cu apă (VP-10);
Fitinguri pe linia de purjare (U5-01);
Fitinguri pe linia de purjare (U5-02);
Fitinguri pe linia de derivație a apei de alimentare (VP11);
Comenzi pentru pornirea pompei electrice de amplificare de urgență (APEN-1);
Comenzi pentru pornirea pompei electrice de amplificare de urgență (APEN-2);
Comandă de oprire a turbogeneratorului (TG3);
Comandă de oprire a turbogeneratorului (TG4);
Emiterea alarmelor de proces când nivelul scade în 4 din 6 generatoare de abur
Emiterea unei alarme de proces pentru activarea protecției la +300mm
Comanda de oprire a regulatorului de putere pe linia de purjare +75 mm
Comanda de oprire a regulatorului de putere pe linia de purjare de 500 de tone
Emiterea alarmelor de proces la +125mm
Emiterea alarmelor de proces la +75mm
Emiterea alarmelor de proces ±50mm
Emiterea alarmelor de proces la -120mm
Emiterea alarmelor de proces la 500t/oră

Funcționarea sistemului este asigurată de software de aplicație (ASW).
Software-ul include software de aplicație pentru computere industriale (software PC) și software de aplicație pentru controler programabil (software PLC).

1.1. Scopul PPO PLC
PPO PLC ca parte a PTS implementează următoarele funcții:
– redundanța controlorilor;
– primirea și procesarea semnalelor I/O din trei coșuri I/O identice;
– Primește și filtrează semnalele de intrare discrete de la posibilele contacte „săritoare”.
– Primește și procesează semnale analogice de intrare:
asigură controlul dacă semnalul depășește limitele admise (nefiabilitatea semnalului);
scalează semnalul analogic;
realizează histereza valorilor de prag;
analizează stările a trei semnale din coșuri și selectează valori sigure;
filtrează semnalul pe baza ratei de creștere sau scădere a valorii semnalului.
– Emiterea de semnale discrete către echipamente (declanșarea protecției);
– Monitorizarea abaterilor parametrilor de la atribuiri și atingerea valorilor stabilite;
– Emiterea acțiunilor executive asupra lămpilor de alarmă de proces din camera de control;
– Implementarea algoritmilor de protectie si blocare;
– Schimb de date cu sisteme adiacente prin canal Modbus/TCP/IP;
– Verificarea modulelor controler pentru erori, și generarea de mesaje pentru stația de lucru despre starea echipamentului controlerului, precum și către panoul camerei de control;
– Monitorizarea situațiilor de urgență ale echipamentelor sistemului;
– PPO PLC oferă posibilitatea de a primi chei de la computerul industrial, precum și de la panoul camerei de control, care dezactivează anumite protecții și interblocări ale sistemului.

1.2. Condiții de utilizare a PPO PLC
Arhitectura generală a sistemului este prezentată în Figura 1.

Figura 1. Arhitectura generală a software-ului

Complexul PTS include următoarele componente hardware și software achiziționate:
1) Două controlere logice programabile (PLC) QUANTUM bazate pe procesorul CPU P266, care funcționează în modul de așteptare la cald. Mediul de rulare Unity Pro 4.1 XL.
2) Calculator industrial compus din:
– calculator personal (calculator industrial încorporat);
– sistem de operare Windows XP Pro SP3;
– Pachetul de vizualizare CITECT 7
PLC-urile interacționează cu subsistemele externe prin intermediul rețelei Ethernet (din partea PLC) și prin canale I/O.
Interacțiunea dintre PLC și computerul industrial se realizează printr-o rețea Ethernet.
PTS include componente software de aplicație dezvoltate în conformitate cu acest proiect:
Aplicația Unity Pro instalată pe PLC.
Aplicația Citect instalată pe PC.

2. CARACTERISTICILE PROGRAMULUI
2.1. Structura PPO PLC
Aplicația software PLC este implementată ca o aplicație (vezi Figura 1) scrisă în mediul Unity v.4.1. Numele aplicației este upg.stu.
Aplicația upg.stu asigură implementarea funcționalității sistemului implementate pe PLC pentru toate modurile de operare.
Aplicația conține:
configurare hardware și software;
un set de module funcționale, fiecare dintre ele implementat în secțiuni scrise în limbajul LD (ladder diagram);
un set de blocuri funcționale dezvoltate în cadrul proiectului;
Bază de date;
mese de animație.
Aplicația include următoarele module funcționale, fiecare dintre ele conține unul sau mai multe module software prezentate în Tabelul 1.
tabelul 1

Init Secțiunea este executată în timpul primului ciclu după pornire și asigură că tuturor parametrilor li se atribuie valori inițiale.
AI_to_AM Secțiune pentru procesarea semnalelor analogice de intrare. Blocul de semnal corespunzător este apelat pentru a atribui o valoare unei variabile interne și pentru a verifica validitatea canalului.
DI_to_DM Secțiune pentru procesarea variabilelor discrete de intrare. Blocul funcțional semnal corespunzător este apelat pentru a atribui o valoare variabilei interne și pentru a verifica validitatea canalului.
Secțiunea de comparare pentru compararea valorilor primite din trei coșuri diferite de I/O distribuite. Semnalele sunt comparate folosind 2 din 3 logici. Dacă două semnale sunt identice și al treilea este diferit, atunci acesta din urmă este considerat invalid.
Numele secțiunii Funcționalitate
Secțiunea de alarme pentru procesarea semnalelor discrete și analogice pentru a determina dacă valorile limită au fost atinse. Dezvoltarea de alarme si comenzi pentru executarea blocajelor si protectiei.
INTERLOCK Secțiune pentru generarea algoritmului de blocare și protecție. În această secțiune, se înregistrează variabilele asociate cu actuatoarele.
Secțiune SIM pentru controlul modurilor de simulare și testare ale controlerului.
DIAGNOSTIC Secțiune pentru generarea informațiilor de diagnosticare a controlerului.

Următoarele subrutine sunt utilizate în cadrul secțiunilor:
masa 2
Numele secțiunii Funcționalitate
CompAI Un bloc funcțional conceput pentru a compara trei valori analogice diferite, pentru a scoate valoarea rezultată, precum și informații de diagnosticare pentru fiecare canal.
CompDI Un bloc funcțional conceput pentru a compara trei semnale discrete care provin din trei coșuri diferite, scoate valoarea rezultată, precum și informații de diagnosticare pentru fiecare canal.
BlockF Bloc funcțional conceput pentru a înregistra o scădere sau câștig inacceptabil de rapidă a unei valori analogice. În cazul unei întreruperi sau scurtcircuit, acest FB va elimina acest semnal din procesare, ceea ce nu va permite oprirea procesului tehnologic.
GetDI Un bloc funcțional conceput pentru a recepționa și procesa semnale discrete. Filtrează respingerea contactului.

Numele secțiunii Funcționalitate
HLLA4 Bloc funcțional conceput pentru a genera patru încălcări ale pragului dintr-un semnal analogic (HH, H, L, LL). FB ia în considerare parametrii de histerezis și zona moartă pentru înregistrarea încălcărilor.
GetAI Un bloc funcțional conceput pentru a recepționa și procesa semnale analogice. Efectuează scalarea valorii și, de asemenea, efectuează funcții de netezire parțială.
SIMPMEHA Bloc funcțional conceput pentru a genera interferențe sinusoidale. Acest zgomot este „amestecat” în semnalul simulat pentru a adăuga realism atunci când lucrați cu moduri precum „test”.
SIMPULS Un bloc funcțional conceput pentru a emite impulsuri de o durată dată în sistem.
SIMPV Un bloc funcțional conceput pentru a simula o valoare analogică atunci când lucrați cu moduri precum „sondă”.
2.2. Structuri de date ale software-ului PLC
În total, fiecare bloc energetic conține șase generatoare de abur și elementele software ale software-ului sunt realizate identic pentru fiecare dintre ele.
Proiectul software de controler utilizează următoarele tipuri de date:
Cuvânt de stare canal analog – tip de cuvânt;
Cuvânt de stare canal discret – tip de cuvânt;
Cuvântul care definește valoarea canalului analogic este tipul real (cuvinte cu două cuvinte);
Cuvântul de stare al controlerului QUANTUM este de tip cuvânt (două cuvinte sunt rezervate în total);
Cuvânt de stare de încălcare – tip de cuvânt;
Cuvânt de stare blocare – tip de cuvânt;
Cuvânt de stare cheie de deblocare – tip cuvânt;

Un computer industrial permite acțiuni de control doar la deblocarea cheilor prin schimbarea stării biților printr-un cuvânt de control. PLC-ul își comunică starea prin cuvântul de stare. O descriere a câmpurilor individuale (biți) de cuvinte de date este dată în Ghidul programatorului.

Variabilele din PLC sunt codificate după cum urmează:
AI – intrare analogică la PLC;
AIM – intrare analogică internă a PLC/PC;
DI – intrare discretă la PLC;
DM – intrare discretă internă a PLC/PC;

2.3. Blocuri funcționale personalizate utilizate în software-ul Unity
2.3.1 Blocul Funcțional de comparare a canalelor analogice CompAI

.

Figura 2. Blocul funcțional de comparare a canalelor analogice CompAI

Acest FB este folosit pentru a compara trei valori analogice diferite. Dacă unul dintre parametrii analogici se încadrează în afara valorii medii a celorlalți doi, atunci valoarea acestuia nu este luată în considerare și este scris un mesaj de eroare pe proprietatea acestui canal. Dacă toate cele trei canale sunt sănătoase (se află într-o toleranță acceptabilă de nepotrivire), atunci valoarea rezultată va fi cea mai mare dintre valorile existente.

2.3.2 Bloc funcţional de comparare a canalelor analogice CompDI


Figura 3. Blocul funcțional de comparare a canalelor discrete CompDI

Acest FB este folosit pentru a compara trei perechi de semnale discrete. Dacă două valori dintr-o pereche de semnale sunt aceleași, aceasta va indica un circuit deschis sau scurtcircuit. În acest caz, această pereche nu este luată în considerare și este scoasă din circulație. Sistemul afișează un mesaj despre natura încălcării care a provocat-o. Dacă valoarea totală în trei perechi diferite diferă, atunci algoritmul de bloc le scoate din circulație pe cele care nu se potrivesc cu cele două anterioare.
2.3.3 Bloc funcţional pentru calcularea ratei de dezintegrare a unei valori analogice BlockF

Figura 4. Bloc funcțional pentru calcularea ratei de dezintegrare a unei valori analogice BlockF

Acest FB este utilizat pentru a calcula rata de creștere și scădere a valorilor pe canale analogice. Dacă există o rupere a firului la senzorul analogic sau o scădere bruscă a valorii fizice, parametrul citit de la acest senzor va începe să scadă brusc. Acest FB este conceput pentru a înregistra evenimente despre un scurtcircuit sau o întrerupere și pentru a înregistra un semn de eroare în cuvântul de stare a canalului. Adică, dacă apare o întrerupere sau un scurtcircuit, acest canal va fi scos din circulație.

2.3.4 Blocul funcțional de scalare a canalelor analogice GetAI


Figura 5. Blocul funcțional de scalare a canalelor analogice GetAI

Acest FB este folosit pentru a converti unitățile de program de controler (INT) în valori ale unităților de proces reale (REAL). Dacă parametrul depășește limitele de eroare admise (OFFSET), nu se generează o eroare pe canal și parametrul se oprește la valoarea maximă sau minimă. Dacă un parametru iese în evidență mai puternic decât eroarea normalizată, se generează o eroare pe canal cu o decodare a naturii încălcării.

2.3.5 Bloc de funcții de procesare a canalului discret GetDI

Figura 6. Bloc funcțional pentru procesarea unui canal discret GetDI

Acest FB este folosit pentru a filtra „saritul” pe un canal discret. În cazul pierderii conexiunii cu canalul, valoarea specificată este scrisă la intrarea acestui FB, drept urmare valoarea specificată implicit va fi scrisă în ieșirea rezultată la ieșirea blocului funcțional.

2.3.6 Bloc funcţional pentru generarea încălcărilor pragului HLLA4


Figura 7. Bloc funcțional pentru generarea de încălcări ale pragului HLLA4

Acest FB este folosit pentru a implementa patru încălcări ale pragului, care pot fi folosite atât pentru a emite încălcări ale sistemului, cât și pentru a le implementa în algoritmi de implementare a blocării și protecției. Pentru a vă asigura că încălcarea nu dispare imediat după revenirea în zona valorii setate, este prevăzută o funcție de histerezis care afectează natura emiterii semnalelor de încălcare.

2.3.7 Bloc funcţional pentru generarea interferenţei sinusoidale SIMPMEHA


Figura 8. Bloc funcțional pentru generarea interferenței sinusoidale SIMPMEHA

Acest FB este utilizat pentru implementarea modurilor de controler asociate cu depanarea și simularea funcționării instalației. Acest semnal de pe diagramă arată ca o curbă sinusoidală, cu un interval de împrăștiere specificat de limite (variabile de intrare). Această interferență este concepută pentru a „adăuga” mărimea semnalului analogic și pentru a-i oferi proprietăți dinamice și realism vizual.

2.3.8 Bloc funcţional pentru generarea de impulsuri de lungime dată SIMPULS


Figura 9. Bloc funcţional pentru generarea de impulsuri de o lungime dată SIMPULS

Acest FB este utilizat pentru implementarea modurilor de controler asociate cu depanarea și simularea funcționării instalației. Acest semnal de pe diagramă arată ca un meandre, cu diferite game de vârfuri și jgheaburi. Valorile temporare ale vârfurilor meandrelor sunt specificate prin limite de timp (variabile de intrare).

2.3.9 Bloc funcţional de generare variabilă analogică SIMPV

Figura 10. Bloc funcţional de generare a variabilelor analogice SIMPV

Acest FB este folosit pentru a genera semnale analogice pentru moduri de simulare a funcționării dispozitivului și depanare a controlerului.
3. ACCES LA PROGRAM
Când lucrați la fața locului, programul este configurat să pornească automat când controlerul este pornit. Starea programului este afișată pe afișajul controlerului. Parametrii programului pot fi configurați de pe un laptop inclus în livrarea sistemului.

4. DATE DE INTRARE ŞI IEŞIRE
Datele de intrare ale sistemului sunt informații primite de la obiectul de control către PTS prin intermediul dispozitivelor de comunicație cu obiectul (periferie distribuită), precum și comenzi introduse de operator de pe un PC.
Datele de ieșire ale sistemului sunt informațiile transmise obiectului de control de la PTS printr-un dispozitiv de comunicare cu obiectul. Informațiile sunt afișate pe PC sub formă de formulare de ecran și sunt trimise ca alarmă către panoul camerei de control.

5. MESAJE
Mesajele transmise prin interfața PLC-PC sunt descrise în documentul „Ghidul programatorului. Partea 2. Interfață PLC-PC." Mesajele transmise operatorului sunt descrise în documentul „Manualul operatorului”.

#Manual, #programator, #descriere, #PLC, #PTS, #interfață, #analogic, #controller

Manualul programatorului se referă la documentația operațională și tehnică și este necesar în cazurile în care sistemul într-un fel sau altul oferă posibilitatea de a scrie, edita sau utiliza codul programului.

Exemplele includ:

– biblioteca de functii;

– platformă sau mediu de dezvoltare software;

– Software cu sursă deschisă.

Documentul trebuie să ofere toate informațiile necesare pentru ca dezvoltatorul să poată profita de capacitățile sistemului. Pentru a rezolva această problemă, conținutul documentului poate include:

– scopul, structura datelor de intrare și ieșire ale funcțiilor software;

– capacități de creare a codului programului, caracteristici de interpretare și compilare a acestuia;

– caracteristici sintactice ale limbajului de programare utilizat;

– posibile reguli și restricții la lucrul cu codul programului;

– diverse instrucțiuni de lucru cu programul.

Lista de subiecte posibile nu se limitează la aceasta, totul depinde de caracteristicile unui anumit sistem. Trebuie spus că manualul programatorului poate fi foarte util dezvoltatorilor de sisteme, servind drept referință pentru implementarea actuală a logicii de operare a software-ului.

Alcătuirea unui manual standard al programatorului

În conformitate cu cerințele GOST, manualul programatorului trebuie să conțină următoarele secțiuni:

Scopul și condițiile de utilizare ale programului , unde indică domeniul de aplicare al software-ului și cerințele tehnice necesare funcționării acestuia.

Caracteristicile programului , unde descriu modul de funcționare al programului, indicatorii lui de viteză și alte caracteristici importante pentru utilizare.

Acces la program , unde indică metodele și parametrii de lansare a programului;

Date de intrare și de ieșire , unde descriu formatul, metoda de organizare și alte cerințe pentru datele de intrare și de ieșire;

Mesaje , care furnizează textele mesajelor emise de program în diverse situații și acțiunile care trebuie întreprinse.

Este recomandabil să furnizați diverse exemple, ilustrații și tabele în anexe la document.

Ghidul programatorului Standarde

GOST-urile reglementează și acest document, în acest caz este GOST 19.504. (Anexa 1) În conformitate cu acesta, sunt determinate structura și conținutul Ghidului Programatorului.

Am folosit Microsoft Visual Studio pentru a dezvolta aplicația. Pentru a începe dezvoltarea, faceți clic pe Fișier --- Nou --- Creare proiect --- Aplicație WPF. Se va deschide un formular gol. Pe formular am plasat un fundal (am încărcat anterior poza pentru fundal în resursele viitorului program), Componente Label (proprietatea conținutului Mesaj de bun venit), TextBox (numele persoanei testate va fi introdus aici), Buton butoane pentru apelarea ajutorului și pornirea testului. Grupez toate componentele formularului în Canvas. Făcând clic pe butonul „Ajutor”, este apelat un formular de ajutor, pe care există un TextBox cu ajutor pentru utilizarea programului și un buton pentru a reveni la formularul de pornire.

Hello.Visibility = Visibility.Hidden;//Ascunde elementele formularului de început

Spravka.Visibility = Visibility.Visible;//Afișează fereastra de ajutor

Hello.Visibility = Visibility.Visible;//afișează fereastra formularului de pornire

Spravka.Visibility = Visibility.Hidden;//hide help form elements

Când faceți clic pe butonul „Start Test”, cu condiția ca câmpul de introducere a numelui să fie completat, se deschide o fereastră de testare, în care se află o TextBox, unde sunt afișate întrebările, o ListBox, unde sunt afișate opțiunile de răspuns și „ Butoanele „Întrebare următoare” și „Întrebare anterioară”. Dacă câmpul de introducere a numelui nu este completat, este afișat un mesaj care afirmă că câmpurile obligatorii nu sunt completate.

subiectNume = Utilizator.Text;

if (!string.IsNullOrEmpty(subjectName) && !string.IsNullOrEmpty(testFilePath)) // verifică dacă câmpul este completat

xmlLoad(); //încărcați un fișier cu întrebări

MessageBox.Show("Câmpurile obligatorii nu sunt completate");//afișează un mesaj de eroare

countSteps = qstns.Count();

Answer.Items.Clear();

La sfârșitul testării, se va deschide formularul cu rezultatele testării, pe care se află o casetă de text cu rezultatul testării și butoanele „Începe de la capăt” și „Ieșire”.

if (_step == countSteps)

Prev.Content = „Ieșire”;

Întrebări.Text = mesaj;

loadStep(_pas, înainte dePa);

Codul programului complet cu comentarii se află în Anexa 2


CONCLUZIE

În timpul stagiului meu, mi-am extins abilitățile în mediul de dezvoltare a limbajului de programare C#.

Toate obiectivele practice au fost atinse:

¾ extinderea, aprofundarea și sistematizarea cunoștințelor dobândite în procesul de pregătire teoretică;

¾ consolidarea competențelor practice în dezvoltarea și modificarea sistemelor informaționale;

¾ formarea competenţelor profesionale.

A îndeplinit toate sarcinile de practică, și anume:

¾ S-a familiarizat cu condițiile de muncă ale întreprinderii și ale locului său de muncă, și anume cu regulile interne, cerințele de siguranță, fundamentele fiziologice și igienice ale procesului de muncă și cerințele de salubritate;

¾ a studiat materiale normative şi metodologice, literatură fundamentală şi periodică în conformitate cu sarcina individuală;

¾ utilizate tehnologiile informaţiei şi comunicaţiilor;

¾ a ales un instrument de dezvoltare software;

¾ a finalizat o sarcină individuală (a dezvoltat un program de testare);

¾ a pregătit un raport despre practică.


LISTA SURSELOR

1. Jon Skeet. C# pentru profesioniști: subtilități ale programării, ediția a 3-a, traducere nouă = C# în profunzime, ed. a 3-a. - M.: Williams, 2014. - 608 p.

2. Christian Nagel și colaboratorii C# 5.0 și platforma .NET 4.5 pentru profesioniști = Professional C# 5.0 și .NET 4.5. - M.: „Dialectica”, 2013. - 1440 p.

3. Joseph Albahari, Ben Albahari. C# 6.0. Director. Descrierea completă a limbajului = C# 5.0 pe scurt: Referința definitivă. - M.: „Williams”, 2015. - 1008 p.

4. https://habrahabr.ru/

5. http://www.cyberforum.ru/


APLICAȚII

ANEXA 1

G O S U D A R S T V E N N Y S T A N D A R T S O Y W A S S R

Sistem unificat de documentare a programului GOST 19.504-79* (ST SEV 2095-80)
GHIDUL PROGRAMATORULUI. CERINȚE PENTRU CONȚINUT ȘI DESIGN
Sistem unit pentru documentarea programului. Ghidul programatorului Cerințe privind conținutul și forma de prezentare

Prin Rezoluția Comitetului de Stat de Standarde al Consiliului de Miniștri al URSS din 12 ianuarie 1979 nr. 74, a fost stabilită data introducerii

Din 01.01. 1980

Acest standard stabilește cerințe pentru conținutul și designul documentului de program „Ghidul programatorului”, definit de GOST 19.101-77.

Standardul respectă în totalitate ST SEV 2095-80.

DISPOZIȚII GENERALE

1.1. Structura și formatul documentului sunt stabilite în conformitate cu GOST 19.105-78.

Întocmirea părții de informare (adnotări și conținut) este obligatorie.

1.2. Manualul programatorului ar trebui să conțină următoarele secțiuni:

· scopul și condițiile de aplicare a programelor;

· caracteristicile programului;

· acces la program;

· date de intrare și ieșire;

· mesaje.

În funcție de specificul documentelor, este posibilă combinarea secțiunilor individuale sau introducerea altora noi.

2.1. Secțiunea „Scopul și condițiile de utilizare a programelor” trebuie să indice scopul și funcțiile îndeplinite de program, condițiile necesare executării programului (cantitatea de memorie RAM, cerințe pentru compoziție și parametri

dispozitive periferice, cerințe software etc.).

2.2. Secțiunea „Caracteristicile programului” ar trebui să conțină o descriere a principalelor caracteristici și caracteristici ale programului (caracteristicile de sincronizare, modul de funcționare, mijloace de monitorizare a execuției corecte și auto-vindecare a programului etc.).

2.3. Secțiunea „Accesarea programului” ar trebui să conțină o descriere a procedurilor de apelare a programului (metode de transfer al parametrilor de control și de date etc.).

2.4. Secțiunea „Date de intrare și de ieșire” ar trebui să descrie organizarea informațiilor de intrare și de ieșire utilizate și, dacă este necesar, codificarea acesteia.

2.5. Secțiunea „Mesaje” ar trebui să indice textele mesajelor transmise programatorului sau operatorului în timpul execuției programului, o descriere a conținutului acestora și acțiunile care trebuie întreprinse ca răspuns la aceste mesaje.

2.6. Anexa la manualul programatorului poate conține materiale suplimentare (exemple, ilustrații, tabele, grafice etc.).

* Reeditare (noiembrie 1987) cu modificarea nr. 1, aprobată în septembrie 1981 (IUS 11-81)


ANEXA 2

folosind System.Collections.Generic;

folosind System.IO;

folosind System.Linq;

folosind System.Text;

folosind System.Threading.Tasks;

folosind System.Windows;

folosind System.Windows.Controls;

folosind System.Windows.Data;

folosind System.Windows.Documents;

folosind System.Windows.Input;

folosind System.Windows.Media;

folosind System.Windows.Media.Imaging;

folosind System.Windows.Navigation;

folosind System.Windows.Shapes;

folosind System.Xml;

folosind System.Xml.Linq;

namespace Auto-tester

///

/// Logica de interacțiune pentru MainWindow.xaml

///

clasă parțială publică MainWindow: fereastră

string subiectName = "";//Numele variabilei persoanei testate

private int _step;// Variabila de pas de testare locală

int countSteps;// Numărul de întrebări din test (obținut dinamic din fișierul de testare selectat)

XDocument mainXml = nou XDocument(); // Inițializați obiectul document XML pentru a citi fișierul de testare

Listă questionsList = listă nouă (); // Lista de întrebări, completată din dosarul de testare

Listă răspunsuri = listă nouă (); // Lista de răspunsuri

Listă scor = listă nouă (); // Numărul de puncte înscrise

//string testFilePath = "";

int pas // Variabilă globală de pas

return _step;// Obține valoarea variabilei locale pas

var beforeStep = _pas; // Setați pasul anterior

Pas = valoare; // Setează pasul curent

if (_step == countSteps + 1) // Verificarea dacă pasul curent este egal cu numărul total de pași, acțiune pe buton pentru a începe din nou

scor.Clear();// Șterge punctele acumulate

Answer.Visibility = Visibility.Visible; // Afișează ListBox-ul în care afișăm răspunsurile la întrebarea curentă

Pas = 0;//Mergeți din nou la pasul zero

if (_step == 0) // Verificați dacă pasul nostru este zero

Prev.Content = „Exit”;// Atribuiți butonul „Previous Question” valoarea „Exit”

else if (_pas< 0)// Проверяем шаг меньше ли нуля

Close();//Închide programul

Prev.Content = „Înapoi”; // Atribuirea butonului „Întrebare anterioară” a valorii Înapoi „Întrebare anterioară”

if (_step > 0) // Dacă pasul este mai mare decât zero

var _answers = answers[_step - 1].Elements().ToList();// Scrieți toate opțiunile de răspuns la întrebarea curentă într-o variabilă

var selectedIndex = Answer.SelectedIndex; // Să vedem ce opțiune de răspuns a fost selectată în ultimul pas

var index = beforeStep;

var val = (selectedIndex != -1) ? (_răspunsuri.Atribut(„răspuns adevărat”) != nul && _răspunsuri.Atribut(„răspuns adevărat”).Valoare == „adevărat") ? 1: 0: 0;// Проверяем был ли ответ правильным!}

if (score.Contains(_step))// Să vedem dacă am răspuns la întrebare mai devreme

scor[_step] = val;// Setați pentru întrebarea anterioară la care am răspuns corect

scor.Add(val);// Setați pentru întrebarea anterioară am răspuns corect

/*Ieșire dacă rezultatele testului au răspuns la ultima întrebare*/

if (_step == countSteps)

Next.Content = „Începe din nou”;

Prev.Content = „Ieșire”;

string sum = scor.Sum().ToString();

string numeric = GetDeclension(int.Parse(sum), „răspuns corect”, „răspunsuri corecte”, „răspunsuri corecte”);

string message = „Dragă” + subiectName + „. Vă mulțumim pentru susținerea testului. Rezultatul dvs. este „ + sum + „ „ + numeric + „ din „ + countSteps;

Întrebări.Text = mesaj;

Answer.Visibility = Visibility.Hidden;

loadStep(_pas, înainte dePa);

string testFilePath = "Resurse/testTest.xml";

public MainWindow()

InitializeComponent();

Test.Visibility = Visibility.Hidden;

void loadStep(int _locStep, int beforeStep)

foreach (var curEl în mainXml.Root.Element(„întrebări”).Elements())

Întrebări.Text = listă de întrebări[_locStep];

Answer.Items.Clear();

var currentAnswers = raspunsuri[_locStep];

foreach (var răspuns în currentAnswers.Elements())

Answer.Items.Add(Răspuns.Valoare);

public static șir GetDeclension (număr int, șir nominativ, șir genetic, șir plural)

număr = număr % 100;

dacă (număr >= 11 și& număr<= 19)

var i = număr % 10;

retur nominativ;

private void prevButton_Click (expedător obiect, RoutedEventArgs e)

if (Prev.Content.ToString().Trim() == „Ieșire”)

private void nextButton_Click (expedător obiect, RoutedEventArgs e)

mainXml = XDocument.Load(testFilePath);

var qstns = mainXml.Root.Element(„întrebări”).Elements();

countSteps = qstns.Count();

foreach (var întrebare în qstns)

întrebăriLista.Adăugați(întrebare.Element(„text”).Valoare);

answers.Add(intrebare.Element(„răspunsuri”));

private void Button_Click (expedător obiect, RoutedEventArgs e)

subiectNume = Utilizator.Text;

dacă (!string.IsNullOrEmpty(subjectName) && !string.IsNullOrEmpty(testFilePath))

Start.Visibility = Vizibility.Hidden;

Test.Visibility = Visibility.Visible;

MessageBox.Show("Câmpurile obligatorii nu sunt completate");

private void spravkaButton_Click (expedător obiect, RoutedEventArgs e)

Hello.Visibility = Visibility.Hidden;

Help.Visibility = Visibility.Visible;

private void closeSpravkaButton_Click(expeditor obiect, RoutedEventArgs e)

Hello.Visibility = Visibility.Visible;

Help.Visibility = Visibility.Hidden;

Cele mai bune articole pe această temă