Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Industriële technologie

Fundamenten van SPICE-programmering

Het programmeren van een circuitsimulatie met SPICE lijkt veel op programmeren in elke andere computertaal:u moet de opdrachten als tekst in een bestand typen, dat bestand opslaan op de harde schijf van de computer en vervolgens de inhoud van dat bestand verwerken met een programma (compiler of interpreter) die dergelijke opdrachten begrijpt. In een geïnterpreteerde computertaal bevat de computer een speciaal programma dat een tolk wordt genoemd dat het programma vertaalt dat je hebt geschreven (het zogenaamde bronbestand ) in de eigen taal van de computer, terwijl deze wordt uitgevoerd: In een gecompileerde computertaal wordt het programma dat u hebt geschreven in één keer vertaald in de eigen taal van de computer door een speciale programma genaamd een compiler . Nadat het programma dat u hebt geschreven is "gecompileerd", het resulterende uitvoerbare bestand bestand heeft geen verdere vertaling nodig om direct door de computer te worden begrepen. Het kan nu op een computer worden "uitgevoerd", ongeacht of er compilersoftware op die computer is geïnstalleerd: SPICE is een geïnterpreteerde taal. Om ervoor te zorgen dat een computer de SPICE-instructies die u typt, kan begrijpen, moet het SPICE-programma (interpreter) zijn geïnstalleerd: SPICE-bronbestanden worden gewoonlijk "netlists" genoemd, hoewel ze bij elk regel in het bestand dat een "kaart" wordt genoemd. Leuk, vind je niet? Netlijsten worden gemaakt door iemand zoals u die regel voor regel instructies typt met behulp van een tekstverwerker of teksteditor. Teksteditors hebben veel voorkeur boven tekstverwerkers voor elk type computerprogrammering, omdat ze pure ASCII-tekst produceren zonder speciale ingesloten codes voor tekstaccentuering (zoals cursief of vet fonts), die niet kunnen worden geïnterpreteerd door interpreter- en compilersoftware. Net als bij algemene programmering, moet het bronbestand dat u voor SPICE maakt, bepaalde programmeerconventies volgen. Het is een computertaal op zich, zij het een eenvoudige. Na geprogrammeerd te zijn in BASIC en C/C++ en enige ervaring te hebben met het lezen van PASCAL- en FORTRAN-programma's, ben ik van mening dat de taal van SPICE veel eenvoudiger is dan al deze. Het is ongeveer dezelfde complexiteit als een opmaaktaal zoals HTML, misschien minder. Er is een cyclus van te volgen stappen bij het gebruik van SPICE om een ​​circuit te analyseren. De cyclus begint wanneer u voor het eerst het tekstbewerkingsprogramma aanroept en uw eerste concept van de netlijst maakt. De volgende stap is om SPICE op die nieuwe netlijst uit te voeren en te kijken wat de resultaten zijn. Als u een beginnende gebruiker van SPICE bent, zullen uw eerste pogingen om een ​​goede netlijst te maken beladen zijn met kleine syntaxisfouten. Maak je geen zorgen - zoals elke computerprogrammeur weet, komt vaardigheid met veel oefening. Als uw proefrun foutmeldingen of resultaten oplevert die duidelijk onjuist zijn, moet u het tekstbewerkingsprogramma opnieuw oproepen en de netlijst wijzigen. Nadat u de netlijst hebt gewijzigd, moet u SPICE opnieuw uitvoeren en de resultaten controleren. De reeks ziet er dan ongeveer zo uit:

  • Stel een nieuwe netlijst samen met een tekstbewerkingsprogramma. Sla die netlijst op in een bestand met een naam naar keuze.
  • Voer SPICE uit op die netlijst en bekijk de resultaten.
  • Als de resultaten fouten bevatten, start u het tekstbewerkingsprogramma opnieuw en wijzigt u de netlijst.
  • Voer SPICE opnieuw uit en bekijk de nieuwe resultaten.
  • Als er nog steeds fouten zijn in de uitvoer van SPICE, bewerk dan de netlijst opnieuw met het tekstbewerkingsprogramma. Herhaal deze cyclus van bewerken/uitvoeren zo vaak als nodig is totdat u de gewenste resultaten krijgt.
  • Zodra je je netlijst hebt "debuggen" en goede resultaten krijgt, voer je SPICE opnieuw uit, maar deze keer wordt de uitvoer omgeleid naar een nieuw bestand in plaats van het alleen op het computerscherm te bekijken.
  • Start een tekstbewerkingsprogramma of een tekstverwerkingsprogramma en open het SPICE-uitvoerbestand dat u zojuist hebt gemaakt. Pas dat bestand aan uw opmaakbehoeften aan en sla die wijzigingen op schijf op en/of druk ze op papier af.

Om een ​​SPICE "programma" uit te voeren, moet u een opdracht typen op een terminalpromptinterface, zoals die in MS-DOS, UNIX of de MS-Windows DOS-promptoptie:

specerij  

Het woord "spice" roept het SPICE-interpretatieprogramma op (mits de SPICE-software op de computer is geïnstalleerd!), het "<"-symbool verwijst de inhoud van het bronbestand om naar de SPICE-interpreter en example.cir is de naam van het bronbestand voor dit circuitvoorbeeld. De bestandsextensie “.cir ” is niet verplicht; Ik heb ".inp . gezien ” (voor “invoer”) en gewoon “.txt ' werken ook goed. Het werkt zelfs als het netlist-bestand geen extensie heeft. Het maakt SPICE niet uit hoe je het noemt, zolang het maar een naam heeft die compatibel is met het bestandssysteem van je computer (voor oude MS-DOS-machines mag de bestandsnaam bijvoorbeeld niet meer dan 8 tekens lang zijn, met een 3 tekenextensie en geen spaties of andere niet-alfanumerieke tekens). Wanneer deze opdracht wordt ingetypt, leest SPICE de inhoud van de example.cir bestand, analyseer het circuit dat door dat bestand is gespecificeerd en stuur een tekstrapport naar de standaarduitvoer van de computerterminal (meestal het scherm, waar u het voorbij kunt zien scrollen). Een typische SPICE-output bestaat uit meerdere schermen met informatie, dus je zou het misschien willen bekijken met een kleine wijziging van de opdracht:

specerij  

Dit alternatief "pijpt" de tekstuitvoer van SPICE naar het hulpprogramma "meer", waarmee slechts één pagina tegelijk kan worden weergegeven. Wat dit betekent (in het Engels) is dat de tekstuitvoer van SPICE wordt gestopt na één scherm vol en wacht tot de gebruiker op een toetsenbordtoets drukt om het volgende scherm vol tekst weer te geven. Als u alleen uw voorbeeldcircuitbestand aan het testen bent en u wilt controleren op fouten, dan is dit een goede manier om dit te doen.

specerij  ​​voorbeeld.txt 

Dit tweede alternatief (hierboven) leidt de tekstuitvoer van SPICE om naar een ander bestand, genaamd example.txt , waar het kan worden bekeken of afgedrukt. Deze optie komt overeen met de laatste stap in de eerder genoemde ontwikkelingscyclus. Het wordt door deze auteur aanbevolen om deze techniek van "omleiding" naar een tekstbestand alleen te gebruiken nadat u hebt bewezen dat uw voorbeeldcircuitnetlijst goed werkt, zodat u geen tijd verspilt aan het aanroepen van een teksteditor alleen om de uitvoer te zien tijdens de fasen van "debuggen". Zodra je een SPICE-uitvoer hebt opgeslagen in een .txt bestand, kunt u een teksteditor of (beter nog!) een tekstverwerker gebruiken om de uitvoer te bewerken, onnodige banners en berichten te verwijderen, en zelfs alternatieve lettertypen op te geven om de koppen en/of gegevens te markeren voor een meer gepolijst uiterlijk. Dan kunt u de uitvoer natuurlijk op papier afdrukken als u dat wilt. Omdat de directe SPICE-uitvoer gewone ASCII-tekst is, is een dergelijk bestand universeel interpreteerbaar op elke computer, of SPICE erop is geïnstalleerd of niet. Het platte tekstformaat zorgt er ook voor dat het bestand erg klein zal zijn in vergelijking met de grafische schermafbeeldingen die worden gegenereerd door "aanwijzen-en-klikken"-simulators. Het door SPICE vereiste netlist-bestandsformaat is vrij eenvoudig. Een netlist-bestand is niets meer dan een gewoon ASCII-tekstbestand dat meerdere regels tekst bevat, waarbij elke regel een circuitcomponent of een speciaal SPICE-commando beschrijft. Circuitarchitectuur wordt gespecificeerd door nummers toe te wijzen aan de verbindingspunten van elk onderdeel in elke lijn, verbindingen tussen componenten die worden aangeduid met gemeenschappelijke nummers. Bekijk het volgende voorbeeldschakelschema en het bijbehorende SPICE-bestand. Houd er rekening mee dat het schakelschema alleen bestaat om de simulatie voor mensen begrijpelijker te maken. SPICE begrijpt alleen netlijsten:

Voorbeeld netlijst v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .einde 

Elke regel van het hierboven getoonde bronbestand wordt hier uitgelegd:

  • v1 vertegenwoordigt de batterij (spanningsbron 1), positieve pool genummerd 1, negatieve pool genummerd 0, met een DC-uitgangsspanning van 15 volt.
  • r1 vertegenwoordigt weerstand R1 in het diagram, verbonden tussen punten 1 en 0, met een waarde van 2,2 kΩ.
  • r2 vertegenwoordigt weerstand R2 in het diagram, verbonden tussen punten 1 en 2, met een waarde van 3,3 kΩ.
  • r3 vertegenwoordigt weerstand R3 in het diagram, verbonden tussen punten 2 en 0, met een waarde van 150 kΩ.

Elektrisch gemeenschappelijke punten (of "knooppunten") in een SPICE-circuitbeschrijving delen gemeenschappelijke nummers, ongeveer op dezelfde manier als draden die gemeenschappelijke punten in een groot circuit verbinden, doorgaans gemeenschappelijke draadlabels delen. Om dit circuit te simuleren, typt de gebruiker die zes regels tekst in een teksteditor en slaat ze op als een bestand met een unieke naam (zoals example.cir ). Zodra de netlijst is samengesteld en in een bestand is opgeslagen, verwerkt de gebruiker dat bestand met een van de eerder getoonde opdrachtregelinstructies (spice ), en zullen deze tekstuitvoer op hun computerscherm ontvangen:

1******10/10/99 ******** kruiden 2g.6 15-3-83 ********07:32:42**** * 0voorbeeld netlijst 0**** invoerlijst temperatuur =27.000 deg c v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .einde *****10/10/99 ********** kruiden 2g.6 15-3-83 ******07:32:42****** 0voorbeeld netlijst 0**** kleine signaalbias-oplossingstemperatuur =27.000 deg c knooppunt spanning knooppunt spanning (1) 15.0000 (2) 0,6522 spanningsbronstromen naam huidige v1 -1.117E-02 totale vermogensdissipatie 1.67E-01 watt klus geklaard 0 totale werktijd 0.02 1*******10/10/99 ******** kruiden 2g.6 15-3-83 ******07:32:42***** 0**** invoerlijst temperatuur =27.000 deg c 

SPICE begint met het afdrukken van de tijd, datum en versie die bovenaan de uitvoer worden gebruikt. Vervolgens worden de invoerparameters (de regels van het bronbestand) weergegeven, gevolgd door een weergave van de DC-spanningsmetingen van elk knooppunt (referentienummer) tot aarde (altijd referentienummer 0). Dit wordt gevolgd door een lijst met stroommetingen via elke spanningsbron (in dit geval is er maar één, v1). Ten slotte wordt het totale vermogensverlies en de rekentijd in seconden afgedrukt. Alle uitvoerwaarden die door SPICE worden geleverd, worden weergegeven in wetenschappelijke notatie. De hierboven getoonde SPICE-uitvoerlijst is een beetje uitgebreid voor de smaak van de meeste mensen. Voor een eindpresentatie is het misschien leuk om alle overbodige tekst weg te knippen en alleen wat er toe doet over te laten. Hier is een voorbeeld van dezelfde uitvoer, omgeleid naar een tekstbestand (spice ​​example.txt ), vervolgens oordeelkundig ingekort met een teksteditor voor de eindpresentatie en afgedrukt:

voorbeeld netlijst v1 1 0 dc 15 r1 1 0 2.2k r2 1 2 3.3k r3 2 0 150 .einde 
knooppunt spanning knooppunt spanning (1) 15.0000 (2) 0,6522 
spanningsbronstromen naam huidige v1 -1.117E-02 
totale vermogensdissipatie 1,67E-01 watt 

Een van de leuke dingen van SPICE is dat zowel invoer- als uitvoerformaten platte tekst zijn, het meest universele en gemakkelijk te bewerken elektronische formaat dat er is. Vrijwel elke computer kan dit formaat bewerken en weergeven, zelfs als het SPICE-programma zelf niet op die computer aanwezig is. Als de gebruiker dat wenst, staat het hem of zij vrij om de geavanceerde mogelijkheden van tekstverwerkingsprogramma's te gebruiken om de uitvoer er mooier uit te laten zien. Opmerkingen kunnen zelfs tussen de regels van de uitvoer worden ingevoegd voor meer duidelijkheid voor de lezer.


Industriële technologie

  1. Inleiding tot SPICE
  2. Geschiedenis van SPICE
  3. De opdrachtregelinterface
  4. Circuitcomponenten
  5. Microprocessor-programmering
  6. Halfgeleiderapparaten in SPICE
  7. Computersimulatie van elektrische circuits
  8. Naamruimten in C#-programmering
  9. C Programmeren van operators
  10. C Zelfstudie
  11. Grondbeginselen van Double Disk Grinding