FabyaVisionKullanım Kılavuzu
/

Betik nesne modeli başvurusu

5 dk okumaBetikler

Betiklerden erişilen nesne ve işlevlerin dil dil başvurusu: ortak kavramlar, dillerin karşılaştırma tablosu, VBS ve JavaScript nesne modeli. Python ve C ayrı konulardadır.

Bu başvuru nasıl okunur

Burada yalnızca motorun gerçekten tanıdığı üyeler listelenir. Kod alanındaki Başvuru paneli (VBS, C ve Python) aynı verileri örnek kodlarıyla birlikte verir; satıra tıklayınca örnek imlece eklenir. Python ve C için ayrıntılı listeler Python nesne modeli ve C işlevleri konularındadır.

Ortak kavramlar

Tag değer türleri

Tag türüVBSJavaScriptCPython
Boolikili değer (1 / 0, True / False)true / falseGetTagBit (1 / 0)bool
Tam sayı tiplerisayısayıByte, SByte, Word, SWord, DWord, SDWordint
Real / LRealsayısayıGetTagFloat / GetTagDoublefloat
String / WStringmetinmetinGetTagCharstr
DateTimemetin (ISO biçimi)metinGetTagDateTimeISO str

Kalite kodları

VBS (QualityCode), C (…StateQC) ve Python (.quality) aynı kodları kullanır: 192 iyi, 84 değer tag'in alt / üst sınırının dışında (değer kullanılabilir), 8 bağlantı yok, 4 tanımsız (tag bulunamadı), 0 kötü.

Sistem tag'leri

Projede aynı adla tag tanımlı değilse okunabilen, @ ile başlayan özel adlar:

AdAnlamı
@LocalMachineNameLive bilgisayarının adı.
@CurrentUser, @CurrentUserNameOturumu açık kullanıcının adı ve görünen adı (oturum yoksa boş).
@UA_<Rapor>_ID, @UA_<Rapor>_JobAdı <Rapor> olan rapora şimdi kayıt ekler: önce _ID'ye -1, sonra _Job'a 6 yazılır. Kayıt eklenince Job 0, ID yeni kayıt numarası olur; rapor yoksa ya da başka bir Job değeri verilirse Job −1 olur ve olay günlüğüne uyarı yazılır.

Rapor kaydı için Python'da scada.report_add("Rapor") daha kısadır. Rapor tarafı: Rapor tasarımı.

Dillere göre karşılaştırma

— işareti, o dilde karşılığı olmadığını gösterir.

İşVBSJavaScriptCPython
Tag okuHMIRuntime.Tags("Ad").Read ya da SmartTags("Ad")Tag.oku('Ad')GetTagFloat("Ad")scada.read("Ad")
Tag yazHMIRuntime.Tags("Ad").Write 1 ya da SmartTags("Ad") = 1Tag.yaz('Ad', 1)SetTagFloat("Ad", 1.0f)scada.write("Ad", 1)
Kalite / durum.QualityCode, .LastError—GetTagFloatStateQC("Ad", &d, &k)scada.tag("Ad").quality
Birkaç tag birlikteTags.CreateTagSet—GetTagMultiWaitscada.read_many, write_many, tagset
Sayfa açHMIRuntime.BaseScreenName = "Sayfa"Sayfa.ac('Sayfa')OpenPicture("Sayfa")scada.open_screen("Sayfa")
Önceki sayfa—Sayfa.geri()OpenPrevPicture()scada.back()
Açılır pencere——OpenScreeninPopup(…)scada.open_window("Sayfa")
Nesne özelliğiScreenItems("N").Text = "x"—SetText("Sayfa", "N", "x")scada.screen.items["N"].text = "x"
Katman göster / gizleScreens("S").Layers(1).Visible = False——sayfa.layers[0].visible = False
Oturumdaki kullanıcıHMIRuntime.Tags("@CurrentUser").ReadKullanici.adPWRTGetCurrentUser (UseAdmin.dll)scada.user
Giriş penceresi——ShowLogonDialog()scada.login_dialog()
Mesaj / onay penceresiMsgBoxBildir(metin) (yalnız bilgi)MessageBoxA (user32.dll)scada.msgbox(…), scada.notify(…)
Değer istemeInputBox——scada.inputbox(…)
Live diliHMIRuntime.Language = 1033—SetLanguage(1033)scada.language = 1033
Betikler arası değerHMIRuntime.DataSetwindow üzerine eklemedosya düzeyi değişkenscada.dataset
Rapora kayıt@UA_Rapor_ID / _Job——scada.report_add("Rapor")
VeritabanıADODB.Connection——scada.db.connect(…), pyodbc
DosyaScripting.FileSystemObject—fopen, fprintfopen(), os, pathlib
Program başlatWScript.Shell.Run—ProgramExecutescada.run(…)
Bekleme(DateDiff döngüsü)setTimeoutSleep(ms)scada.sleep(sn), scada.wait_for(…)
Tanılama çıktısıHMIRuntime.Trace—printf, TraceTextprint, scada.trace
Programı kapatHMIRuntime.Stop—DeactivateRTProject()scada.stop()

VBS nesne modeli

Nesne üye adlarında büyük / küçük harf ayrımı yoktur. İzin gerektiren CreateObject nesneleri için bkz. VBScript betikleri.

HMIRuntime

ÜyeAçıklama
Tags("Ad")Tag nesnesi (Tags.Item("Ad") ile aynı).
SmartTags("Ad")Tag'in değerini okur; SmartTags("Ad") = v yazar.
Screens("Sayfa")Açık bir sayfa (ana sayfa, açılır pencere, sayfa penceresinin içi). Kapalı sayfa listede yoktur; Screens.Count, For Each çalışır.
ActiveScreenÖndeki sayfa.
BaseScreenNameAna sayfanın adı; atanırsa o sayfa açılır.
LanguageLive dili numarası (1055 Türkçe, 1033 İngilizce, 1031 Almanca); atanırsa dil değişir.
ActiveProject.Name, .PathProjenin adı ve klasörü.
DataSetBütün betiklerin paylaştığı, oturum boyunca bellekte duran değerler.
CurrentContextBetiğin çağrıldığı bağlam.
Trace "metin"Olay günlüğüne ve betik tanılamasına satır yazar.
StopLive'ı kapatma isteği gönderir.

HMIRuntime.Logging, AlarmLogs, DataLogs, Alarms ve MenuToolBarConfig bu sürümde yoktur (çağrılırsa hata).

Tag, TagSet

NesneÜyeler
TagRead([kip]), Write [değer], Value (varsayılan özellik), Name, QualityCode, TimeStamp, LastError, ErrorDescription, TagPrefix
TagSet (Tags.CreateTagSet)Add, Remove, RemoveAll, Read, Write, Item / grup("Ad"), Count, LastError

Read'in kip parametresi ve Write'ın kip parametresi kabul edilir ancak fark yaratmaz: yazma her zaman sürücüye hemen gönderilir ve beklenir.

Screen, ScreenItem, Layers, DataSet

NesneÜyeler
ScreenObjectName, ScreenItems, Layers, DataSet, ActiveScreenItem, Parent, AccessPath, Activate(), Refresh(), Width, Height, BackColor, Zoom, Enabled, TagPrefix
ScreenItemObjectName, Type, Left, Top, Width, Height, Visible, Enabled, Layer, Parent, TagPrefix, ToolTipText, Activate(); yaygın adlar: Text, BackColor, ForeColor, BorderColor, FontName, FontSize, FontBold, FontItalic, FontUnderline, ProcessValue, OutputValue, RotationAngle, Transparency, FlashingEnabled; ayrıca nesnenin Özellikler sekmesindeki kendi özellik adları
LayersLayers(no) (VBS'te 1 = katman 0): Visible, Name, MinZoom, MaxZoom
DataSetAdd "ad", değer, DataSet("ad").Value, Remove, RemoveAll, Count

Nesne özelliği olarak yazılan değer oturum boyunca geçerlidir; proje dosyasına yazılmaz. Özellik bir tag'e bağlıysa bağlama kazanır. Mantıksal özellikler (Visible, Enabled …) gerçek Boolean döndürür. Olay kodunda (VBS kodu çalıştır) Item, ScreenItems, Parent, Layers, DataSet adları doğrudan kullanılır.

Err

Number, Description, Source, Clear, Raise numara, kaynak, açıklama.

JavaScript nesne modeli

ÜyeAçıklama
Tag.oku(ad)Geçerli değeri döndürür; tag yoksa undefined.
Tag.yaz(ad, değer)Değer yazar, Promise döndürür; reddedilen yazma operatöre hata penceresi olarak gösterilir.
Sayfa.ac(ad, [önek])Ana sayfayı değiştirir.
Sayfa.geri()Önceki sayfa.
Bildir(metin)Bilgi penceresi gösterir.
Kullanici.adOturumdaki kullanıcının adı (yoksa boş).

Başka üye yoktur: Tag., Sayfa. ya da Kullanici. altında olmayan bir ad yazarsanız Studio derlemede uyarır.

Sınırlar ve dikkat edilecekler

  • Alarm üretme ve onaylama, arşiv ve alarm günlüklerine erişim hiçbir dilde yoktur (C ve Python'da tanımlı ama iş yapmayan çağrılar için ilgili konulara bakın).
  • Nesne özelliklerini VBS, C ve Python değiştirebilir; JavaScript değiştiremez. 3B sayfada nesne özelliği yazma desteklenmez.
  • Başvuru panelindeki "Desteklenmeyen" sekmeleri, Studio'nun önceden uyardığı çağrıların güncel listesini verir.

İlgili konular

FabyaVision 0.1.0 Kullanım Kılavuzu · 18 Ekim 2026© Fabyatek Yazılım Bilişim Teknolojileri Ltd. Şti.