Donanım, Cihazlar ve Bağlantı
Bu bölüm, Mikrofab yarıiletken/TFT/PV ölçüm ve analiz yazılımının donanım katmanını kullanıcının bakış açısından ele alır: hangi cihazların desteklendiği, cihazların nasıl bulunduğu ve bağlandığı, anahtar matrisi (switch matrix) röle kartının nasıl yönetildiği, cihazlara rol atanması, enstrüman konsolu, firmware güncellemesi, cihaz profilleri, simülasyon (mock) modu ve güvenli bağlantı ilkeleri. Amaç, hiçbir donanım bağlamadan (simülasyon) başlayabilmeniz, sonra gerçek tezgâha geçtiğinizde aynı arayüzü birebir kullanabilmenizdir.

Bir ölçüm yazılımının laboratuvardaki cihazlarla konuşabilmesi için ortak bir "dil" ve "kablo düzeni" gerekir. Bu bölüm o köprüyü anlatır: numuneye gerilim/akım uygulayıp aynı anda ölçen SMU (Source-Measure Unit), birçok numuneyi tek cihaza sırayla bağlayan Switch Matrix röle kartı ve tüm bu cihazlara USB/GPIB/LAN üzerinden erişmeyi standartlaştıran VISA katmanı. Bunu, farklı markadan cihazların hepsiyle konuşabilen evrensel bir telefon santralı gibi düşünün.
- Neden yapılır: doğru cihazı bulmak, güvenle bağlanmak ve hangi cihazın hangi işi yapacağını yazılıma tanıtmak için.
- Ne öğretir / ne ölçer: cihazların nasıl keşfedildiğini, bağlandığını ve rollere atandığını; SMU'nun ölçümün kalbi olduğunu.
- Nerede kullanılır: her ölçümden önceki kurulum adımında — ister tek bir SMU, ister çok cihazlı bir tezgah.
1. İki Bağlantı Yüzeyi
Yazılım donanıma iki ayrı ekran üzerinden eriştirir: hızlı tek-SMU kurulumu için sade bir "Cihaz Bağlantıları" paneli ve çok cihazlı tezgahları yöneten kart tabanlı bir "Donanım" sayfası. İkisi de aynı motoru kullanır; aynı arabanın hem basit hem de tam donanımlı kontrol paneli gibi yalnızca sunum farklıdır.
- Neden yapılır: basit işlerde hız, karmaşık tezgahlarda düzen sağlamak için iki farklı zorluk seviyesi sunar.
- Ne öğretir / ne ölçer: hangi senaryoda hangi ekranı kullanacağınızı.
- Nerede kullanılır: tek diyot ölçümünden çok-istasyonlu üretim tezgahına kadar.
Yazılım, donanıma iki tamamlayıcı arayüz üzerinden erişir:
| Yüzey | Nerede | Ne işe yarar |
|---|---|---|
| Cihaz Bağlantıları paneli (klasik) | Kontrol/Bağlantı paneli | SMU kurulum modu seçimi (çift/tek kanal), Switch Matrix, Hall Effect ve PV multiplekser kartlarının doğrudan bağlanması. Ölçüm motoruna aktif SMUDriver örneğini verir. |
| Donanım sayfası (kart tabanlı) | Donanım çalışma alanı | Kart tabanlı envanter, otomatik/periyodik keşif, rol haritalama, profil, enstrüman konsolu, firmware güncelleme, self-test ve sorun giderme. |
Her iki yüzey de aynı sürücü ve keşif altyapısını kullanır; sadece sunum farklıdır. Bu bölümde önce desteklenen cihazları ve keşfi, ardından iki yüzeyin özelliklerini ayrıntılandırıyoruz.
2. Desteklenen Cihazlar ve Model Eşleştirme
Donanım katmanı, çok-üretici bir enstrüman kayıt defterine (instrument_registry) dayanır. Bir cihaz kayıt defterinde tanımlıysa, *IDN? yanıtından otomatik tanınır, doğru protokol ve kanal sayısı atanır.
2.1 SMU (Source-Measure Unit) Aileleri
SMU, aynı anda hem kaynak (gerilim/akım uygular) hem de ölçü aleti (akım/gerilim okur) olan özel bir laboratuvar cihazıdır. Tek elle hem musluğu açıp hem de akan suyu ölçen bir cihaz gibi düşünebilirsiniz; bu yüzden diyot, transistör ve güneş hücresi karakterizasyonunun temelidir. Yazılım Keithley, Keysight ve R&S ailelerini tanır ve doğru komut setini otomatik seçer.
- Neden yapılır: bir cihazla hem uyarı vermek hem tepkiyi ölçmek (I–V eğrisi çıkarmak) için.
- Ne öğretir / ne ölçer: akım–gerilim ilişkisi; 4-telli (Kelvin) ölçümle kablo direncini eler.
- Nerede kullanılır: yarıiletken araştırması, TFT/FET ve PV karakterizasyonu, kalite kontrol.
SMU'lar yazılımın birincil ölçüm cihazlarıdır (kaynak + ölçüm + 4-telli Kelvin desteği). Aşağıdaki modeller kayıtlıdır:
| Aile | Modeller | Protokol | Kanal | SCPI Profili | Not |
|---|---|---|---|---|---|
| Keithley 2400 SCPI | 2400, 2401, 2410, 2420, 2425, 2430, 2440 | SCPI | 1 | generic | Klasik 2400 serisi. 2400 Mode (DDC) eski protokolü katalogda izlenir; güvenlik için varsayılan SCPI ile sürülür. |
| Keithley 2400 Graphic | 2450, 2460, 2461, 2470 | SCPI | 1 | keithley_graphical | Compliance için klasik :SENS:...:PROT yerine source limit (ILIM/VLIM) komutları kullanır; aksi hâlde cihaz -113 (Undefined header) döner. |
| Keithley 2600 TSP (tek kanal) | 2601A/B, 2611A/B, 2635B | TSP | 1 | tsp | Cihaz üzerinde script çalıştırma. TSP-Link topolojilerinde node olabilir. |
| Keithley 2600 TSP (çift kanal) | 2602B, 2612A/B, 2614B, 2634B, 2636B | TSP | 2 | tsp | Çift kanallı native SMU. TSP-Link master/node. Gerçek autorange yalnız bu ailede desteklenir (bkz. §2.5). |
| Keysight B2900 | B2901A/B, B2911A/B (tek); B2902A/B, B2912A/B (çift) | SCPI | 1 / 2 | keysight_b29xx | Keysight grafik SMU ailesi. *IDN? içinde "AGILENT" jetonu da otomatik eşleştirilir. |
| Rohde & Schwarz NGU/NGM | NGU201, NGU401, NGM201 (tek); NGM202 (çift) | SCPI | 1 / 2 | rs_instrument_select | Kaynak-ölçüm PSU'su (klasik SMU değil). Resmî MIT lisanslı RsNgx sürücüsü (RsNgxSMUAdapter) kullanılır; kurulu değilse native SCPI'ye düşer. |
keithley2600a) ile açar. 2612A'da USB-TMC yoktur — GPIB / LAN / RS-232 kullanın.2.2 Genişletilmiş Envanter (PSU, LCR, AWG, Lock-In, Sıcaklık)
Bir ölçüm tezgahında SMU tek başına yetmez; bazen güç beslemek, kapasitans ölçmek, sinyal üretmek, zayıf sinyali gürültüden ayıklamak veya numuneyi ısıtmak gerekir. Bu alt-bölüm, SMU dışındaki yardımcı cihazları tanıtır ve yazılımın bunları da görüp temel düzeyde kontrol edebildiğini gösterir.
- Neden yapılır: ölçümü tek cihazın ötesine taşıyıp tam bir deney düzeneği kurmak için.
- Ne öğretir / ne ölçer: her cihaz sınıfının ne işe yaradığını (LCR → kapasitans/empedans, Lock-In → çok küçük AC sinyaller, sıcaklık denetleyici → kontrollü ısıtma).
- Nerede kullanılır: empedans/foto-iletkenlik ölçümleri, sıcaklığa bağlı karakterizasyon, çok-cihazlı düzenekler.
SMU dışındaki cihazlar keşif ve ham (raw) kontrol için kayıtlıdır; bazıları ölçüm slotlarına da bağlanır:
| Sınıf | Örnek modeller | Sürücü ailesi | Not |
|---|---|---|---|
| DC Güç Kaynağı | B&K 9115 (0–80 V / 0–60 A), Owon SPM6103 (0–60 V / 0–10 A / 300 W + 4.5-hane DMM), Tenma 72-13210 (2 kanal, Korad ASCII) | dc_supply | Kaynak-only; toplulukta olmayanlar kendi QCoDeS-stili sürücümüzle sürülür. |
| LCR / Empedans | B&K 894/895, Keysight E4980A | lcr | SMU değildir; yalnız measure_impedance + measure_c kabiliyeti taşır. |
| Dalga Üreteci (AWG) | Owon DGE2070 (70 MHz, 2 kanal), Keysight/Agilent 33500 serisi (33509B…33522B) | awg | Sinyal kaynağı; ölçüm modu kullanmaz, yalnız ham/manuel kontrol. |
| Lock-In Yükseltici | Zurich Instruments MFLI (5 MHz) | lockin | RPS iş akışı (foto-iletkenlik). zhinst-toolkit ile sürülür. |
| Sıcaklık Denetleyici | Eurotherm 3504/3508 (Modbus RTU PID fırın), Sun EC10 (GPIB termal oda) | temperature_controller | Native ramp denetleyiciye aittir; ısıtma (+soğutma). |
| Termometre (salt-okunur) | Keithley 2000 (Tip-K termokupl okuyucu) | thermometer | Numune sıcaklığı okumak için. |
2.3 Protokol Desteği
Cihazlarla konuşmak için ortak kurallar gerekir: VISA fiziksel bağlantıyı (USB/GPIB/LAN/seri) standartlaştırır, SCPI cihaza verilen metin komutlarının dilbilgisidir, TSP ise Keithley 2600 ailesinde cihazın içinde küçük script çalıştırmaya izin verir. VISA telefon hattı, SCPI ise konuşulan ortak dil gibidir.
- Neden yapılır: farklı marka/model cihazların hepsiyle tek bir tutarlı yoldan konuşabilmek için.
- Ne öğretir / ne ölçer: hangi protokolün çalışma zamanında aktif, hangisinin yalnız katalog bilgisi olduğunu.
- Nerede kullanılır: her cihaz bağlantısının altında; doğrudan görmeseniz de her komut bu katmanlardan geçer.
| Protokol | Katman | Durum | Açıklama |
|---|---|---|---|
| VISA | G/Ç (I/O) | Çalışma zamanı | USB/GPIB/LAN/RS-232 için PyVISA tabanlı ortak G/Ç katmanı. |
| SCPI | Komut | Çalışma zamanı | Keithley, Keysight ve R&S profilleriyle kaynak/ölçüm komutları. |
| TSP | Komut | Çalışma zamanı | Keithley 2600 serisi için cihaz üzerinde script çalıştırma. |
| TSP-Link | Senkr. | Katalog | TSP master cihaza bağlanan node topolojileri (kayıt defterinde temsil edilir). |
| DDC (2400 Mode) | Eski komut | Katalog | 2400 serisi için eski protokol; güvenli akış için varsayılan SCPI. |
| IVI | Sürücü | Katalog | Yüksek seviye sürücü standardı; çalışma zamanı VISA/SCPI üzerinden. |
2.4 Model Eşleştirme (*IDN? Çözümleme)
*IDN? ile Otomatik Tanıma)Bir cihaz bağlandığında yazılım ona "kimsin?" diye sorar (*IDN? komutu) ve gelen yanıttan üreticiyi, modeli ve yeteneklerini çözer. Tıpkı bir kimlik kartı okutmak gibi; böylece doğru komut seti ve kanal sayısı elle ayar gerektirmeden atanır.
- Neden yapılır: her cihazı elle tanımlama zahmetini ortadan kaldırıp hataları önlemek için.
- Ne öğretir / ne ölçer: veriyolundaki cihazın tam kimliğini; tanınmasa bile cihaz ham adıyla listelenir.
- Nerede kullanılır: keşif ve bağlantı sırasında, her yeni cihaz eklendiğinde.
Bir VISA kaynağı açıldığında *IDN? sorgusu yapılır. IEEE 488.2'ye göre yanıt VENDOR,MODEL,SERIAL,FIRMWARE biçimindedir. Eşleştirme şu mantıkla yapılır:
- Sağlayıcı (vendor) jetonu yanıtta aranır. Keysight için otomatik olarak
AGILENT, R&S içinROHDE,SCHWARZ,R&Sjetonları da eklenir. - Model jetonu kelime/numara sınırıyla (
2612A,2612'yi yanlışlıkla kapsamayacak şekilde) aranır; en uzun (en spesifik) eşleşme tercih edilir. - Eşleşme bulunamazsa cihaz "UNKNOWN" değil, kendi ham kimliğiyle (ör. "B&K Precision 894" veya
*IDN?model alanı) listelenir; böylece veriyolundaki her cihazı her zaman görebilirsiniz.
*IDN? metni → sağlayıcı+model jeton eşleşmesi → Çıktı InstrumentModel (model anahtarı, protokol, kanal sayısı, gösterim adı). Eşleşme yoksa cihaz "rol atanamaz" durumunda yalnız bilgi amaçlı gösterilir.2.5 Sürücü Backend Seçimi ve Autorange
Aynı cihaz, simülasyonda sahte bir fizik motoruyla, gerçekte ise uygun bir sürücü (harici veya QCoDeS) ile sürülür; yazılım hangisini kullanacağına otomatik karar verir. Autorange ise ölçüm aletinin, sinyalin büyüklüğüne göre en uygun ölçüm kademesini kendiliğinden seçmesidir — fotoğraf makinesinin pozlamayı otomatik ayarlaması gibi.
- Neden yapılır: kademeyi elle seçme derdini kaldırıp doğru çözünürlükte ölçüm almak için.
- Ne öğretir / ne ölçer: hangi cihaz ailesinin gerçek autorange desteklediğini (şu an yalnız TSP/Keithley 2600).
- Nerede kullanılır: geniş aralıklı I–V taramalarında, sinyal büyüklüğü önceden bilinmediğinde.
Bir model için sürücü mock/gerçek ayrımına göre seçilir:
- Simülasyon (mock): kanonik fizik-mock
MockSMUDriver— gerçek G/Ç yok; diyot/Schottky/güneş-hücresi/transistör fiziği. - Gerçek G/Ç:
- Modelin bir harici sürücüsü varsa (ör. R&S →
RsNgxSMUAdapter) ve çözülebiliyorsa o kullanılır. - Aksi hâlde QCoDeS topluluk sürücüsü (
QCoDeSSMUDriver) kullanılır.
- Modelin bir harici sürücüsü varsa (ör. R&S →
Autorange (otomatik kademe) yeteneği. UI'daki autorange kutusu yalnız, seçili modelin sürücü ailesi gerçek kaynak/ölçüm autorange uyguluyorsa etkin olur. Tek doğruluk kuralının kaynağı family_supports_autorange'tir:
Yani şu an yalnız TSP ailesi (Keithley 2600) gerçek autorange uygular; SCPI 2400/2450, Keysight, dc_supply ve R&S aileleri için bu kutu pasiftir. Çift-SMU kurulumunda her iki alt sürücü de desteklemiyorsa kutu pasif kalır (yanıltıcı seçenek sunulmaz).

3. VISA Kaynakları ve Cihaz Keşfi
3.1 VISA Arabirim Türleri ve Kaynak Adlandırma
Her cihazın benzersiz bir "adresi" vardır ve bu adresin baş kısmı cihaza nasıl ulaşıldığını söyler: USB, GPIB, Ethernet veya seri port. Tıpkı bir posta adresinin şehir/sokak/numara bölümleri gibi, yazılım adresin önekine bakıp doğru arabirimi seçer.
- Neden yapılır: cihaza hangi fiziksel yoldan bağlanılacağını belirlemek için.
- Ne öğretir / ne ölçer: kaynak adının nasıl okunacağını (ör.
USB0::...,GPIB0::...,TCPIP0::...). - Nerede kullanılır: manuel adres girerken veya keşif sonuçlarını yorumlarken.
Yazılım, kaynak adının önekinden arabirim türünü otomatik türetir (interface_type):
| Arabirim | Kaynak öneki / şema | Klasik panel ön-eki | Tipik kullanım |
|---|---|---|---|
| USB (USBTMC) | USB0::... | USB0::0x05E6:: | Keithley/Keysight masaüstü SMU (0x05E6 = Keithley sağlayıcı kimliği) |
| GPIB | GPIB0::<adres>::INSTR | GPIB0:: | 2612A gibi USB-TMC'siz cihazlar |
| Ethernet (VXI-11) | TCPIP0::<ip>::INSTR | TCPIP0:: | LAN üzerinden enstrüman |
| Ethernet (Ham Soket) | TCPIP0::<ip>::<port>::SOCKET | TCPIP0:: | Ham soket cihazlar |
| Seri (RS-232) | ASRL<n>::INSTR veya COM<n> | ASRL | Seri cihazlar, röle/PV kartları |
| Manuel | (serbest) | (boş) | Adresi elle yazma |
Bir dize geçerli bir VISA kaynağı gibi görünmüyorsa (boş, bilinmeyen şema, :: içermiyor) yazılım bunu open_resource'a göndermez; bu, kriptik VI_ERROR_INV_RSRC_NAME (Parsing error) hatasını önler. sim://... ve MOCK... kaynakları geçerli (simüle) sayılır.
3.2 Otomatik Keşif (*IDN? aç-sorgula-kapat)
Tara düğmesi, bilgisayara bağlı tüm enstrümanları tek tek yoklayıp listeler; her birine kısaca "kimsin?" diye sorar ve hemen bırakır. Bir odaya girip "burada kim var?" diye yoklama yapmak gibidir — kalıcı bir oturum açmaz, yalnız sayar ve tanır.
- Neden yapılır: cihaz adreslerini elle bulup yazma zahmetinden kurtulmak için.
- Ne öğretir / ne ölçer: veriyolundaki cihazların listesini ve adaylarını; yanıt vermeyenlere takılıp kalmaması için sıkı timeout korumaları vardır.
- Nerede kullanılır: yeni bir tezgah kurarken veya cihaz takıp çıkardıktan sonra.
Keşif (Tara), bağlı enstrümanları sayar ve her birini bir aday cihaz kaydına eşler. Önemli özellikler:
- Keşif salt-okunurdur: kalıcı bir ölçüm oturumu açmaz. Her kaynak açılır,
*IDN?sorgulanır, kapatılır. - Her kaynak iki denemeyle yoklanır: (1) varsayılan ayarlar (USBTMC SMU'ların kanıtlı yolu), (2) boş dönerse
\nsonlandırma + daha uzun timeout (yavaş/seri cihazlara şans verir). - Seri (ASRL/COM) kaynaklarda akış-kontrolü kapatılır; aksi hâlde yanıt vermeyen bir kart (ör. CH340 anahtar-matrisi)
CTSbekleyerek süresiz bloklayabilir.
Timeout korumaları (cihaz-haberleşme kuralı #1):
| Parametre | Birim | Değer | Açıklama |
|---|---|---|---|
| Kaynak açma timeout'u | ms | 1500 | Yanıt vermeyen seri/USB portun viOpen'da takılmasını önler |
| Yoklama duvar-saati sınırı | s | 8.0 | Tüm aç+sorgu+kapat bunu aşarsa thread terk edilir, tarama devam eder |
| Varsayılan VISA timeout | ms | 3000 | Per-cihaz override yoksa kullanılır (Ayarlar > Donanım visa_timeout_ms) |
Seri portlar ayrıca pyserial ile listelenir; açıklama/üretici/donanım kimliğinde CH340, USB Serial, USB-SERIAL, USB-UART, CP210 jetonlarından biri geçerse cihaz Switch Matrix adayı olarak işaretlenir.
3.3 Manuel Kaynak Girişi
Bazı cihazlar (özellikle seri portlu kartlar) otomatik keşifte görünmeyebilir; bu durumda adresi elle yazıp *IDN? ile sınayarak cihazı eklersiniz. Telefon rehberinde bulamadığınız bir numarayı elle çevirmek gibidir.
- Neden yapılır: otomatik bulunamayan veya özel ayar isteyen cihazları yine de ekleyebilmek için.
- Ne öğretir / ne ölçer: doğru port/baud/parity ile cihazın gerçekten yanıt verip vermediğini.
- Nerede kullanılır: RS-232/USB-seri kartlar, eski cihazlar ya da keşif başarısız olduğunda.
Cihaz otomatik bulunamazsa adresi elle girebilirsiniz:
- Klasik panel: ilgili SMU alanında Bağlantı türünü seçince adres alanına doğru ön-ek otomatik yazılır; gerisini siz tamamlarsınız. Bul ile tarayıp listeyi log'a dökebilirsiniz.
- Donanım sayfası — RS-232 manuel ekleme: Cihaz Ekle penceresinde port (
COM3//dev/ttyUSB0), baud, parity ve stop bit girip*IDN?Gönder ile yoklarsınız. Yanıt gelirse IDN alanı dolar ve Ekle ile cihazNEEDS_SETUP(kurulum gerekli) durumunda envantere eklenir.
3.4 Bağlantı Testi, Gecikme ve Geri-Çekilme (Back-off)
Test, bir cihaza kısa bir sinyal gönderip ne kadar sürede yanıt verdiğini (gecikme/latency) ölçer; arka planda da cihazlar düzenli yoklanır. Sürekli yanıt vermeyen bir cihaz giderek daha seyrek denenir (üstel geri-çekilme), cevap vermeyen birini sürekli değil, gitgide artan aralıklarla aramak gibi.
- Neden yapılır: bağlantının sağlığını doğrulamak ve yanıt vermeyen tek cihazın sistemi yormasını önlemek için.
- Ne öğretir / ne ölçer: cihazın ulaşılabilirliğini ve yanıt gecikmesini (ms).
- Nerede kullanılır: kurulum sorunlarını teşhis ederken, kararsız/uzak cihazlarda.
Bir cihazı Test ettiğinizde veya Yeniden Bağlan dediğinizde, salt-okunur bir *IDN? yoklaması yapılır ve gecikme (latency) ölçülür:
- Girdi:
*IDN?gidiş-dönüş süresi (monotonik saat) · Çıktı:latency_ms(ms). Başarısız yoklamada gecikme anlamsızdır ve kaydedilmez. - Simüle cihazlar her zaman
(True, "<simulated>", None)döner — G/Ç yapılmaz.
Periyodik arka plan yoklaması (~2 sn): Donanım sayfası, ulaşılabilir cihazları sürekli yeniden yoklar. Sürekli ulaşılamayan bir cihaz üstel geri-çekilme ile gitgide daha seyrek denenir:
Yani: 1. başarısızlık → 5 sn, 2. → 10 sn, 3. → 20 sn, … en fazla 5 dakika. Başarılı bir yoklama sayacı sıfırlar. Bu, yanıt vermeyen tek bir cihazın tarama döngüsünü meşgul etmesini önler.
*IDN? mevcut oturumla çakışıp çalışır durumdaki bir kartı hatalı olarak HATA boyardı.4. SMU Kurulum Modları
Bir ölçüm bir, iki ya da çift-kanallı SMU gerektirebilir (ör. bir transistörde drain ve gate'i ayrı sürmek için iki kanal gerekir). Kurulum modu, yazılıma "elimde kaç SMU var ve hangisi neyi sürecek?" bilgisini verir; ölçüm motoru bu farkı görmeden hep tek bir sürücü görür.
- Neden yapılır: donanım kurulumunuzu (tek diyot mu, çift kanallı transistör mü) ölçüm yazılımına doğru tanıtmak için.
- Ne öğretir / ne ölçer: kanal–elektrot eşlemesini (
a=drain,b=gate). - Nerede kullanılır: iki-uçlu cihazlar (diyot/PV) ile üç-uçlu cihazlar (TFT/FET) arasında geçişte.
Ölçüm motoru her zaman tek bir SMUDriver arayüzü görür; arkasında kaç fiziksel cihaz olduğu kurulum modu ile belirlenir. Klasik panelde üç mod radyo düğmesiyle seçilir.
| Mod | smu_setup_mode | Fiziksel cihaz | Kanal eşlemesi | Varsayılan model |
|---|---|---|---|---|
| Çift kanal | dual_channel | 1 adet çift-kanallı SMU | a=drain, b=gate (native) | 2614B |
| Tek kanal çifti | single_channel_pair | 2 adet tek-kanallı SMU | a=drain (SMU1), b=gate (SMU2) | 2450 + 2450 |
| Tek kanal diyot | single_channel_diode | 1 adet tek-kanallı SMU | yalnız a | 2450 |

4.1 Çift Kanal (dual_channel)
Tek bir native çift-kanallı cihaz (ör. Keithley 2614B) hem drain hem gate kanalını sağlar. Bağlan düğmesi modeli kurar, connect(resource) çağırır, *IDN? ile doğrular ve aktif sürücüyü ölçüm motoruna verir.
4.2 Tek Kanal Çifti (single_channel_pair)
İki ayrı tek-kanallı SMU, bir DualSMUAdapter ile tek bir çift-kanallı sürücü gibi sunulur:
channel="a"→ drain SMU (SMU1),channel="b"→ gate SMU (SMU2).- Her alt sürücü kendi VISA kaynağıyla bağımsız bağlanır (
connect_each(res1, res2)); iki ayrı adres girersiniz. - Autorange yeteneği yalnız her iki alt sürücü de destekliyorsa raporlanır.
- Mock modunda gate (
b) gerilimi, drain alt-sürücüsünün gate referansına yansıtılır; böyleceIds(Vds, Vgs)doğru hesaplanır (yalnız simülasyonda geçerli; gerçek donanımda her SMU kendi değerini okur).
4.3 Tek Kanal Diyot (single_channel_diode)
Yalnız a kanalı kullanılır; iki-uçlu cihazlar (diyot, Schottky, güneş hücresi) için idealdir. Tek bir adres yeterlidir.
5. Switch Matrix / Röle Kartı
Bir vitüy üzerinde onlarca TFT/numune olabilir ama genelde tek bir SMU vardır. Switch Matrix, röleler (elektronik anahtarlar) sayesinde SMU'yu sırayla istenen numuneye bağlar. Bir telefon santralının görüşmeleri doğru hatta yönlendirmesi gibi, ölçülecek cihazı kabloları elle değiştirmeden seçer.
- Neden yapılır: tek cihazla çok sayıda numuneyi otomatik, sırayla ölçebilmek için.
- Ne öğretir / ne ölçer: hangi numunenin SMU'ya bağlı olduğunu; kendisi bir ölçüm yapmaz, yönlendirir.
- Nerede kullanılır: dizi (array) testleri, TFT panel karakterizasyonu, otomatik tarama.
Switch Matrix, 16 kanallı bir low-trigger relay kartıdır (Mikrofab TFT anahtar-matrisi). DUT'ları (ör. bir vitüye dizilmiş TFT'ler) sırayla SMU'ya yönlendirir.

5.1 Donanım ve Protokol
- Kart, Arduino tabanlı
tft_switchmatrixfirmware'ini (v3.0.0) çalıştırır ve PySerial ile COM port üzerinden sürülür. - Beklenen cihaz modeli:
TFT-SWITCHMATRIX-16(kimlik doğrulaması bunu arar). - İki komut katmanı vardır:
- Eski token protokolü —
"<pin><a|b>..."(ör."3b16b6b8b") ve"a"(tüm-kapat). Röle seçimi ve PV haritaları bunu kullanır. - SCPI / IEEE-488.2 sorgu katmanı —
*IDN?,STATE?,SYST:ERR?(kapalı-çevrim doğrulama için).
- Eski token protokolü —
Röle pinleri: kartın röle-pinleri 2…17 arasıdır (toplam 16 kanal).
5.2 COM Port, Baud ve Port Keşfi
| Parametre | Birim | Varsayılan | Açıklama |
|---|---|---|---|
| COM port | — | (boş) | Bul ile listelenir; CH340/USB-Serial adayları öne çıkarılır |
| Baud rate | bit/s | 9600 | Arayüzden 9600 veya 115200 seçilir |
| Newline ekleme | — | Kapalı | Komut sonuna \n ekleme; Ayarlar sekmesinden açılır/kapatılır |
Bul düğmesi seri portları tarar; açıklamasında Switch Matrix, Mega, CH340, USB Serial, USB-SERIAL geçen port aday olarak seçilir.
5.3 TFT Eşleştirme Tablosu ve Token Sözdizimi
Her numuneye (ör. "TFT 3") ulaşmak için belirli rölelerin kapanması gerekir; bu eşleştirme, kısa bir komut dizisiyle (token) ifade edilir. Bir asansörde kat düğmesine basmak gibi: "TFT 3" dersiniz, yazılım arkada doğru pinleri kapatan komutu üretir.
- Neden yapılır: fiziksel röle numaralarını ezberlemeden mantıksal numune adıyla çalışabilmek için.
- Ne öğretir / ne ölçer: token sözdizimini (
3b16b6b8b→ 3, 16, 6, 8 pinlerini kapat) ve hangi pinin geçerli olduğunu (2–17). - Nerede kullanılır: cihaz haritası tanımlarken ve röle yollarını düzenlerken.
Her mantıksal TFT kimliği, bir röle komut dizisine eşlenir (tft_mapping). Varsayılan eşleştirme:
| TFT | Röle komutu |
|---|---|
| TFT 1 | 3b16b6b8b |
| TFT 2 | 2b17b6b8b |
| TFT 3 | 5b14b6b8b |
| TFT 4 | 4b15b6b8b |
| TFT 5 | 7b12b6b8b |

Token sözdizimi: rakamla başlayan bir satır break-before-make'tir (önce tüm röleler açılır, sonra uygulanır). Her token <pin><eylem> çiftidir:
b(veyaB) → pini kapat (close)a(veyaA) → pini aç (open)
Örnek: 3b16b6b8b → 3, 16, 6 ve 8 numaralı pinleri kapatır (gerisi açık). Yalnız 2–17 arası pinler geçerlidir.
verify_route, bu beklenen kümeyi gerçek STATE? okumasıyla karşılaştırır.5.4 Tüm Röleleri Kapat (a)
Tüm Kapat düğmesi (veya güvenli-durum akışı) karta tek harflik a komutunu gönderir; bu tüm röleleri açar (DUT'u SMU'dan ayırır). Bu komut, güvenli-durum sırasının (output OFF → röle OFF → bağlantı kapat) ikinci adımıdır.
5.5 Röle Durumu Okuma ve Yol Doğrulama
Numuneye gerilim uygulamadan önce yazılım, doğru rölelerin gerçekten kapandığını karta sorarak doğrular. Trene binmeden önce rayların doğru yöne ayarlandığını kontrol etmek gibi; eşleşmezse ölçüm durdurulur.
- Neden yapılır: takılı/arızalı bir röle yüzünden yanlış numuneye gerilim uygulanmasını önlemek için.
- Ne öğretir / ne ölçer: kartın gerçek anahtar durumunu (kapalı kanallar) ve hata kuyruğunu.
- Nerede kullanılır: her otomatik yönlendirme adımında — güvenli, kapalı-çevrim ölçümün temelidir.
Profesyonel kapalı-çevrim yardımcıları, SMU biasları uygulanmadan önce yönlendirmenin gerçekten gerçekleştiğini doğrular:
read_state()/closed_channels()—STATE?ile 16 kanalı geri okur (mock'ta aynalanır).verify_route(beklenen_kapalı)— geri okur, eşleşmezse veya firmware hata kuyruğunda bir kayıt varsaSwitchMatrixErrorfırlatır (hata asla yutulmaz — cihaz-haberleşme kuralı #4).drain_errors()—SYST:ERR?kuyruğunu (en fazla 32 yineleme) boşaltır;+0,"No error"görülünce durur.
verify_route SMU biasını engeller. Böylece yanlış kanala gerilim uygulanmaz. Bu doğrulamayı atlamak güvenli değildir.5.6 Newline Ekleme Ayarı
Bazı firmware sürümleri komut sonunda satır sonu bekler. Ayarlar sekmesindeki newline ekleme seçeneği açıkken her send_command çıktısına \n eklenir (varsayılan kapalı). Van der Pauw / Probe-IV gibi ham yollar (send_raw) bu ayardan bağımsız her zaman \n ekler.
6. Cihaz Rolleri ve Atama
Ölçüm modülleri "kaynak", "ölçer", "anahtar", "sıcaklık" gibi işlevler ister; rol sistemi, hangi fiziksel cihazın hangi işlevi üstleneceğini bağlar. Bir tiyatro oyununda rolleri oyunculara dağıtmak gibidir — böylece ölçüm, "Keithley 2614B" değil, soyut "SMU rolü" ile konuşur.
- Neden yapılır: ölçümleri belirli cihaz modellerinden bağımsız kılıp cihaz değiştirmeyi kolaylaştırmak için.
- Ne öğretir / ne ölçer: her görevin (rolün) hangi cihaza atandığını ve eksik bir rol varsa anlaşılır uyarı verilmesini.
- Nerede kullanılır: çok cihazlı tezgah kurarken, cihaz değiş-tokuşunda, profil yüklerken.
Yazılım, "hangi cihaz hangi işi yapar" sorusunu rol soyutlamasıyla çözer. İki sözcük dağarcığı vardır.
6.1 Kabiliyet Rolleri (11 Kanonik Rol)
Kart tabanlı Donanım sayfası, ince taneli 11 kabiliyet rolü kullanır:
| Rol | Kısaltma | Anlam |
|---|---|---|
| SOURCE | SRC | Gerilim/akım kaynağı |
| METER | MEAS | Akım/gerilim ölçümü |
| FOUR_WIRE | 4W | Kelvin / 4-telli algılama |
| SWITCH | SW | Yönlendirme / multiplekser |
| TEMPERATURE | TEMP | Sıcaklık denetim/okuma |
| MAGNETIC_FIELD | FB | Manyetik alan |
| ELECTRIC_FIELD | FE | Elektrik alan |
| LIGHT | LIGHT | Aydınlatma / solar simülatör |
| LOAD | LOAD | Elektronik yük |
| SPECTRAL | SPEC | Spektral analiz |
| SENSE | SENSE | Potansiyometrik / pH |
Bir SMU otomatik olarak SOURCE + METER + FOUR_WIRE kabiliyetlerini sağlar; röle kartı SWITCH; termometre TEMPERATURE.
6.2 Eski (Legacy) Cihaz Rolleri
Ölçüm modülleri ve RoleBinding ayrıca cihaz-düzeyli kaba rolleri kullanır: SMU, RELAY_CONTROLLER, THERMOMETER, LOCK_IN, TEMPERATURE_CONTROLLER, DMM, DAQ, OSCILLOSCOPE. Her biri bir kabiliyet kümesine genişler (ör. SMU → {SOURCE, METER, FOUR_WIRE}).
6.3 Rol Haritalama (Role Mapping Sekmesi)
Donanım sayfasının Rol Haritalama sekmesinde, her kabiliyet rolüne envanterdeki bir cihazı atarsınız. Atama anlık kaydedilir ve "N / 11" kapsam göstergesi güncellenir. Bir cihaz silindiğinde, o cihaza işaret eden tüm roller otomatik olarak temizlenir (çözümleyici eksik bir cihaz kimliğine referans vermesin diye).
6.4 RoleBinding
Ölçüm başlatıldığında atamalar tek bir RoleBinding nesnesine çözülür: smu, relay, thermometer birincil alanları + kabiliyet erişim haritası. Bir modül ihtiyaç duyduğu bir rolü bulamazsa MissingHwRoleError (eksik rol) ile anlaşılır bir uyarı verilir.
7. Kart Tabanlı Donanım Sayfası
Donanım sayfası, tezgahtaki her cihazı renkli bir durum rozeti taşıyan bir "kart" olarak gösterir; böylece tüm envanteri, bağlantı durumunu ve eylemleri tek bakışta görürsünüz. Bir uçuş bilgi ekranındaki "kalkışta/gecikti/iptal" tabelası gibi, her cihazın anlık halini renkle bildirir.
- Neden yapılır: çok cihazlı bir tezgahı tek merkezden görmek ve yönetmek için.
- Ne öğretir / ne ölçer: cihaz durumlarını (Bağlı/Beklemede/Hata/Kurulum gerekli) ve kart başına yapılabilecek işlemleri.
- Nerede kullanılır: kurulum, izleme ve sorun giderme sırasında.
Donanım sayfası, envanteri cihaz kartları olarak gösterir ve üç sekme sunar: Genel Bakış (kartlar + özet), Rol Haritalama, Profiller.
7.1 Cihaz Kartları ve Durum Rozetleri
Her kart cihazın kimliğini, kabiliyet çiplerini ve bir durum rozetini (status pill) gösterir:
| Durum | Anlam |
|---|---|
CONNECTED (Bağlı) | Son yoklamada *IDN? yanıt verdi |
PENDING (Beklemede) | Keşfedildi, henüz yoklanmadı |
IDLE (Boşta) | Bilinen-boşta (açılışta varsayılan) |
ERROR (Hata) | Yoklama başarısız; last_error saklanır |
NEEDS_SETUP (Kurulum gerekli) | Tanımlanmamış seri port / profil-geri-yüklemede ulaşılamayan cihaz |
Kart eylem menüsünden: Panel aç (enstrüman konsolu), Tanı / Test, Self-test, Yapılandır, Firmware güncelle, Sil, Sorun gider seçenekleri sunulur (cihaz türüne göre).
7.2 Simüle Cihaz Rozeti
Simüle cihazlar kartlarında mor zeminli beyaz bir SIM rozeti taşır. Bu rozet, kontrast (WCAG AA) için dolu-pill biçimindedir. Simüle bir cihaz gerçek bağlantı değildir: enstrüman konsolu açılsa bile session_opened sinyali yayınlanmaz ve kart asla yanıltıcı şekilde CONNECTED boyanmaz.
Simüle ekleme: Cihaz Ekle penceresindeki Simüle ekle düğmesi, bağlı kabiliyet rollerini kapsayan sabit bir mock cihaz kümesi ekler (SMU 2614B, Switch Matrix, termometre, DC kaynak, LCR, PV multiplekser, MFLI, Eurotherm, Sun EC10, K2000) — hiçbir G/Ç yapılmadan.
7.3 Cihaz Ekleme Yolları
- Tara: arka planda salt-okunur keşif çalışır; bulunan adaylar işaretlenip eklenir.
- Simüle ekle: sıfır-G/Ç mock cihazlar.
- RS-232 manuel: port/baud/parity/stop +
*IDN?yoklaması (§3.3).
Tarama süresince animasyonlu çubuk ve geçen-süre sayacı gösterilir; biten taramada "{n} cihaz bulundu · {s} sn" özeti yazılır.
7.4 Profil Kaydet/Yükle (Station Profiles)
Bir kez kurduğunuz cihaz envanteri ve rol atamalarını adlandırılmış bir "istasyon profili" olarak kaydedip sonra tek tıkla geri yükleyebilirsiniz. Bir oyunun kayıt dosyası gibi; ertesi gün tezgahı sıfırdan kurmak zorunda kalmazsınız.
- Neden yapılır: tekrarlayan kurulum işini ortadan kaldırıp tutarlılık sağlamak için.
- Ne öğretir / ne ölçer: profilin geri yüklendiğinde hangi cihazların hazır, hangilerinin eksik (
NEEDS_SETUP) olduğunu. - Nerede kullanılır: paylaşılan laboratuvarlar, farklı deney düzenleri arasında hızlı geçiş.
Profiller sekmesi, mevcut envanter + rol atamasını adlandırılmış bir istasyon profili olarak kaydeder/yükler (config + .yml dışa/içe aktarma). Bir profili geri yüklerken cihazlar yeniden yoklanır; ulaşılamayan beklenen cihazlar NEEDS_SETUP olarak işaretlenir (hata değil — sadece şu an veriyolunda değiller) ve eksik cihazlar adlarıyla özetlenir.
8. Cihaz Yapılandırma (Configure)
Yapılandır penceresi, bir cihazın bağlantı ayarlarını (adres, timeout, baud/parity gibi seri parametreler ve sürücüye özel seçenekler) düzenlemenizi sağlar. Bir cihazın "ayarlar" menüsü gibidir; her alan, geçersiz değer girilirse anında uyarır.
- Neden yapılır: cihazı doğru ve kararlı haberleşecek şekilde ince ayarlamak için.
- Ne öğretir / ne ölçer: hangi ayarların geçerli olduğunu; canlı sürücü varsa parametreler şemadan üretilir ve sınırlanır.
- Nerede kullanılır: seri cihazları kurarken, takma ad verirken, timeout sorunlarını çözerken.
Bir cihazın Yapılandır penceresi, kimliği salt-okunur gösterir ve düzenlenebilir bağlantı alanları sunar. Donanım G/Ç yapmaz; OK'te sahibi (Donanım sayfası) ayarı uygular.
| Alan | Tür | Aralık / Seçenek | Not |
|---|---|---|---|
| Alias | metin | serbest | Kullanıcı-dostu mantıksal ad; cihaz değiş-tokuşunda korunur (rol atamalarını sürdürür) |
| Kaynak / bus | metin | geçerli VISA/seri | Satır-içi doğrulama; geçersizse OK pasif |
| Timeout | sayı | 500–30000 ms, adım 500 | Varsayılan 3000 ms |
| Baud rate | liste | 9600 / 19200 / 38400 / 57600 / 115200 | Yalnız seri/ASRL kaynakta etkin |
| Parity | liste | None(N) / Even(E) / Odd(O) / Mark(M) / Space(S) | Yalnız seri/ASRL |
| Stop bits | liste | 1 / 1.5 / 2 | Yalnız seri/ASRL |
Dinamik şema formu: Cihaz için canlı bir QCoDeS sürücüsü varsa, sürücünün parametre şemasından (get_parameter_schema()) per-parametre alanlar üretilir (her biri min/max sınır doğrulamasıyla). Canlı sürücü yoksa yukarıdaki temel form gösterilir. Tüm doğrulama hataları satır-içi (kırmızı etiket) gösterilir ve hepsi temizlenene kadar OK pasiftir.
baudrate düşürülür (veri gürültüsü olmasın); probe_resource zaten yalnız seri kaynakta baud uygular.9. Enstrüman Konsolu (Instrument Console)
Enstrüman konsolu, bir cihaza doğrudan ham komut (ör. *IDN?) gönderip yanıtını görebileceğiniz bir terminal penceresidir. Cihazla birebir sohbet etmek gibidir; ölçüm akışına dokunmadan cihazı sınamanızı veya elle sürmenizi sağlar.
- Neden yapılır: cihaz davranışını teşhis etmek, komutları denemek ve sorun gidermek için.
- Ne öğretir / ne ölçer: Write/Query/Read farkını ve cihazın komutlara verdiği gerçek yanıtları.
- Nerede kullanılır: hata ayıklama, yeni cihaz tanıma, ileri düzey manuel kontrol.
Enstrüman konsolu, NI-MAX "VISA Test Panel" tarzında, cihaz başına bağımsız bir üst-düzey penceredir. Bir cihaz IDLE iken ona komut gönderirken başka bir cihazda ölçüm sürebilir. Tüm G/Ç, GUI thread'i dışında çalışır.

9.1 Genel Komut Konsolu
| Denetim | Açıklama |
|---|---|
| Write | Komutu yazar (yanıt beklemez) |
| Query | Komutu yazar + bir satır yanıt okur (Enter tuşu = Query) |
| Read | Yalnız okuma yapar |
| Identify | *IDN? sorgular |
| Read STB | Durum baytını (*STB?) okur |
| Clear Device | Cihaz temizleme (device clear) |
| Hex görünüm | Yanıtı onaltılık (hex) göster |
| Clear Log | Günlüğü temizle (her zaman etkin) |
Seçenekler satırı:
| Seçenek | Birim | Aralık / Seçenek | Varsayılan |
|---|---|---|---|
| Sonlandırma (termination) | — | \n (LF) / \r\n (CR+LF) / \r (CR) / Yok | LF |
| Okunacak bayt (bytes-to-read) | bayt | 0 – 1.000.000 | 0 |
| Timeout | ms | 100 – 30000 | 3000 |
9.2 Oturum Yaşam Döngüsü ve Meşgul Koruması
- Pencere açıldığında tutulan bir oturum açılır (cihaz meşgul değilse). Ölçüm o cihazı kullanmaya başlayınca oturum bırakılır, gövde devre dışı kalır ve cihaz serbest kalınca otomatik yeniden açılır (~1 sn'lik meşgul yoklaması).
- Gerçek bir cihaza karşı oturum başarıyla açılınca
session_openedyayınlanır ve Donanım sayfasındaki kartCONNECTEDboyanır (başarılı açılış canlılığın pozitif kanıtıdır). Simüle oturumda bu yayınlanmaz.
9.3 Switch Matrix (TFT Board) Konsol Gövdesi
Switch Matrix için özel bir gövde, tam komut konsolunun üstüne TFT seçim butonları ekler. Bir TFT'ye tıklayınca: (1) host'un aktif TFT'si ayarlanır (ölçüm bunu okur), (2) o TFT'nin röle komutu (None → "a") konsol üzerinden yazılır ve günlüğe düşer. SCPI hızlı-eylemleri (Identify/STB/Clear Device) Switch Matrix için anlamsız olduğundan gizlenir (*IDN? bir röle komutu gibi ayrıştırılırdı).
10. Firmware Güncelleme
Switch Matrix kartının içindeki gömülü yazılım (firmware), bir cihaz kartı üzerinden güvenle güncellenir. Bir cihazın işletim sistemini yenilemek gibidir; yazılım, yanlış kartın yanlışlıkla flash'lanmasını engelleyen güvenlik kapılarına sahiptir.
- Neden yapılır: kart yazılımını hata düzeltmeleri/yeni özelliklerle güncel tutmak için.
- Ne öğretir / ne ölçer: kartın doğru model olup olmadığını (
*IDN?ile) ve flash'ın güvenli olup olmadığını. - Nerede kullanılır: ilk kurulum, kurtarma flash'ı veya firmware sürüm yükseltmesi.
Switch Matrix kartının Arduino firmware'i, bir cihaz kartı üzerinden (port o kartın bus'una kilitli) güncellenir. Böylece ilgisiz bir Arduino Mega kart yanlışlıkla flash'lanamaz.
10.1 Akış
- Açılışta kartın
*IDN?kimliği okunur:- Beklenen modelle eşleşiyor → yeşil not, Flash etkin.
- Farklı (boş olmayan) model → Flash engellenir (bu portta yanlış kart).
- Yanıt yok (boş/eski firmware) → Flash izinli (ilk/kurtarma flash'ı).
- avrdude, gönderilen ön-derlenmiş
.hex'i karta yazar (hedefte Arduino aracı gerekmez), canlı günlük akar. - Flash sonrası
*IDN?ile yeniden doğrulanır.
10.2 Kart ve Araç Parametreleri
| Parametre | Değer |
|---|---|
| Kart | Arduino Mega 2560 (atmega2560, programmer wiring, 115200 baud) |
| Firmware imajı | tft_switchmatrix_mega2560.hex |
| Beklenen IDN modeli | TFT-SWITCHMATRIX-16 |
| Gönderilen firmware sürümü | 3.0.0 |
avrdude şu sırayla aranır: MIKROFAB_AVRDUDE ortam değişkeni → ürünle gelen tools/avrdude/win/ → Arduino15 paketi → PATH. Her gerçek flash bir timeout ile sınırlıdır (varsayılan 120 sn). Mock modda hiçbir alt-süreç/seri G/Ç çalışmaz; kısa bir sentetik günlük akar ve başarı raporlanır.
FIRMWARE_REGISTRY) listeli kartlar bir flash eylemi alır. Bu, flash'ı ilgisiz Arduino Mega kartlardan (ör. pv_mux 40-kanal kart) uzak tutan güvenlik kapısıdır — yanlış imaj kartı brickler'di.11. Cihaz Profilleri (Catalog)
Bir cihaz *IDN? ile kimliğini söyler ama doğruluk sınıfı, maksimum gerilim/akım gibi yetenek bilgilerini söylemez; bunlar makine-okunur bir katalogdan gelir. Cihazın teknik künyesi/veri sayfası gibi düşünün — çözümleyici, bir göreve en uygun cihazı bu künyelere bakarak puanlar.
- Neden yapılır: bir rol için aday cihazlar arasından en uygununu otomatik seçebilmek için.
- Ne öğretir / ne ölçer: cihazların kaynak/ölçüm zarflarını ve sınıf önceliklerini (bunlar güvenlik sınırı değildir).
- Nerede kullanılır: cihaz–rol eşlemesi yapılırken, çok cihazlı tezgahta seçim kararlarında.
Kimlik (*IDN?) cihaz üzerinden okunabilir; ancak doğruluk sınıfı ve cihaz sınıfı SCPI ile sorgulanamaz. Bunlar, makine-okunur bir kayıt defterinden (specs/device_specs.json) import zamanında kurulan, model-anahtarlı bir katalogtan gelir. Çözümleyici, bir slot için aday cihazları şu girdilerle puanlar:
- Kabiliyetler (ince yapraklar) — sert filtre.
- Cihaz sınıfı + sınıf önceliği (precision / constant / fast tercihine göre sıralama).
- Kaynak/ölçüm zarfları (
v_max,i_max, çözünürlük) — aralık filtreleme + kalite puanlama.
Bilinmeyen bir model, envanterin bildirdiği kabiliyetlerden kurulan güvenli bir varsayılana düşer; bağlantı zamanında SCPI ile ölçülen değerler katalogun üzerine bindirilir (apply_probe). Bu sayısal değerlerin hiçbiri güvenlik sınırı değildir — güvenlik sınırları device_safety katmanında yaşar.
12. Mock (Simülasyon) Modu
Simülasyon modu, hiçbir gerçek cihaz bağlı olmadan tüm yazılımı sahte ama gerçekçi cihazlarla çalıştırır. Uçuş simülatörü gibidir: tezgah başında olmadan keşfi, bağlantıyı, rol atamayı ve ölçümü güvenle öğrenebilir, deneyebilirsiniz.
- Neden yapılır: donanımsız öğrenme, demo, geliştirme ve test için; gerçek cihazı riske atmadan.
- Ne öğretir / ne ölçer: gerçek tezgahla birebir aynı arayüzü; yalnız veri, fizik-mock'tan üretilir.
- Nerede kullanılır: eğitim, arayüzü tanıma, otomatik testler; gerçeğe geçiş tek kutucukla.
Simülasyon modu, donanımsız geliştirme, demo ve test içindir. Backend, kanonik fizik-mock MockSMUDriver'dır.
12.1 Davranış
- Sürücü her zaman "bağlı" raporlar (
connected == True) ve geçerli bir IDN döner:MOCK,<vendor>, <model>,0,0.1. - Tek-kanallı model
channel="b"isteninceValueErrorfırlatır; çift-kanallı modelaveb'yi destekler. send_rawmakul sahte yanıtlar üretir (*IDN?→ mock IDN; diğer sorgu →MOCK:0); konsol/yumuşak-panel mock'ta tam işlevseldir.run_self_testanında PASS döner (test edilecek gerçek bir şey yoktur).
12.2 Mock Fizik Profilleri
Simülasyondaki sahte cihaz, rastgele değil, gerçek fizik denklemlerine göre veri üretir: bir diyot diyot gibi, bir güneş hücresi ışığa tepki veren bir hücre gibi davranır. Gerçekçi bir bilgisayar oyunu motoru gibi, hangi profili seçerseniz o cihazın eğrisini üretir.
- Neden yapılır: donanımsız ortamda anlamlı, fiziksel olarak tutarlı eğriler üretip analizleri sınamak için.
- Ne öğretir / ne ölçer: profil tipine göre çıktıyı (TFT transfer eğrisi, diyot denklemi, güneş hücresi I–V).
- Nerede kullanılır: analiz modüllerini test etme, eğitim materyali üretme, demo.
Mock ölçüm fiziği, profil ile yönlendirilir:
| Profil tipi | Davranış |
|---|---|
None (varsayılan) | TFT/FET: drain (a) çıkış/transfer eğrisi, gate (b) küçük kaçak akımı |
diode | Fiziksel diyot/Schottky tek-diyot denklemi (I0, n, R_s, R_sh, T_K) + gürültü |
solar_cell | Tek-diyot güneş hücresi: I = Iph − I_dark(V); ışınıma orantılı Iph |
Iph, diyot parametreleri) → I = Iph·(E/1000) − I_dark(V) → Çıktı akım (A). Burada E ışınım (W/m²), 1000 W/m² referans (1-Sun) alınır. Akım-kaynağı modunda hedef akıma karşılık gelen gerilim ikiye-bölme (bisection) ile çözülür.12.3 Simüle Rozeti
Tüm simüle cihazlar/oturumlar arayüzde açıkça SIM olarak etiketlenir (§7.2) ve gerçek bağlantı gibi davranmaz. Mock'tan gerçeğe geçerken yalnızca Simülasyon kutusunu kaldırır ve geçerli adres girersiniz; arayüz aynıdır.
13. Güvenli Bağlantı, Timeout ve Güvenli Durum
Donanımla konuşan her kod, değişmez güvenlik kurallarına uyar: her komut bir zaman sınırıyla (timeout) yapılır ve hata/kapanış anında cihazlar güvenli duruma alınır (önce çıkış kapatılır, sonra röleler açılır, sonra bağlantı kesilir). Bir laboratuvarda "çıkarken gazı kapat" kuralı gibi, anormal durumlarda bile numune ve cihaz korunur.
- Neden yapılır: donanımı, numuneyi ve kullanıcıyı kilitlenme/aşırı sürüm gibi risklerden korumak için.
- Ne öğretir / ne ölçer: timeout sınırlarını ve güvenli-durum sırasını; hataların yutulmayıp yüzeye çıktığını.
- Nerede kullanılır: her ölçüm oturumunda; özellikle iptal, hata veya beklenmedik kapanışta.
Donanımla konuşan tüm kod, değişmez güvenlik kurallarına uyar (cihaz-haberleşme standardı):
13.1 Timeout Zorunlu
Cihaza giden her okuma/yazma/sorgu sınırlı bir timeout ile yapılır; sonsuz/bloklayan bekleme yoktur. Önemli sınırlar:
| Yer | Birim | Değer |
|---|---|---|
| VISA kaynak açma (keşif) | ms | 1500 |
| Keşif yoklama duvar-saati | s | 8.0 |
| Varsayılan VISA timeout | ms | 3000 |
| Konsol timeout aralığı | ms | 100 – 30000 |
| Switch Matrix okuma | s | 2.0 |
| Firmware flash | s | 120 |

visa_timeout_ms ve genel timeout değerleri burada yönetilir.13.2 Güvenli Durum Korunur
Hata, iptal veya kapanışta çıkışlar/biaslar güvenli değere alınır. Sıra:
- SMU output OFF (
output_all_off), - Switch Matrix tüm röleleri kapat (
a), - Bağlantıların güvenli kapatılması.
Bu sıra yalnız Qt closeEvent'te değil, yorumlayıcı çıkışında (atexit) ve yakalanmamış istisnada da (excepthook) çalışır; böylece anormal sonlanmalar da kapsanır.
13.3 Mock Mod Bozulmaz
Gerçek G/Ç ekleyen her yol mock karşılığını korur; testler donanım olmadan geçer.
13.4 Hata Yoklaması
SCPI/TSP işlemlerinden sonra cihaz hata/durum kuyruğu kontrol edilir; hatalar yutulmaz, anlamlı şekilde yüzeye çıkar (ör. read_error_queue, Switch Matrix drain_errors).
secure_connection alanı (TLS/SSH) şu an bir yer tutucudur; gelecekteki güvenli taşıma için ayrılmıştır ve mevcut sürümde varsayılan olarak kapalıdır.Özet
Bu bölümde şunları ele aldık: çok-üretici cihaz desteği ve *IDN? model eşleştirme; VISA arabirimleri, otomatik/periyodik keşif ve timeout korumaları; üç SMU kurulum modu; Switch Matrix röle kartı (token + SCPI, tüm-kapat a, yol doğrulama); cihaz rolleri ve atama; kart tabanlı envanter, durum rozetleri ve simüle rozeti; cihaz yapılandırma; enstrüman konsolu; firmware güncelleme; cihaz profilleri/katalog; mock fizik modu; ve güvenli-durum/timeout ilkeleri. Tüm bu özellikler önce simülasyonda, sonra aynı arayüzle gerçek tezgâhta kullanılabilir.