CPU'daji DB1'de aşağıdaki gibi tanımlı bir satır var.
ZAMAN; S5TIME tipinde S5T#10s değeri var.
Ben bu değeri HMI paneldeki bir butondan 1 saniye artırıp başka bir butondan 1 sn azaltmak istiyorum. Butonun event kısmından IncreaseTag ve DescreaseTag ile yapamadım.
Zaman degerini aşağıdaki gibi MD40 veya DB de REAL tanımla, MD 50(DWORD) aşağıdaki işlemler sonucu time formatında oluşacaktır.
MD50 deki datayı PT girişine yazıp SFB4 ü çağır, , IN girişini aktifleyerek ondelay timer çalıştırabilirsin.
Koddaki arttırıp azaltma olayını MD40 real data üzerinde yapacaksın(Bu kısım ellerinden öper)
Kod:
L MD 40 // 45.6 OP den
L 1.000000e+003
*R
RND
T MD 50 // 45s600ms
CALL "SFB4_TON" , DB4
IN:=M10.0
PT:=MD50
Q :=M10.1
ET:=
Çözümü bulmak biraz zamanımı aldı ama daha basit bir yolunu kendimce buldum
HMI'dan ZAMAN'ı I/O FIELD objesi ile eklediğimde DISPLAY FORMAT türünü DECIMAL, 6 basamak olarak ayarladım. Ancak burada saniye değil mili saniye olarak görünüyordu. Ben de 1 değil 1000 olarak artırıp azaltma işlemlerini butonlara tanımladım. Ekransa milisaniye değil de saniye olarak görüntülenmesini istediğim için 6 basamak olan sayının sağdaki 3 basamağını üzerine zemin renginde bir RECTANGLE ekledim. Onun da üzerine SN yazdım..
Sonuç; Operatör ms yerine sn görüyor, artırma ve azaltmayı ekransa sn olarak görüyor.