ASCII Dönüştürme Komutları

Konusu 'Otomasyon' forumundadır ve oguzturk tarafından 25 Mart 2008 başlatılmıştır.

  1. oguzturk Administrator Staff Member


    Geçerli ASCII karakterler 30 ila 39 ve 41 ila 46 arasındaki heksadesimal değerlerdir.

    ASCII ve Heksadesimal Değerler Arasında Dönüştürme
    ASCIIden Heksadesimale Dönüştürme komutu (ATH), IN adresinden başlayan LEN karakter (bayt) uzunluktaki ASCII karakterini OUT ile başlayan alana heksadesimal olarak dönüştürür. Heksadesimalden ASCIIye Dönüştürme komutu (HTA), IN adresinden başlayan LEN uzunluktaki heksadesimal rakamı OUT ile başlayan alana ASCII karakterler olarak dönüştürür.

    Değiştirilebilecek maksimum ASCII karakter veye heksadesimal rakam sayısı 255tir.

    ENO = 0 yapan hata koşulları
    • SM1.7 (geçersiz ASCII) ASCIIden Heksadesimale dönüştürmede
    • 0006 (endirekt adresleme)
    • 0091 (operand tanım aralığı dışında)
    Etkilenen SM bitleri:
    • SM1.7 (geçersiz ASCII)
    Nümerik Değerleri ASCIIye Dönüştürme
    Tamsayıdan ASCIIye (ITA), Double Tamsayıdan ASCIIye (DTA) ve Reel sayıdan ASCIIye (RTA) komutları sırasıyla tamsayı, double tamsayı ve reel sayıyı ASCII karaktere dönüştürür.

    [​IMG]

    Tablo 617 ASCII Dönüştürme Komutları için Geçerli Operandlar

    Tamsayıdan ASCIIye Dönüştürmenin Çalışma Şekli
    Tamsayıdan ASCIIye Dönüştürme komutu (ITA), IN ile başlayan tamsayı değerlerini bir ASCII dizisine dönüştürür. Format FMT, tamsayı kısmının rakam sayısını ve tamsayı/ondalık kısım arasında nokta mı virgül mü kullanılacağını belirler. Dönüşüm, OUT ile başlayan alana 8 sıralı bayt olarak yazılır.

    ENO = 0 yapan hata koşulları
    • 0006 (endirekt adresleme)
    • Geçersiz format
    • nnn > 5
    ASCII karakter dizisi her zaman 8 karakter uzunluğundadır.
     



  2. oguzturk Administrator Staff Member

    Resim 6-14 Tamsayıdan ASCIIye dönüştürme komutunun format (FMT) operandını açıklamaktadır. Çıkış alanı her zaman 8 bayttır. Noktanın sağında yer alacak rakam sayısı nnn alanında tanımlanır. nnn alanının aralığı 0 ila 5tir. Noktanın sağında yer alacak rakam sayısının 0 seçilmesi noktanın kullanılmamasıyla sonuçlanır. 5den büyük nnn değeri kullanıldığı zaman çıkış alanı boşluk karakteriyle doldurulur. c biti, tamsayı ve ondalık kısım arasında ayraç olarak virgül (c=1) veya nokta (c=0) kullanılmasını belirler. En soldaki dört bit 0 olmalıdır.

    Resim 6-14deki örnekte ayraç olarak nokta (c=0) ve noktadan sonra üç rakam (nnn=011) kullanılmıştır. Çıkış alanı aşağıdaki kurallara göre formatlanmaktadır:
    • Pozitif değerler çıkış alanına bir işaret olmaksızın yazılır.
    • Negatif değerlerin başına eksi işareti (-) yerleştirilir.
    • Noktanın solundaki sıfırlar (noktadan sonraki ilk rakam hariç) yazılmaz.
    • Değerler çıkış alanına sağa hizalanmış olarak yazılır.
    [​IMG]

    Double Tamsayıdan ASCIIye Dönüştürmenin Çalışma Şekli

    Double Tamsayıdan ASCIIye Dönüştürme komutu (DTA) IN ile başlayan tamsayı değerlerini bir ASCII dizisine dönüştürür. Format FMT, tamsayı kısmının rakam sayısını ve tamsayı/ondalık kısım arasında nokta mı virgül mü kullanılacağını belirler. Dönüşüm, OUT ile başlayan alana 12 sıralı bayt olarak yazılır.

    ENO = 0 yapan hata koşulları
    • 0006 (endirekt adresleme)
    • Geçersiz format
    • nnn > 5
    ASCII karakter dizisi her zaman 12 karakter uzunluğundadır.

    Resim 6-15 Double Tamsayıdan ASCIIye Dönüştürme komutunun format (FMT) operandını açıklamaktadır. Çıkış alanı her zaman 12 bayttır. Noktanın sağında yer alacak rakam sayısı nnn alanında tanımlanır. nnn alanının aralığı 0 ila 5tir. Noktanın sağında yer alacak rakam sayısının 0 seçilmesi noktanın kullanılmamasıyla sonuçlanır. 5den büyük nnn değeri kullanıldığı zaman çıkış alanı boşluk karakteriyle doldurulur. c biti, tamsayı ve ondalık kısım arasında ayraç olarak virgül (c=1) veya nokta (c=0) kullanılmasını belirler. En soldaki dört bit 0 olmalıdır.

    Resim 6-15deki örnekte ayraç olarak nokta (c=0) ve noktadan sonra dört rakam (nnn=100) kullanılmıştır. Çıkış alanı aşağıdaki kurallara göre formatlanmaktadır:
    • Pozitif değerler çıkış alanına bir işaret olmaksızın yazılır.
    • Negatif değerlerin başına eksi işareti (-) yerleştirilir.
    • Noktanın solundaki sıfırlar (noktadan sonraki ilk rakam hariç) yazılmaz.
    • Değerler çıkış alanına sağa hizalanmış olarak yazılır.
    [​IMG]
     
  3. oguzturk Administrator Staff Member

    Reel Sayıdan ASCIIye Dönüştürme komutu (RTA) IN ile başlayan tamsayı değerlerini bir ASCII dizisine dönüştürür. Format FMT, tamsayı kısmının rakam sayısını ve tamsayı/ondalık kısım arasında nokta mı virgül mü kullanılacağını ve çıkış alan uzunluğunu belirler. Dönüşüm, OUT ile başlayan alana yazılır.

    ENO = 0 yapan hata koşulları
    • 0006 (endirekt adresleme)
    • nnn > 5
    • ssss < 3
    • ssss< OUTdaki karakter sayısı
    Dönüştürülen ASCII karakterlerinin sayısı (veya uzunluğu) çıkış alanının boyutuna eşittir ve 3 ila 15 bayt (karakter) arasında seçilebilir.

    S7-200de kullanılan reel sayı formatı en fazla 7 anlamlı rakamı desteklemekte olup bundan daha fazla sayıda rakamın gösterilme girişimi halinde yuvarlama hatası oluşur.

    Resim 6-16da RTA komutunun format (FMT) operandı gösterilmektedir. Çıkış alanının boyutu ssss alanında tanımlanır. 0, 1 veya 2 bayt boyutu geçerli değildir. Noktanın sağında yer alacak rakam sayısı nnn alanında tanımlanır. nnn alanının aralığı 0 ila 5tir. Noktanın sağında yer alacak rakam sayısının 0 seçilmesi noktanın kullanılmamasıyla sonuçlanır. 5den büyük nnn değeri kullanıldığı veya çıkış alanı dönüştürülen değeri kaydedemeyecek kadar küçük olduğu zaman çıkış alanı boşluk karakteriyle doldurulur. c biti, tamsayı ve ondalık kısım arasında ayraç olarak virgül (c=1) veya nokta (c=0) kullanılmasını belirler.

    Resim 6-16daki örnekte ayraç olarak nokta (c=0) ve noktadan sonra bir rakam (nnn=001) ve 6 baytlık çıkış alanı (ssss=0110) kullanılmıştır. Çıkış alanı aşağıdaki kurallara göre formatlanmaktadır:
    • Pozitif değerler çıkış alanına bir işaret olmaksızın yazılır.
    • Negatif değerlerin başına eksi işareti (-) yerleştirilir.
    • Noktanın solundaki sıfırlar (noktadan sonraki ilk rakam hariç) yazılmaz.
    • Değerler çıkış alanına sağa hizalanmış olarak yazılır.
    • Noktanın sağındaki değerler burası için seçilmiş rakam sayısına uygun olarak yuvarlatılır.
    • Çıkış alanının uzunluğu noktadan sonraki rakam sayısından en az 3 bayt fazla olmalıdır.
    [​IMG]


    [​IMG]
     

Sayfayı Paylaş