ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Анализ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ‹ Π’Π‘2 ЦП Π”Π¦ «Минск»

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Ѐункция Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ написанного Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса TgrapthicControl1 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡΠ΅Ρ€ΠΈΠΈ. Π’ Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² появляСтся Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ свойство SERIAL, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ сСрии (Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ К155 ΠΈ ΠšΠœΠžΠŸ). ΠŸΠΎΠ±ΠΎΡ‡Π½ΠΎ с ΡΡ‚ΠΈΠΌ Π² ΡΠΎΠΎΡ‚вСтствии с Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Анализ Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ‹ Π’Π‘2 ЦП Π”Π¦ «Минск» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

  • ОглавлСниС 1
    • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ 2
  • 1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° систСмы модСлирования 4
    • 1.1 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для исслСдования Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… схСм 4
    • 1.2 ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ модСлирования 10
  • 2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² 16
    • 2.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² модСлирования Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… схСм 16
    • 2.2 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° интСрфСйсной части ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° 17
    • 2.3 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² функционирования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² 17
  • 3. ИсслСдованиС Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ‹ Π’Π‘ ЦП Π”Π¦ Минск 18
    • 3.1 НазначСниС ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ функционирования ΠΏΠ»Π°Ρ‚Ρ‹ Π’Π‘2 19
    • 3.2 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ 20
  • 4. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² 21
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А 22
  • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’ 27
    • ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘ 40

цифровая схСма ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ интСрфСйсный

Одним ΠΈΠ· ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… инструмСнтов ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ бСзопасности систСмы (элСмСнтов) являСтся физичСскоС ΠΈ (ΠΈΠ»ΠΈ) логичСскоС (ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ΅) ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ΠŸΡ€ΠΈ физичСском ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ исслСдованию подвСргаСтся ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ систСма, Ρ‡Ρ‚ΠΎ прСдопрСдСляСт отсутствиС вопросов ΠΎΠ± Π°Π΄Π΅ΠΊΠ²Π°Ρ‚ности ΠΈ ΡΠΎΠΎΡ‚вСтствии Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² модСлирования истинным Π΄Π°Π½Π½Ρ‹ΠΌ. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΠ·-Π·Π° ΠΌΠ°Π»Ρ‹Ρ… возмоТностСй физичСских экспСримСнтов ΠΏΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ систСмы. Анализ процСссов, происходящих Π² ΠΌΠΈΠΊΡ€ΠΎΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Ρ… устройствах, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ рСализация логичСской структуры, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ нСпосрСдствСнно ΠΏΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌ синтСза, Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ работоспособноС устройство ΠΈΠ·-Π·Π° наличия состязаний, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·-Π·Π° отсутствия строгой синхронизации Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… сигналов ΠΈΠ»ΠΈ вслСдствиС разброса Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΠΏΠΎΡ€ΠΎΠ³Π° Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ логичСских элСмСнтов. Π’ ΡΡ‚ΠΎΠΌ случаС цСлСсообразно для исслСдования свойств Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… устройств ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ логичСскоС ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ собой ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ логичСской схСмы с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠŸΠ­Π’Πœ.

Π˜ΡΠΏΡ‹Ρ‚Π°Π½ΠΈΡ Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… модСлях ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ испытаний ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚:

ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ускорСнныС испытания Π² ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;

ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ испытаний всС мноТСство Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… тСхнологичСских ситуаций;

ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ большоС число ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ² Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Ρ… срСдств, Ρ‡Ρ‚ΠΎ нСосущСствимо ΠΏΡ€ΠΈ испытаниях физичСских ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ;

ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ППО; ΠΎΡ‚ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ списки опасных ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ²; ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ статистичСскиС Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎ Π²Π»ΠΈΡΠ½ΠΈΡŽ сбоСв Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ;

ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ вСроятностныС экспСримСнты с ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ модСлями систСм большой размСрности.

Π˜ΡΠΏΡ‹Ρ‚Π°Π½ΠΈΡ устройств Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² ΡΠ΅Π±Ρ экспСртизу Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ испытания ΠΈ ΡΡ‚Π΅Π½Π΄ΠΎΠ²Ρ‹Π΅ испытания ΠΎΠΏΡ‹Ρ‚Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Π°.

Π˜ΠΌΠΈΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ испытания Π½Π° ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… модСлях, дСлятся Π½Π° Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π°:

испытания тСхнологичСских Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ²;

ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… срСдств ΠΏΡ€ΠΈ сбоях ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°Ρ…;

испытания ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ-тСхничСских срСдств.

ЦСлью настоящСго курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° являСтся Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ прилоТСния, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ Π² ΡΠ΅Π±Ρ Π½Π°Π±ΠΎΡ€ микроэлСктронных элСмСнтов, комплСкс тСстовых ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ испытания микроэлСктронных схСм.

НСобходимо ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² элСмСнтов Π’Π’Π› ΠΈ ΠšΠœΠžΠŸ, для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ испытания Π±Ρ‹Π»ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ΅Π½Ρ‹ ΠΊ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΌ процСссам, происходящим Π² ΠΌΠΈΠΊΡ€ΠΎΡΠ»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹Ρ… элСмСнтах.

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ‹ Π’Π‘2 ЦП Π”Π¦ «ΠœΠΈΠ½ΡΠΊ» Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ станСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΏΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²Ρ‹ΡˆΠ΅ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° систСмы модСлирования

1.1 ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ для исслСдования Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… схСм

БистСма модСлирования состоит ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ входят логичСскиС элСмСнты, Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹, счСтчики, рСгистры, Π΄Π΅ΡˆΠΈΡ„Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€ ΠΈ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ²ΠΈΠ±Ρ€Π°Ρ‚ΠΎΡ€, тСстовыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ (Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ², рСгистратор ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠ²), Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ связныС логичСскиС структуры — линия ΠΈ Ρ‚ΠΎΡ‡ΠΊΠ°, сСрвисныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ тСстовыС испытания ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π΄ΠΈΠ°Π»ΠΎΠ³ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π’ ΡΠ²ΡΠ·ΠΈ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС логичСскиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ сходными свойствами, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса.

Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΎΠ±Ρ‰ΠΈΠΌΠΈ характСристиками, ΠΊΠ°ΠΊ Π²Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΉ Π°Π»Ρ„Π°Π²ΠΈΡ‚, Π½Π°Π±ΠΎΡ€ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… состояний. Π’Π°ΠΊΠΆΠ΅ всС микроэлСктронныС элСмСнты Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ значСния Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ Π·Π°ΠΊΠΎΠ½Ρƒ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π²Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… состояний. Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ возмоТностСй ввСдСния нСисправностСй Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹, послСдниС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ ΠΏΡ€ΠΈ нСобходимости Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π²Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ… состояний ΠΏΠΎ ΠΎΡΠΎΠ±ΠΎΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρƒ нСисправного элСмСнта.

Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ класс Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΡΠ΅Π±Ρ описания всСх элСктричСских ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² элСмСнтов. Π­Ρ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Сдинообразия Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ структуры любого элСмСнта, ΠΏΠΎΡ€ΠΎΠΆΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠ°, входящСго Π² ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ.

Абстрактный Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс TGraphicControl1 (рисунок 1.2) ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ всСми пСрСчислСнными свойствами. Π’ ΡΡ‚ΠΎΠΌ классС ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ свойства (property), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² элСмСнтов. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ свойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Π² ΠΎΠΏΠΈΡΠ°Π½ΠΈΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (pure virtual functions), ΠΈΠ»ΠΈ «Π·Π°Π³Π»ΡƒΡˆΠΊΠΈ».

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС элСмСнты ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ унаслСдовали ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ своС условноС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ взаимодСйствия с Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€ΠΎΠΌ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Object Inspector) C++ Builder, Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ абстрактный класс TGraphicControl1 нслСдуСтся ΠΎΡ‚ ΠΊΠ»Π°ΡΡΠ° TGraphicControl. Π­Ρ‚ΠΎΡ‚ класс являСтся ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ VCL (Visual Component Library). ГрафичСскиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ наслСдниками класса TGraphicControl ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой Π²ΠΈΠ΄ΠΈΠΌΡ‹Π΅ элСмСнты управлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ фокус Π²Π²ΠΎΠ΄Π°, Ρ‚.ΠΊ. Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ся ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌΠΈ. Они Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ для Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов управлСния, Ρ‚. Π΅. Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»Π°Π΄Π΅Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ. ГрафичСскиС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Π΅Π· использования систСмных рСсурсов, ΠΎΠ½ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΌΠ΅Π½ΡŒΡˆΠΈΡ… «Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов», Π½Π΅ΠΆΠ΅Π»ΠΈ стандартныС (находящиСся Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Standard Π² C++ Builder) ΠΈΠ»ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ (наслСдники ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TWinControl) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, всС элСмСнты, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ наслСдниками класса TGraphicControl1 ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Windows (Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ OnPaint, OnMouseMove) простым ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса.

ΠžΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅ΠΉ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ стоит ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TExperimentManager (рисунок 1.2). Он ΡΠ²Π»ΡΠ΅Ρ‚ся наслСдником ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π±Π°Π·ΠΎΠ²Ρ‹Ρ… классов ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ VCL TWinControl. ИспользованиС Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ родитСля ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΡŽ Π·Π°Ρ‚Ρ€Π°Ρ‚ рСсурсов Π­Π’Πœ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ систСмныС рСсурсы. Но Ρ‚Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ€Ρ‹ ΠΎΠΏΡ€Π°Π²Π΄Π°Π½Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΊΠΎΠ½Π½Ρ‹Π΅ (Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ способны ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ фокус Π²Π²ΠΎΠ΄Π° ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, Ρ‚. Π΅. ΡΠ²Π»ΡΡ‚ΡŒΡΡ родитСлями Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов управлСния. А ΡΡ‚ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для взаимодСйствия с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TExperimentManager выполняСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Π»ΠΎΠΊΠ° управлСния экспСримСнтом, Π° Ρ‚Π°ΠΊΠΆΠ΅ интСрфСйсного Π±Π»ΠΎΠΊΠ°, Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π’Π°ΠΊΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π΅Π΄ΠΈΠ½ΡΡ‚Π²Π΅Π½Π½ΠΎΠΌ экзСмплярС. Π­Ρ‚ΠΎΡ‚ элСмСнт выполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° сцСнария посрСдством взаимодСйствия с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса TTestFile (рисунок 1.2);

гСнСрация ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ сбоСв ΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ² Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅ΠΊ, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° сцСнария;

Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅

нСисправностСй Π² ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ схСмы;

подсчСт тСстового Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;

запуск Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎ всСх элСмСнтов схСмы Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ†ΠΈΠΊΠ»Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹;

ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ схСмы посрСдством взаимодСйствия с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ класса TLogFile (рисунок 1.2).

Π‘Π»ΠΎΠΊ управлСния экспСримСнтом содСрТит Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ управлСния, ΠΊΠ°ΠΊ TEditBox, TLabel ΠΈ TButton (рисунок 1.1). Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ управлСния ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» дискрСтизации ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π° Ρ‚Π°ΠΊΠΆΠ΅ количСство Ρ†ΠΈΠΊΠ»ΠΎΠ² тСстирования.

Рисунок 1.1 — Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° «Π‘Π»ΠΎΠΊ управлСния экспСримСнтом»

Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΡ‚Π° задаСтся Π² Ρ‚ысячных долях наносСкунды. Π’Π°ΠΊΠΎΠΉ запас ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΡ€ΠΈ нСобходимости Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π² ΡˆΠΈΡ€ΠΎΠΊΠΈΡ… ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ….

ΠŸΡ€ΠΈΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ тСстирования Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° дискрСтизации. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, модСль ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства Π·Π° Π²Ρ€Π΅ΠΌΡ:

(1.1)

Π³Π΄Π΅ N — число Ρ‚Π°ΠΊΡ‚ΠΎΠ²;

tдискрСт. — Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΡ‚Π° (Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° дискрСтизации).

Если производится автоматичСская гСнСрация Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ нСисправностСй, Ρ‚ΠΎ Ρ‡ΠΈΡΠ»ΠΎ Ρ‚Π°ΠΊΠΈΡ… ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ.

Π’Π°ΠΊΠΆΠ΅ Π½Π΅ ΡΠ²Π»ΡΠ΅Ρ‚ся наслСдником основного Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ элСмСнтов ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TConnection. Π­Ρ‚ΠΎΡ‚ элСмСнт ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ°, соСдинитСля Π² ΡΠ»Π΅ΠΊΡ‚ричСской схСмС. Он Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°Ρ‚ΡŒ свойствами микроэлСктронного элСмСнта. Π Π°Π±ΠΎΡ‚Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ значСния напряТСния, ΠΏΠΎΡΡ‚ΡƒΠΏΠΈΠ²ΡˆΠ΅Π³ΠΎ Π½Π° Π΅Π³ΠΎ Π²Ρ…ΠΎΠ΄. Рассмотрим описаниС Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°:

Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сСрвисныС классы (рисунок 1.2) слуТат для взаимодСйствия ΠŸΠž с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ TLogFile ΠΈ TSection), синтаксичСского Ρ€Π°Π·Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TatfParser), Π° Ρ‚Π°ΠΊΠΆΠ΅ для упрощСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΠ»ΠΎΠΆΠ½Ρ‹ΠΌΠΈ структурами Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (TTestTimer). Π­Ρ‚ΠΈ классы Π½Π΅ Π²Ρ…одят Π² ΠΎΠ±Ρ‰ΡƒΡŽ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ элСмСнтов ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ тСстового Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ слуТит класс TTestTimer. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ класса опрСдСляСтся Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ структура Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ достаточно слоТна ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Ρ‚Π°ΠΊΠΈΠΌΠΈ структурами ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊΡ€Π°ΠΉΠ½Π΅ Π½Π΅ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Класс управлСния Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ счСтчика Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π°Ρ‡Π°Π»Π° тСстирования TTestTimer позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ со ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ:

суммированиС Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° TTestTimer ΠΈΠ»ΠΈ TTestTimer ΠΈ long;

Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ Π΄Π²ΡƒΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° TTestTimer ΠΈΠ»ΠΈ TTestTimer ΠΈ long;

ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° 1 пикосСкунду;

ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° 1 пикосСкунду;

сравнСниС ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ;

суммированиС с Ρ†Π΅Π»Ρ‹ΠΌ числом, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ прСдставляСт собой врСмя Π² ΠΏΠΈΠΊΠΎΡΠ΅ΠΊΡƒΠ½Π΄Π°Ρ….

ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»Π΅Π½Π½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° доопрСдСлСния стандартных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… классов.

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»ΠΎΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ классы TLogFile ΠΈ TSection. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° повторяСт Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ стандартного ini-Ρ„Π°ΠΉΠ»Π° Windows. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ создания собствСнного класса для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Ρ‚Π°ΠΊΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ обусловлСна ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π΄Π»ΠΈΠ½Ρ‹ стандартного Ρ„Π°ΠΉΠ»Π° Π²Π΅Π»ΠΈΡ‡ΠΈΠ½ΠΎΠΉ Π² 64 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ‚Π°, Ρ‡Ρ‚ΠΎ нСдопустимо, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ тСстировании Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большСго Ρ€Π°Π·ΠΌΠ΅Ρ€Π°. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, тСстированиС ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎ, Ρ‡Ρ‚ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс TLogFile обСспСчиваСт Π³ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ быстрый доступ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π°, Ρ‡Π΅ΠΌ это ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ стандартныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ini-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ. Π’Π°ΠΊΠΎΠΉ эффСкт Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ обусловлСн ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π³ΠΈΠ±ΠΊΠΎΠΉ Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ записи Π½Π° Π΄ΠΈΡΠΊ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ сСкций Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ… Π½Π° Π΄ΠΈΡΠΊΠ΅.

БинтаксичСский Π°Π½Π°Π»ΠΈΠ· Ρ„Π°ΠΉΠ»Π° сцСнария осущСствляСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ класса TatfParser. ВзаимодСйствиС с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… классов осущСствляСтся посрСдством ΠΎΠ΄Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Process ():

void __fastcall Process (TGraphicControl1*, char*);

Данная функция Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ элСмСнт ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π±ΡƒΡ„Π΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится содСрТимоС Ρ„Π°ΠΉΠ»Π° сцСнария. Π”Π°Π»Π΅Π΅ производится Π°Π½Π°Π»ΠΈΠ· содСрТимого Ρ„Π°ΠΉΠ»Π°, инициализация ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… согласно ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, записанной Π² Ρ„Π°ΠΉΠ»Π΅ сцСнария. Π’Π°ΠΊΠΆΠ΅ производится интСрпрСтация Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ сцСнария (скрипта) с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ влоТСнностСй скриптов ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄. Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ влоТСнности Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² классов ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ назначСния ΠΈ Π²ΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ обращСния ΠΊ ΡΡ‚ΠΈΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ производятся Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ — «Π‘Π»ΠΎΠΊ управлСния экспСримСнтом» (класс TExperimentManager).

Описанная иСрархия классов позволяСт Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ созданиС Π½ΠΎΠ²Ρ‹Ρ… элСмСнтов, Π½ΠΎ ΠΈ ΡΠΏΠΎΡΠΎΠ±ΡΡ‚Π²ΡƒΠ΅Ρ‚ ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡŽ вСроятности ошибок программистов, Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ элСмСнтов. НаличиС ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса для всСх Π²ΠΈΠ΄ΠΎΠ² Π±Π°Π·ΠΎΠ²Ρ‹Ρ… элСмСнтов позволяСт ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ Π»ΡŽΠ±ΠΎΠΌΡƒ элСмСнту Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π΅Π³ΠΎ родитСля (Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ класс). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π΅Ρ‚ нСобходимости Π² Π·Π½Π°Π½ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ тСстирования Ρ€Π°Π±ΠΎΡ‚Ρ‹ схСмы ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ Π΅Π΅ Π² Π°Π²Ρ‚оматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Рисунок 1.2 — Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ классов систСмы модСлирования микроэлСктронных устройств.

1.2 ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡΠΈΡΡ‚Π΅ΠΌΠΎΠΉ модСлирования

ИспользованиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для создания ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ испытаний ΠΈΠΌΠΈΡ‚Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ состоит ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… этапов:

установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²;

созданиС ΠΌΠΎΠ΄Π΅Π»ΠΈ схСмы;

написаниС Ρ„Π°ΠΉΠ»Π° сцСнария ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² тСстирования;

Π°Π½Π°Π»ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ.

БистСма модСлирования Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ, Π½Π΅ Π²Π½ΠΈΠΊΠ°Ρ Π² Π½Π°Ρ‡ΠΈΠ½ΠΊΡƒ прилоТСния, ΠΌΠΎΠ³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Она позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² всСвозмоТныС схСмы, ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π΄Π°Π½Π½ΠΎΠΉ схСмы, задавая Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π²Ρ…ΠΎΠ΄Π½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, ΠΈΠΌΠΈΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ сбои ΠΈ ΠΎΡ‚ΠΊΠ°Π·Ρ‹.

ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ находятся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π°ΠΊΠ»Π°Π΄ΠΊΠ°Ρ… Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ C++Builder ΠΈ ΠΏΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Π΅Π· особого Ρ‚Ρ€ΡƒΠ΄Π° ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ схСму. Π Π°Π±ΠΎΡ‚Π° схСмы модСлируСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ скрипта, находящСгося Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅. Π―Π·Ρ‹ΠΊ написания скрипта Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ прост ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ всСго нСсколько спСциализированных слов. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ схСмы Ρ‚Π°ΠΊΠΆΠ΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ». Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ эти Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌ, Ρ‡Ρ‚ΠΎ позволяСт наглядно ΠΏΡ€ΠΎΠ°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ схСмы Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π΅.

Π‘Π»ΠΎΠΊ управлСния экспСримСнтом (TExperimentManager) осущСствляСт ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€ всСх элСмСнтов схСмы ΠΈ Π·Π°ΠΏΡƒΡΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Run () ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта. Π’ ΡΡ‚ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ производится ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ элСмСнта, вычислСниС ΠΈ Π²Ρ‹Π΄Π°Ρ‡Π° Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… воздСйствий с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² элСмСнта, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ состояния ΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… воздСйствий.

ΠšΡ€Π°Ρ‚ΠΊΠΎ рассмотрим этапы использования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния:

ΠŸΡ€ΠΈ инсталляции Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² модСлирования микроэлСктронных систСм БЖАВ происходит интСграция ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² ΡΡ€Π΅Π΄Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ C++ Builder, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡΡ‚ΠΈΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС возмоТности, прСдоставляСмыС срСдой Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ: срСдства рСдактирования, Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ размСщСния, измСнСния свойств ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ сохранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ произвСсти ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (строго Π² Ρ‚ΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½ΠΈ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Ρ‹ Π½ΠΈΠΆΠ΅):

ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Ссли таковая Π±Ρ‹Π»Π° установлСна) ΠΈΠ· C++ Builder IDE (Integrated Development Environment);

ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ скомпилированный Ρ€Π°Π½Π΅Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Elements. bpl с ΠΆΠ΅ΡΡ‚ΠΊΠΎΠ³ΠΎ диска;

ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π² Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° (ProjectOptionsLinker) Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π° опция Π»ΠΈΠ½ΠΊΠ΅Ρ€Π° «Use dynamic RTL»;

ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Elements. bpk (мСню FileOpen);

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню «ProjectMake…» ΠΈΠ»ΠΈ «ProjectBuild…» для компиляции модуля Elements. bpk;

ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Elements. bpl Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ доступСн Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ окруТСния %PATH% ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы;

послС компиляции, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ проСктирования (design-time packages) Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ C++ Builder IDE. Π­Ρ‚ΠΎ дСлаСтся Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ «Packages», Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню «ComponentInstall packages…», Π·Π°Ρ‚Π΅ΠΌ Π½Π°Π΄ΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Add…», ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ располоТСниС Ρ„Π°ΠΉΠ»Π° Elements. bpl ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ «OK» для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ модуля Π² IDE.

ПослС установки Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½Π° содСрТит, ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΈ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ VCL. ΠŸΡ€ΠΈ нСобходимости Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ возмоТностСй ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈΠ»ΠΈ добавлСния Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½ΠΎΠ²Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ микроэлСктронных элСмСнтов, достаточно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ исходный тСкст модуля, ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (Elements.bpk) ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ 6 описанного Π²Ρ‹ΡˆΠ΅ процСсса инсталляции Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² интСгрируСтся Π² ΡΡ€Π΅Π΄Ρƒ Borland C++ Builder. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ C++ Builder вСрсии 4.0 ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅. Для создания Π½ΠΎΠ²ΠΎΠΉ схСмы, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ (FileNew Project) Π² C++ Builder, послС Ρ‡Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° Π³Π»Π°Π²Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ элСмСнтов Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ производится ΠΏΡƒΡ‚Π΅ΠΌ «ΠΏΠ΅Ρ€Π΅Ρ‚аскивания» (drag&drop) ΠΈΡ… Ρ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² C++ Builder. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ процСссом тСстирования, располоТСны Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ «Experiment Tools», соСдинитСли ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ — Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ «Base», ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ элСмСнты — Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ «Elements», Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹, рСгистры, счСтчики ΠΈ Π΄Π΅ΡˆΠΈΡ„Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ — Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ «Triggers».

Установка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… элСмСнтов производится Π² Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² (Object Inspector) C++ Builder ΠΏΡƒΡ‚Π΅ΠΌ измСнСния Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… свойств ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта.

ПослС располоТСния основных элСмСнтов, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ€Π°ΡΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Π»ΠΈΠ½ΠΈΠΈ (ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠ²), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ «ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ся» ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ элСмСнта ΠΏΡƒΡ‚Π΅ΠΌ Π²Ρ‹Π±ΠΎΡ€Π° Π»ΠΈΠ½ΠΈΠΈ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ°, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ свойствС элСмСнта (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, In ΠΈ Out для ΠΈΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€Π°).

МодСли соСдинСний ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠ² (Ρ‚ΠΎΡ‡ΠΊΠΈ) Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ микроэлСктронных элСмСнтов. Как ΠΈ Π²ΡΠ΅ микроэлСктронныС элСмСнты, Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Π»Π°Π΄Π΅ΡŽΡ‚ свойствами, установкой Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ ΠΊ Ρ‚ΠΎΡ‡ΠΊΠ΅ соСдинСния Π΄ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π»ΠΈΠ½ΠΈΠΉ (ΠΎΠ΄ΠΈΠ½ Π²Ρ…ΠΎΠ΄ — свойство «In» ΠΈ Ρ‚Ρ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π° — свойства «Out1», «Out2», «Out3»).

На Ρ„ΠΎΡ€ΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ управлСния экспСримСнтом.

Когда элСмСнты располоТСны, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΡ‚ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΉ исполняСмый Ρ„Π°ΠΉΠ» — готовая ΠΊ Π·Π°ΠΏΡƒΡΠΊΡƒ Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ модСль схСмы. ПослС запуска ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ значСния шага дискрСтизации ΠΈ ΠΊΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²Π° Ρ†ΠΈΠΊΠ»ΠΎΠ² тСстирования Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Π±Π»ΠΎΠΊΠ° управлСния экспСримСнтом. ПослС Π²Π²ΠΎΠ΄Π° этих Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π—апуск». НачнСтся тСстированиС схСмы.

Π’ΠΎ Π²Ρ€Π΅ΠΌΡ тСстирования схСмы отобраТаСтся ΠΎΠΊΠ½ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ состояния процСсса, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅, сколько ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² ΠΎΡ‚ ΠΎΠ±Ρ‰Π΅Π³ΠΎ объСма тСстов Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π° состояния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ Π½Π° Ρ€ΠΈΡΡƒΠ½ΠΊΠ΅ 3.7.

Рисунок 1.3 — ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΊΠ½Π° состояния процСсса тСстирования

Об ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ тСстирования ΡΠ²ΠΈΠ΄Π΅Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΡƒΠ΅Ρ‚ ΠΎΠΊΠ½ΠΎ сообщСния (MessageBox).

Рисунок1.4 — Окно сообщСния ΠΎΠ± ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ процСсса тСстирования

ПослС окончания Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования Π±ΡƒΠ΄ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ LOG ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ находится исполняСмый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠ΄Π΅Π»ΠΈ схСмы. Π’ Ρ„Π°ΠΉΠ»Π°Ρ… *.log, располоТСнных Π² ΡΡ‚ΠΈΡ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ значСния напряТСния Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π°Ρ… схСмы, Π° Ρ‚Π°ΠΊΠΆΠ΅ особСнности ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° тСстирования, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ исходя ΠΈΠ· Π½Π°ΡΡ‚Ρ€ΠΎΠ΅ΠΊ процСсса испытаний, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² Ρ„Π°ΠΉΠ»Π΅ сцСнария.

Π€Π°ΠΉΠ» сцСнария ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² тСстирования — это тСкстовый Ρ„Π°ΠΉΠ», созданный ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, содСрТащий настройки автоматичСского Ρ€Π΅ΠΆΠΈΠΌΠ° тСстирования ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ (сцСнарии ΠΈΠ»ΠΈ скрипты), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ…ΠΎΠ΄ автоматичСского тСстирования ΠΈΠ»ΠΈ совсСм Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ автоматичСской Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ² элСмСнтов.

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TExperimentManager («Π‘Π»ΠΎΠΊ управлСния экспСримСнтом») ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ синтаксичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄, содСрТащихся Π² Ρ„Π°ΠΉΠ»Π΅ сцСнария. Π­Ρ‚Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° выполняСтся посрСдством взаимодСйствия с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ класса TatfParser.

Π€Π°ΠΉΠ» сцСнария ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² тСстирования Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ имя tw. cfg ΠΈ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² ΡΡ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ автоматичСский тСст.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΈ (ΠΈΠ»ΠΈ скрипты) — это ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ элСмСнтом схСмы Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΏΡ€ΠΎΡ‚яТСнии всСго тСста. ПослС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡ‰Π΅Ρ‚ Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ скрипт с ΠΈΠΌΠ΅Π½Π΅ΠΌ «main» (Π² Ρ„Π°ΠΉΠ»Π΅ сцСнария опрСдСляСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ «script main»). Если Ρ‚Π°ΠΊΠΎΠΉ Π±Π»ΠΎΠΊ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ сцСнария ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹, доступныС Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ:

set <�пСрСмСнная> <οΏ½Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅> - устанавливаСт ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ содСрТит ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚, Ρ‚ΠΎ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈΠ»ΠΈ Π½Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ ΠΏΠΎ ΠΆΠ΅Π»Π°Π½ΠΈΡŽ.

if <οΏ½Ρ‚ΠΈΠΏ элСмСнта|имя элСмСнта|врСмя> - ΠΊΠΎΠΌΠ°Π½Π΄Π° вСтвлСния. Π”ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ endif. Команда ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ if. Π“Π»ΡƒΠ±ΠΈΠ½Π° влоТСнности практичСски Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°.

exec <�имя скрипта> - Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ скрипт с ΠΈΠΌΠ΅Π½Π΅ΠΌ <�имя скрипта> ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ Π² Ρ‚ΠΎΡ‡ΠΊΡƒ Π²Ρ‹Π·ΠΎΠ²Π°. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° позволяСт Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ сцСнарий Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ ΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ скрипты ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ (main) ΠΈ Π΄Ρ€ΡƒΠ³ ΠΈΠ· Π΄Ρ€ΡƒΠ³Π° (Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² практичСски Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π°).

script <�имя скрипта> - Π½Π°Ρ‡Π°Π»ΠΎ области описания сцСнария с ΠΈΠΌΠ΅Π½Π΅ΠΌ <�имя скрипта>. ОписаниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹ΠΌ словом endscript.

КаТдая строка коммСнтария Π² Ρ„Π°ΠΉΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с ΡΠΈΠΌΠ²ΠΎΠ»Π° «;».

Π’ ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ микроэлСктронной схСмы производится ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… воздСйствий. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠΈ схСмы, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ съСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ напряТСния Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‚Π°ΠΊΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊ ΡΡ‚ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ TTestDestination (Π²ΠΊΠ»Π°Π΄ΠΊΠ° «Experiment Tools»).

Π’ Ρ„Π°ΠΉΠ» ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° ΠΊΡ€ΠΎΠΌΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ напряТСний, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ Π½Π° Π²Ρ…ΠΎΠ΄Ρ‹ схСмы. Π’ ΡΡ…Π΅ΠΌΡƒ Ρ‚Π°ΠΊΠΈΠ΅ воздСйствия ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ посрСдством ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° TTestSource. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ значСния тСстовой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π±Π»ΠΎΠΊΠ° управлСния экспСримСнтом (Ρ‚ΠΎΡ‚ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΅Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° сцСнария).

Π’ ΠΎΠ±ΠΎΠΈΡ… случаях ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… (TTestSource) ΠΈΠ»ΠΈ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… (TTestDestination) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ этих ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² производится Π±Π»ΠΎΠΊΠΎΠΌ управлСния экспСримСнтом (TExperimentManager).

Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ€Π΅ΠΆΠΈΠΌΠ° тСстирования, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ сцСнария (tw.cfg), Π² ΠΏΠΎΠ΄ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ LOG ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΏΡ€ΠΎΡ†Π΅ΡΡΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Ρ„Π°ΠΉΠ»ΠΎΠ² с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ. По ΡΡ‚ΠΈΠΌ ΠΈΠΌΠ΅Π½Π°ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Ρ†ΠΈΠΊΠ»Π°, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ находятся Π² ΡΡ‚ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅:

CorrectRezult*.log — Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ тСстирования схСмы Π±Π΅Π· сбоСв ΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ²;

ScriptOnlyRuns*.log — Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ тСстирования схСмы Π±Π΅Π· ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ², Π½ΠΎ Ρ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ скрипта;

FaultRezult*.log — Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ тСстирования схСмы с ΠΎΡ‚ΠΊΠ°Π·Π°ΠΌΠΈ.

2. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

2.1 Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² модСлирования Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… схСм

Описанная Π² ΠΏΡƒΠ½ΠΊΡ‚Π΅ 1.1 иСрархия классов (ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²), ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρƒ микроэлСктронных устройств позволяСт Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ элСмСнты. Новый класс автоматичСски унаслСдуСт ΠΎΠ±Ρ‰ΠΈΠ΅ свойства ΠΎΡ‚ ΡΠ²ΠΎΠ΅Π³ΠΎ родитСля — Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

/* Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ссылок Π½Π° Π»ΠΈΠ½ΠΈΠΈ. Π­Ρ‚Π° функция ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ с ΡƒΠΊΠ°Π·Π°Ρ‚Слями Π½Π° Π»ΠΈΠ½ΠΈΠΈ (ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠΎΠ²) послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ‚Π°ΠΊΠΎΠ²Ρ‹Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ. Если Π½Π΅ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Ρ„Π°ΠΊΡ‚ удалСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ‚ΠΈΠΏΠ° TConnection, ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚ запись ΠΏΠΎ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ адрСсу, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ сбой прилоТСния. */

void __fastcall TElementInvertor: LineRemoved (TComponent* NameOfElement)

/*Ѐункция рисования элСмСнта */

void __fastcall TElementInvertor: Paint (void)

/*Ѐункция установки связи Π²Ρ…ΠΎΠ΄ΠΎΠ² с Π»ΠΈΠ½ΠΈΡΠΌΠΈ*/

void __fastcall TElementInvertor: SetIn (TConnection* cl)

/*Ѐункция установки связи Π²Ρ‹Ρ…ΠΎΠ΄Π°ΠΌΠΈ с Π»ΠΈΠ½ΠΈΡΠΌΠΈ*/

void __fastcall TElementInvertor: SetOut (TConnection* cl)

/*Ѐункция ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π°Ρ Ρ€Π°Π±ΠΎΡ‚Ρƒ элСмСнта*/

void __fastcall TElementInvertor: Run (void)

/*Ѐункция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сбоя */

void __fastcall TElementInvertor: ErrorRun (void)

/* Ѐункция ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°, Ρ‚ΠΈΠΏ ΠΈ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… свойствах ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. */

void __fastcall TElementInvertor: FailRun (void)

Однако ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚ΠΈΠΏ элСмСнтов ΠΈΠΌΠ΅Π΅Ρ‚ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠ³ΠΎ элСмСнта ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Ѐункция Paint () ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π³Ρ€Π°Ρ„ичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ элСмСнта схСмы, Π΅Π³ΠΎ пСрСрисовку ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы. Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ элСмСнта модСлируСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Run ().

2.2 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° интСрфСйсной части ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

Π—Π° Ρ€ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€ΠΈΡΠΎΠ²ΠΊΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ функция Paint (). Она являСтся Ρ€Π΅Π°ΠΊΡ†ΠΈΠ΅ΠΉ Π½Π° ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Windows OnPaint. Π­Ρ‚Π° функция ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ счСтчика Π˜Π•2 Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ А.

2.3 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² функционирования ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ‚Π°ΠΊΠΈΡ… Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² рассмотрим Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ счСтчика Π˜Π•2 (Рисунок 2.1). Листинги ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Run () ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€Π° ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π’.

Рисунок 2.1 — Алгоритм функционирования счСтчика

3. ИсслСдованиС Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρ‹ Π’Π‘ ЦП Π”Π¦ Минск

3.1 НазначСниС ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ функционирования ΠΏΠ»Π°Ρ‚Ρ‹ Π’Π‘2

Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ»Π°Ρ‚Ρ‹ Π’Π‘2 Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ. Π’ Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΡ‚Π° Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΊ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρƒ поступлСния ΡΡ‚Ρ€ΠΎΠ±ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ° Π½Π° Π²Ρ…ΠΎΠ΄Π΅ DR сдвигового рСгистра Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» «1». ΠŸΡ€ΠΈ поступлСнии Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΡ‚Π° ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π» «1» пСрСписываСтся Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ рСгистра, Π° Π² ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ записываСтся качСство Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚Π°ΠΊΡ‚Π° ΠΈ Ρ‚. Π΄. Π΄ΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΡ Π³Ρ€ΡƒΠΏΠΏΡ‹. Если Π³Ρ€ΡƒΠΏΠΏΠ° принята ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, Ρ‚ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π°Π»Π° ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π³Ρ€ΡƒΠΏΠΏΠ°ΠΌΠΈ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π°Ρ… Q0 ΠΈ Q21 ΠΏΠ»Π°Ρ‚Ρ‹ Π’Π‘2 Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»Ρ‹ «1», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, записанной Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΠΎΠ² «1» Π² ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΌ ΠΈ ΠΌΠ»Π°Π΄ΡˆΠ΅ΠΌ разрядах сдвигового рСгистра являСтся ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ принятой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ достовСрности ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ся.

Алгоритм функционирования ΠΏΠ»Π°Ρ‚Ρ‹ Π’Π‘ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ 22-Ρ… разрядного ΠΊΠΎΠ΄Π° Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ тСстовая ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ Π΄Π»ΠΈΠ½Ρƒ 22 разряда. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ разряд ΠΈΠΌΠ΅ΡŽΡ‚ фиксированныС значСния, Ρ€Π°Π²Π½Ρ‹Π΅ логичСской Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹Π΅ значСния. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ссли ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρƒ Π½Π° Π²ΡΠ΅ΠΌ мноТСствС Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… воздСйствий, Ρ‚ΠΎ ΠΏΠΎΡ‚рСбуСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ 220 испытаний, Ρ‡Ρ‚ΠΎ Π½Π΅Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, трСбуСтся ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ объСм тСста, Π½ΠΎ ΠΏΡ€ΠΈ этом ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΏΠΎΠ»Π½ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

Для ΠΎΡ†Π΅Π½ΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΡ‚Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ тСста ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ:

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ всСх классов Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…;

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ всСх классов Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…;

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ всСх Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ;

ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ всСх ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ» ΠΈ Ρ‚. ΠΏ.

Π’ ΡΠ²ΡΠ·ΠΈ с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Ρ‚Π° Π’Π‘ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ прСобразования Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π² ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΄Π²Π° ΠΏΠ΅Ρ€Π²Ρ‹Ρ… трСбования для построСния тСстовых ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ. Π­Ρ‚ΠΎ позволяСт ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ число испытаний Π΄ΠΎ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ…. Π˜ΡΠΏΡ‹Ρ‚Π°Π½ΠΈΡ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ для тСстовых ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… собой Ρ‡Π΅Ρ€Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ значСния «0» ΠΈ «1». ЗначСния ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ разрядов Ρ€Π°Π²Π½Ρ‹ «1».

— 1 101 010 101 010 101 043 200;

— 1 010 101 010 101 010 038 784;

3.2 Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ

Рисунок 2.2 — МодСль ΠŸΠ»Π°Ρ‚Ρ‹ Π’Π‘2

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ модСлирования сводится ΠΊ ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΡŽ схСмы (Рисунок 2.2) Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΊ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡŽ скрипта, Π·Π°Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этой схСмы.

4. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²

Ѐункция Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ написанного Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ класса TgrapthicControl1 ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡΠ΅Ρ€ΠΈΠΈ. Π’ Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π΅ ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² появляСтся Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ свойство SERIAL, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ позволяСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΈΠ½ΡƒΡŽ сСрии (Π½Π° Π΄Π°Π½Π½ΠΎΠΌ этапС Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ К155 ΠΈ ΠšΠœΠžΠŸ). ΠŸΠΎΠ±ΠΎΡ‡Π½ΠΎ с ΡΡ‚ΠΈΠΌ Π² ΡΠΎΠΎΡ‚вСтствии с Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ микросхСмой ΠΏΠΎΠ΄Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСпосрСдствСнно зависят ΠΎΡ‚ ΡΠ΅Ρ€ΠΈΠΈ (напряТСниС питания микросхСмы, врСмя нарастания (спада) ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°, напряТСниС Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ (нуля)…). Бвойства ΠΎΠ±Ρ‰ΠΈΠ΅ для всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² прописаны Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ классС. Π’Π°ΠΊΠΆΠ΅ сущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ свойства присущиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ. Π’ ΡΡ‚ΠΎΠΌ случаС это свойство описываСтся нСпосрСдствСнно Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° (ΠΊΠ°ΠΊ это сдСлано для ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠ²ΠΈΠ±Ρ€Π°Ρ‚ΠΎΡ€Π° (Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠ°).

Π’ TGrapthicControl1 свойство (ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ микросхСмы), посрСдством ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ осущСствляСтся доступ Π˜Π½ΡΠΏΠ΅ΠΊΡ‚ΠΎΡ€Π° ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² схСмы ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ, описанным Π² ΡΠ΅ΠΊΡ†ΠΈΠΈ protected выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

__property TGraphicControl1SERIAL SERIAL = { read = FSERIAL, write = SetSERIAL, default = NULL };

Ѐункция ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ этого свойства прСдставлСна Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π‘.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ А

ΠœΠΎΠ΄ΡƒΠ»ΡŒ: Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ Π˜Π•2

Имя Ρ„Π°ΠΉΠ»Π°: ct2. cpp

Автор: ΠšΡƒΠ·Π½Π΅Ρ†ΠΎΠ²Π° О. А

ОписаниС: РСализация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Paint () класса Tct2

НазначСниС: Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° интСрфСйсной части ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°

void __fastcall Tct2: Paint (void) {

XC0In = XC1In = X2In = X3In = X6In = X7In = 0;

YC0In = 0.5*div ((Height-Canvas->TextHeight («D»)), 4).quot + Canvas->TextHeight («D»);

YC1In = div ((Height-Canvas->TextHeight («D»)), 4).quot + Canvas->TextHeight («D»);

Y2In = 1.5*div ((Height-Canvas->TextHeight («D»)), 4).quot + Canvas->TextHeight («D»);

Y3In = 2*div ((Height-Canvas->TextHeight («D»)), 4).quot + Canvas->TextHeight («D»);

Y6In = 2.5*div ((Height-Canvas->TextHeight («D»)), 4).quot + Canvas->TextHeight («D»);

Y7In = 3*div ((Height-Canvas->TextHeight («D»)), 4).quot + Canvas->TextHeight («D»);

YR0In = Y2In+(Y3In-Y2In)/2;

YR9In = Y6In+(Y7In-Y6In)/2;

Y3CircleCenter=YR0In;

Y4CircleCenter=YR9In;

Y1CircleCenter=YC0In;

Y2CircleCenter=YC1In;

X1CircleCenter=X2CircleCenter=OutletLength+60;

X3CircleCenter=X4CircleCenter=OutletLength+30;

Canvas->Pen->Color = clWindowText;

Canvas->Brush->Color = clWindow;

Canvas->Rectangle (OutletLength + 60, (Canvas->TextHeight («D»)+1), Width-OutletLength, Height);

Canvas->Rectangle (OutletLength, Y2In-10, OutletLength+30,Y3In+10);

Canvas->Rectangle (OutletLength, Y6In-10, OutletLength+30,Y7In+10);

Canvas->TextOut ((Width-45-OutletLength),(5+Canvas->TextHeight («CT2″)),» CT2″);

Canvas->TextOut (OutletLength+15,Y2In," &");

Canvas->TextOut (OutletLength+15,Y6In," &");

Canvas->TextOut (OutletLength + 63, YC0In — div (Canvas->TextHeight («C0″), 2).quot,» C0″);

Canvas->TextOut (OutletLength + 63, YC1In — div (Canvas->TextHeight («C1″), 2).quot,» C1″);

Canvas->TextOut (OutletLength + 63, YR0In — div (Canvas->TextHeight («R0″), 2).quot,» R0″);

Canvas->TextOut (OutletLength + 63, YR9In — div (Canvas->TextHeight («R9″), 2).quot,» R9″);

Canvas->MoveTo (OutletLength + 70 + Canvas->TextWidth («R»), Canvas->TextHeight («D») + 1);

Canvas->LineTo (OutletLength + 70 + Canvas->TextWidth («R»), Height);

Canvas->MoveTo (Width — 25 -OutletLength + Canvas->TextWidth («S»), Canvas->TextHeight («D») + 1);

Canvas->LineTo (Width — 25 -OutletLength + Canvas->TextWidth («S»), Height);

X1Out=X2Out=X4Out=X8Out=Width-OutletLength;

Y1Out = Canvas->TextHeight («D») + 0.5*div ((Height-Canvas->TextHeight («D»)), 3).quot;

Y2Out = Canvas->TextHeight («D») + div ((Height-Canvas->TextHeight («D»)), 3).quot;

Y4Out = Canvas->TextHeight («D») + 1.5*div ((Height-Canvas->TextHeight («D»)), 3).quot;

Y8Out = Canvas->TextHeight («D») + 2*div ((Height-Canvas->TextHeight («D»)), 3).quot;

Canvas->TextOut (Width — 10-OutletLength, Y1Out — div (Canvas->TextHeight («1″), 2).quot,» 1″);

Canvas->TextOut (Width — 10-OutletLength, Y2Outdiv (Canvas->TextHeight («2″), 2).quot,» 2″);

Canvas->TextOut (Width — 10-OutletLength, Y4Out — div (Canvas->TextHeight («4″), 2).quot,» 4″);

Canvas->TextOut (Width — 10-OutletLength, Y8Out — div (Canvas->TextHeight («8″), 2).quot,» 8″);

Canvas->Brush->Color = clBtnFace;

Canvas->TextOut (OutletLength, 0, FSymbol);

Canvas->MoveTo (X1Out, Y1Out);

Canvas->LineTo (Width, Y1Out);

Canvas->MoveTo (X2Out, Y2Out);

Canvas->LineTo (Width, Y2Out);

Canvas->MoveTo (X4Out, Y4Out);

Canvas->LineTo (Width, Y4Out);

Canvas->MoveTo (X8Out, Y8Out);

Canvas->LineTo (Width, Y8Out);

Canvas->MoveTo (X3CircleCenter+30, Y3CircleCenter);

Canvas->LineTo (X3CircleCenter, Y3CircleCenter);

Canvas->MoveTo (X4CircleCenter+30, Y4CircleCenter);

Canvas->LineTo (X4CircleCenter, Y4CircleCenter);

Canvas->MoveTo (XC0In+OutletLength+60, YC0In);

Canvas->LineTo (XC0In, YC0In);

Canvas->MoveTo (XC1In+OutletLength+60, YC1In);

Canvas->LineTo (XC1In, YC1In);

Canvas->MoveTo (X2In+OutletLength, Y2In);

Canvas->LineTo (X2In, Y2In);

Canvas->MoveTo (X3In+OutletLength, Y3In);

Canvas->LineTo (X3In, Y3In);

Canvas->MoveTo (X6In+OutletLength, Y6In);

Canvas->LineTo (X6In, Y6In);

Canvas->MoveTo (X7In+OutletLength, Y7In);

Canvas->LineTo (X7In, Y7In);

Canvas->Brush->Color = clWindow;

Canvas->Ellipse (X1CircleCenter-4, Y1CircleCenter-4,

X1CircleCenter+4, Y1CircleCenter+4);

Canvas->Ellipse (X2CircleCenter-4, Y2CircleCenter-4,

X2CircleCenter+4, Y2CircleCenter+4);

Canvas->Ellipse (X3CircleCenter-4, Y3CircleCenter-4,

X3CircleCenter+4, Y3CircleCenter+4);

Canvas->Ellipse (X4CircleCenter-4, Y4CircleCenter-4,

X4CircleCenter+4, Y4CircleCenter+4);

if (InC0Connected){

FInC0->XOut = XC0In+Left;

FInC0->YOut = YC0In+Top;

}

if (InC1Connected){

FInC1->XOut = XC1In+Left;

FInC1->YOut = YC1In+Top;

}

if (In2Connected){

FIn2->XOut = X2In+Left;

FIn2->YOut = Y2In+Top;

}

if (In3Connected){

FIn3->XOut = X3In+Left;

FIn3->YOut = Y3In+Top;

}

if (In6Connected){

FIn6->XOut = X6In+Left;

FIn6->YOut = Y6In+Top;

}

if (In7Connected){

FIn7->XOut = X7In+Left;

FIn7->YOut = Y7In+Top;

}

if (Out1Connected) {

F1Out->XIn = Width+Left;

F1Out->YIn = Y1Out+Top;

}

if (Out2Connected) {

F2Out->XIn = Width+Left;

F2Out->YIn = Y2Out+Top;

}

if (Out4Connected) {

F4Out->XIn = Width+Left;

F4Out->YIn = Y4Out+Top;

}

if (Out8Connected) {

F8Out->XIn = Width+Left;

F8Out->YIn = Y8Out+Top;

}

}

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π’

ΠœΠΎΠ΄ΡƒΠ»ΡŒ: Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ

Имя Ρ„Π°ΠΉΠ»Π°: ct2. cpp

Автор: ΠšΡƒΠ·Π½Π΅Ρ†ΠΎΠ²Π° О.А.

ОписаниС: РСализация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Run ()

НазначСниС: ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ счСтчика

void __fastcall Tct2: Run (void)

{

if (!InC0Connected || !InC1Connected || !In3Connected || !In2Connected || !In6Connected || !In7Connected ||!Out1Connected ||!Out2Connected ||!Out4Connected ||!Out8Connected) return;

TTestTimer tmp;

if ((FerrType ≠ etNone) || (ErrTimeRest > tmp)) { ErrorRun (); return; }

if ((FfltType ≠ etNone) || (ErrTimeRest > tmp)) { FailRun (); return; }

if ((FInC0->Value >= epThreshold1) && LogicInputC0) {

LogicInputC0=false;

Modify=true;

}

else

if ((FInC0->Value <= epThreshold0) && !LogicInputC0) {

LogicInputC0=true;

Modify=true;

Chang1=true;

k++;

}

if ((FInC1->Value >= epThreshold1) && LogicInputC1) {

LogicInputC1=false;

Modify=true;

}

else

if ((FInC1->Value <= epThreshold0) && !LogicInputC1) {

LogicInputC1=true;

Modify=true;

Chang2=true;

}

if ((FIn2->Value >= epThreshold1) && !LogicInput2) {

LogicInput2=true;

Modify=true;

}

else

if ((FIn2->Value <= epThreshold0) && LogicInput2) {

LogicInput2=false;

Modify=true;

}

if ((FIn3->Value >= epThreshold1) && !LogicInput3) {

LogicInput3=true;

Modify=true;

}

else

if ((FIn3->Value <= epThreshold0) && LogicInput3) {

LogicInput3=false;

Modify=true;

}

if ((FIn6->Value >= epThreshold1) && !LogicInput6) {

LogicInput6=true;

Modify=true;

}

else

if ((FIn6->Value <= epThreshold0) && LogicInput6) {

LogicInput6=false;

Modify=true;

}

if ((FIn7->Value >= epThreshold1) && !LogicInput7) {

LogicInput7=true;

Modify=true;

}

else

if ((FIn7->Value <= epThreshold0) && LogicInput7) {

LogicInput7=false;

Modify=true;

}

LogicInputR9=!(LogicInput6*LogicInput7);

LogicInputR0=!(LogicInput2*LogicInput3);

if (!LogicInputR9)

{

if (!LogicInputR0)

{

if (Chang1)

{Chang1=false;

if (k≠0 && k≠10)

if (k%8==0)

{

LogicOutput8=!LogicOutput8;

LogicOutput4=!LogicOutput4;

LogicOutput2=!LogicOutput2;

LogicOutput1=!LogicOutput1;

goto metka;

}

else

if (k%4==0)

{

LogicOutput4=!LogicOutput4;

LogicOutput2=!LogicOutput2;

LogicOutput1=!LogicOutput1;

goto metka;

}

else

if (k%2==0)

{

LogicOutput2=!LogicOutput2;

LogicOutput1=!LogicOutput1;

goto metka;

}

else

{

LogicOutput1=!LogicOutput1;

goto metka;

}

else

if (k==10){k=0;goto metka1;}

}

}

else

{

LogicOutput1=true;

LogicOutput2=false;

LogicOutput4=false;

LogicOutput8=true;

}

}

else

{

metka1: LogicOutput1=false;

LogicOutput2=false;

LogicOutput4=false;

LogicOutput8=false;

}

metka:

if (Modify)

{

CurrentTimeHold=0;

Modify = false;

}

if (CurrentTimeHold <= tpTimeHold*1000)

CurrentTimeHold += TimeDigit;

else

{

if (Out1Connected)

{

if (LogicOutput1&&(F1Out->Value < FepVolt1))

F1Out->Value += (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans01);

else

if ((!LogicOutput1)&&(F1Out->Value > FepVolt0))

{

F1Out->Value -= (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans10);

if (F1Out->Value<0) F1Out->Value = 0;

}

}

if (Out2Connected)

{

if (LogicOutput2&&(F2Out->Value < FepVolt1))

F2Out->Value += (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans01);

else

if ((!LogicOutput2)&&(F2Out->Value > FepVolt0))

{

F2Out->Value -= (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans10);

if ((F2Out->Value)<0) F2Out->Value = 0;

}

}

if (Out4Connected)

{

if (LogicOutput4&&(F4Out->Value < FepVolt1))

F4Out->Value += (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans01);

else

if ((!LogicOutput4)&&(F4Out->Value > FepVolt0))

{

F4Out->Value -= (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans10);

if ((F4Out->Value)<0) F4Out->Value = 0;

}

}

if (Out8Connected)

{

if (LogicOutput8&&(F8Out->Value < FepVolt1))

F8Out->Value += (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans01);

else

if ((!LogicOutput8)&&(F8Out->Value > FepVolt0))

{

F8Out->Value -= (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans10);

if ((F8Out->Value)<0) F8Out->Value = 0;

}

}

}

}

ΠœΠΎΠ΄ΡƒΠ»ΡŒ: ΠœΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€

Имя Ρ„Π°ΠΉΠ»Π°: kp7. cpp

Автор: ΠšΡƒΠ·Π½Π΅Ρ†ΠΎΠ²Π° О.А.

ОписаниС: РСализация Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Run ()

НазначСниС: ΠœΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΏΠ»Π΅ΠΊΡΠΎΡ€Π°

void __fastcall Tkp7: Run (void)

{

if (!In1Connected || !In2Connected || !In3Connected || !In4Connected || !In5Connected || !In6Connected || !In7Connected || !In8Connected || !InAConnected || !InBConnected || !InCConnected || !InStrobConnected || !OutPosConnected || !OutNegConnected) return;

TTestTimer tmp;

if ((FerrType ≠ etNone) || (ErrTimeRest > tmp)) { ErrorRun (); return; }

if ((FfltType ≠ etNone) || (ErrTimeRest > tmp)) { FailRun (); return; }

if ((FIn1->Value >= epThreshold1) && !LogicInput1) {

LogicInput1=true;

Modify=true;

}

else

if ((FIn1->Value <= epThreshold0) && LogicInput1) {

LogicInput1=false;

Modify=true;

}

if ((FIn2->Value >= epThreshold1) && !LogicInput2) {

LogicInput2=true;

Modify=true;

}

else

if ((FIn2->Value <= epThreshold0) && LogicInput2) {

LogicInput2=false;

Modify=true;

}

if ((FIn3->Value >= epThreshold1) && !LogicInput3) {

LogicInput3=true;

Modify=true;

}

else

if ((FIn3->Value <= epThreshold0) && LogicInput3) {

LogicInput3=false;

Modify=true;

}

if ((FIn4->Value >= epThreshold1) && !LogicInput4) {

LogicInput4=true;

Modify=true;

}

else

if ((FIn4->Value <= epThreshold0) && LogicInput4) {

LogicInput4=false;

Modify=true;

}

if ((FIn5->Value >= epThreshold1) && !LogicInput5) {

LogicInput5=true;

Modify=true;

}

else

if ((FIn5->Value <= epThreshold0) && LogicInput5) {

LogicInput5=false;

Modify=true;

}

if ((FIn6->Value >= epThreshold1) && !LogicInput6) {

LogicInput6=true;

Modify=true;

}

else

if ((FIn6->Value <= epThreshold0) && LogicInput6) {

LogicInput6=false;

Modify=true;

}

if ((FIn7->Value >= epThreshold1) && !LogicInput7) {

LogicInput7=true;

Modify=true;

}

else

if ((FIn7->Value <= epThreshold0) && LogicInput7) {

LogicInput7=false;

Modify=true;

}

if ((FIn8->Value >= epThreshold1) && !LogicInput8) {

LogicInput8=true;

Modify=true;

}

else

if ((FIn8->Value <= epThreshold0) && LogicInput8) {

LogicInput8=false;

Modify=true;

}

if ((FInStrob->Value >= epThreshold1) && !LogicInputStrob) {

LogicInputStrob=true;

Modify=true;

}

else

if ((FInStrob->Value <= epThreshold0) && LogicInputStrob) {

LogicInputStrob=false;

Modify=true;

}

if ((FInA->Value >= epThreshold1) && !LogicInputA) {

LogicInputA=true;

Modify=true;

}

else

if ((FInA->Value <= epThreshold0) && LogicInputA) {

LogicInputA=false;

Modify=true;

}

if ((FInB->Value >= epThreshold1) && !LogicInputB) {

LogicInputB=true;

Modify=true;

}

else

if ((FInB->Value <= epThreshold0) && LogicInputB) {

LogicInputB=false;

Modify=true;

}

if ((FInC->Value >= epThreshold1) && !LogicInputC) {

LogicInputC=true;

Modify=true;

}

else

if ((FInC->Value <= epThreshold0) && LogicInputC) {

LogicInputC=false;

Modify=true;

}

if (!LogicInputStrob)

{

LogicPosOutput=LogicInput1*!LogicInputA*!LogicInputB*!LogicInputC+LogicInput2*LogicInputA*!LogicInputB*!LogicInputC+LogicInput3*!LogicInputA*LogicInputB*!LogicInputC+LogicInput4*LogicInputA*LogicInputB*!LogicInputC+LogicInput5*!LogicInputA*!LogicInputB*LogicInputC+LogicInput6*LogicInputA*!LogicInputB*LogicInputC+LogicInput7*!LogicInputA*LogicInputB*LogicInputC+LogicInput8*LogicInputA*LogicInputB*LogicInputC;

LogicNegOutput=!LogicPosOutput;

}

else

{

LogicPosOutput=false;

LogicNegOutput=true;

}

if (Modify)

{

CurrentTimeHold=0;

Modify = false;

}

if (CurrentTimeHold <= tpTimeHold*1000)

CurrentTimeHold += TimeDigit;

else

{

if (OutPosConnected)

{

if (LogicPosOutput&&(FPosOut->Value < FepVolt1))

FPosOut->Value += (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans01);

else

if ((!LogicPosOutput)&&(FPosOut->Value > epVolt0))

{

FPosOut->Value -= (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans10);

if (FPosOut->Value<0) FPosOut->Value = 0;

}

}

if (OutNegConnected)

{

if (LogicNegOutput&&(FNegOut->Value < FepVolt1))

FNegOut->Value += (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans01);

else

if ((!LogicNegOutput)&&(FNegOut->Value > epVolt0))

{

FNegOut->Value -= (FepVolt1 — FepVolt0) * TimeDigit / (1000 * tpTimeTrans10);

if ((FNegOut->Value)<0) FNegOut->Value = 0;

}

}

}

}

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π‘

void __fastcall TGraphicControl1: Setep_Volt1(TGraphicControl1ep_Volt1 Aep_Volt1)

{

if (FSERIAL==k155)

{

Fep_Volt1=Aep_Volt1;

if (Fep_Volt1==low){SetParam (low);FepVolt1=2.4;}else{if (Fep_Volt1==high){SetParam (high);;FepVolt1=4.8;}}

}

else

{FepVolt1=2.4;SetParam (No);}

Invalidate ();

}

void __fastcall TGraphicControl1: SetSERIAL (TGraphicControl1SERIAL ASERIAL)

{

FSERIAL=ASERIAL;

if (FSERIAL==k155)

{

FepPowerSupplyVoltage = 5; // НапряТСниС питания микросхСмы

FepMaxInputVoltage = 10; // Максимально допустимоС Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ напряТСниС

FepThreshold0 = 0.2;

FepThreshold1 = 4.8; // ΠŸΠΎΡ€ΠΎΠ³ΠΎΠ²ΠΎΠ΅ напряТСниС 0 ΠΈ 1 Π½Π° Π²Ρ…ΠΎΠ΄Π΅

FepVolt0 = 0.1; // Π’Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ΅ напряТСниС 1 (Π½Π΅ ΠΌΠ΅Π½Π΅Π΅) ΠΈ 0 (Π½Π΅ Π±ΠΎΠ»Π΅Π΅)

FtpTimeHold = 8; // ВрСмя Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ

FtpTimeTrans01 = 3;

FtpTimeTrans10 = 3; /* (Time of transition)*/

}

else

if (FSERIAL==kmop)

{

FepPowerSupplyVoltage = 5;

FepMaxInputVoltage = 18;

FepThreshold0 = 0.4;

FepThreshold1 = 3.2;

FepVolt1 = 5;

FepVolt0 = 0.1;

FtpTimeHold = 10;

FtpTimeTrans01 = 3;

FtpTimeTrans10 = 3;

}

else

{

FepPowerSupplyVoltage = 5;

FepMaxInputVoltage = 15;

FepThreshold0 = 0.4;

FepThreshold1 = 2.4;

FepVolt1 = 5;

FepVolt0 = 0;

FtpTimeHold = 10;

FtpTimeTrans01 = 5;

FtpTimeTrans10 = 6;

}

Invalidate ();

}

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ