Come configurare smartphone e PC. Portale informativo
  • casa
  • televisori
  • Esempio di guida per programmatori di sistemi informativi. Documentazione tecnica

Esempio di guida per programmatori di sistemi informativi. Documentazione tecnica

Il manuale dell'utente è compilato sulla base di GOST 19.504-79. La guida del programmatore si sviluppa in tre casi:

– il prodotto software, per il suo scopo principale, è un ambiente di sviluppo o una libreria (come Delphi o Qt);

– un prodotto complesso o software funge da piattaforma per lo sviluppo di programmi o sistemi di un certo tipo (come 1C o Axapta);

– il programma viene distribuito insieme al codice sorgente oppure viene costantemente modificato dagli stessi sviluppatori.

Il compito ovvio della direzione del programmatore è fornire allo sviluppatore le informazioni che gli saranno sufficienti per creare i propri programmi o sistemi basati sul prodotto software sviluppato.

Il manuale del programmatore dovrebbe spiegare:

– Di quali oggetti si occupa il programmatore, dove si trovano, da quanto tempo esistono e come interagiscono tra loro. Quali di essi crea lui stesso e quali gli vengono forniti inizialmente dall'ambiente, dalla struttura, dalla biblioteca.

– Quali altri strumenti di sviluppo (oltre al prodotto software sviluppato) sono necessari per creare un'applicazione o un sistema. Ad esempio, se il prodotto software sviluppato è una libreria, il programmatore avrà bisogno di un compilatore, di un qualche tipo di ambiente di sviluppo e di altri strumenti.

– In quale ambiente opera l'applicazione o il sistema. Quali saranno i requisiti minimi di sistema? Avrai bisogno di software aggiuntivo per eseguirlo: framework, runtime, interpreti.

– Cosa costituisce un'applicazione minima operabile o un sistema minimo operabile. Quali oggetti devono essere creati e in quale sequenza, come collegarli tra loro in modo che l'applicazione possa eseguire parte del suo output minimo.

– Come (passo dopo passo) compilare un'applicazione funzionante o distribuire un sistema funzionante.

Inoltre, il manuale del programmatore deve contenere descrizioni complete di tutti gli oggetti forniti nel prodotto software. Se si tratta di funzioni, è necessario fornirne la sinossi, se si tratta di classi, la descrizione delle loro interfacce, ecc.

Se un prodotto software prevede l'utilizzo di un linguaggio di programmazione originale ed è dotato di un proprio compilatore o interprete, una descrizione dello stesso deve essere inclusa nel manuale del programmatore.

Nel testo del manuale devono essere rispettate le seguenti regole:

– Quando introduci un nuovo concetto, dovresti fare affidamento solo su quei concetti che sono stati introdotti in precedenza o che sono ovviamente familiari al lettore.

– L’introduzione di ciascun concetto deve essere giustificata in qualche modo.

Il requisito principale quando si descrivono i singoli oggetti è la completezza della descrizione di ciascuno di essi.


Quando si descrivono gli oggetti, è necessario prestare particolare attenzione ai seguenti aspetti:

– Ciò che deve necessariamente precedere la creazione e l’utilizzo di un oggetto.

– Quali sono gli effetti collaterali dell’accesso all’oggetto.

– Caratteristiche dell’interpretazione da parte dell’oggetto dei dati ad esso trasmessi.

– Dove “fisicamente” (in quale file, in quale libreria) si trova l'oggetto.

– Si consiglia di fornire esempi di utilizzo per ciascun oggetto, piccoli frammenti di codice che dimostrino la creazione dell'oggetto (se deve essere creato prima dell'uso), il passaggio dei dati di input all'oggetto, la ricezione dei dati di output e la loro interpretazione.

È possibile eseguire il manuale del programmatore in forma ipertestuale.

Struttura della Guida del programmatore:

1. Scopo e condizioni di utilizzo del programma.

2. Caratteristiche del programma.

3. Accesso al programma.

4. Dati in ingresso e in uscita.

5. Messaggi.

La guida del programmatore può essere completata con vari diagrammi, ad esempio diagrammi di database, diagrammi di classi, grafici di chiamate

A titolo di esempio vengono presentati i contenuti del manuale del programmatore di sistema del rivenditore e-port. Protocollo client-server.

Il sistema "e-port dealer" è progettato per ricevere ed effettuare pagamenti istantanei quando si pagano servizi di comunicazione mobile, accesso a Internet, ecc. Il server centrale del sistema appartiene al gruppo e-port e chiunque può aprire un punto di accettazione dei pagamenti installandolo sul proprio computer (connesso a Internet) programma client. Lo scambio di dati tra il server centrale e il programma client viene effettuato utilizzando un protocollo speciale. Il protocollo è aperto e consente a diverse organizzazioni: banche, catene di vendita al dettaglio, reti di terminali di pagamento, di effettuare pagamenti direttamente dai propri sistemi. Il protocollo è stato sviluppato da e-port Group, mentre la documentazione tecnica è stata commissionata da Philosoft.

INTRODUZIONE

sistema dealer e-port: protocollo client-server. Scopo e panoramica delle capacità

Obiettivi del protocollo

Principali vantaggi dell'utilizzo del protocollo

1 Implementazione del protocollo (gateway)

1.1 Informazioni generali

1.2 Struttura dell'applicazione

2. Come funziona il gateway

2.1 Registrazione e rendicontazione

2.1.1 Registrazione

2.1.2 Reporting

2.2 Scambio di dati con il server

2.2.1 Struttura del pacchetto

2.2.2 Directory

2.2.3 Ordine di scambio di pacchetti

2.3 Ciclo di elaborazione dell'operazione

2.3.2 Coda

2.3.3 Analisi della risposta del server

2.3.4 Situazioni non standard

3 Specifica del protocollo

3.1 Elementi strutturali del pacchetto

3.2 Intestazione della richiesta

3.3 Intestazione della risposta

3.4 Rifornimento del conto

3.5 Acquisto di un codice PIN

3.6 Interruzione del processo di elaborazione delle transazioni

3.7 Proprietà transazionali dell'operazione

3.9 Elenco

3.11 Stato di funzionamento

3.11.1 Esempi di messaggi sullo stato delle transazioni

3.11.2 Codici di stato per transazioni in sospeso o completate

3.11 Notifiche di sistema

4 GLOSSARIO

APPLICAZIONI

Appendice 1. Richiesta XML DTD e commento

Il manuale del programmatore fa riferimento alla documentazione operativa e tecnica. Tale documento è in fase di sviluppo per i prodotti software. Destinato alla familiarizzazione di un programmatore che risolverà alcuni problemi relativi al funzionamento di questo programma.

Quando è necessaria la guida del programmatore?

La guida del programmatore è necessaria in diversi casi:

Il programma per il quale viene compilata la documentazione è un ambiente di sviluppo o una libreria.
Questo prodotto software fornisce una piattaforma per scrivere programmi o sistemi standard.
Il prodotto viene distribuito insieme al codice del programma oppure viene costantemente modificato dallo sviluppatore.

Con l'aiuto di tale documento, al programmatore dovrebbero essere fornite tutte le informazioni necessarie che possono essere utilizzate per creare i propri prodotti software basati su questo sistema. Le informazioni devono essere fornite in quantità sufficiente. Gli sviluppatori, con l'aiuto del manuale del programmatore, hanno l'opportunità di registrare lo stato attuale del prodotto rilasciato per evitare confusione durante il rilascio di nuovi prodotti.

I compiti tipici di tale documento includono:

Chiarimento e spiegazione allo specialista dello stato attuale degli oggetti, della loro posizione e delle modalità di interazione. Inoltre, la direzione del programmatore deve distinguere chiaramente tra gli oggetti inizialmente inclusi nel sistema e gli oggetti che il programmatore crea autonomamente.
Un elenco di strumenti di sviluppo aggiuntivi che saranno necessari durante il lavoro, oltre al prodotto corrente.
Chiarimento dei requisiti di sistema, dell'ambiente software e degli strumenti necessari per il lancio.

Di seguito è riportato un esempio (campione) del documento " Guida utente", sviluppato sulla base delle linee guida RD 50-34.698-90.

Questo documento è formato da uno specialista IT, o uno specialista funzionale, o un redattore tecnico durante lo sviluppo della documentazione di lavoro per il sistema e le sue parti nella fase "Documentazione di lavoro".

Per creare il manuale utente, lo strumento è stato preso come esempio Scopritore di Oracle sistema informativo ed analitico “Corporate Data Warehouse”.

Di seguito è riportata la composizione del manuale utente in conformità con GOST. Brevemente all'interno di ogni sezione Vengono forniti i requisiti di contenuto e il testo dell'esempio di riempimento.(evidenziato con una linea verticale).

Sezioni del manuale utente:

1. Introduzione

Nella sezione "Presentazione" indicare:

  1. area di applicazione;
  2. una breve descrizione delle capacità;
  3. livello di formazione dell'utente;
  4. un elenco della documentazione operativa che l'utente deve leggere.

1.1. Area di applicazione

I requisiti del presente documento si applicano quando:

  • test globali preliminari;
  • operazione di prova;
  • prove di accettazione;
  • funzionamento industriale.

1.2. Breve descrizione delle caratteristiche

Il sistema informativo e analitico Corporate Data Warehouse (IAS KHD) è progettato per ottimizzare la tecnologia per prendere decisioni di gestione tattica e strategica da parte degli utenti aziendali finali sulla base delle informazioni su tutti gli aspetti delle attività finanziarie ed economiche della Società.

IAS QCD offre la possibilità di lavorare con reporting regolamentato e non regolamentato.

Quando si lavora con il reporting, viene utilizzato lo strumento utente Oracle Discoverer Plus, che fornisce le seguenti funzionalità:

  • generazione di report tabellari e incrociati;
  • costruire vari diagrammi;
  • esportazione e importazione dei risultati delle analisi;
  • stampa dei risultati delle analisi;
  • diffusione dei risultati delle analisi.

1.3. Livello utente

L'utente IAS QCD deve avere esperienza di lavoro con il sistema operativo MS Windows (95/98/NT/2000/XP), capacità di lavorare con Internet Explorer, il software Oracle Discoverer e avere anche le seguenti conoscenze:

  • conoscere l'area tematica interessata;
  • conoscere le basi dell'analisi multivariata;
  • comprendere il modello multidimensionale dell'area tematica rilevante;
  • conoscere e avere competenze nel lavorare con applicazioni analitiche.

Le qualifiche dell'utente devono consentire:

  • generare report in Oracle Discoverer Plus;
  • effettuare l'analisi dei dati.

1.4. Elenco della documentazione operativa che l'utente deve leggere

  • Sistema informativo e analitico “Corporate data warehouse”. PASSAPORTO;
  • Sistema informativo e analitico “Corporate data warehouse”. DESCRIZIONE GENERALE DEL SISTEMA.

2. Scopo e condizioni di utilizzo di Oracle Discoverer Plus

Nella sezione “Scopo e condizioni di utilizzo” indicare:

  1. tipologie di attività, funzioni per l'automazione a cui è destinato questo strumento di automazione;
  2. condizioni, al cui rispetto (adempimento, verificarsi) è garantito l'uso delle apparecchiature di automazione in conformità con lo scopo previsto (ad esempio, il tipo di computer e la configurazione dei mezzi tecnici, l'ambiente operativo e il software generale del sistema, le informazioni di input, l'archiviazione media, database, requisiti per la formazione di specialisti, ecc. P.).

Oracle Discoverer Plus come parte di IAS QCD è progettato per automatizzare la preparazione e la personalizzazione dei moduli di reporting per gli indicatori di prestazione, nonché per la ricerca approfondita dei dati basata sulle informazioni del data warehouse aziendale.

Lavorare con Oracle Discoverer Plus come parte di IAS QCD è possibile ogni volta che è necessario ottenere informazioni per l'analisi, il controllo, il monitoraggio e il processo decisionale basato su di esso.

Lavorare con Oracle Discoverer Plus come parte di IAS QCD è disponibile per tutti gli utenti con diritti di accesso stabiliti.

3. Preparazione al lavoro

Nella sezione “Preparazione al lavoro” indicare:

  1. composizione e contenuto dei mezzi di distribuzione;
  2. ordine di caricamento dei dati e dei programmi;
  3. procedura per la verifica della funzionalità.

3.1. Composizione e contenuto del mezzo di distribuzione

Per lavorare con IAS QCD, è richiesto il seguente software:

  1. Internet Explorer (incluso nel sistema operativo Windows);
  2. Oracle JInitiator viene installato automaticamente la prima volta che un utente accede a QCD IAS.

3.2. Ordine di caricamento dei dati e dei programmi

Prima di iniziare a lavorare con IAS QCD sul posto di lavoro dell'utente, è necessario eseguire i seguenti passaggi:

  1. È necessario visitare il sito Web IAS QCD ias-dwh.ru.
  2. Durante l'avvio verrà visualizzata una finestra "Avviso di sicurezza" che conterrà quanto segue: "Desideri installare ed eseguire "Oracle JInitiator" ..." Fare clic sul pulsante "Sì".
  3. Quindi verrà avviata l'installazione di Oracle JInitiator sul tuo computer. Selezionare il pulsante Avanti e poi OK.

3.3. Procedura per il controllo della funzionalità

Per verificare la disponibilità del QCD IAS dal posto di lavoro dell’utente, è necessario eseguire i seguenti passaggi:

  1. Apri Internet Explorer; per fare ciò, clicca sul collegamento “Internet Explorer” sul desktop o richiamalo dal menu “Start”.
  2. Inserisci l'indirizzo: ias-dwh.ru nella barra degli indirizzi di Internet Explorer e fai clic su "Vai".
  3. Nel modulo di autenticazione, inserisci nome utente e password. Fare clic sul pulsante "Avanti".
  4. Assicurati che l'applicazione Oracle Discoverer Plus sia aperta nella finestra.

Se l'applicazione Oracle Discoverer Plus non si avvia, è necessario contattare l'assistenza.

4. Descrizione delle operazioni

Nella sezione “Descrizione delle Operazioni” indicare:

  1. descrizione di tutte le funzioni, compiti, serie di compiti, procedure eseguite;
  2. descrizione delle operazioni del processo tecnologico di elaborazione dei dati necessario per eseguire funzioni, insiemi di compiti (compiti), procedure.

Per ciascuna operazione di trattamento dei dati indicare:

  1. Nome;
  2. condizioni alle quali l'operazione può essere eseguita;
  3. azioni preparatorie;
  4. azioni principali nella sequenza richiesta;
  5. azioni finali;
  6. risorse spese per l’operazione.

4.1. Funzioni e compiti svolti

Oracle Discoverer Plus come parte di IAS QCD esegue le funzioni e i compiti mostrati nella tabella seguente:

4.2. Descrizione delle operazioni del processo tecnologico di elaborazione dei dati necessarie per eseguire le attività

Di seguito è riportata una descrizione delle operazioni dell'utente per eseguire ciascuna attività.

Compito: “Visualizzazione del reporting”

Operazione 1: Registrazione sul portale IAS QCD

  1. Il computer dell'utente è connesso alla rete aziendale.
  2. È disponibile il portale IAS QCD.
  3. IAS QCD funziona in modalità normale.

Fasi preparatorie:

Sul computer dell'utente è necessario effettuare le impostazioni aggiuntive indicate nel paragrafo 3.2 del presente documento.

  1. Fare doppio clic con il pulsante sinistro del mouse sull'icona “IAS QCD” sul desktop.
  2. Nella finestra che si apre, inserisci il nome utente nel campo “Login” e inserisci la password utente nel campo “Password”. Fare clic sul pulsante "Avanti".

Passaggi finali:

Non richiesto.

15-30 secondi.

Passaggio 2: seleziona un rapporto

Condizioni alle quali l'operazione può essere eseguita:

Registrazione avvenuta con successo sul portale IAS QCD.

Fasi preparatorie:

Non richiesto.

Azioni di base nella sequenza richiesta:

1. Nella finestra "Creazione guidata cartella di lavoro" visualizzata, posiziona un punto accanto alla voce "Apri una cartella di lavoro esistente".


2. Selezionare la cartella di lavoro desiderata e fare clic sul pulsante "Apri":


Passaggi finali:

Dopo aver terminato di lavorare con il report, è necessario selezionare la voce di menu "File", quindi selezionare la voce "Chiudi".

Risorse spese per l'operazione:

15 secondi.

Incarico: “Generazione di moduli di reporting tabellari e grafici”

Completa per analogia.

5. Situazioni di emergenza

Nella sezione "Situazioni di emergenza" indicare: 1. azioni in caso di non conformità con le condizioni del processo tecnologico, compresi guasti a lungo termine delle apparecchiature tecniche; 2. azioni di ripristino di programmi e/o dati in caso di guasto del supporto magnetico o rilevamento di errori nei dati; 3. azioni in caso di rilevamento di interferenze non autorizzate con i dati; 4. azioni in altre situazioni di emergenza.

Se durante il funzionamento dello IAS QCD si verificano errori non descritti di seguito in questa sezione, è necessario contattare un dipendente dell'unità di supporto tecnico del DIT (HelpDesk) o l'amministratore responsabile dello IAS QCD.

Classe di errore Errore Descrizione dell'errore Azioni utente richieste quando si verifica un errore
Portale IAS QCD Server non trovato. La pagina non può essere visualizzata Potrebbero esserci problemi con la rete o con l'accesso al portale IAS QCD. Per risolvere i problemi di rete, contattare un dipendente del supporto tecnico (HelpDesk). Negli altri casi, contattare l'amministratore dello IAS KHD.
Errore: è richiesto un nome utente valido Al momento della registrazione sul portale IAS QCD, il nome utente non è stato inserito. Inserisci il tuo nome utente.
Errore: password richiesta per registrarsi Al momento della registrazione sul portale IAS QCD non è stata inserita la password. Inserisci la tua password.
Errore: autenticazione non riuscita. Riprova Il nome utente o la password immessi non sono corretti oppure l'account non è registrato. Devi inserire nuovamente nome utente e password, ma dopo il terzo tentativo di registrazione non riuscito, il tuo account viene bloccato. Se il tuo account è bloccato, devi contattare l'amministratore IAS KHD.
Interruzione di corrente della workstation La workstation non riceve alimentazione oppure si è verificata un'interruzione di corrente. La workstation è stata spenta o riavviata.

- premere il pulsante “Avvia”.
- seleziona "Esegui"


Prova a connetterti (accedi) nuovamente al QCD IAS
Guasto della LAN Non esiste alcuna interazione di rete tra la workstation e il server delle applicazioni IAS QCD Non vi è alcuna possibilità di iniziare (continuare) il lavoro con il QCD IAS. Non è presente alcuna connessione di rete al server IAS KHD Riavviare la workstation.
Verifica la disponibilità del server IAS KHD sulla porta 80 eseguendo i seguenti comandi:
- premere il pulsante “Avvia”.
- seleziona "Esegui"
- nella riga di input digitare il comando telnet ias_dwh.ru 80
- se si apre la finestra Telnet, la connessione è possibile.
Dopo che la rete locale è stata ripristinata, riprovare a connettersi (accedere) al QCD IAS.

Kovtun M.V. Gennaio 2012.

Software e hardware
blocco e protezione del livello dell'acqua

Guida del programmatore
Struttura del programma del controller

ANNOTAZIONE

Questo documento descrive lo scopo, le condizioni di utilizzo e le caratteristiche del software applicativo (ASW) di un controllore logico programmabile (PLC). Il software applicativo del computer industriale (PC) è descritto nel Manuale dell'Operatore. In questo documento vengono forniti collegamenti al software per PC secondo necessità.

CONTENUTO
1. SCOPO E CONDIZIONI DI UTILIZZO DEL PROGRAMMA
1.1.Scopo del software PLC
1.2.Condizioni per l'utilizzo del PPO PLC
2. CARATTERISTICHE DEL PROGRAMMA
2.1. Struttura del PLC PPO

2.3. Blocchi funzione personalizzati utilizzati nel software Unity
3. ACCESSO AL PROGRAMMA
4. DATI IN INGRESSO E IN USCITA
5. MESSAGGI

1. SCOPO E CONDIZIONI DI UTILIZZO DEL PROGRAMMA
PTS di blocco e protezione del livello dell'acqua nei generatori di vapore delle unità di potenza n. 1, 2 della centrale elettrica è progettato per proteggere il sistema di tubazioni dei generatori di vapore quando il livello dell'acqua diminuisce, nonché per proteggere il sistema dall'afflusso di alimentazione acqua nella parte di flusso della turbina quando il livello nel generatore di vapore viene aumentato.
La protezione del processo tecnologico è fornita da un complesso di apparecchiature tecnologiche:
Raccordi sulla linea principale dell'acqua di alimentazione (VP-9);
Raccordi sulla linea principale dell'acqua di alimentazione (VP-10);
Raccordi sulla linea di spurgo (U5-01);
Raccordi sulla linea di spurgo (U5-02);
Raccordi sulla linea di bypass dell'acqua di alimentazione (VP11);
Comandi per l'accensione dell'elettropompa booster di emergenza (APEN-1);
Comandi per l'accensione dell'elettropompa booster di emergenza (APEN-2);
Comando spegnimento turbogeneratore (TG3);
Comando spegnimento turbogeneratore (TG4);
Emissione di allarmi di processo quando il livello diminuisce in 4 generatori di vapore su 6
Emissione di un allarme di processo per l'attivazione della protezione a +300mm
Comando di spegnimento del regolatore di potenza sulla linea di spurgo +75mm
Comando di spegnimento del regolatore di potenza sulla linea di spurgo da 500 ton
Emissione di allarmi di processo a +125mm
Emissione di allarmi di processo a +75mm
Emissione di allarmi di processo ±50mm
Emissione di allarmi di processo a -120mm
Emissione di allarmi di processo a 500 t/ora

Il funzionamento del sistema è assicurato dal software applicativo (ASW).
Il software comprende software applicativo per computer industriali (software PC) e software applicativo per controllori programmabili (software PLC).

1.1. Scopo di PPO PLC
PPO PLC nell'ambito del PTS implementa le seguenti funzioni:
– ridondanza dei controllori;
– ricevere ed elaborare segnali I/O da tre cestelli I/O identici;
– Riceve e filtra segnali discreti in ingresso da eventuali contatti “rimbalzanti”.
– Riceve ed elabora i segnali analogici in ingresso:
fornisce il controllo se il segnale supera i limiti consentiti (inaffidabilità del segnale);
scala il segnale analogico;
esegue l'isteresi dei valori di soglia;
analizza gli stati di tre segnali dai panieri e seleziona valori affidabili;
filtra il segnale in base alla velocità di aumento o diminuzione del valore del segnale.
– Emissione di segnali discreti alle apparecchiature (attivazione della protezione);
– Monitoraggio degli scostamenti dei parametri dalle assegnazioni e del raggiungimento dei valori prefissati;
– Emissione di azioni esecutive sulle lampade di allarme di processo nella sala di controllo;
– Implementazione di algoritmi di protezione e blocco;
– Scambio dati con sistemi adiacenti tramite canale Modbus/TCP/IP;
– Controllo degli errori dei moduli controller e generazione di messaggi per la stazione di lavoro sullo stato delle apparecchiature del controller, nonché per il pannello della sala di controllo;
– Monitoraggio delle situazioni di emergenza degli apparati del sistema;
– PPO PLC offre la possibilità di ricevere chiavi dal computer industriale, nonché dal pannello della sala controllo, che disabilitano alcune protezioni e interblocchi del sistema.

1.2. Condizioni per l'utilizzo del PPO PLC
L'architettura generale del sistema è mostrata nella Figura 1.

Figura 1. Architettura generale del software

Il complesso PTS comprende i seguenti componenti hardware e software acquistati:
1) Due controllori logici programmabili (PLC) QUANTUM basati sul processore CPU P266, funzionanti in modalità hot standby. Ambiente di runtime Unity Pro 4.1 XL.
2) Computer industriale costituito da:
– personal computer (computer industriale incorporato);
– sistema operativo Windows XP Pro SP3;
– Pacchetto di visualizzazione CITECT 7
I PLC interagiscono con sottosistemi esterni tramite la rete Ethernet (dal lato PLC) e tramite canali I/O.
L'interazione tra il PLC e il computer industriale avviene tramite una rete Ethernet.
Il PTS comprende componenti software applicativi sviluppati in conformità con questo progetto:
Applicazione Unity Pro installata sul PLC.
Applicazione Citect installata sul PC.

2. CARATTERISTICHE DEL PROGRAMMA
2.1. Struttura del PLC PPO
Il software applicativo PLC è implementato come un'applicazione (vedere Figura 1) scritta nell'ambiente Unity v.4.1. Il nome dell'applicazione è upg.stu.
L'applicazione upg.stu prevede l'implementazione delle funzionalità di sistema implementate sul PLC per tutte le modalità operative.
L'applicazione contiene:
configurazione hardware e software;
un insieme di moduli funzionali, ciascuno dei quali è implementato in sezioni scritte in linguaggio LD (ladder diagram);
un insieme di blocchi funzionali sviluppati all'interno del progetto;
Banca dati;
tabelle di animazione.
L'applicazione comprende i seguenti moduli funzionali, ciascuno dei quali contiene uno o più moduli software riportati nella Tabella 1.
Tabella 1

Init La sezione viene eseguita durante il primo ciclo dopo l'avvio e garantisce che a tutti i parametri vengano assegnati valori iniziali.
AI_to_AM Sezione per l'elaborazione dei segnali analogici di ingresso. L'apposito blocco di segnale viene richiamato per assegnare un valore ad una variabile interna e verificare la validità del canale.
DI_to_DM Sezione per l'elaborazione delle variabili discrete di ingresso. Il blocco funzione segnale corrispondente viene richiamato per assegnare un valore alla variabile interna e verificare la validità del canale.
Confronto Sezione per confrontare i valori ricevuti da tre diversi cestelli I/O distribuiti. I segnali vengono confrontati utilizzando la logica 2 su 3. Se due segnali sono identici e il terzo è diverso, quest'ultimo è considerato non valido.
Nome della sezione Funzionalità
Sezione Allarmi per l'elaborazione di segnali discreti e analogici per determinare se sono stati raggiunti valori limite. Sviluppo di allarmi e comandi per l'esecuzione di blocchi e protezioni.
INTERLOCK Sezione per la generazione dell'algoritmo di blocco e protezione. In questa sezione vengono registrate le variabili associate agli attuatori.
Sezione SIM per il controllo delle modalità di simulazione e test del controller.
DIAGNOSTICA Sezione per generare informazioni diagnostiche sul controller.

All'interno delle sezioni vengono utilizzate le seguenti subroutine:
Tavolo 2
Nome della sezione Funzionalità
CompAI Un blocco funzionale progettato per confrontare tre diversi valori analogici, generare il valore risultante e informazioni diagnostiche per ciascun canale.
CompDI Un blocco funzionale progettato per confrontare tre segnali discreti provenienti da tre cestelli diversi, emettere il valore risultante, nonché informazioni diagnostiche per ciascun canale.
BlockF Blocco funzionale progettato per registrare una diminuzione o un guadagno inaccettabilmente rapido di un valore analogico. In caso di interruzione o cortocircuito, questo FB rimuoverà questo segnale dall'elaborazione, il che non consentirà l'arresto del processo tecnologico.
GetDI Un blocco funzionale progettato per ricevere ed elaborare segnali discreti. Filtra il rimbalzo dei contatti.

Nome della sezione Funzionalità
HLLA4 Blocco funzionale progettato per generare quattro violazioni della soglia da un segnale analogico (HH, H, L, LL). L'FB tiene conto dei parametri di isteresi e zona morta per la registrazione delle violazioni.
GetAI Un blocco funzionale progettato per ricevere ed elaborare segnali analogici. Esegue la messa in scala dei valori ed esegue anche funzioni di livellamento parziale.
SIMPMEHA Blocco funzione progettato per generare interferenze sinusoidali. Questo rumore viene “mixato” nel segnale simulato per aggiungere realismo quando si lavora con modalità come “test”.
SIMPULSE Blocco funzionale progettato per emettere impulsi di una determinata durata nel sistema.
SIMPV Un blocco funzione progettato per simulare un valore analogico quando si lavora con modalità come “sonda”.
2.2. Strutture dati del software PLC
In totale, ogni blocco energetico contiene sei generatori di vapore e gli elementi software del software sono realizzati in modo identico per ciascuno di essi.
Il progetto software del controller utilizza i seguenti tipi di dati:
Parola di stato del canale analogico – tipo di parola;
Parola di stato del canale digitale – tipo di parola;
La parola che definisce il valore del canale analogico è di tipo reale (due parole);
La parola di stato del controller QUANTUM è di tipo parola (due parole sono riservate in totale);
Parola di stato di violazione – tipo di parola;
Parola di stato blocco: tipo di parola;
Parola di stato della chiave di sblocco – tipo di parola;

Un computer industriale consente azioni di controllo solo sullo sblocco delle chiavi modificando lo stato dei bit attraverso una parola di controllo. Il PLC comunica il suo stato tramite la parola di stato. Una descrizione dei singoli campi (bit) delle parole dati è fornita nella Guida del programmatore.

Le variabili nel PLC sono codificate come segue:
AI – ingresso analogico al PLC;
AIM – ingresso analogico interno del PLC/PC;
DI – ingresso discreto al PLC;
DM – ingresso discreto interno del PLC/PC;

2.3. Blocchi funzione personalizzati utilizzati nel software Unity
2.3.1 Blocco funzione CompAI di confronto dei canali analogici

.

Figura 2. Blocco funzione di confronto dei canali analogici CompAI

Questo FB viene utilizzato per confrontare tre diversi valori analogici. Se uno dei parametri analogici non rientra nel valore medio degli altri due, il suo valore non viene preso in considerazione e viene scritto un messaggio di errore nella proprietà di questo canale. Se tutti e tre i canali sono integri (rientrano in una tolleranza di disadattamento accettabile), il valore risultante sarà il maggiore tra i valori esistenti.

2.3.2 Blocco funzione CompDI per il confronto dei canali analogici


Figura 3. Blocco funzione di confronto dei canali discreti CompDI

Questo FB viene utilizzato per confrontare tre coppie di segnali discreti. Se due valori in una coppia di segnali sono uguali, ciò indicherà un circuito aperto o in corto. In questo caso, questa coppia non viene presa in considerazione e viene rimossa dalla circolazione. Il sistema visualizza un messaggio sulla natura della violazione che l'ha causata. Se il valore totale in tre diverse coppie differisce, l'algoritmo del blocco rimuove dalla circolazione quelli che non corrispondono ai due precedenti.
2.3.3 Blocco funzione per il calcolo del tasso di decadimento di un valore analogico BlockF

Figura 4. Blocco funzione per il calcolo del tasso di decadimento di un valore analogico BlockF

Questo FB viene utilizzato per calcolare la velocità di salita e discesa dei valori sui canali analogici. Se si verifica una rottura del filo sul sensore analogico o un brusco calo del valore fisico, il parametro letto da questo sensore inizierà a diminuire bruscamente. Questo FB è progettato per registrare eventi relativi a un cortocircuito o un'interruzione e registrare un segnale di errore nella parola di stato del canale. Cioè, se si verifica un'interruzione o un cortocircuito, questo canale verrà messo fuori circolazione.

2.3.4 Blocco funzione di ridimensionamento del canale analogico GetAI


Figura 5. Blocco funzione di ridimensionamento del canale analogico GetAI

Questo FB viene utilizzato per convertire le unità del programma del controller (INT) in valori delle unità di processo reali (REAL). Se il parametro va oltre i limiti di errore ammessi (OFFSET), non viene generato un errore sul canale e il parametro si ferma al valore massimo o minimo. Se un parametro risulta più forte dell'errore normalizzato, viene generato un errore sul canale con una decodifica della natura della violazione.

2.3.5 Blocco funzione di elaborazione del canale discreto GetDI

Figura 6. Blocco funzione per l'elaborazione di un canale discreto GetDI

Questo FB viene utilizzato per filtrare il "rimbalzo" su un canale discreto. In caso di interruzione della connessione con il canale, il valore specificato viene scritto nell'ingresso di questo FB, per cui il valore specificato di default verrà scritto nell'uscita risultante all'uscita del blocco funzionale.

2.3.6 Blocco funzionale per la generazione di violazioni della soglia HLLA4


Figura 7. Blocco funzionale per la generazione di violazioni della soglia HLLA4

Questo FB viene utilizzato per implementare quattro violazioni di soglia, che possono essere utilizzate sia per segnalare violazioni del sistema sia per implementarle in algoritmi per l'implementazione del blocco e della protezione. Per garantire che la violazione non scompaia immediatamente quando si ritorna nell'area del valore impostato, è prevista una funzione di isteresi che influenza la natura dell'emissione dei segnali di violazione.

2.3.7 Blocco funzionale per la generazione di interferenza sinusoidale SIMPMEHA


Figura 8. Blocco funzionale per la generazione di interferenza sinusoidale SIMPMEHA

Questo FB viene utilizzato per implementare le modalità del controller associate al debug e alla simulazione del funzionamento dell'installazione. Questo segnale sul diagramma appare come una curva sinusoidale, con un intervallo di diffusione specificato dai limiti (variabili di ingresso). Questa interferenza è progettata per “aggiungere” l'entità del segnale analogico e conferirgli proprietà dinamiche e realismo visivo.

2.3.8 Blocco funzionale per la generazione di impulsi di una determinata lunghezza SIMPULSE


Figura 9. Blocco funzionale per generare impulsi di una determinata lunghezza SIMPULSE

Questo FB viene utilizzato per implementare le modalità del controller associate al debug e alla simulazione del funzionamento dell'installazione. Questo segnale sul grafico appare come un meandro, con diversi intervalli di massimi e minimi. I valori temporanei dei vertici del meandro sono specificati da limiti di tempo (variabili di input).

2.3.9 Blocco funzione generazione variabile analogica SIMPV

Figura 10. Blocco funzione di generazione di variabili analogiche SIMPV

Questo FB viene utilizzato per generare segnali analogici per le modalità di simulazione del funzionamento del dispositivo e di debug del controller.
3. ACCESSO AL PROGRAMMA
Quando si lavora in loco, il programma è configurato per avviarsi automaticamente all'accensione del controller. Lo stato del programma viene visualizzato sul display del controller. I parametri del programma possono essere configurati da un computer portatile incluso nella consegna del sistema.

4. DATI IN INGRESSO E IN USCITA
I dati di ingresso del sistema sono le informazioni ricevute dall'oggetto di controllo al PTS attraverso i dispositivi di comunicazione con l'oggetto (periferia distribuita), nonché i comandi immessi dall'operatore da un PC.
I dati di uscita del sistema sono le informazioni trasmesse all'oggetto di controllo dal PTS attraverso un dispositivo di comunicazione con l'oggetto. Le informazioni vengono visualizzate sul PC sotto forma di maschere e inviate come allarme al pannello della sala controllo.

5. MESSAGGI
I messaggi trasmessi tramite l’interfaccia PLC-PC sono descritti nel documento “Guida del Programmatore. Parte 2. Interfaccia PLC-PC." I messaggi inviati all'operatore sono descritti nel documento “Manuale dell'Operatore”.

#Manuale, #programmatore, #descrizione, #PLC, #PTS, #interfaccia, #analogico, #controllore

Il manuale del programmatore si riferisce alla documentazione operativa e tecnica ed è richiesto nei casi in cui il sistema in un modo o nell'altro offre la possibilità di scrivere, modificare o utilizzare il codice del programma.

Esempi inclusi:

– libreria di funzioni;

– piattaforma o ambiente per lo sviluppo del software;

– Software open source.

Il documento deve fornire tutte le informazioni necessarie affinché lo sviluppatore possa sfruttare le capacità del sistema. Per risolvere questo problema, il contenuto del documento può includere:

– scopo, struttura dei dati di input e output delle funzioni del software;

– capacità di creare codice di programma, caratteristiche della sua interpretazione e compilazione;

– caratteristiche sintattiche del linguaggio di programmazione utilizzato;

– possibili regole e restrizioni quando si lavora con il codice del programma;

– varie istruzioni per lavorare con il programma.

L'elenco dei possibili argomenti non si limita a questo, tutto dipende dalle caratteristiche di un particolare sistema. C'è da dire che il manuale del programmatore può essere molto utile per gli sviluppatori di sistemi, fungendo da riferimento per l'attuale implementazione della logica di funzionamento del software.

Composizione di un manuale standard del programmatore

In conformità con i requisiti GOST, il manuale del programmatore deve contenere le seguenti sezioni:

Scopo e condizioni di utilizzo del programma , dove indicano l'ambito del software e i requisiti tecnici necessari per il suo funzionamento.

Caratteristiche del programma , dove descrivono la modalità operativa del programma, i suoi indicatori di velocità e altre caratteristiche importanti per l'uso.

Accesso al programma , dove sono indicate le modalità ed i parametri per l'avvio del programma;

Dati in ingresso e in uscita , dove descrivono il formato, il metodo di organizzazione e altri requisiti per i dati in ingresso e in uscita;

Messaggi , che fornisce i testi dei messaggi emessi dal programma in varie situazioni e le azioni da intraprendere.

Si consiglia di fornire vari esempi, illustrazioni e tabelle negli allegati al documento.

Standard della guida del programmatore

Anche i GOST regolano questo documento, in questo caso è GOST 19.504. (Appendice 1) In conformità con esso, vengono determinati la struttura e il contenuto della Guida del programmatore.

Ho utilizzato Microsoft Visual Studio per sviluppare l'applicazione. Per avviare lo sviluppo, fare clic su File --- Nuovo --- Crea progetto --- Applicazione WPF. Si aprirà un modulo vuoto. Nel modulo ho inserito uno sfondo (ho precedentemente caricato l'immagine per lo sfondo nelle risorse del futuro programma), Componenti etichetta (proprietà del contenuto Messaggio di benvenuto), Casella di testo (il nome della persona sottoposta a test verrà inserito qui), Pulsante pulsanti per chiamare l'aiuto e avviare il test. Raggruppo tutti i componenti del modulo in Canvas. Cliccando sul pulsante “Aiuto” viene richiamato un modulo di aiuto sul quale è presente un TextBox con l'aiuto sull'utilizzo del programma e un pulsante per tornare al modulo di partenza.

Hello.Visibility = Visibility.Hidden;//Nascondi gli elementi del modulo iniziale

Spravka.Visibility = Visibility.Visible;//Mostra finestra di aiuto

Hello.Visibility = Visibility.Visible;//mostra la finestra del modulo di avvio

Spravka.Visibility = Visibility.Hidden;//nascondi gli elementi del modulo di aiuto

Cliccando sul pulsante “Avvia test”, previo completamento del campo di inserimento del nome, si apre una finestra di test, sulla quale si trova un TextBox, dove vengono visualizzate le domande, un ListBox, dove vengono visualizzate le opzioni di risposta, e il " Pulsanti “Domanda successiva” e “Domanda precedente”. Se il campo di immissione del nome non viene compilato, viene visualizzato un messaggio che informa che i campi obbligatori non sono compilati.

nomeoggetto = Testo.Utente;

if (!string.IsNullOrEmpty(subjectName) && !string.IsNullOrEmpty(testFilePath)) // controlla se il campo è compilato

xmlCarico(); //carica un file con domande

MessageBox.Show("I campi obbligatori non sono compilati");//visualizza un messaggio di errore

conteggioPassi = qstns.Conteggio();

Risposta.Items.Clear();

Al termine del test si aprirà il modulo dei risultati del test, sul quale si trova una TextBox con il risultato del test, e i pulsanti “Ricomincia” ed “Esci”.

if (_step == contaPassi)

Contenuto precedente = "Esci";

Domande.Testo = messaggio;

caricoPasso(_passo, primaPasso);

Il codice completo del programma con i commenti si trova nell'Appendice 2


CONCLUSIONE

Durante il mio stage ho ampliato le mie competenze nell'ambiente di sviluppo del linguaggio di programmazione C#.

Tutti gli obiettivi pratici sono stati raggiunti:

¾ espansione, approfondimento e sistematizzazione delle conoscenze acquisite nel processo di formazione teorica;

¾ consolidamento delle competenze pratiche nello sviluppo e nella modifica dei sistemi informativi;

¾ formazione delle competenze professionali.

Completato tutti i compiti pratici, vale a dire:

¾ Ha acquisito familiarità con le condizioni di lavoro dell'impresa e del suo posto di lavoro, in particolare con le regole interne, i requisiti di sicurezza, i fondamenti fisiologici e igienici del processo lavorativo e i requisiti igienico-sanitari;

¾ studiato materiali normativi e metodologici, letteratura fondamentale e periodica in conformità con l'incarico individuale;

¾ tecnologie dell'informazione e della comunicazione utilizzate;

¾ scelto uno strumento di sviluppo software;

¾ completato un compito individuale (sviluppato un programma di test);

¾ ha preparato una relazione sulla pratica.


ELENCO DELLE FONTI

1. Jon Skeet. C# per professionisti: sottigliezze della programmazione, 3a edizione, nuova traduzione = C# in profondità, 3a ed.. - M.: Williams, 2014. - 608 p.

2. Christian Nagel e altri C# 5.0 e la piattaforma .NET 4.5 per professionisti = Professional C# 5.0 e .NET 4.5. - M.: “Dialettica”, 2013. - 1440 p.

3. Joseph Albahari, Ben Albahari. C#6.0. Direttorio. Descrizione completa del linguaggio = C# 5.0 in poche parole: The Definitive Reference. - M.: “Williams”, 2015. - 1008 p.

4. https://habrahabr.ru/

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


APPLICAZIONI

ALLEGATO 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

Sistema unificato di documentazione del programma GOST 19.504-79* (ST SEV 2095-80)
GUIDA DEL PROGRAMMATORE. REQUISITI DI CONTENUTO E DESIGN
Sistema unito per la documentazione del programma. Guida per il programmatore Requisiti di contenuto e forma di presentazione

Con risoluzione del Comitato statale di standard del Consiglio dei ministri dell'URSS del 12 gennaio 1979 n. 74, è stata stabilita la data di introduzione

Dal 01.01. 1980

Questo standard stabilisce i requisiti per il contenuto e la progettazione del documento di programma "Guida del programmatore", definito da GOST 19.101-77.

Lo standard è pienamente conforme alla ST SEV 2095-80.

DISPOSIZIONI GENERALI

1.1. La struttura e il formato del documento sono stabiliti in conformità con GOST 19.105-78.

La redazione della parte informativa (annotazioni e contenuti) è obbligatoria.

1.2. Il manuale del programmatore dovrebbe contenere le seguenti sezioni:

· finalità e condizioni di applicazione dei programmi;

· caratteristiche del programma;

· accesso al programma;

· dati in ingresso e in uscita;

· messaggi.

A seconda delle specificità dei documenti è possibile unire singole sezioni o introdurne di nuove.

2.1. La sezione "Scopo e condizioni per l'utilizzo dei programmi" deve indicare lo scopo e le funzioni eseguite dal programma, le condizioni necessarie per l'esecuzione del programma (la quantità di RAM, i requisiti per la composizione e i parametri

periferiche, requisiti software, ecc.).

2.2. La sezione "Caratteristiche del programma" dovrebbe contenere una descrizione delle principali caratteristiche e caratteristiche del programma (caratteristiche temporali, modalità operativa, mezzi per monitorare la corretta esecuzione e autoriparazione del programma, ecc.).

2.3. La sezione "Accesso al programma" dovrebbe contenere una descrizione delle procedure per chiamare il programma (modalità di trasferimento dei parametri di controllo e dati, ecc.).

2.4. La sezione “Dati di input e output” dovrebbe descrivere l'organizzazione delle informazioni di input e output utilizzate e, se necessario, la loro codifica.

2.5. Nella sezione “Messaggi” devono essere riportati i testi dei messaggi emessi al programmatore o all'operatore durante l'esecuzione del programma, una descrizione del loro contenuto e le azioni che devono essere intraprese in risposta a tali messaggi.

2.6. L'appendice al manuale del programmatore può contenere materiale aggiuntivo (esempi, illustrazioni, tabelle, grafici, ecc.).

* Ristampa (novembre 1987) con Modifica n. 1, approvata nel settembre 1981 (IUS 11-81)


APPENDICE 2

utilizzando System.Collections.Generic;

utilizzando System.IO;

utilizzando System.Linq;

utilizzando System.Text;

utilizzando System.Threading.Tasks;

utilizzando System.Windows;

utilizzando System.Windows.Controls;

utilizzando System.Windows.Data;

utilizzando System.Windows.Documents;

utilizzando System.Windows.Input;

utilizzando System.Windows.Media;

utilizzando System.Windows.Media.Imaging;

utilizzando System.Windows.Navigation;

utilizzando System.Windows.Shapes;

utilizzando System.Xml;

utilizzando System.Xml.Linq;

namespace Autotester

///

/// Logica di interazione per MainWindow.xaml

///

classe parziale pubblica MainWindow: Window

string soggettoName = "";//Nome variabile della persona sottoposta al test

private int _step;// Variabile del passaggio del test locale

int countSteps;// Numero di domande nel test (ottenuto dinamicamente dal file di test selezionato)

XDocument mainXml = nuovo XDocument(); // Inizializza l'oggetto documento XML per leggere il file di test

Elenco questionList = nuova lista (); // Elenco delle domande, compilato dal file di test

Elenco risposte = nuova lista (); // Elenco delle risposte

Elenco punteggio = nuova lista (); // Numero di punti segnati

//string testFilePath = "";

int step // Variabile passo globale

return _step;// Ottieni il valore della variabile locale step

var primaStep = _step; // Imposta il passaggio precedente

Step = valore; // Imposta il passo corrente

if (_step == countSteps + 1) // Verifica se il passo corrente è uguale al numero totale di passi, azione sul pulsante per ricominciare

score.Clear();// Cancella i punti accumulati

Answer.Visibility = Visibility.Visible; // Mostra la ListBox in cui mostriamo le risposte alla domanda corrente

Passo = 0;//Vai di nuovo al passo zero

if (_step == 0) // Controlla se il nostro passo è zero

Prev.Content = "Exit";// Assegna al pulsante "Domanda precedente" il valore "Exit"

altrimenti se (_step< 0)// Проверяем шаг меньше ли нуля

Close();//Chiude il programma

Prev.Content = "Indietro"; // Assegna al pulsante "Domanda precedente" il valore Indietro "Domanda precedente"

if (_step > 0) // Se il passo è maggiore di zero

var _answers = risposte[_step - 1].Elements().ToList();// Scrive tutte le opzioni di risposta alla domanda corrente in una variabile

var selezionatoIndex = Answer.SelectedIndex; // Vediamo quale opzione di risposta è stata selezionata nell'ultimo passaggio

indice var = primaStep;

var val = (indiceselezionato!= -1) ? (_answers.Attribute("risposta vera") != null && _answers.Attribute("risposta vera").Valore == "vero") ? 1: 0: 0;// Проверяем был ли ответ правильным!}

if (score.Contains(_step))// Vediamo se abbiamo risposto alla domanda prima

score[_step] = val;// Impostato per la domanda precedente a cui abbiamo risposto correttamente

score.Add(val);// Impostato per la domanda precedente a cui abbiamo risposto correttamente

/*Output se i risultati del test hanno risposto all'ultima domanda*/

if (_step == contaPassi)

Next.Content = "Ricomincia";

Contenuto precedente = "Esci";

stringa somma = punteggio.Sum().ToString();

string numerico = GetDeclension(int.Parse(sum), "risposta corretta", "risposte corrette", "risposte corrette");

string message = "Gentile " + nomeoggetto + ". Grazie per aver sostenuto il test. Il risultato è " + somma + " " + numerico + " da " + countSteps;

Domande.Testo = messaggio;

Risposta.Visibilità = Visibilità.Nascosto;

caricoPasso(_passo, primaPasso);

stringa testFilePath = "Risorse/testTest.xml";

finestra principale pubblica()

InizializzaComponente();

Test.Visibilità = Visibilità.Nascosto;

void loadStep(int _locStep, int beforeStep)

foreach (var curEl in mainXml.Root.Element("domande").Elements())

Domande.Testo = ListaDomande[_locStep];

Risposta.Items.Clear();

var currentAnswers = risposte[_locStep];

foreach (var risposta in currentAnswers.Elements())

Risposta.Articoli.Add(risposta.Valore);

stringa statica pubblica GetDeclension(numero int, stringa nominativ, stringa genetiv, stringa plurale)

numero = numero % 100;

if (numero >= 11 && numero<= 19)

var i = numero % 10;

nominativo di ritorno;

private void prevButton_Click(mittente oggetto, RoutedEventArgs e)

if (Prev.Content.ToString().Trim() == "Esci")

private void nextButton_Click(mittente oggetto, RoutedEventArgs e)

mainXml = XDocument.Load(testFilePath);

var qstns = mainXml.Root.Element("domande").Elements();

conteggioPassi = qstns.Conteggio();

foreach (var domanda in qstns)

questionList.Add(question.Element("testo").Valore);

risposte.Add(question.Element("risposte"));

private void Button_Click(mittente oggetto, RoutedEventArgs e)

nomeoggetto = Testo.Utente;

if (!string.IsNullOrEmpty(nomeoggetto) && !string.IsNullOrEmpty(testFilePath))

Inizio.Visibilità = Visibilità.Nascosto;

Test.Visibilità = Visibilità.Visibile;

MessageBox.Show("I campi obbligatori non sono compilati");

private void spravkaButton_Click(mittente dell'oggetto, RoutedEventArgs e)

Ciao.Visibilità = Visibilità.Nascosto;

Aiuto.Visibilità = Visibilità.Visibile;

private void closeSpravkaButton_Click(mittente oggetto, RoutedEventArgs e)

Ciao.Visibilità = Visibilità.Visibile;

Aiuto.Visibilità = Visibilità.Nascosto;

I migliori articoli sull'argomento