İçeriğe geç

Ücretsiz araç

PLC adres ve veri tipi hesaplama

Siemens S7 standart erişimli bir veri bloğundaki değişkenlerin ofsetlerini ve DB uzunluğunu hesaplayın, adresleri farklı gösterimlere çevirin, sayaçların INT ve DINT sınırına ne zaman ulaşacağını görün.

Veri bloğu (DB) yerleşimi

Veri bloğu (DB) yerleşimi

DeğişkenTipAdresTIA mutlak adresBoyut

Adres gösterimi çevirici

Adres gösterimi çevirici

Sayaç taşma süresi

Sayaç taşma süresi

Veri tipleri ve değer aralıkları

TipBitEn küçükEn büyükNot
BOOL1FALSETRUE
BYTE816#0016#FFbit dizisi
CHAR816#0016#FFtek karakter
WORD1616#000016#FFFFbit dizisi
INT16-3276832767
DWORD3216#0000_000016#FFFF_FFFFbit dizisi
DINT32-21474836482147483647
REAL32±1.175495e-38±3.402823e+38IEEE 754 tek duyarlıklı, yaklaşık 7 anlamlı basamak
LREAL64±2.2250738585072014e-308±1.7976931348623157e+308IEEE 754 çift duyarlıklı; S7-1200 ve S7-1500
LINT64-92233720368547758089223372036854775807yalnızca S7-1500
STRING(n+2)×8''254en çok 254 karakter + 2 bayt başlık

DB yerleşimi nasıl hesaplanıyor?

Araç, değişkenleri standart erişimli bir veri bloğunda STEP 7 ve TIA Portal editörlerinin yerleştirdiği sırayla yerleştirir: BOOL'lar bir baytın bitlerini doldurur, BYTE ve CHAR tek bayt alır, daha büyük tipler ve STRING çift bayttan başlar, blok uzunluğu çift sayıya yuvarlanır. Örnekteki altı değişken için sonuç: Calisiyor DBX0.0, Arizada DBX0.1, AlarmKodu DBW2, Sicaklik DBD4, UrunKodu (STRING[10]) DBB8…DBB19, KaliteOnay DBX20.0; DB uzunluğu 22 bayt.

Siemens bu yerleşim kurallarını tek bir resmî tabloda yayımlamaz. STRING'in 2 baytlık başlığı ve 254 karakter sınırı Siemens'in "Working with Strings in S7-SCL" belgesine (giriş no. 22506480) dayanır; hizalama kuralları editörlerin davranışıdır. Bu yüzden hesaplanan ofsetleri sahada DB editörünün "Offset" sütunuyla doğrulayın. Optimize erişimli bloklarda sabit ofset yoktur; bu araç onlar için geçerli değildir.

Adres çevirici ve veri tipleri

Çevirici DB10.DBW4, %DB10.DBW4 ve P#DB10.DBX4.0 WORD 1 gösterimlerini birbirine çevirir. Tek numaralı bayttan başlayan bir WORD ya da DWORD girerseniz uyarır: standart bir DB'de bir değişken orada başlamaz, böyle bir adres büyük olasılıkla iki değişkene taşan bir erişimdir. Veri tipleri tablosu, PLC'den okuduğunuz değeri SCADA ya da veritabanında hangi tiple saklamanız gerektiğine karar verirken işe yarar.

Sayaç taşma süresi

Üretim sayaçları sık sık INT olarak tanımlanır ve 32767'yi geçince negatif değere döner. Sayacın şu anki değerini ve saatlik artışını girin; araç INT ve DINT sınırına kaç saat kaldığını gösterir. Veri toplarken bu taşmaları nasıl ele aldığımızı PLC'den veri okuma rehberimizde ve Siemens S7 PLC veri toplama sayfamızda anlatıyoruz. Diğer araçlar araçlar sayfasında.

Araç bilgi amaçlıdır; adresleri PLC projesinde ve bilinen bir değerle doğrulayın.

Sıkça sorulan sorular

Merak edilenler

Standart erişimli bir DB'de değişkenler nasıl yerleşir?

BOOL değişkenler bir baytın 0–7 bitlerini sırayla doldurur, sekizinci BOOL'dan sonra bir sonraki bayta geçer. BYTE ve CHAR bir sonraki boş bayta yerleşir. WORD, INT, DWORD, DINT, REAL, LREAL, LINT ve STRING çift numaralı bir bayttan başlar; önceki eleman tek baytta bittiyse araya bir dolgu baytı girer. Blok uzunluğu çift sayıya yuvarlanır. Hesaplanan ofsetleri TIA Portal'da DB editörünün "Offset" sütunuyla karşılaştırın.

Optimize edilmiş (optimized) DB'lerde de bu adresler geçerli mi?

Hayır. S7-1200 ve S7-1500'de varsayılan olan optimize erişimli bloklarda değişkenlerin sabit bir ofseti yoktur; DBW4 gibi mutlak adresle erişilemez, yalnızca sembolik adla erişilir. Mutlak adresle okuyan bir SCADA, HMI ya da veri toplama sürücüsü kullanıyorsanız bloğun özelliklerinde "Optimized block access" seçeneğini kapatmanız gerekir.

STRING değişkeni neden yazdığım uzunluktan 2 bayt fazla yer kaplıyor?

S7 STRING'inin ilk baytı en büyük uzunluğu, ikinci baytı o anki uzunluğu tutar; karakterler üçüncü bayttan başlar. Bu yüzden STRING[10] 12 bayt, uzunluk verilmemiş bir STRING (254 karakter) 256 bayt yer kaplar. Siemens bunu "Working with Strings in S7-SCL" belgesinde (giriş no. 22506480) anlatır.

DB10.DBW4, %DB10.DBW4 ve P#DB10.DBX4.0 WORD 1 arasındaki fark nedir?

Üçü de aynı yeri gösterir. DB10.DBW4 STEP 7 Classic'te kullanılan gösterimdir, %DB10.DBW4 TIA Portal'ın mutlak adres gösterimidir, P#DB10.DBX4.0 WORD 1 ise aynı alanı bir ANY işaretçisiyle (başlangıç biti, tip ve adet) tarif eder. DBX bit, DBB bayt, DBW 2 baytlık word, DBD 4 baytlık double word demektir.

INT sayaç ne zaman taşar ve taşınca ne olur?

INT en çok 32767, DINT en çok 2147483647 değerini alır. Bu sınıra ulaşan bir sayaç bir sonraki artışta negatif en küçük değere (INT için -32768) döner ve üretim sayısı birden negatif görünür. Saatte 1200 adet sayan bir INT sayaç sıfırdan başlayınca yaklaşık 27 saatte taşar; aynı sayaç DINT olsaydı bu süre 200 yılı aşardı.

Girdiğim veriler bir yere gönderiliyor mu?

Hayır. Tüm hesaplamalar tarayıcınızda yapılır; hiçbir değer sunucuya gönderilmez.

Sonraki adım

Üretim verilerinizi nasıl değerlendirebileceğimizi konuşalım.

Tesisinizi, makinelerinizi ve hedefinizi anlatın. Entegrasyon mühendislerimizle görüşerek projenizin kapsamını birlikte belirleyin.

Ödüller ve referanslar

Endüstriyel yazılım deneyimimiz, referanslarımız ve ödüllerimiz

Referanslarımızı inceleyin →