Modbus TCP/UDP Client

inSCADA Modbus Client

1) Kurulum

1.1) Windows İçin Kurulum

Modbus Client uygulaması click-to-run olarak tasarlanmıştır. Uygulamayı bilgisayara indirdikten sonra ins-mod-cli.exe 'yi çalıştırarak direkt kullanmaya başlayabilirsiniz.

1.2) Ubuntu İçin Kurulum

Modbus Client uygulaması Ubuntu içinde çalışmak için OpenJDK-11 ve OpenJFX uygulamalarına ihtiyaç duymaktadır. Bunun için ;

1.2.1) Ubuntu terminaline aşağıda verilen sırayla kuruluma başlayınız

sudo apt-get update
sudo apt-get upgrade
sudo apt install openjdk-11-jre
sudo apt install openjfx

1.2.2) Uygulamanın .jar dosyasını terminal üzerinden çalıştırabilirsiniz

cd jar/Dosyasının/İndirildiği/Lokasyon
java --module-path /usr/share/openjfx/lib --add-modules javafx.controls.javafx.fxml -jar ins-mod-cli.jar

2) Uygulama

2.1)Bağlantı Ayarları

Uygulamayı çalıştırdıktan sonra Connection sekmesinden bağlanılacak olan Server Device adreslerini girerek bağlantımızı oluşturalım.

2.1.1) Connection Type

Buradan Server'la kurulmak istenen bağlantı türü seçilir

2.1.2) IP Address

Server cihazının ip adresi buradan girilir.

2.1.3) Port

Server cihazının portu buradan girilir. Değer aralığı 0 ve 65535' tir.

2.1.4) Unit Address

Server cihazının Unit(Slave) ID'si girilir.

2.1.5) Server Timeout

2.1.6) Server Scan Time

Data Block ve Tag'lerin ne kadar sürede bir tarancağını belirlemek için kullanılır.

2.1.7) Start/ Stop

Bağlantı kurulduktan sonra her 2 saniyede bir bağlantı durumu kontrol edilir.

2.1.8) Connection Status

Bağlantı durumu buradan kontrol edilir.

2.2) Data Block ve Tag Ayarları

Bağlantı kurulduktan sonra Data Block / Tags kısmından(Resim 2) önce data blocklar eklenir. Eklenen Data Block'ların içine, okuma ve yazma işlemi yapılacak olan Tag'ler eklenir.

2.2.1) Data Block

2.2.1.1) Name

Tabloya Data Block eklerken isimlendirme yapılması zorunludur. Data Block isimleri ID olarak kullanılır ve benzersiz olmak zorundadır.

2.2.1.2) Type

Eklenilmek istenen Data Block türü buradan seçilir. Her Type'ın Start Address aralığı farklıdır.

2.2.1.3) Start Address

Okunmak istenen verinin adresi buraya girilir. Seçili Type'a göre adres verilir. Uygulamada :

* Coil adres aralığı 1-9999

* Discrete Input adres aralığı 10000-19999

* Holding Register adres aralığı 40000-49999

* Input Register adres aralığı 30000-39999

olarak belirlenmiştir.

2.2.1.4) Amount

İşlem yapılacak Tag sayısı kadar Amount girilir.

2.2.1.5) Buttons

Add : Data Block'ların Name, Start Address, Type ve Amount alanları doldurulduktan sonra butona tıklanarak tabloya ekleme işlemi yapılır.

Update : Güncellenmek istenen Data Block tablodan seçildikten sonra değişiklikler yapılıp butona basılarak güncelleme işlemi gerçekleştirilir.

Delete : Silinmek istenen Data Block tablodan seçildikten sonra butona basılarak silme işlemi gerçekleştirilir.

Clear : Name, Start Address, Type ve Amount alanlarını temizlemek için kullanılır.

2.2.2) Tags

Her Data Block'un kendi Tag'leri vardır. Tag eklemek için önce Data Block seçilir, daha sonra Tag'ler eklenir.(Resim 4)

2.2.2.1) Name

Data Block'lar gibi Tag'ların ismi de benzersiz olmak zorundadır. Name sekmesi boşsa yeni Tag eklenemez.

2.2.2.2) Type

Okunmak istenen Tag değerinin türüne göre Type seçilir.

2.2.2.3) Address

Tag eklerken seçilmiş olan Data Block'un ,Start Address'i ve Amount'una göre Tag adresi girilir. Örneğin Start Address'i 1 ve Amount'u 10 olan bir Coil'in(Resim 5), Tag adresi 1-11 arasındadır. Bu aralıktaki herhangi bir değer seçilerek ekleme yapılır(Resim 6).

2.2.2.4) Byte / Word Swap

Tag'lerin Byte Swap, Word Swap olarak okunması için buradaki alanlar seçilir.

2.2.2.5) Buttons

Add : Tag'lerin Name, Address, Type, Byte Swap ve Word Swap özellikleri seçildikten sonra butona basılarak ekleme işlemi gerçekleştirilir.

Update : Güncellenmek istenen Tag tablodan seçildikten sonra değişiklikler yapılıp butona basılarak güncelleme işlemi gerçekleştirilir.

Delete : Silinmek istenen Tag tablodan seçildikten sonra butona basılarak silme işlemi gerçekleştirilir.

Clear : Name, Address, Type, Byte Swap ve Word Swap alanlarını temizlemek için kullanılır.

2.2.2.6) Tag Value Ekleme

Tag'lere değer girmek için tabloda seçtiğimiz Tag'e çift tıklayarak açılan sekmeden atama yapabilirsiniz.(Resim 7 ve 8)

2.2.2.7) Chart

Tablodan bir veya daha fazla Tag seçilerek Farenin Sağ Tuşuna tıklanılıp gelen menüden Chart seçilir. Çoklu seçim yapmak klavyeden Ctrl tuşuna basılı tutularak, tablodan seçim yapılır(Resim 9).

Açılan Chart, Date ve Value değerlerini göstermektedir. İmleci grafikteki noktalara götürerek bu değerleri okuyabilirsiniz.(Resim 10) Açılan pencerenin altındaki Legend grubundan izlenilmek istenen Tag ismine tıklayarak Chart'ı değiştirebilirsiniz.(Resim 11) Grafik üzerinde boş alana tıklanıldığında ise Chart orjinal haline geri döner.

2.3) Function Kullanımı

Uygulama üzerindeki Menu Bar'a tıklanılarak Functions menüsü üzerinden istenilen fonksiyonun sekmesini açabilirsiniz.(Resim 12)

2.3.1) Coils / Discrete Inputs

Açılan sekmede Start Address ve Quantity değerlerini girdikten sonra Function kısmından yapılacak işlemi seçip, Execute butonuna tıklayatak fonksiyonu çalıştırabilirsiniz.(Resim 13 ve 14)

Coil / Discrete Input'larda Write işlemi yapılması için tablo üzerindeki Value sütunundan hücreleri seçerek atama yapabilirsiniz.(Resim 15) Start Address ve Quantity için verilebilecek maksimum miktar geçildiği zaman sekme üzerinde uyarı yazısı çıkar.(Resim 16) Bu uyarı durumu tüm Function'lar için geçerlidir.

2.3.2) Holding / Input Registers

Açılan sekmede Start Address ve Quantity girildikten sonra Function seçilir ve Execute butonuna basılarak çalıştırılır. Okunmak istenen değerin tipi Type kısmında değiştirilebilir.(Resim 16) Seçilen adrese değer atamak için tablonun Value sütunundaki hücrelere Fare ile çift tıklayarak atama yapabilirsiniz.

2.3.2) Mask Write Register

Mask Write Register fonksiyonu sadece Holding Register'lara atama yapmak için kullanılmaktadır. Okunacak Address girildikten sonra Mask'lere 0 yada 1 değerleri girilerek çalıştırılır. Mask'lere değer girmek için her seferinde tek bir rakam seçilerek atama yapabilirsiniz.(Resim 19 ve 20)

2.3.4) Read / Write Register

Write Address ve Quantity belirlendikten sonra oluşan tabloda değer atanacak adresin Value sütunundaki hücreye imleç ile çift tıklayarak değer ataması yapabilirsiniz. Daha sonra okunmak istenen aralığa göre Read Address ve Quantity alanları doldurulur ve Execute butonuna tıklanılarak çalıştırılır.(Resim 21)

2.4) Logs

Uygulamada yapılan işlemleri ve seçimleri, bağlantı kurulduğunda Server cihazına yapılan istekleri ve oluşan hataları takip etmek için Log alanı kullanılır.(Resim 22) Ayrıca Search alanını kullanarak istenilen verileri filtreleyebilirsiniz.

2.4.1) Copy / Clear

Seçilen Log'lara Fare ile sağ tıklanıldığı zaman açılan menüden, Copy'ye tıklanılarak kopyalama işlemini gerçekleştirebilirsiniz. Aynı zamanda Clear'a tıklayarak biriken logları temizleyebilirsiniz.

2.4.2) Log Level

Takip etmek istediğiniz logları filtrelemek için Log Level alanından bir katman seçebilirsiniz. Ayrıca alandaki Log'lar :

INFO -> Mavi

ERROR -> Kırmızı

WARNING -> Sarı

olarak renklendirilmiştir.

2.4.3) Export

Export butonuna basılarak sekmede loglar Text File olarak, açılan pencereden seçilen yere kayıt edilebilir.

2.5) Save / Load

Uygulama içi ayarları kaydetmek veya yüklemek için üst kısımdaki bardan File seçilir. Burada Save Config'e tıklayarak ayarlarınızı JSON File olarak kayıt edebilir veya Load Config'e tıklayarak yükleyebilirsiniz. Ayrıca uygulamadan daha güvenli bir şekilde çıkış yapabilmek için Exit Application'ı kullanabilirsiniz.(Resim 23)

Modbus TCP/UDP Client ENGLISH VER.

inSCADA Modbus Client

1) Setup

1.1) Setup for Windows

This modbus client application designed as click-to-run in Windows. You can use it directly after after downloading application by clicking ins-mod-cli.exe.

1.2) Setup for Ubuntu

You need at least version 11 of OpenJDK and OpenJFX to run application in Ubuntu. Here is a step by step instruction for easy installation :

1.2.1) Install the needed version of OpenJDK and OpenJFX

sudo apt-get update
sudo apt-get upgrade
sudo apt install openjdk-11-jre
sudo apt install openjfx

1.2.2) Now you should be able to run executable .jar file from Ubuntu terminal

cd jars/downloaded/location
java --module-path /usr/share/openjfx/lib --add-modules javafx.controls.javafx.fxml -jar ins-mod-cli.jar

2) Application

2.1) Connection Settings

After starting application you must set your settings according to your slave device. If your settings are true you should be able to establish a successful connection.

2.1.1) Connection Type

You can select a Connection Type that you want to establish in here

2.1.2) IP Address

Set your Server(Slave) Device's IP Address in this field

2.1.3) Port

Set your Server(Slave) Device's Port in this field

2.1.4) Unit Address

Set your Server (Slave) Device's Unit Address(ID) in this field

2.1.5) Timeout

2.1.6) Scan Time

2.1.7) Start / Stop

After you pressed to Start button the application will check connection status in every 2 seconds

2.1.8) Connection Status

2.2) Data Block and Tag Settings

After establishing connection , add your Data Blocks and Tags for performing read and write operations(1.1)

2.2.1)Data Block

2.2.1.1)Name

You must define a name when you are adding new Data Blocks in table. The application uses name as ID and it has to be unique

2.2.1.2) Type

Select a Data Block Type in this field

2.2.1.3) Start Address

You must define your start address according to selected Type in this field. Every Data Block Type have an address range.

*Coil Range : 1-9999

*Discrete Input Range : 10000-19999

*Holding Registers Range: 40000-49999

*Input Registers Range : 30000-39999

2.2.1.4) Amount

Define this field according to Tag count to be processed otherwise you cant read or write your slave values correctly

2.2.1.5) Buttons

Add : Adds datablock after you fill fields of your data blocks Name, Start Address, Type and Amount

Update : Updates the selected item from table. If multiple items selected it only deletes last item

Delete : Deletes the selected item from table. If multiple items selected it only deletes last item

Clear : Cleares Name, Start Address, Type and Amount fields.

2.2.2) Tags

Every Data Block has its own Tags. You must define a Data Block before you add any Tag.(1.3)

2.2.2.1) Name

Like data block names, Tag names must be defined and unique too.

2.2.2.2) Type

Select a Tag Type that you wish to read / write value

2.2.2.3) Address

Define your tag address according to your Data Block's Start Address and Amount. If your Start Address is 1 and Amount is 10 your Tag Address must be in range between 1-11.(1.4 and 1.5)

2.2.2.4) Byte / Word Swap

Check or Uncheck these fields according to value that you wish to read or write

2.2.2.5) Buttons

Add: Adds Tag after you fill Name, Address, Type, Byte and Word Swap fields.

Update: Updates selected tag from table. If you select multiple Tags from the table it only updates last one

Delete: Deletes selected Tag from table. If you select multiple Tags form the table it only delets last one

Clear: Clears Name, Address, Type, Byte and Word Swap fields.

2.2.2.6) Setting Values

You can open Set Value tab by double clicking selected Tag in your table.(1.6 and 1.7)

2.2.2.7) Chart

Select single or more Tags from the table and Right Click to selected items. Choose Chart after a menu shows up. You must hold CTRL button from keyboard if you want to select multiple items.(1.8)

Chart shows values and dates only. If you want see specific value from chart, you can drag your mouse to dots in chart . Also you can show only selected Tag in Chart by clicking Tag Name Legend below the tab. Press an empty field in chart if you want to return default look.(1.9 and 2)

2.3) Using Functions

Click to Functions section from Menu Bar at the top of the application. Then select the function that you wish to use.(2.1)

2.3.1) Coils / Discrete Inputs

Select a Function you want to operate, define Start Address and Quantity. Then press to Execute button and execute your function. You can set values from Value column cells by checking or unchecking boxes.(2.2)

2.3.2) Holding / Input Registers

Select Function in opened tab and define your Start Address and Quantity. You must set values from Value column, Double Click on Value column cell and define your value and press enter to set. Then press to Execute button to execute selected Function operation.(2.4)

Use Type to change value types from table.(2.5)

2.3.3) Mask Write Register

Mask Write Function works only for holding registers. First set your holding register address to read. Then set values of OR and AND Mask. You must select one by one to define each value in Mask's.(2.6 and 2.7)

2.3.4) Read / Write Register

After setting Write Address and Quantity, select your Type of value to write and define value from table. Then set Read Address and Quantity you wish to be read and click to Execute button. Register values will be shown in Read Result table.

2.4) Logs

You can use Logs section to follow your selections, operations, requests and occurred errors. Also you can use Search field to found specific datas.

2.4.1) Copy / Clear

Right Click to your Log section and choose Copy or Clear log operations.

Copy: Copies selected log to clipboard

Clear: Clears all logs.

2.4.2) Log Level

Select a log level that you wish to filter. Some of these levels are shown colored in logs

INFO -> Blue

ERROR -> Red

WARNING -> Yellow

2.4.3) Export

Export save logs as Text File, you can select the export location after clicking to Export button.

2.5) Save / Load

Select File from Menu Bar to Save or Load your settings. Application can only save settings in .JSON format and loads configs in .JSON format. Also you can use Exit Application to close application safely.

Last updated